[PATCH v2] ARM: set !LPAE MAX_PHYSMEM_BITS to 32 and remove IO_36

Arnd Bergmann arnd at arndb.de
Sat Jul 25 01:48:36 PDT 2026


On Sat, Jul 25, 2026, at 00:06, Karl Mehltretter wrote:
> On Fri, Jul 24, 2026 at 08:31:35PM +0100, Arnd Bergmann wrote:
>> 
>> I'm not sure why you remove remap_area_supersections() but keep
>> create_36bit_mapping(). I would just remove that as well.
>
> Sorry, my earlier explanation was confusing. create_36bit_mapping() is
> not totally unreachable after this patch. The ARM EFI path can reach it
> through:
>
>     efi_create_mapping()
>       -> create_mapping_late()
>       -> create_36bit_mapping()
>
> I verified this with a modified EDK2 build under QEMU that advertised an
> aligned, write-back EFI runtime memory descriptor above 4 GiB. The
> kernel successfully created the mapping and enabled EFI runtime
> services.
>
> Admittedly, this is a synthetic configuration. Stock ARM32 EDK2
> restricts allocations to below 4 GiB, and I believe the AArch32 UEFI
> specification requires RAM in the UEFI memory map to be identity-mapped
> during boot services. The test setup is therefore probably not a
> conforming real-world firmware configuration.

Ok, I see. I can't think of any scenario where this would do
us any good to have an EFI runtime mapping for high memory
when it can't be accessed by the kernel later. Anyone running
Linux on an arm32 system with more than 4GB of physical
addressing is already using an LPAE kernel and won't be
missing it.

Please just remove this as well.

     Arnd



More information about the linux-arm-kernel mailing list