[U-Boot] [PATCH 3/7] 83xx/85xx/86xx: Add ECC support
Ira W. Snyder
iws at ovro.caltech.edu
Tue Nov 10 17:51:24 CET 2009
On Mon, Nov 09, 2009 at 09:07:25PM -0600, Peter Tyser wrote:
[ big snip ]
> >
> > I haven't looked at your code. When I was running the old ecc command, I
> > had the 83xx reference manual open to decode the command's output, IIRC.
> >
> > PS - I'm happy to test stuff on 83xx, I'll try and find time to test
> > this patch series tomorrow.
>
> Thanks, its much appreciated.
>
Ok, here are my results, this is on a 8349EMDS-derived board. My
8349EMDS eval board doesn't have ECC memory.
1) It might be nice to have something to print the current injection
registers. It is not a big deal, anyone using this should be an expert
anyway.
2) ecc inject off didn't seem to work, see the following capture:
=> ecc info
No ECC errors have occurred
=> ecc inject low 0x1
=> ecc info
WARNING: ECC error in DDR Controller 0
Addr: 0x0_0ff7ae40
Data: 0x0fffdf9c_0ff7aed1 ECC: 0x81
Expect: 0x0fffdf9c_0ff7aed0 ECC: 0x81
Net: DATA0
Syndrome: 0x3b
Single-Bit errors: 0x1e
Attrib: 0x01002001
Detect: 0x80000004 (MME, SBE)
=> ecc inject off
# Ok, now error injection is off, I still expect some errors to be
# present in the error registers
=> ecc info
WARNING: ECC error in DDR Controller 0
Addr: 0x0_0ff7ae1c
Data: 0x0fffdf9c_0ff7d2a1 ECC: 0xe4
Expect: 0x0fffdf9c_0ff7d2a0 ECC: 0xe4
Net: DATA0
Syndrome: 0x3b
Single-Bit errors: 0xd1
Attrib: 0x01003001
Detect: 0x80000004 (MME, SBE)
# And there was the error. Now, I don't expect any more errors to
# be present, after all, injection is disabled.
#
# But there is one! Why?
=> ecc info
WARNING: ECC error in DDR Controller 0
Addr: 0x0_0fff8a0c
Data: 0x0fff8a00_0fff8a01 ECC: 0xff
Expect: 0x0fff8a00_0fff8a00 ECC: 0xff
Net: DATA0
Syndrome: 0x3b
Single-Bit errors: 0x04
Attrib: 0x01003001
Detect: 0x00000000
=>
# Note that I keep seeing ecc errors until I run the command:
# ecc inject low 0
Here is another trace showing "interesting" behavior:
=> ecc info
No ECC errors have occurred
=> ecc inject high 1
=> ecc info
WARNING: ECC error in DDR Controller 0
Addr: 0x0_0ff7ae40
Data: 0x0fffdf9d_0ff7aed0 ECC: 0x81
Expect: 0x0fffdf9c_0ff7aed0 ECC: 0x81
Net: DATA32
Syndrome: 0xce
Single-Bit errors: 0xd8
Attrib: 0x01002001
Detect: 0x80000004 (MME, SBE)
=> ecc info
WARNING: ECC error in DDR Controller 0
Addr: 0x0_0fff89c4
Data: 0x0fff89b9_0ff7d268 ECC: 0x02
Expect: 0x0fff89b8_0ff7d268 ECC: 0x02
Net: DATA32
Syndrome: 0xce
Single-Bit errors: 0xea
Attrib: 0x01003001
Detect: 0x80000004 (MME, SBE)
=> ecc info
WARNING: ECC error in DDR Controller 0
Addr: 0x0_0ff7d2e8
Data: 0x00000001_0ff7d300 ECC: 0x99
Expect: 0x00000000_0ff7d300 ECC: 0x99
Net: DATA32
Syndrome: 0xce
Single-Bit errors: 0x30
Attrib: 0x01002001
Detect: 0x80000004 (MME, SBE)
=> ecc inject high 0
=> ecc info
WARNING: ECC error in DDR Controller 0
Addr: 0x0_0ff7d2e8
Data: 0x00000001_0ff7d300 ECC: 0x99
Expect: 0x00000000_0ff7d300 ECC: 0x99
Net: DATA32
Syndrome: 0xce
Single-Bit errors: 0x81
Attrib: 0x01002001
Detect: 0x80000004 (MME, SBE)
=> ecc info
WARNING: ECC error in DDR Controller 0
Addr: 0x0_0fff8a0c
Data: 0x0fff8a01_0fff8a00 ECC: 0xff
Expect: 0x0fff8a00_0fff8a00 ECC: 0xff
Net: DATA32
Syndrome: 0xce
Single-Bit errors: 0x04
Attrib: 0x01003001
Detect: 0x00000000
=> ecc info
No ECC errors have occurred
=> ecc info
No ECC errors have occurred
# Why did it take two runs of ecc info to clear all of the errors?
Other than the above strangeness, everything is working great on my 83xx
board. I think the new output is pretty nice. It serves my purposes
equally well to the old code.
Ira
More information about the U-Boot
mailing list