On 22/08/2012 21:25, Matt Sealey wrote: > Efika MX boards configure their DDR pad settings twice, one in the DCD > generated > from imximage_*.cfg and again in init_drive_strength called before relocation. > > Rather than doing this, roll the changes it makes into the DCD so DDR is set > up > before a single line of code in U-Boot is run. > > The settings are identical with this DCD block which is shorter (by 7 entries) > than the old one, and after the output of init_drive_strength since a lot of > the > functionality in the existing DCD and init_drive_strength function was just > setting the POR defaults. This goes to explain some now-missing entries. > > Several hundred rounds of mtest have been run to test the settings before and > after to confirm DDR is stable and no ill-effects have been found. > > Signed-off-by: Matt Sealey <m...@genesi-usa.com> > --- > board/genesi/mx51_efikamx/efikamx.c | 77 > ----------------------------- > board/genesi/mx51_efikamx/imximage_mx.cfg | 42 +++++++--------- > 2 files changed, 18 insertions(+), 101 deletions(-) > > diff --git a/board/genesi/mx51_efikamx/efikamx.c > b/board/genesi/mx51_efikamx/efikamx.c > index e88b2ed..12371c9 100644 > --- a/board/genesi/mx51_efikamx/efikamx.c > +++ b/board/genesi/mx51_efikamx/efikamx.c > @@ -597,85 +597,8 @@ void efikamx_toggle_led(uint32_t mask) > /* > * Board initialization > */ > -static void init_drive_strength(void) > -{ > - mxc_iomux_set_pad(MX51_PIN_CTL_GRP_PKEDDR, PAD_CTL_DDR_INPUT_CMOS); > - mxc_iomux_set_pad(MX51_PIN_CTL_GRP_PKEADDR, PAD_CTL_PKE_ENABLE); > - mxc_iomux_set_pad(MX51_PIN_CTL_GRP_DDRAPKS, PAD_CTL_PUE_KEEPER); > - mxc_iomux_set_pad(MX51_PIN_CTL_GRP_DDRAPUS, PAD_CTL_100K_PU); > - mxc_iomux_set_pad(MX51_PIN_CTL_GRP_DDR_SR_A1, PAD_CTL_SRE_FAST); > - mxc_iomux_set_pad(MX51_PIN_CTL_GRP_DDR_A0, PAD_CTL_DRV_HIGH); > - mxc_iomux_set_pad(MX51_PIN_CTL_GRP_DDR_A1, PAD_CTL_DRV_HIGH); > - mxc_iomux_set_pad(MX51_PIN_CTL_DRAM_RAS, > - PAD_CTL_DRV_HIGH | PAD_CTL_SRE_FAST); > - mxc_iomux_set_pad(MX51_PIN_CTL_DRAM_CAS, > - PAD_CTL_DRV_HIGH | PAD_CTL_SRE_FAST); > - mxc_iomux_set_pad(MX51_PIN_CTL_GRP_PKEDDR, PAD_CTL_PKE_ENABLE); > - mxc_iomux_set_pad(MX51_PIN_CTL_GRP_DDRPKS, PAD_CTL_PUE_KEEPER); > - mxc_iomux_set_pad(MX51_PIN_CTL_GRP_HYSDDR0, PAD_CTL_HYS_NONE); > - mxc_iomux_set_pad(MX51_PIN_CTL_GRP_HYSDDR1, PAD_CTL_HYS_NONE); > - mxc_iomux_set_pad(MX51_PIN_CTL_GRP_HYSDDR2, PAD_CTL_HYS_NONE); > - mxc_iomux_set_pad(MX51_PIN_CTL_GRP_HYSDDR3, PAD_CTL_HYS_NONE); > - mxc_iomux_set_pad(MX51_PIN_CTL_GRP_DDR_SR_B0, PAD_CTL_SRE_FAST); > - mxc_iomux_set_pad(MX51_PIN_CTL_GRP_DDR_SR_B1, PAD_CTL_SRE_FAST); > - mxc_iomux_set_pad(MX51_PIN_CTL_GRP_DDR_SR_B2, PAD_CTL_SRE_FAST); > - mxc_iomux_set_pad(MX51_PIN_CTL_GRP_DDR_SR_B4, PAD_CTL_SRE_FAST); > - mxc_iomux_set_pad(MX51_PIN_CTL_GRP_DDRPUS, PAD_CTL_100K_PU); > - mxc_iomux_set_pad(MX51_PIN_CTL_GRP_INMODE1, PAD_CTL_DDR_INPUT_CMOS); > - mxc_iomux_set_pad(MX51_PIN_CTL_GRP_DRAM_B0, PAD_CTL_DRV_MEDIUM); > - mxc_iomux_set_pad(MX51_PIN_CTL_GRP_DRAM_B1, PAD_CTL_DRV_MEDIUM); > - mxc_iomux_set_pad(MX51_PIN_CTL_GRP_DRAM_B2, PAD_CTL_DRV_MEDIUM); > - mxc_iomux_set_pad(MX51_PIN_CTL_GRP_DRAM_B4, PAD_CTL_DRV_MEDIUM); > - > - /* Setting pad options */ > - mxc_iomux_set_pad(MX51_PIN_CTL_DRAM_SDWE, > - PAD_CTL_PKE_ENABLE | PAD_CTL_PUE_KEEPER | > - PAD_CTL_DRV_HIGH | PAD_CTL_SRE_FAST); > - mxc_iomux_set_pad(MX51_PIN_CTL_DRAM_SDCKE0, > - PAD_CTL_PKE_ENABLE | PAD_CTL_PUE_KEEPER | > - PAD_CTL_DRV_HIGH | PAD_CTL_SRE_FAST); > - mxc_iomux_set_pad(MX51_PIN_CTL_DRAM_SDCKE1, > - PAD_CTL_PKE_ENABLE | PAD_CTL_PUE_KEEPER | > - PAD_CTL_DRV_HIGH | PAD_CTL_SRE_FAST); > - mxc_iomux_set_pad(MX51_PIN_CTL_DRAM_SDCLK, > - PAD_CTL_PKE_ENABLE | PAD_CTL_PUE_KEEPER | > - PAD_CTL_DRV_HIGH | PAD_CTL_SRE_FAST); > - mxc_iomux_set_pad(MX51_PIN_CTL_DRAM_SDQS0, > - PAD_CTL_PKE_ENABLE | PAD_CTL_PUE_KEEPER | > - PAD_CTL_DRV_HIGH | PAD_CTL_SRE_FAST); > - mxc_iomux_set_pad(MX51_PIN_CTL_DRAM_SDQS1, > - PAD_CTL_PKE_ENABLE | PAD_CTL_PUE_KEEPER | > - PAD_CTL_DRV_HIGH | PAD_CTL_SRE_FAST); > - mxc_iomux_set_pad(MX51_PIN_CTL_DRAM_SDQS2, > - PAD_CTL_PKE_ENABLE | PAD_CTL_PUE_KEEPER | > - PAD_CTL_DRV_HIGH | PAD_CTL_SRE_FAST); > - mxc_iomux_set_pad(MX51_PIN_CTL_DRAM_SDQS3, > - PAD_CTL_PKE_ENABLE | PAD_CTL_PUE_KEEPER | > - PAD_CTL_DRV_HIGH | PAD_CTL_SRE_FAST); > - mxc_iomux_set_pad(MX51_PIN_CTL_DRAM_CS0, > - PAD_CTL_PKE_ENABLE | PAD_CTL_PUE_KEEPER | > - PAD_CTL_DRV_HIGH | PAD_CTL_SRE_FAST); > - mxc_iomux_set_pad(MX51_PIN_CTL_DRAM_CS1, > - PAD_CTL_PKE_ENABLE | PAD_CTL_PUE_KEEPER | > - PAD_CTL_DRV_HIGH | PAD_CTL_SRE_FAST); > - mxc_iomux_set_pad(MX51_PIN_CTL_DRAM_DQM0, > - PAD_CTL_PKE_ENABLE | PAD_CTL_PUE_KEEPER | > - PAD_CTL_DRV_HIGH | PAD_CTL_SRE_FAST); > - mxc_iomux_set_pad(MX51_PIN_CTL_DRAM_DQM1, > - PAD_CTL_PKE_ENABLE | PAD_CTL_PUE_KEEPER | > - PAD_CTL_DRV_HIGH | PAD_CTL_SRE_FAST); > - mxc_iomux_set_pad(MX51_PIN_CTL_DRAM_DQM2, > - PAD_CTL_PKE_ENABLE | PAD_CTL_PUE_KEEPER | > - PAD_CTL_DRV_HIGH | PAD_CTL_SRE_FAST); > - mxc_iomux_set_pad(MX51_PIN_CTL_DRAM_DQM3, > - PAD_CTL_PKE_ENABLE | PAD_CTL_PUE_KEEPER | > - PAD_CTL_DRV_HIGH | PAD_CTL_SRE_FAST); > -} > - > int board_early_init_f(void) > { > - init_drive_strength(); > - > setup_iomux_uart(); > setup_iomux_spi(); > setup_iomux_led(); > diff --git a/board/genesi/mx51_efikamx/imximage_mx.cfg > b/board/genesi/mx51_efikamx/imximage_mx.cfg > index 6fe0ff9..ea6b271 100644 > --- a/board/genesi/mx51_efikamx/imximage_mx.cfg > +++ b/board/genesi/mx51_efikamx/imximage_mx.cfg > @@ -1,5 +1,7 @@ > # > +# Copyright (C) 2009 Pegatron Corporation > # Copyright (C) 2010 Marek Vasut <marek.va...@gmail.com> > +# Copyright (C) 2009-2012 Genesi USA, Inc. > # > # BASED ON: imx51evk > # > @@ -43,30 +45,22 @@ BOOT_FROM spi > # Address absolute address of the register > # value value to be stored in the register > > -# Setting IOMUXC > -DATA 4 0x73fa88a0 0x000 > -DATA 4 0x73fa850c 0x20c5 > -DATA 4 0x73fa8510 0x20c5 > -DATA 4 0x73fa883c 0x5 > -DATA 4 0x73fa8848 0x5 > -DATA 4 0x73fa84b8 0xe7 > -DATA 4 0x73fa84bc 0x45 > -DATA 4 0x73fa84c0 0x45 > -DATA 4 0x73fa84c4 0x45 > -DATA 4 0x73fa84c8 0x45 > -DATA 4 0x73fa8820 0x0 > -DATA 4 0x73fa84a4 0x5 > -DATA 4 0x73fa84a8 0x5 > -DATA 4 0x73fa84ac 0xe5 > -DATA 4 0x73fa84b0 0xe5 > -DATA 4 0x73fa84b4 0xe5 > -DATA 4 0x73fa84cc 0xe5 > -DATA 4 0x73fa84d0 0xe4 > - > -DATA 4 0x73fa882c 0x4 > -DATA 4 0x73fa88a4 0x4 > -DATA 4 0x73fa88ac 0x4 > -DATA 4 0x73fa88b8 0x4 > +# DDR bus IOMUX PAD settings > +DATA 4 0x73fa850c 0x20c5 # SDODT1 > +DATA 4 0x73fa8510 0x20c5 # SDODT0 > +DATA 4 0x73fa84ac 0xc5 # SDWE > +DATA 4 0x73fa84b0 0xc5 # SDCKE0 > +DATA 4 0x73fa84b4 0xc5 # SDCKE1 > +DATA 4 0x73fa84cc 0xc5 # DRAM_CS0 > +DATA 4 0x73fa84d0 0xc5 # DRAM_CS1 > +DATA 4 0x73fa882c 0x2 # DRAM_B4 > +DATA 4 0x73fa88a4 0x2 # DRAM_B0 > +DATA 4 0x73fa88ac 0x2 # DRAM_B1 > +DATA 4 0x73fa88b8 0x2 # DRAM_B2 > +DATA 4 0x73fa84d4 0xc5 # DRAM_DQM0 > +DATA 4 0x73fa84d8 0xc5 # DRAM_DQM1 > +DATA 4 0x73fa84dc 0xc5 # DRAM_DQM2 > +DATA 4 0x73fa84e0 0xc5 # DRAM_DQM3 > > # Setting DDR for micron > # 13 Rows, 10 Cols, 32 bit, SREF=4 Micron Model >
Acked-by: Stefano Babic <sba...@denx.de> Best regards, Stefano Babic -- ===================================================================== DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sba...@denx.de ===================================================================== _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot