On Thu, Nov 12, 2026 at 12:25:28PM +0100, Arnd Bergmann wrote:
> From: Arnd Bergmann <[email protected]>
>
> Unlike x86 and powerpc, there is currently no option to use exactly 2GiB
> of lowmem on Arm. Since 2GiB is still a relatively common configuration
> on embedded systems, it makes sense to allow this to be used in
> non-highmem builds.
>
> Add the Kconfig option and make this the default for non-LPAE builds
> with highmem enabled instead of CONFIG_VMSPLIT_2G.  LPAE still requires
> the vmsplit to be on a gigabyte boundary, so this is only available for
> classic pagetables at the moment, same as CONFIG_VMSPLIT_3G_OPT.
>
> Tested in qemu -M virt, both with and without HIGHMEM enabled.
>
> Signed-off-by: Arnd Bergmann <[email protected]>

With sashiko fix, LGTM and:

Acked-by: Lorenzo Stoakes (ARM) <[email protected]>

> ---
>  arch/arm/Kconfig | 8 +++++++-
>  1 file changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index 797705a94b28..8992fedfdf37 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -1025,7 +1025,8 @@ config BL_SWITCHER_DUMMY_IF
>  choice
>       prompt "Memory split"
>       depends on MMU
> -     default VMSPLIT_2G if HIGHMEM || ARM_LPAE
> +     default VMSPLIT_2G if ARM_LPAE
> +     default VMSPLIT_2G_OPT if HIGHMEM
>       default VMSPLIT_3G_OPT
>       help
>         Select the desired split between kernel and user memory.
> @@ -1042,6 +1043,9 @@ choice
>               bool "3G/1G user/kernel split (for full 1G low memory)"
>       config VMSPLIT_2G
>               bool "2G/2G user/kernel split"
> +     config VMSPLIT_2G_OPT
> +             depends on !ARM_LPAE
> +             bool "2G/2G user/kernel split (for full 2G low memory)"
>       config VMSPLIT_1G
>               bool "1G/3G user/kernel split"
>  endchoice
> @@ -1050,6 +1054,7 @@ config PAGE_OFFSET
>       hex
>       default PHYS_OFFSET if !MMU
>       default 0x40000000 if VMSPLIT_1G
> +     default 0x70000000 if VMSPLIT_2G_OPT
>       default 0x80000000 if VMSPLIT_2G
>       default 0xB0000000 if VMSPLIT_3G_OPT
>       default 0xC0000000
> @@ -1058,6 +1063,7 @@ config KASAN_SHADOW_OFFSET
>       hex
>       depends on KASAN
>       default 0x1f000000 if PAGE_OFFSET=0x40000000
> +     default 0x4f000000 if PAGE_OFFSET=0x70000000
>       default 0x5f000000 if PAGE_OFFSET=0x80000000
>       default 0x9f000000 if PAGE_OFFSET=0xC0000000
>       default 0x8f000000 if PAGE_OFFSET=0xB0000000
> --
> 2.53.0
>

--
Cheers, Lorenzo

Reply via email to