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.

"FMCBUS2 Error Check" code generated by HALCoGen (03.05.00)

Guru 16800 points
Other Parts Discussed in Thread: TMS570LS3137, HALCOGEN

Hello,

I have a trouble for "FMCBUS2 Error Check" code generated by HALCoGen (03.05.00) on TMS570LS3137.

Boot sequence stops under following conditions.
Could you teach me wheter it is correct behavior?

1. "FMCBUS2 Error Check" is enabled by checking "SAFETY INIT" -> "Self test Enable" -> "Enable FMCBUS2 Error Check".
   Then, the "fmcBus2Check()" will be activated.
2. At initial condition, 0xFFFFF518 (esmREG->ESTATUS1[0U]) == 0x40U.
   Therefore, at the top of "_c_int00" function, Correctable Error (ESM Group 1 Channel 6) occurs.

Then, the ESM flag is cleared by "esmREG->ESTATUS1[0U] = 0x40U" in sys_selftest.c and fmcECCcheck() is executed.
In fmcECCcheck() function, Correctable Error (ESM Group 1 Channel 6) will occur by "otpread = flash1bitError", however it is never occured.
Finally, fmcClass2Error() is executed and boot sequence stops, because "esmREG->ESTATUS1[0U] != 0x40U".

Why doesn't Correctable Error (ESM Group 1 Channel 6) occur?

Best Regards.

Nomoto

  • Hello Nomoto-san,

    None of the ESM bits are expected to be set upon power-up. Do you see the flash single-bit error bit set already before the execution of the flash ECC check?

    Regards, Sunil

  • Hello Sunil-san,

    Thank you for your apply.

    Yes, I see the flash single-bit error bit set already before the execution of the flash ECC check.
    I think that HALCoGen code is written on the assumption of above case.

    Best Regards.

    Nomoto

  • Hello,

    Can you please clear the correctable error bit in the flash module register as well as the ESM register before executing the flash ECC check? The flash ECC checking routine is written assuming that the flash ECC is not enabled before you run this check and also that there is no ECC error during power-up.

    Regards, Sunil

  • Hello,

    Thank you for your reply.
    The problem is solved by clearing the correctable error bit in the flash module register.
    I added a following code before executing the error insertion and the flash ECC check.

    flashWREG->FEDACSTATUS = 0x00000002U;


    Best Regards

    Nomoto