Hi all,
I am trying to understand how the Cache ECC works in the Cortex-R5F, coupled with the TMS570LC and the ESM, in order to be able to properly manage uncorrectable ECC errors occurring in the system.
In the Cortex-R5 documentation, it is written that the cache can be configured as "Do not generate aborts, force write through, enable hardware recovery" (see chapter 8.5 of Cortex-R5 TRM).
When configured this way, uncorrectable ECC errors in cache are silent and data is reloaded from the L2 memory (in fact, these are not uncorrectable errors...?). As the region operates in write through mode, no line can be dirty so no data in cache can be lost.
That would be perfect to make uncorrectable ECC errors in data cache invisible to software and to increase the system availability (note: in our system, ESM nERROR pin is routed to the system validity logic.).
But then I saw that in the ESM, group 3 channel 9 is generated when "data cache data/tag/dirty RAM fatal errors" are signalled by the Cortex-R5 through the Event bus, that would make the nERROR pin go in fault (in our system, this makes the system unavailable).
Can anyone confirm this statement or explain to me if the ESM group 3.9 is not triggered if the cache is configured "Do not generate abort, force write-through, enable hardware recovery"? As far as I understand, the event bus of the Cortex-R5 will signal all events, regardless of the configuration for aborts, but I'd like the experts to correct me if I'm wrong.
In the case the cortex-R5 will signal the event regardless of the cache abort configuration, is there a way to prevent it to be signalled on the event bus (like an event bus events configuration register)?
I was looking for an configuration of the Cortex R5 and TMS in order to make cache ECC errors silent, but with the nERROR pin connected to our system validity logic, is there one possible?
Thanks.
Gael