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.

ESM Error on a flashing firmware for TMS570LS0X32

Other Parts Discussed in Thread: TMS570LS0432, TMS570LS0332, HALCOGEN

Dear all,
I know this is an already discussed topic on this forum, I've done a flashing firmware which works on TMS570LS0432 and TMS570LS0332 and run on whatever customer board. On a particular board I fall in ESM group3 errors during power-up. 
Initializations are HalCoGen based and the device is stuck on the following for{} cycle:

    if ((esmREG->SR1[2]) != 0U)
    {
/* USER CODE BEGIN (24) */
/* USER CODE END */

    /*SAFETYMCUSW 5 C MR:NA <APPROVED> "for( can be removed by adding "# if 0" and "# endif" in the user codes above and below" */

    /*SAFETYMCUSW 26 S MR:NA <APPROVED> "for( can be removed by adding "# if 0" and "# endif" in the user codes above and below" */

            /*SAFETYMCUSW 28 D MR:NA <APPROVED> "for( can be removed by adding "# if 0" and "# endif" in the user codes above and below" */
            for(
            {
            }/* Wait */
/* USER CODE BEGIN (25) */
/* USER CODE END */
    }

I removed this conditional and the programming completed succesfully. I put back the conditional and I got again a correct programming.
Searching around the forum seems that this error coud be caused by a number of different reasons (also, wrong flash controller states) and someone suggested to check if, after a device erase, the problem is still there or not.
Being this a flashing firmware which works on any board, should I remove or modify this check?
Thank you very much, best regards,

  • Thank you for using the Hercules forum. An engineer will soon be on the problem.

  • Hi Samuele,

    Same Executable ( .out) is working on other boards but not on a particular board, Is that right?

    The check is for ESM group2 error, At code sequence ( Above Sanpshot you posted) typically check for uncorrectable errors during power-up, that is either 2-bit ECC error during the OTP read or during eFuse autoload.

    When the code gets stuck here, can you read content of esmREG->SR1[2] and let me know.