On Fri, May 26, 2023 at 08:33:51AM +0200, Ahmad Fatoum wrote: > ARM64 MMU code used to disable early MMU, reallocate TTB from malloc > area and then reenable it. This has recently been changed, so MMU is > left enabled like on ARM32, but unlike ARM32, the SDRAM region used in > PBL is not requested in barebox proper. Do that now. > > Fixes: b53744ffe333 ("ARM: mmu64: Use two level pagetables in early code") > Signed-off-by: Ahmad Fatoum <a.fatoum@xxxxxxxxxxxxxx> > --- > arch/arm/cpu/mmu_64.c | 12 ++++++++++++ > 1 file changed, 12 insertions(+) Applied, thanks Sascha > > diff --git a/arch/arm/cpu/mmu_64.c b/arch/arm/cpu/mmu_64.c > index cdc482542202..1d5a5355c6be 100644 > --- a/arch/arm/cpu/mmu_64.c > +++ b/arch/arm/cpu/mmu_64.c > @@ -192,8 +192,20 @@ static void mmu_enable(void) > */ > void __mmu_init(bool mmu_on) > { > + uint64_t *ttb = get_ttb(); > struct memory_bank *bank; > > + if (!request_sdram_region("ttb", (unsigned long)ttb, > + ARM_EARLY_PAGETABLE_SIZE)) > + /* > + * This can mean that: > + * - the early MMU code has put the ttb into a place > + * which we don't have inside our available memory > + * - Somebody else has occupied the ttb region which means > + * the ttb will get corrupted. > + */ > + pr_crit("Can't request SDRAM region for ttb at %p\n", ttb); > + > for_each_memory_bank(bank) { > struct resource *rsv; > resource_size_t pos; > -- > 2.39.2 > > > -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |