I am attempting to set the FlexNVM partitioning on a MK66FX1M0xx chip so that it has all Data Flash and no EEPROM. Even after running an Erase All Blocks command in the firmware, I still read SIM_FCFG1 = 0x9D020F00 with the debugger. The erase all blocks command looks to have succeeded, since the debugger memory browser shows the FTFE registers as: 0x40020000 FFFE0280 44000000.
When I run a Program Partition command in the firmware to set the Data Flash to full size, I see the following in the FTFE registers after running the command: 0x40020000 FFFE0280 80000001 3F000000. It looks like the command ran without errors, but SIM_FCFG1 = 9D020000 after the command. The DPART changed, but the EEExxx did not.
Is there some protection for the EEExx fields that I need to disable before erasing them?
What commands need to be sent to the FTFE controller to set the MK66FX1M0xx for all Data Flash and no EEPROM?
flexnvm
Dear c.johnson@lightstat.com,
As far as I know there's no restriction for write the EEExxx registers, after the Program Partition command this register should be changed but the use of this command needs to have the following consideration that is found in the reference manual (32.4.12.15 Program Partition command):
The Program Partition command prepares the FlexNVM block for use as data flash, EEPROM backup, or a combination of both and initializes the FlexRAM. The Program Partition command must not be launched from flash memory, since flash memory resources are not accessible during Program Partition command execution.
The size should be read back using the Read Resource command .
Also, could you share how are you building the command?
Best Regards,
Alexis Andalon