This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Tool/software:
I tried to modify the CMACKEY0(0x78018)( 32bits) from 0xFFFFFFFF to 0xFFFFFFFE.
Then click the program button, it shows failed as below.
Question: Why this happen?
According to the description of OTP, each bit can be programmed from 1to 0 only once.
Hi W Z,
I'll need to interface with the security experts for this issue, but it may be a few days before they get back to you as it is 4th of July holiday here in the US.
Thanks and regards,
Charles
Hi W Z,
Could you check what the CMACKEY values are in the memory browser to confirm these locations have not been programmed?
Thank you,
Luke
Hi W Z,
Could you check to make sure the "Reset target before flash programming operations" checkbox is unchecked in the On-Chip flash tool and the zone is unlocked before attempting to program? I suspect the zone is getting locked which effectively turns all bits in user otp to a 0 and causes this error.
Thank you,
Luke
I suppose this may be caused by the OTP ECC. Due to I pick a new board which DCSM OTP memory is in the default status. I just change the CMACKEY0(0x78018)( 32bits) from 0xFFFFFFFF to 0xFFFFFFFE, it successfully programmed.
The board which has the problem as I post, when program the CMACKEY0(0x78018)( 32bits) from 0xFFFFFFFF to 0xFFFFFFFE failed.
This board has the background, before doing the above CMACKEY0 change, it already did the change for the below part.
Number of boot Pins, and BOOTDEF0.
Could you please help analysis of OTP ECC mechanism, will it cause this problem?
If yes, the below description shall have the precondition.
Each bit can be programmed from 1 to 0 only once, also will be restricted by the OTP ECC which also only can be programmed from 1 to 0 only once.
If I do like this way, each time, I only change one bit from 1 to 0 om DCSM OTP.
Not all bits in DCSM OTP have the chance to program from 1 to 0, due to OTP ECC restriction.
Hi W Z,
You are correct, if this memory location has already been programmed with all Fs, it will program the ECC bits and restrict you from programming any values in the future other than all Fs.
I believe the current error message is correct since it says "check to make sure the memory location you are programming has not already been programmed." This includes a program of all Fs.
Thank you,
Luke