mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-11 15:37:23 +00: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
1 changed files with 4 additions and 0 deletions
|
@ -503,6 +503,10 @@ void dcache_enable(void)
|
|||
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);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue