LP-MSPM0G3507: MSPM0G3507 Factory reset failure

Part Number: LP-MSPM0G3507
Other Parts Discussed in Thread: SYSCONFIG

 

After programming the flash using i2c (mass_erase, program_data) started facing the below issue (same file flashed using CCS XDS110: Faced no issues)

CS_DAP_0: Device diagnostic read = 0x00000036 
CS_DAP_0: 
Possible root causes could be one or multiple of the following:
1) Invalid CRC configuration
2) Invalid BCR configuration
3) Invalid BSL configurationPossible recovery method:
1) Perform a DSSM factory reset
2) If method one does not work please remove power, hold nRST low, connect the device while nRST is held low, and then perform a DSSM factory reset

Tried to factory reset but facing the below issue

CS_DAP_0: Initiating Device Factory Reset
CS_DAP_0: Attempting CS_DAP connection
CS_DAP_0: Attempting SEC_AP connection
CS_DAP_0: Command Sent
CS_DAP_0: Start hardware Reset using NRST
CS_DAP_0: Initiating BOOTRST Board Reset
CS_DAP_0: Reset line asserted 
CS_DAP_0: Reset line de-asserted 
CS_DAP_0: Board Reset Complete
CS_DAP_0: Reset done
CS_DAP_0: SEC_AP Disconnect
CS_DAP_0: SEC_AP Reconnect

Found few forum links mentioning that nothing further can be done if the MCU is in this state. The non-main flash memory is protected, so how did it get affected without unprotecting it ?  

The root-cause of the issue needs to be found so that the MCU can be used reliably in our project.

  • Hi,

    Found few forum links mentioning that nothing further can be done if the MCU is in this state

    Please try the following method in the MSPM0 MCUs Development Guide (Rev. G) to force the device into our ROM BSL first and then perform the factory reset to see whether can unlock/recover the device.

    ---------------------------------------------------------------------------------------------------------

    Need to confirm with you some questions in order to better troubleshoot the issue:

    1. Do you use your own BSL or our BSL demo?

    2. Does this issue always occur or only occasionally happen?

    Best Regards,
    Peter

  • The above log is the output of Factory reset in BSL mode

    1) We are using the BSL demo

    2) This issue is consistent

  • Any update on this issue?

  • Hi Ashwanth,

    Sorry for the late reply, I wasn't in the office these days and will get back to you by tomorrow, thanks!

    Best Regards,
    Peter

  • Hi Ashwanth,

    Let me do a quick summary of current status at first:

    Since you receive the info that "device diagnostic read = 0x00000036", which means probably error happens in the BCR CRC verification stage, this is highly likely due to incorrect erase/program which cause damage to the Nonmain BCR region, resulting in a discrepancy between the BCR CRC value calculated by boot code and the CRC value automatically calculated by Sysconfig in advance.

    And according to the TRM about the "BCR Configuration CRC Fail Handling" as shown below, if you enable the factory reset in the BCR, even when the CRC fail, it can be performed, unless also accidentally erased this enable configuration in the Nonmain.

    Before talking about the root cause, a key point need to keep in mind:

    If you can make sure the Nonmain static write protection is set correctly at first, then it won't be erase/program by the BSL related operations even the factory reset command by BSL, and it only can be erased by factory reset via SWD DSSM if you enable the factory reset in the BCR.

    Therefore, since you encounter the issue above, need to check:

    1. If you perform the operations related to Nonmain erase/program at first, make sure at this stage everything goes fine and the whole process is stable and normal. (For example, avoid unexpected situations such as power drop down, hardware issues or the programming environments is bad)

    2. Need to confirm whether Nonmain static write protection is properly implemented during any other erase/write operations.

    Thanks!

    Best Regards,
    Peter