mirror of
https://github.com/AsahiLinux/u-boot
synced 2025-02-16 14:08:45 +00:00
arm64: Initialize TLB memory if CMO_BY_VA_ONLY
Memory used to hold the page tables is allocated from the top of RAM
with no prior initialization and could therefore hold invalid data. As
invalidate_dcache_all() will be called before the MMU has been
initialized and as that function relies indirectly on the page tables
when using CMO_BY_VA_ONLY, these must be in a valid state from their
allocation.
Signed-off-by: Pierre-Clément Tosi <ptosi@google.com>
[ Paul: pick from the Android tree. Fix checkpatch warnings, and rebased
to the upstream. ]
Signed-off-by: Ying-Chun Liu (PaulLiu) <paul.liu@linaro.org>
Cc: Tom Rini <trini@konsulko.com>
Link: e3ceef4230
This commit is contained in:
parent
46dc542870
commit
c55c2a8565
1 changed files with 9 additions and 0 deletions
|
@ -159,6 +159,15 @@ __weak int arm_reserve_mmu(void)
|
|||
*/
|
||||
gd->arch.tlb_allocated = gd->arch.tlb_addr;
|
||||
#endif
|
||||
|
||||
if (IS_ENABLED(CONFIG_CMO_BY_VA_ONLY)) {
|
||||
/*
|
||||
* As invalidate_dcache_all() will be called before
|
||||
* mmu_setup(), we should make sure that the PTs are
|
||||
* already in a valid state.
|
||||
*/
|
||||
memset((void *)gd->arch.tlb_addr, 0, gd->arch.tlb_size);
|
||||
}
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
|
|
Loading…
Add table
Reference in a new issue