[PATCH 3/4] ARM: remove support for highmem on VIVT
Jason Gunthorpe
jgg at nvidia.com
Sat Dec 20 04:14:12 AEDT 2025
On Fri, Dec 19, 2025 at 05:15:58PM +0100, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd at arndb.de>
>
> As Jason Gunthorpe noticed, supporting VIVT caches adds some complications
> to highmem that can be avoided these days:
>
> While all ARMv4 and ARMv5 CPUs use virtually indexed caches, they no
> longer really need highmem because we have practically discontinued
> support for large-memory configurations already. The only machines I
> could find anywhere for memory on ARMv5 are:
>
> - The Intel IOP platform was used on relatively large memory
> configurations but we dropped kernel support in 2019 and 2022,
> respectively.
>
> - The Marvell mv78xx0 platform was the initial user of Arm highmem,
> with the DB-78x00-BP supporting 2GB of memory. While the platform
> is still around, the only remaining board file is for
> Buffalo WLX (Terastation Duo), which has only 512MB.
>
> - The Kirkwood platform supports 2GB, and there are actually boards
> with that configuration that can still work. However, there are
> no known users of the OpenBlocks A7, and the Freebox V6 is already
> using CONFIG_VMSPLIT_2G to avoid enabling highmem.
>
> Remove the Arm specific portions here, making CONFIG_HIGHMEM conditional
> on modern caches.
>
> Suggested-by: Jason Gunthorpe <jgg at nvidia.com>
> Signed-off-by: Arnd Bergmann <arnd at arndb.de>
> ---
> arch/arm/Kconfig | 1 +
> arch/arm/configs/gemini_defconfig | 1 -
> arch/arm/configs/multi_v5_defconfig | 1 -
> arch/arm/configs/mvebu_v5_defconfig | 1 -
> arch/arm/include/asm/highmem.h | 56 ++---------------------------
> arch/arm/mm/cache-feroceon-l2.c | 31 ++--------------
> arch/arm/mm/cache-xsc3l2.c | 47 +++---------------------
> arch/arm/mm/dma-mapping.c | 12 ++-----
> arch/arm/mm/flush.c | 19 +++-------
> 9 files changed, 16 insertions(+), 153 deletions(-)
This looks great, but do you think there should be a boot time crash
if a VIVT and HIGHMEM are enabled, just incase?
Jason
More information about the Linuxppc-dev
mailing list