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.

RM57L843: ECC error from erased part of main flash emitted when it is not explicitly accessed

Part Number: RM57L843


Hi

We are seeing an issue that emits a ESM bus error Group 2.3 which the EPC indicates is from a part of FLASH that is erased.

The address in question is in FLASH BANK1 0x2999e0-0x2999ff for our particular case.

  • There is no part of the program directly accessing these FLASH memory locations.
  • Setting the MPU (even for a small 256 byte region)  to DEVICE_NONSHARED or STRONGLY_ORDERED fixes this issue. Not desirable as the cache is off and performance suffers.
  • Disabling the region in the MPU (256 byte region in the middle of FLASH) also fixes the issue.
  • Programming all FLASH with something (0xff) which makes all ECC bits valid, also fixes the problem.

I suspect this has something to do with predictive prefetch.

Have you seen this?

If so:

  • what is the root cause
  • is there a better solution that doesn't require all of FLASH to be written?

Note we have errata L2FMC#5 in place for the other flash regions (8MB) as DEVICE_NONSHARED as we use FEE too, but on reading this more closely, it seems to also requires main flash to be the same.Could you clarify this errata wording please.

Could this use of FEE be a compounding factor.

Thanks

Mark