AM13E23019: Wrong ECC address calculation in DriverLib

Part Number: AM13E23019

When using SDK version 01.00.00.EA2 (26.00.00.06 seems to have the same problem), we faced unexpected failures when trying to erase the sector, receiving DL_FLASH_COMMAND_FAIL_BLANK_VERIFY error. We believe this is caused by the wrong ECC address calculation in the function DL_FlashCTL_blankVerify from the dl_flashctl module of DriverLib.

Function DL_FlashCTL_blankVerify calculates the ECC address for the given flash word by dividing its address by 16. From our observation, this looks up the ECC for the wrong flash word.

According to the AM13E230x TRM (MARCH 2026 revision), e.g., "ECC code address returns the 16-bit ECC value for the entire 128-bit flash word that was accessed."(10.1.2.3.1 Flash Memory Map), the flash word size is 16 bytes(128bits) and the corresponding ECC is 2 bytes (16 bits), so we expect this scaling factor to be 16(128)/2(16) = 8.

For our tests, we've already applied this scaling factor as a workaround and confirmed the correct behaviour of the application.

Could you please confirm our assumption about this bug in the SDK, and if so, inform us when the fix is expected?

BR,
Oleksandr

  • Hi Oleksandr,

    Can you please provide the steps that you followed while erasing the sector? Is it possible to share the source code for analysis?

    Thanks

    Aswin

  • Hello Aswin!

    Can you please provide the steps that you followed while erasing the sector?

    No special steps in the code besides calling the DL_Flash_eraseSector function.

    Is it possible to share the source code for analysis?

    I do not have the prepared project to share that reproduces this exact issue, as it depends on the conditions of the flash pages before the one you want to erase.

    But you can easily try to reproduce it, if needed. The conditions are:

    • Flash test application
    • In the code, try calling the DL_Flash_eraseSector function with the address of a page that is right after the application
    • As DL_FlashCTL_blankVerify checks ECC at the wrong address, it will find non-empty ECC code from the application's pages and fail with the 

    BR,
    Oleksandr