x86/mm: Remove CONFIG_HIGHMEM64G support
authorArnd Bergmann <arnd@arndb.de>
Wed, 26 Feb 2025 21:37:09 +0000 (22:37 +0100)
committerIngo Molnar <mingo@kernel.org>
Thu, 27 Feb 2025 10:21:53 +0000 (11:21 +0100)
commitbbeb69ce301323e84f1677484eb8e4cd8fb1f9f8
tree580c8053fb356f4d4f5a6282873baf5ac0644bfc
parentf388f60ca9041a95c9b3f157d316ed7c8f297e44
x86/mm: Remove CONFIG_HIGHMEM64G support

HIGHMEM64G support was added in linux-2.3.25 to support (then)
high-end Pentium Pro and Pentium III Xeon servers with more than 4GB of
addressing, NUMA and PCI-X slots started appearing.

I have found no evidence of this ever being used in regular dual-socket
servers or consumer devices, all the users seem obsolete these days,
even by i386 standards:

 - Support for NUMA servers (NUMA-Q, IBM x440, unisys) was already
   removed ten years ago.

 - 4+ socket non-NUMA servers based on Intel 450GX/450NX, HP F8 and
   ServerWorks ServerSet/GrandChampion could theoretically still work
   with 8GB, but these were exceptionally rare even 20 years ago and
   would have usually been equipped with than the maximum amount of
   RAM.

 - Some SKUs of the Celeron D from 2004 had 64-bit mode fused off but
   could still work in a Socket 775 mainboard designed for the later
   Core 2 Duo and 8GB. Apparently most BIOSes at the time only allowed
   64-bit CPUs.

 - The rare Xeon LV "Sossaman" came on a few motherboards with
   registered DDR2 memory support up to 16GB.

 - In the early days of x86-64 hardware, there was sometimes the need
   to run a 32-bit kernel to work around bugs in the hardware drivers,
   or in the syscall emulation for 32-bit userspace. This likely still
   works but there should never be a need for this any more.

PAE mode is still required to get access to the 'NX' bit on Atom
'Pentium M' and 'Core Duo' CPUs.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Link: https://lore.kernel.org/r/20250226213714.4040853-6-arnd@kernel.org
Documentation/admin-guide/kdump/kdump.rst
Documentation/arch/x86/usb-legacy-support.rst
arch/x86/Kconfig
arch/x86/configs/xen.config
arch/x86/include/asm/page_32_types.h
arch/x86/mm/init_32.c