I'm trying to implement ECC self-tests as described in System datasheet ( https://www.renesas.com/us/en/doc/products/mpumcu/doc/rz/r01uh0751ej0100-rzn1-system.pdf ) on 4.5.4 Self-Testing of the ECC Circuit (4MB SRAM).
I've successfully implemented the self-tests for 2MB SRAM, but with the 4MB one I'm having an issue with the SR4DBEST register, that it doesn't react to reading of variable with injected double-bit error. Other registers such as SR4DBEAD and SR4DBECNT are reacting correctly on each read of the infected variable and I'm receiving IRQs as expected.
The datasheet doesn't concretely specify how the test variables should be placed in the memory, if there is some spacing required between them or anything (there is just 128-bit alignment mentioned), so I tried my best to write them as I perceive them.
I've attached the stripped-down version of Baremetal example project from renesas, where I added my code for the ECC tests (+ some porting functions/defined).
It can be run on the RZ/N1L-DB test board or any other board (you just may not see the debug messages, but that's not needed). Does anyone know what I'm missing here?
UPDATE: I discovered that when I read random __no_init variables in main (or just read the whole SRAM4MB address range in for-loop), the ECC error is triggered on some address that isn't used by any globals (the space is not inited to 0 like the rest of variables in .bss section) and in the ECC interrupt the SR4DBEST (along with all other registers) provides correct value, indicating the right area, where the double-bit ECC error was found. So.. the question now is, is it correct that in self-tests the SR4DBEST shouldn't react and it's behaving as it should (meaning the datasheet is wrong, because it states that the value of SR4DBEST must be tested) or is there some other problem I may be overlooking?
EDIT: ..just to be a little more specific, the SR4DBEST reacts correctly to real ECC errors, but doesn't react to ECC injected errors
EDIT2: updated project to demonstrate this is here https://drive.google.com/open?id=1oceMsirjBxjYvIUKcuvTHoe2tRiSIg_b
Sorry for the delayed response. For RZ/N devices, you can submit a ticket to Renesas Technical Support. I believe they can help you with your concern. Thank you!
JBRenesasRulz Forum Moderator