> If you modify the EESIZE value via Program Partition Command after the chip reset , the SIM_FCFG1 doesn't updated the [EESIZE] bits value after the next round reset happens.
That also doesn't seem to be true.
Just checked, and for my MCU it's like this - values of FCFG1 before and after Program Partition Command (when setting EESIZE = 9 and DPART = 2):
(here we come after Bulk Erase and program flash programming)
0000000000.143 FCFG1=39030F00
(here comes Program Partition Command)
0000000000.175 FCFG1=39090200
So, just after Bulk Erase and before Program Partition Command, FCFG1 value is 39030F00 - so EESIZE == 0x3 and DEPART= 0xF.
After Program Partition Command, FCFG1 value is 39090200 - so EESIZE == 0x09 and DEPART == 0x2.
What we have here:
EESIZE changed value from 0x3 to 0x9 (0b0011 -> 0b1001) - bit #3 gets set, should be impossible to happen, as we program FLASH cell and only erasure can change 0->1.
DEPART gets changed correctly.
Next Bulk Erase restores FCFG1=39030F00, so it clearly affects IFR - DEPART becomes erased, EESIZE also (it can be reprogrammed to any value), only FCFG1.EESIZE == 3 remains a mystery.
And FCFG1 gets correctly updated just after Program Partition Command, without next chip reset being required, as can bee seen from my experiment. It doesn't require another reset, as you've stated.