MCU-PLUS-SDK-AM243X: The DDR ECC Function Problem (Requires TI Library Modification)

Part Number: MCU-PLUS-SDK-AM243X

Tool/software:

Hi

SDK:mcu_plus_sdk_am243x_09_00_00_35

According to the safety manual requirements, DDR needs to use ECC functionality. During my debugging of DDR ECC, I encountered an issue which has now been resolved but requires modification of TI's SDK library. Could you please confirm whether this is feasible?

The problem symptoms are as follows:
We enabled DDR ECC in the BOOT loader, and after execution, reading from DDR registers showed that the function was properly activated, with partition configurations also normal. However, every time we power up the board for the first time post-boot, the ESM reports an ECC error in DDR, which disappears upon executing a reset before starting again.
After analysis, it is believed that there is a problem with the DDR ECC initialization steps within the SDK (discrepancy with TRM documentation), as it fails to clear ECC errors during the initialization process. I modified the SDK based on this logic: enable ECC and disable ECC CK functionality – write in expected values – enable ECC CK functionality – enable ECC interrupt, following which the issue was resolved.

Please confirm the following two points:
1. Is the reason for reporting DDR ECC error upon first power-up consistent with the analysis?
2. Is it reasonable to modify the SDK library as described above?

thanks

Jimmy

  • Hi Jimmy,

        Thanks a lot report the issue to us.

        As your observed the inssue, in funciton DDR_inlineECCCfg,  the ECC controller disabled by funciton "DDR_enableInlineECC (0U);" at beginning, unfortuanltey, it enalbed in the CSL_emifConfigController of function CSL_emifConfig as to the parameter emifCfg.bEnableMemoryECC is true. 

        I will invoke intenal team to handle it. 

        Thanks.

    Linjun