I have a baremetal code that injects SBE errors into my DDR memory and generates an interrupts. The error injection and interrupt mechanism works well. However, reading the CAPTURE_ADDRESS & CAPTURE_EXT_ADDRESS registers does not give the expected result.
If I inject an error at address 0x80000000 then the value of CAPTURE_ADDRESS is 0. (seems correct)
If I inject an error at address 0x80000000 then the value of CAPTURE_ADDRESS is 0 (Seem invalid)
If I inject an error at address 0x80000020 then the value of CAPTURE_ADDRESS is 0x20
If I inject an error at address 0xFFFFFFFF then the value of CAPTURE_ADDRESS is 0x7ffffffe0
It seems that bits 4-0 of CAPTURE_ADDRESS are always zero. And precision of the CAPTURE_ADDRESS is in a block of 32 bytes.
Is this normal? and why?
I do my tests on the ls1046afrywy board