linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] RE: Some memory (DDR2 ECC Dual Rank) just doesn't work! Can anyone pointme to how to debug this hang?
@ 2008-08-14 12:05 Fillod Stephane
  2008-08-14 16:05 ` Vince Asbridge
  2008-08-26 21:28 ` Wolfgang Denk
  0 siblings, 2 replies; 4+ messages in thread
From: Fillod Stephane @ 2008-08-14 12:05 UTC (permalink / raw)
  To: Vince Asbridge, linuxppc-embedded; +Cc: u-boot

Vince Asbridge wrote:
> We have an 8548 design, which implements a DDR2 on a SODIMM=20
> We have an issue with dual rank memory (specific part number Viking =
VR5DR287218EBSS1), which is a 1G ECC Registered SODIMM part, with two =
ranks.
> Our platform wires CS0 and CS1 to the SODIMM slot.=20
> At uBoot, all is well.=A0 Memory is discovered as ECC 533, 1G DDR2 =
64Bit 4 beat bursts, and mtest can read and write all 1G of the SODIMM.
[...]
> Other DDR2s (identical except for vendor and # of ranks), work =
perfectly!=20
> Anyone got a clue what I could look at to try to figure this out?=20
> We've tried enable / disable ECC at uboot=20
> We've tried enable / disable Interleaving at uboot=20
> uboot always works (and can read/write entire DDR), Linux always hangs =
on boot!=20

U-Boot is too gentle when testing SDRAM. Make sure the caches are =
enabled
under U-Boot, and put on heavy stress with DMA, pipelined prefetch's, =
etc.
This is what your CPU is enduring under Linux.=20

Your question is definitely a question for the U-Boot mailing list.
BTW, what is the version of U-Boot in use? U-Boot is still missing
the following patch:

MPC85xx BA bits not set for 3-bit bank address DIMM of CS1

The current implementation set the number of bank address bits
(BA) in the processor for CS0 but not for CS1.=20

Signed-off-by: Stephane Fillod <stephane.fillod@thomson.net>

--- u-boot/cpu/mpc85xx/spd_sdram.c
+++ u-boot/cpu/mpc85xx/spd_sdram.c
@@ -365,6 +365,7 @@
                ddr->cs1_config =3D ( 1<<31
                                    | (odt_rd_cfg << 20)
                                    | (odt_wr_cfg << 16)
+                                   | (ba_bits << 14)
                                    | (spd.nrow_addr - 12) << 8
                                    | (spd.ncol_addr - 8) );
                debug("DDR: cs1_bnds   =3D 0x%08x\n", ddr->cs1_bnds);



Otherwise, recompile with -DDEBUG and CFG_CMD_SDRAM, grab the Viking =
datasheet=20
and a scope, and a full cup of coffee/tea much needed during =
cross-checking :-)

Cheers
--=20
Stephane

^ permalink raw reply	[flat|nested] 4+ messages in thread

* RE: [PATCH] RE: Some memory (DDR2 ECC Dual Rank) just doesn't work! Can anyone pointme to how to debug this hang?
  2008-08-14 12:05 [PATCH] RE: Some memory (DDR2 ECC Dual Rank) just doesn't work! Can anyone pointme to how to debug this hang? Fillod Stephane
@ 2008-08-14 16:05 ` Vince Asbridge
  2008-08-14 16:31   ` Jon Loeliger
  2008-08-26 21:28 ` Wolfgang Denk
  1 sibling, 1 reply; 4+ messages in thread
From: Vince Asbridge @ 2008-08-14 16:05 UTC (permalink / raw)
  To: 'Fillod Stephane', 'linuxppc-embedded'
  Cc: u-boot, 'Stephen Shirron'

Stephane,

Thanks so much for your prompt reply.

We will pursue your suggestions, and let the forum know what we find.  =
We're
at 1.3.0 uboot version.

Vince

> -----Original Message-----
> From: Fillod Stephane [mailto:stephane.fillod@thomson.net]=20
> Sent: Thursday, August 14, 2008 8:06 AM
> To: Vince Asbridge; linuxppc-embedded
> Cc: u-boot@lists.denx.de
> Subject: [PATCH] RE: Some memory (DDR2 ECC Dual Rank) just=20
> doesn't work! Can anyone pointme to how to debug this hang?
>=20
> Vince Asbridge wrote:
> > We have an 8548 design, which implements a DDR2 on a SODIMM=20
> We have an=20
> > issue with dual rank memory (specific part number Viking=20
> VR5DR287218EBSS1), which is a 1G ECC Registered SODIMM part,=20
> with two ranks.
> > Our platform wires CS0 and CS1 to the SODIMM slot.=20
> > At uBoot, all is well.=A0 Memory is discovered as ECC 533, 1G=20
> DDR2 64Bit 4 beat bursts, and mtest can read and write all 1G=20
> of the SODIMM.
> [...]
> > Other DDR2s (identical except for vendor and # of ranks),=20
> work perfectly!=20
> > Anyone got a clue what I could look at to try to figure this out?=20
> > We've tried enable / disable ECC at uboot We've tried=20
> enable / disable=20
> > Interleaving at uboot uboot always works (and can read/write entire=20
> > DDR), Linux always hangs on boot!
>=20
> U-Boot is too gentle when testing SDRAM. Make sure the caches=20
> are enabled under U-Boot, and put on heavy stress with DMA,=20
> pipelined prefetch's, etc.
> This is what your CPU is enduring under Linux.=20
>=20
> Your question is definitely a question for the U-Boot mailing list.
> BTW, what is the version of U-Boot in use? U-Boot is still=20
> missing the following patch:
>=20
> MPC85xx BA bits not set for 3-bit bank address DIMM of CS1
>=20
> The current implementation set the number of bank address bits
> (BA) in the processor for CS0 but not for CS1.=20
>=20
> Signed-off-by: Stephane Fillod <stephane.fillod@thomson.net>
>=20
> --- u-boot/cpu/mpc85xx/spd_sdram.c
> +++ u-boot/cpu/mpc85xx/spd_sdram.c
> @@ -365,6 +365,7 @@
>                 ddr->cs1_config =3D ( 1<<31
>                                     | (odt_rd_cfg << 20)
>                                     | (odt_wr_cfg << 16)
> +                                   | (ba_bits << 14)
>                                     | (spd.nrow_addr - 12) << 8
>                                     | (spd.ncol_addr - 8) );
>                 debug("DDR: cs1_bnds   =3D 0x%08x\n", ddr->cs1_bnds);
>=20
>=20
>=20
> Otherwise, recompile with -DDEBUG and CFG_CMD_SDRAM, grab the=20
> Viking datasheet and a scope, and a full cup of coffee/tea=20
> much needed during cross-checking :-)
>=20
> Cheers
> --
> Stephane
>=20
>=20
>=20

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] RE: Some memory (DDR2 ECC Dual Rank) just doesn't work! Can anyone pointme to how to debug this hang?
  2008-08-14 16:05 ` Vince Asbridge
@ 2008-08-14 16:31   ` Jon Loeliger
  0 siblings, 0 replies; 4+ messages in thread
From: Jon Loeliger @ 2008-08-14 16:31 UTC (permalink / raw)
  To: Vince Asbridge
  Cc: u-boot, 'Stephen Shirron', 'linuxppc-embedded'

Vince Asbridge wrote:
> Stephane,
> 
> Thanks so much for your prompt reply.
> 
> We will pursue your suggestions, and let the forum know what we find.  We're
> at 1.3.0 uboot version.
> 
> Vince
> 
>> -----Original Message-----
>> From: Fillod Stephane [mailto:stephane.fillod@thomson.net] 
>> Sent: Thursday, August 14, 2008 8:06 AM
>> To: Vince Asbridge; linuxppc-embedded
>> Cc: u-boot@lists.denx.de
>> Subject: [PATCH] RE: Some memory (DDR2 ECC Dual Rank) just 
>> doesn't work! Can anyone pointme to how to debug this hang?
>>
>> Vince Asbridge wrote:
>>> We have an 8548 design, which implements a DDR2 on a SODIMM 
>> We have an 
>>> issue with dual rank memory (specific part number Viking 
>> VR5DR287218EBSS1), which is a 1G ECC Registered SODIMM part, 
>> with two ranks.
>>> Our platform wires CS0 and CS1 to the SODIMM slot. 
>>> At uBoot, all is well.  Memory is discovered as ECC 533, 1G 
>> DDR2 64Bit 4 beat bursts, and mtest can read and write all 1G 
>> of the SODIMM.
>> [...]
>>> Other DDR2s (identical except for vendor and # of ranks), 
>> work perfectly! 
>>> Anyone got a clue what I could look at to try to figure this out? 
>>> We've tried enable / disable ECC at uboot We've tried 
>> enable / disable 
>>> Interleaving at uboot uboot always works (and can read/write entire 
>>> DDR), Linux always hangs on boot!
>> U-Boot is too gentle when testing SDRAM. Make sure the caches 
>> are enabled under U-Boot, and put on heavy stress with DMA, 
>> pipelined prefetch's, etc.
>> This is what your CPU is enduring under Linux. 
>>
>> Your question is definitely a question for the U-Boot mailing list.
>> BTW, what is the version of U-Boot in use? U-Boot is still 
>> missing the following patch:
>>
>> MPC85xx BA bits not set for 3-bit bank address DIMM of CS1
>>
>> The current implementation set the number of bank address bits
>> (BA) in the processor for CS0 but not for CS1. 
>>
>> Signed-off-by: Stephane Fillod <stephane.fillod@thomson.net>
>>
>> --- u-boot/cpu/mpc85xx/spd_sdram.c
>> +++ u-boot/cpu/mpc85xx/spd_sdram.c
>> @@ -365,6 +365,7 @@
>>                 ddr->cs1_config = ( 1<<31
>>                                     | (odt_rd_cfg << 20)
>>                                     | (odt_wr_cfg << 16)
>> +                                   | (ba_bits << 14)
>>                                     | (spd.nrow_addr - 12) << 8
>>                                     | (spd.ncol_addr - 8) );
>>                 debug("DDR: cs1_bnds   = 0x%08x\n", ddr->cs1_bnds);
>>
>>
>>
>> Otherwise, recompile with -DDEBUG and CFG_CMD_SDRAM, grab the 
>> Viking datasheet and a scope, and a full cup of coffee/tea 
>> much needed during cross-checking :-)
>>


That bug fix, along with many, many others, as well as some
new support for multiple controllers and such are all present
in the DDR re-write patch set that Kumar just posted.  You may
want to try that code too.  It will be replacing the entire
85xx/86xx and eventually the 83xx line of memory controller
initialization.  It also contains some support for a pretty
useful interactive DDR configuration setup mechanism too.

jdl

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] RE: Some memory (DDR2 ECC Dual Rank) just doesn't work! Can anyone pointme to how to debug this hang?
  2008-08-14 12:05 [PATCH] RE: Some memory (DDR2 ECC Dual Rank) just doesn't work! Can anyone pointme to how to debug this hang? Fillod Stephane
  2008-08-14 16:05 ` Vince Asbridge
@ 2008-08-26 21:28 ` Wolfgang Denk
  1 sibling, 0 replies; 4+ messages in thread
From: Wolfgang Denk @ 2008-08-26 21:28 UTC (permalink / raw)
  To: Fillod Stephane; +Cc: u-boot, Vince Asbridge, linuxppc-embedded

Dear Fillod,

In message <0B45E93C5FF65740AEAE690BF3848B7AD38359@rennsmail04.eu.thmulti.com> you wrote:
> 
> U-Boot is too gentle when testing SDRAM. Make sure the caches are enabled
> under U-Boot, and put on heavy stress with DMA, pipelined prefetch's, etc.
> This is what your CPU is enduring under Linux. =

Jon Loeliger thinks this will be fixed by Kumar's DDR patches that are
about to be checked in. Please test is this is correct, and report
back if it doesn't.

Thanks.

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de
I'd rather be led to hell than managed to heaven.

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2008-08-26 21:28 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-08-14 12:05 [PATCH] RE: Some memory (DDR2 ECC Dual Rank) just doesn't work! Can anyone pointme to how to debug this hang? Fillod Stephane
2008-08-14 16:05 ` Vince Asbridge
2008-08-14 16:31   ` Jon Loeliger
2008-08-26 21:28 ` Wolfgang Denk

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).