[U-Boot] U-boot PPC405EX with DDR2 DIMM

Stefan Roese sr at denx.de
Mon Sep 23 12:36:01 CEST 2013


Hi Steve,

On 18.09.2013 13:26, Steve Miller wrote:
> I have inherited a design using the PPC405EX that was based on the
> Kilauea reference design.   One of the changes was Kilauea uses on-board
> DDR2 DRAM ICs and this design uses DDR2 DIMMs.   The u-boot is working,
> except only 256MB of RAM is available instead of the 1GIG that the
> module supports.   This working 256MB matches the memory that the
> Kilauea had.  In looking into this, the CONFIG_SPD_EEPROM was undefined,
> as that was what was appropriate for the Kilauea.   I defined this but
> got lots of compiler errors.  So I did the following:
> 
>  
> 
> 1.        Updated the eldk to 5.4
> 
> 2.       Downloaded the latest u-boot source code I could find.
> (Version 2013)

Good. Using the latest version is always a "good thing" to do.

> I still get compiler errors.  The first error is in 40x_spd_sdram.c    I
> do not believe it should be attempting to compile this as it appears to
> be SPD setting for SDRAM modules and not DDR2 modules.  I added another
> check to line 50 of 40x_spd_sdram.c to skip that file if it is a 405EX.
> This of course, eliminated those compiler errors.

Yes, this file should not be used on 405ex. Its for the "older" 405
variants with SDRAM and not DDR2.

> Next place is has trouble is 44x_spd_ddr2.c   In line 460 it cannot find
> SDR0_SRST0_DMC for example.  Another example is line 821, it cannot find
> SDR0_DDR0.   In searching the PPC405EX datasheet, I do not find that
> these registers exist in this part.    I believe it is supposed to
> compile this file, as the file has specific references to the 405EX.
> However, I do not know what I am missing to get this to compile for that
> processor. 
> 
>  
> 
> Questions:
> 
>  
> 
> 1.        Has anyone compiled u-boot for the 405EX using a DIMM, aka an
> SPD defined RAM?

I don't remember one. Not 100% sure, since 4xx development is quite dead
since a few years.

> 2.       Is there something obvious that I need to place in the config
> to get this to work?   I compared this config to another product that
> uses a 460SX.  I did not see anything special that the 460SX was
> configuring to make the system work with the SPD of the DIMM.

IIRC, then 405EX uses the same DDR2 controller as for example 460EX
does. Most likely a different version of this IP core though. Perhaps
with some extensions missing because of 460EX supporting bigger address
spaces. So you should take the canyonlands defines as a reference:

#define CONFIG_SPD_EEPROM
#define SPD_EEPROM_ADDRESS	{0x50, 0x51}

You need to adjust the EEPROM addresses to your board of course. And its
very likely that you need to change/fix the 44x_spd_ddr2.c code to
really support the 405EX.

Best regards,
Stefan

--
DENX Software Engineering GmbH,      MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich,  Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: office at denx.de


More information about the U-Boot mailing list