|
|
@ -38,6 +38,10 @@ unsigned long sdram_init(const struct sdram_info *info) |
|
|
|
unsigned long bus_hz; |
|
|
|
unsigned long bus_hz; |
|
|
|
unsigned int i; |
|
|
|
unsigned int i; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!info->refresh_period) |
|
|
|
|
|
|
|
panic("ERROR: SDRAM refresh period == 0. " |
|
|
|
|
|
|
|
"Please update the board code\n"); |
|
|
|
|
|
|
|
|
|
|
|
tmp = (HSDRAMC1_BF(NC, info->col_bits - 8) |
|
|
|
tmp = (HSDRAMC1_BF(NC, info->col_bits - 8) |
|
|
|
| HSDRAMC1_BF(NR, info->row_bits - 11) |
|
|
|
| HSDRAMC1_BF(NR, info->row_bits - 11) |
|
|
|
| HSDRAMC1_BF(NB, info->bank_bits - 1) |
|
|
|
| HSDRAMC1_BF(NB, info->bank_bits - 1) |
|
|
@ -113,7 +117,7 @@ unsigned long sdram_init(const struct sdram_info *info) |
|
|
|
* 15.6 us is a typical value for a burst of length one |
|
|
|
* 15.6 us is a typical value for a burst of length one |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
bus_hz = get_sdram_clk_rate(); |
|
|
|
bus_hz = get_sdram_clk_rate(); |
|
|
|
hsdramc1_writel(TR, (156 * (bus_hz / 1000)) / 10000); |
|
|
|
hsdramc1_writel(TR, info->refresh_period); |
|
|
|
|
|
|
|
|
|
|
|
printf("SDRAM: %u MB at address 0x%08lx\n", |
|
|
|
printf("SDRAM: %u MB at address 0x%08lx\n", |
|
|
|
sdram_size >> 20, info->phys_addr); |
|
|
|
sdram_size >> 20, info->phys_addr); |
|
|
|