[U-Boot] [RFC] mpc83xx: add config options to spd_sdram

York Sun yorksun at freescale.com
Wed Apr 6 18:37:29 CEST 2011


On Wed, 2011-04-06 at 10:18 +0200, Andre Schwarz wrote:
> Kim, York,
> 
> >> I have made some mods to spd_sdram.c for various reason:
> >>
> >> 1.
> >> use SPD setup also for soldered RAM.
> >> This allows DDR mounting options without U-Boot change because SPD data
> >> is written during in-circuit/boundary-scan testing.
> > not sure I understand this - board with soldered RAM can't physically
> > get the SPD data from RAM, yet SPD data were somehow acquired and
> > written into some ROM, so spd_sdram() is still needed to parse&
> > program the controller without requiring a new u-boot binary?
> SPD data is nothing more than an I2C-EEPROM soldered on each memory module
> containing the physical details of the memory devices.
> Since I already have an I2C-EEPROM on the board I can use it for SPD 
> data, i.e.
> the board's memory is configured using normal detection routines.
> 
> During production (exactly: board testing) the EEPROM will be programmed 
> with an SPD
> table matching the soldered memory devices. This gives some flexibility 
> regarding size and
> speed grades ... some devices have pretty short life-cycles.

That's right. If you have the SPD in I2C-EEPROM, you have a real SPD as
far as software concerns. Just provide the I2C address.

> >> 3.
> >> for optimized signal integrity and power consumption we need more
> >> influence on
> >> the on-die termination. Although the assumed default values are working they
> >> are far from ideal.
> > board specific things like this are perfectly acceptable, of course.
> ok.
> > however, it should not be being done by glittering old-83xx/spd_sdram
> > with an extra #ifdef for every new parameter
> 
> ok - what about this :
> 
> #if !defined(CONFIG_SYS_DDR_MODE_ODT_VALUE)
> #define CONFIG_SYS_DDR_MODE_ODT_VALUE 0x40
> #endif
> 
> mode_odt_enable = CONFIG_SYS_DDR_MODE_ODT_VALUE;
> 
> 
> I really can't think of this change being a problem for anybody.
> 

I would suggest to put it in fsl_ddr_board_options() in ddr.c under the
board directory. There you can override any options, including 

popts->cs_local_opts[i].odt_rd_cfg
popts->cs_local_opts[i].odt_wr_cfg
popts->cpo_override



York





More information about the U-Boot mailing list