diff options
| author | Otavio Salvador <otavio@ossystems.com.br> | 2012-12-04 03:15:51 +0000 | 
|---|---|---|
| committer | Stefano Babic <sbabic@denx.de> | 2012-12-07 14:50:02 +0100 | 
| commit | 393ff47ba3123208f7c4f08d63f114300a41d0c4 (patch) | |
| tree | 59730ac66d815eaf64ce1e0803781ae4a5a920d5 | |
| parent | a918a53c3650dd2a7a96c3145cf0544e0c4b0e59 (diff) | |
| download | olio-uboot-2014.01-393ff47ba3123208f7c4f08d63f114300a41d0c4.tar.xz olio-uboot-2014.01-393ff47ba3123208f7c4f08d63f114300a41d0c4.zip | |
mxs: SPL: Generalize memory initialization
Use a generic 'dram_vals[]' array that has the full initialization
sequence and rename the initialization method so it doesn't has a
frequency on its name.
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
| -rw-r--r-- | arch/arm/cpu/arm926ejs/mxs/spl_mem_init.c | 19 | 
1 files changed, 13 insertions, 6 deletions
| diff --git a/arch/arm/cpu/arm926ejs/mxs/spl_mem_init.c b/arch/arm/cpu/arm926ejs/mxs/spl_mem_init.c index 8c7f34a38..401c51362 100644 --- a/arch/arm/cpu/arm926ejs/mxs/spl_mem_init.c +++ b/arch/arm/cpu/arm926ejs/mxs/spl_mem_init.c @@ -30,7 +30,11 @@  #include "mxs_init.h" -static uint32_t mx28_dram_vals[] = { +static uint32_t dram_vals[] = { +/* + * i.MX28 DDR2 at 200MHz + */ +#if defined(CONFIG_MX28)  	0x00000000, 0x00000000, 0x00000000, 0x00000000,  	0x00000000, 0x00000000, 0x00000000, 0x00000000,  	0x00000000, 0x00000000, 0x00000000, 0x00000000, @@ -79,6 +83,9 @@ static uint32_t mx28_dram_vals[] = {  	0x06120612, 0x04320432, 0x04320432, 0x00040004,  	0x00040004, 0x00000000, 0x00000000, 0x00000000,  	0x00000000, 0x00010001 +#else +#error Unsupported memory initialization +#endif  };  void __mxs_adjust_memory_params(uint32_t *dram_vals) @@ -87,14 +94,14 @@ void __mxs_adjust_memory_params(uint32_t *dram_vals)  void mxs_adjust_memory_params(uint32_t *dram_vals)  	__attribute__((weak, alias("__mxs_adjust_memory_params"))); -static void init_mx28_200mhz_ddr2(void) +static void initialize_dram_values(void)  {  	int i; -	mxs_adjust_memory_params(mx28_dram_vals); +	mxs_adjust_memory_params(dram_vals); -	for (i = 0; i < ARRAY_SIZE(mx28_dram_vals); i++) -		writel(mx28_dram_vals[i], MXS_DRAM_BASE + (4 * i)); +	for (i = 0; i < ARRAY_SIZE(dram_vals); i++) +		writel(dram_vals[i], MXS_DRAM_BASE + (4 * i));  }  static void mxs_mem_init_clock(void) @@ -218,7 +225,7 @@ void mxs_mem_init(void)  	/* Clear START bit from DRAM_CTL16 */  	clrbits_le32(MXS_DRAM_BASE + 0x40, 1); -	init_mx28_200mhz_ddr2(); +	initialize_dram_values();  	/* Clear SREFRESH bit from DRAM_CTL17 */  	clrbits_le32(MXS_DRAM_BASE + 0x44, 1); |