Other Parts Discussed in Thread: SYSCONFIG
Hi there,
I am currently working on a secondary BSL implementation on the MSPM0G3507 to perform firmware update.
Today I encountered an issue where the microcontroller became permanently locked. The register reads 0x0036, and the NOMAIN region appears to be erased, resulting in a permanent lock.
I would like to ask for clarification on the following points:
-
I had enabled NOMAIN static write protection. However, NOMAIN was still erased, looks not be protected. Is this protection expected to prevent erase operations? During development or debugging, are there any additional settings or precautions that should be enabled to avoid accidentally erasing NOMAIN and locking the device?
-
For the MAIN region, my understanding is that the static write protection should be configured as 0xFFFFF00F according to where we put the secondary bsl code. is that right? should i also configure it during developing?
-
Regarding the debug erase configuration, I had configured both MAIN and NONMAIN sectors. Could this configuration allow NOMAIN to be erased during debug operations even if static protection is enabled?
The secondary BSL itself is flashed in the MAIN region, and to protect it from being overwritten, I understand that MAIN static write protection must be configured correctly. However, the configuration registers related to BCR and BSL are located in the NOMAIN region. If these registers are written incorrectly or if NOMAIN is erased, the device becomes permanently locked.
Is my understanding correct?
I have read a large amount of official NVM documentation and several related forum threads, but I could not find clear development guidelines or best practices on how to avoid permanently locking the device when developing a secondary BSL.
Could you please provide recommendations or a suggested development workflow to safely develop and debug a secondary BSL while minimizing the risk of erasing NOMAIN or permanently locking the device?
Thank you for your support.
Best regards,
Zq

