mirror of
https://github.com/u-boot/u-boot.git
synced 2024-11-24 04:34:22 +08:00
ARM: uniphier: Move uniphier_mem_map_init() call into dram_init()
The function uniphier_mem_map_init() is to change global variable 'mem_map', which is referenced to get_page_table_size() to calculate the size of page table. However, uniphier_mem_map_init() is called after get_page_table_size(), so the size of page table and 'mem_map' become inconsist each other. After all, U-Boot fails to boot on chip with memory map different from default map, uniphier_mem_map_init() should be moved to dram_init(), which is called before get_page_table_size(). Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
This commit is contained in:
parent
51b2f4f085
commit
4341fb7332
@ -265,14 +265,15 @@ int dram_init(void)
|
||||
if (uniphier_get_soc_id() == UNIPHIER_LD20_ID)
|
||||
gd->ram_size -= 64;
|
||||
|
||||
/* map all the DRAM regions */
|
||||
uniphier_mem_map_init(gd->ram_base, prev_top - gd->ram_base);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int dram_init_banksize(void)
|
||||
{
|
||||
struct uniphier_dram_map dram_map[3] = {};
|
||||
unsigned long base, top;
|
||||
bool valid_bank_found = false;
|
||||
int ret, i;
|
||||
|
||||
ret = uniphier_dram_map_get(dram_map);
|
||||
@ -287,18 +288,7 @@ int dram_init_banksize(void)
|
||||
|
||||
if (!dram_map[i].size)
|
||||
continue;
|
||||
|
||||
if (!valid_bank_found)
|
||||
base = dram_map[i].base;
|
||||
top = dram_map[i].base + dram_map[i].size;
|
||||
valid_bank_found = true;
|
||||
}
|
||||
|
||||
if (!valid_bank_found)
|
||||
return -EINVAL;
|
||||
|
||||
/* map all the DRAM regions */
|
||||
uniphier_mem_map_init(base, top - base);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user