Ls1046a Ecc Capture Address

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Ls1046a Ecc Capture Address

108 Views
sanspepin
Contributor I

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

0 Kudos
Reply
3 Replies

82 Views
sanspepin
Contributor I
I made a mistake in my original post. The line:

"If I inject an error at address 0x80000000 then the value of CAPTURE_ADDRESS is 0 (Seem invalid)"

should have been
"If I inject an error at address 0x80000001 then the value of CAPTURE_ADDRESS is 0 (Seem invalid)"
0 Kudos
Reply

41 Views
yipingwang
NXP TechSupport
NXP TechSupport

For doing up-date the the CAPTURE_ADDRESS register, is it need to clear

the ERR_DETECT register? You need to write '1' to reset bits in the ERR_DETECT.

 

The address/attributes/data capture registers will capture information for multi-bit ECC errors, single-bit ECC errors, or memory select errors. If a multi-bit ECC error is detected, then the capture registers will update and lock until the ERR_DETECT register is cleared.
If a memory select error is detected, then the capture registers will update and lock until the ERR_DETECT register is cleared.If a single-bit ECC error is detected, then the capture registers will update. They will only lock if the single-bit error counter (in
ERR_SBE) crosses the threshold, setting the single-bit error bit in the ERR_DETECT register. Otherwise, subsequent errors can overwrite the error capture registers. 

0 Kudos
Reply

103 Views
sanspepin
Contributor I

Note: the CAPTURE_ATTRIBUTES return 0x12d02001. If I read this correctly the TSIZ ( transaction size error) report 2 double words or a transaction (or 8 bytes)

If I inject an error at address 0x80000008 then the value of CAPTURE_ADDRESS is 0

0 Kudos
Reply