diff options
| author | Paul Gortmaker <paul.gortmaker@windriver.com> | 2011-12-30 23:53:11 -0500 | 
|---|---|---|
| committer | Kumar Gala <galak@kernel.crashing.org> | 2012-01-11 13:59:12 -0600 | 
| commit | 2a6b3b74d85cff3f9a76edd09a7b2e8e25bb4eb4 (patch) | |
| tree | 8cea1b73c66856841c41b0060dd9bb2816f2244b /board/sbc8548/ddr.c | |
| parent | 7e44f2b710db09a1b02e55246e0915732cc4775e (diff) | |
| download | olio-uboot-2014.01-2a6b3b74d85cff3f9a76edd09a7b2e8e25bb4eb4.tar.xz olio-uboot-2014.01-2a6b3b74d85cff3f9a76edd09a7b2e8e25bb4eb4.zip | |
sbc8548: relocate fixed ddr init code to ddr.c file
Nothing to see here, just a relocation of the fixed ddr init
sequence to live in the actual ddr.c file itself.
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Diffstat (limited to 'board/sbc8548/ddr.c')
| -rw-r--r-- | board/sbc8548/ddr.c | 48 | 
1 files changed, 48 insertions, 0 deletions
| diff --git a/board/sbc8548/ddr.c b/board/sbc8548/ddr.c index 996ffe206..0d9a1ba62 100644 --- a/board/sbc8548/ddr.c +++ b/board/sbc8548/ddr.c @@ -54,3 +54,51 @@ void fsl_ddr_board_options(memctl_options_t *popts,  	 */  	popts->half_strength_driver_enable = 0;  } + +#if !defined(CONFIG_SPD_EEPROM) +/* + *  fixed_sdram init -- doesn't use serial presence detect. + *  Assumes 256MB DDR2 SDRAM SODIMM, without ECC, running at DDR400 speed. + */ +phys_size_t fixed_sdram(void) +{ +	volatile ccsr_ddr_t *ddr = (void *)(CONFIG_SYS_MPC85xx_DDR_ADDR); + +	out_be32(&ddr->cs0_bnds,	0x0000007f); +	out_be32(&ddr->cs1_bnds,	0x008000ff); +	out_be32(&ddr->cs2_bnds,	0x00000000); +	out_be32(&ddr->cs3_bnds,	0x00000000); + +	out_be32(&ddr->cs0_config,	0x80010101); +	out_be32(&ddr->cs1_config,	0x80010101); +	out_be32(&ddr->cs2_config,	0x00000000); +	out_be32(&ddr->cs3_config,	0x00000000); + +	out_be32(&ddr->timing_cfg_3,	0x00000000); +	out_be32(&ddr->timing_cfg_0,	0x00220802); +	out_be32(&ddr->timing_cfg_1,	0x38377322); +	out_be32(&ddr->timing_cfg_2,	0x0fa044C7); + +	out_be32(&ddr->sdram_cfg,	0x4300C000); +	out_be32(&ddr->sdram_cfg_2,	0x24401000); + +	out_be32(&ddr->sdram_mode,	0x23C00542); +	out_be32(&ddr->sdram_mode_2,	0x00000000); + +	out_be32(&ddr->sdram_interval,	0x05080100); +	out_be32(&ddr->sdram_md_cntl,	0x00000000); +	out_be32(&ddr->sdram_data_init,	0x00000000); +	out_be32(&ddr->sdram_clk_cntl,	0x03800000); +	asm("sync;isync;msync"); +	udelay(500); + +	#ifdef CONFIG_DDR_ECC +	  /* Enable ECC checking */ +	  out_be32(&ddr->sdram_cfg, CONFIG_SYS_DDR_CONTROL | 0x20000000); +	#else +	  out_be32(&ddr->sdram_cfg, CONFIG_SYS_DDR_CONTROL); +	#endif + +	return CONFIG_SYS_SDRAM_SIZE * 1024 * 1024; +} +#endif |