mirror of
https://github.com/smaeul/u-boot.git
synced 2025-10-14 04:46:01 +01:00
armv8: cache_v8: Fix pgtables setup when MMU is already enabled
When MMU is already enabled then dcache_enable() does not call mmu_setup() and so setup_all_pgtables() is also never called. In this situation when some driver calls mmu_set_region_dcache_behaviour() function then U-Boot crashes with error message: Emergency page table not setup. Fix this issue by explicitly calling setup_all_pgtables() in dcache_enable() function near condition for mmu_setup(). This change fixes chainloading U-Boot from U-Boot on Turris Mox board which uses mvneta ethernet driver which calls mmu_set_region_dcache_behaviour(). Signed-off-by: Pali Rohár <pali@kernel.org> Reviewed-by: Marek Behún <kabel@kernel.org> Reviewed-by: Stefan Roese <sr@denx.de>
This commit is contained in:
parent
3c29c0fce0
commit
ae17910117
@ -503,6 +503,10 @@ void dcache_enable(void)
|
|||||||
mmu_setup();
|
mmu_setup();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Set up page tables only once (it is done also by mmu_setup()) */
|
||||||
|
if (!gd->arch.tlb_fillptr)
|
||||||
|
setup_all_pgtables();
|
||||||
|
|
||||||
set_sctlr(get_sctlr() | CR_C);
|
set_sctlr(get_sctlr() | CR_C);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user