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

Schwarz,Andre andre.schwarz at matrix-vision.de
Wed Apr 6 20:42:19 CEST 2011


York,
 
ok - will give it a try tomorrow.
 
Cheers,
André
 

York Sun <yorksun at freescale.com> hat am 6. April 2011 um 18:37 geschrieben:

> 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
>
>
>--
Gruß,
André Schwarz

MATRIX VISION GmbH, Talstrasse 16, DE-71570 Oppenweiler
Registergericht: Amtsgericht Stuttgart, HRB 271090
Geschaeftsfuehrer: Gerhard Thullner, Werner Armingeon, Uwe Furtner



More information about the U-Boot mailing list