From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ira W. Snyder Date: Tue, 10 Nov 2009 08:51:24 -0800 Subject: [U-Boot] [PATCH 3/7] 83xx/85xx/86xx: Add ECC support In-Reply-To: <1257822445.7312.12.camel@ptyser-laptop> References: <1257809830-6088-4-git-send-email-ptyser@xes-inc.com> <1257813139.10661.23.camel@localhost.localdomain> <1257814918.10661.33.camel@localhost.localdomain> <1257816026.10661.51.camel@localhost.localdomain> <20091110021525.GB407@ovro.caltech.edu> <1257822445.7312.12.camel@ptyser-laptop> Message-ID: <20091110165124.GA1549@ovro.caltech.edu> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de 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