summaryrefslogtreecommitdiff
path: root/arch/arm/mach-mvebu
diff options
context:
space:
mode:
authorPali Rohár <pali@kernel.org>2022-02-16 11:18:43 +0100
committerStefan Roese <sr@denx.de>2022-02-17 14:17:07 +0100
commit2fb7426cf027a9efcd05975b6f4b2968a4d54834 (patch)
treee07b67514eefdbc26d2316109284ec9a9a7eebf4 /arch/arm/mach-mvebu
parent0eebc3dbe5659cc0163fd37ea87727edd8343379 (diff)
downloadu-boot-2fb7426cf027a9efcd05975b6f4b2968a4d54834.tar.gz
arm: mvebu: a37xx: Fix calling build_mem_map()
Function build_mem_map() modifies global variable mem_map. This variable is used by the get_page_table_size() function which is called by function arm_reserve_mmu() (as aliased macro PGTABLE_SIZE). Function arm_reserve_mmu() is called earlier than enable_caches() which calls build_mem_map(). So arm_reserve_mmu() does not calculate reserved memory correctly. Fix this issue by calling build_mem_map() from a3700_dram_init() which is called before arm_reserve_mmu(). Signed-off-by: Pali Rohár <pali@kernel.org> Reviewed-by: Stefan Roese <sr@denx.de> Reviewed-by: Marek Behún <marek.behun@nic.cz>
Diffstat (limited to 'arch/arm/mach-mvebu')
-rw-r--r--arch/arm/mach-mvebu/armada3700/cpu.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/arm/mach-mvebu/armada3700/cpu.c b/arch/arm/mach-mvebu/armada3700/cpu.c
index 7702028ba1..57a811b36a 100644
--- a/arch/arm/mach-mvebu/armada3700/cpu.c
+++ b/arch/arm/mach-mvebu/armada3700/cpu.c
@@ -142,8 +142,6 @@ static void build_mem_map(void)
void enable_caches(void)
{
- build_mem_map();
-
icache_enable();
dcache_enable();
}
@@ -152,6 +150,8 @@ int a3700_dram_init(void)
{
int win;
+ build_mem_map();
+
gd->ram_size = 0;
for (win = 0; win < MVEBU_CPU_DEC_WINS; ++win) {
u32 base, tgt, size;