Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

x86/cpu: Remove M486/M486SX/ELAN support

In the x86 architecture we have various complicated hardware emulation
facilities on x86-32 to support ancient 32-bit CPUs that very very few
people are using with modern kernels. This compatibility glue is sometimes
even causing problems that people spend time to resolve, which time could
be spent on other things.

As Linus recently remarked:

> I really get the feeling that it's time to leave i486 support behind.
> There's zero real reason for anybody to waste one second of
> development effort on this kind of issue.

Implement the first step and remove M486/M486SX/ELAN support:

CONFIG_M486SX
CONFIG_M486
CONFIG_MELAN

[ There's no recent M486=y kernel package for any mainstream x86
32-bit distribution available that I've been able to find, so
actual users should not be impacted, and any legacy users can
keep using older kernels. ]

Suggested-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Dave Hansen <dave.hansen@linux.intel.com>
Cc: Ahmed S. Darwish <darwi@linutronix.de>
Cc: Ard Biesheuvel <ardb@kernel.org>
Cc: Arnd Bergmann <arnd@kernel.org>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: John Ogness <john.ogness@linutronix.de>
Link: https://patch.msgid.link/20251214084710.3606385-2-mingo@kernel.org

+10 -52
-10
arch/x86/Kconfig
··· 446 446 uniprocessor machines. On a uniprocessor machine, the kernel 447 447 will run faster if you say N here. 448 448 449 - Note that if you say Y here and choose architecture "586" or 450 - "Pentium" under "Processor family", the kernel will not work on 486 451 - architectures. Similarly, multiprocessor kernels for the "PPro" 452 - architecture may not work on all Pentium based boards. 453 - 454 449 People using multiprocessor machines who say Y here should also say 455 450 Y to "Enhanced Real Time Clock Support", below. The "Advanced Power 456 451 Management" code will be disabled if you say Y here. ··· 2765 2770 This driver does not spin down disk drives (see the hdparm(8) 2766 2771 manpage ("man 8 hdparm") for that), and it doesn't turn off 2767 2772 VESA-compliant "green" monitors. 2768 - 2769 - This driver does not support the TI 4000M TravelMate and the ACER 2770 - 486/DX4/75 because they don't have compliant BIOSes. Many "green" 2771 - desktop machines also don't have compliant BIOSes, and this driver 2772 - may cause those machines to panic during the boot phase. 2773 2773 2774 2774 Generally, if you don't have a battery in your machine, there isn't 2775 2775 much point in using this driver and you should say N. If you get
+10 -34
arch/x86/Kconfig.cpu
··· 8 8 This is the processor type of your CPU. This information is 9 9 used for optimizing purposes. In order to compile a kernel 10 10 that can run on all supported x86 CPU types (albeit not 11 - optimally fast), you can specify "486" here. 11 + optimally fast), you can specify "586" here. 12 12 13 - Note that the 386 is no longer supported, this includes 13 + Note that the 386 and 486 is no longer supported, this includes 14 14 AMD/Cyrix/Intel 386DX/DXL/SL/SLC/SX, Cyrix/TI 486DLC/DLC2, 15 - UMC 486SX-S and the NexGen Nx586. 15 + UMC 486SX-S and the NexGen Nx586, AMD ELAN and all 486 based 16 + CPUs. 16 17 17 18 The kernel will not necessarily run on earlier architectures than 18 19 the one you have chosen, e.g. a Pentium optimized kernel will run on 19 20 a PPro, but not necessarily on a i486. 20 21 21 22 Here are the settings recommended for greatest speed: 22 - - "486" for the AMD/Cyrix/IBM/Intel 486DX/DX2/DX4 or 23 - SL/SLC/SLC2/SLC3/SX/SX2 and UMC U5D or U5S. 24 23 - "586" for generic Pentium CPUs lacking the TSC 25 24 (time stamp counter) register. 26 25 - "Pentium-Classic" for the Intel Pentium. ··· 44 45 45 46 See each option's help text for additional details. If you don't know 46 47 what to do, choose "Pentium-Pro". 47 - 48 - config M486SX 49 - bool "486SX" 50 - depends on X86_32 51 - help 52 - Select this for an 486-class CPU without an FPU such as 53 - AMD/Cyrix/IBM/Intel SL/SLC/SLC2/SLC3/SX/SX2 and UMC U5S. 54 - 55 - config M486 56 - bool "486DX" 57 - depends on X86_32 58 - help 59 - Select this for an 486-class CPU such as AMD/Cyrix/IBM/Intel 60 - 486DX/DX2/DX4 and UMC U5D. 61 48 62 49 config M586 63 50 bool "586/K5/5x86/6x86/6x86MX" ··· 173 188 stores for this CPU, which can increase performance of some 174 189 operations. 175 190 176 - config MELAN 177 - bool "AMD Elan" 178 - depends on X86_32 179 - help 180 - Select this for an AMD Elan processor. 181 - 182 - Do not use this option for K6/Athlon/Opteron processors! 183 - 184 191 config MGEODEGX1 185 192 bool "GeodeGX1" 186 193 depends on X86_32 ··· 269 292 int 270 293 default "7" if MPENTIUM4 271 294 default "6" if MK7 || MPENTIUMM || MATOM || MVIAC7 || X86_GENERIC || X86_64 272 - default "4" if MELAN || M486SX || M486 || MGEODEGX1 295 + default "4" if MGEODEGX1 273 296 default "5" if MWINCHIP3D || MWINCHIPC6 || MCRUSOE || MEFFICEON || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || M586 || MVIAC3_2 || MGEODE_LX 274 297 275 298 config X86_F00F_BUG 276 299 def_bool y 277 - depends on M586MMX || M586TSC || M586 || M486SX || M486 300 + depends on M586MMX || M586TSC || M586 278 301 279 302 config X86_INVD_BUG 280 303 def_bool y ··· 282 305 283 306 config X86_ALIGNMENT_16 284 307 def_bool y 285 - depends on MWINCHIP3D || MWINCHIPC6 || MCYRIXIII || MELAN || MK6 || M586MMX || M586TSC || M586 || M486SX || M486 || MVIAC3_2 || MGEODEGX1 308 + depends on MWINCHIP3D || MWINCHIPC6 || MCYRIXIII || MK6 || M586MMX || M586TSC || M586 || MVIAC3_2 || MGEODEGX1 286 309 287 310 config X86_INTEL_USERCOPY 288 311 def_bool y ··· 314 337 int 315 338 default "64" if X86_64 316 339 default "6" if X86_32 && (MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MVIAC3_2 || MVIAC7 || MEFFICEON || MATOM || MK7) 317 - default "5" if X86_32 && X86_CX8 318 - default "4" 340 + default "5" 319 341 320 342 config X86_DEBUGCTLMSR 321 343 def_bool y 322 - depends on !(MK6 || MWINCHIPC6 || MWINCHIP3D || MCYRIXIII || M586MMX || M586TSC || M586 || M486SX || M486) && !UML 344 + depends on !(MK6 || MWINCHIPC6 || MWINCHIP3D || MCYRIXIII || M586MMX || M586TSC || M586) && !UML 323 345 324 346 config IA32_FEAT_CTL 325 347 def_bool y ··· 354 378 config CPU_SUP_CYRIX_32 355 379 default y 356 380 bool "Support Cyrix processors" if PROCESSOR_SELECT 357 - depends on M486SX || M486 || M586 || M586TSC || M586MMX || (EXPERT && !64BIT) 381 + depends on M586 || M586TSC || M586MMX || (EXPERT && !64BIT) 358 382 help 359 383 This enables detection, tunings and quirks for Cyrix processors 360 384
-2
arch/x86/Makefile_32.cpu
··· 10 10 align := -falign-functions=0 -falign-jumps=0 -falign-loops=0 11 11 endif 12 12 13 - cflags-$(CONFIG_M486SX) += -march=i486 14 - cflags-$(CONFIG_M486) += -march=i486 15 13 cflags-$(CONFIG_M586) += -march=i586 16 14 cflags-$(CONFIG_M586TSC) += -march=i586 17 15 cflags-$(CONFIG_M586MMX) += -march=pentium-mmx
-6
arch/x86/include/asm/vermagic.h
··· 5 5 6 6 #ifdef CONFIG_X86_64 7 7 /* X86_64 does not define MODULE_PROC_FAMILY */ 8 - #elif defined CONFIG_M486SX 9 - #define MODULE_PROC_FAMILY "486SX " 10 - #elif defined CONFIG_M486 11 - #define MODULE_PROC_FAMILY "486 " 12 8 #elif defined CONFIG_M586 13 9 #define MODULE_PROC_FAMILY "586 " 14 10 #elif defined CONFIG_M586TSC ··· 27 31 #define MODULE_PROC_FAMILY "K6 " 28 32 #elif defined CONFIG_MK7 29 33 #define MODULE_PROC_FAMILY "K7 " 30 - #elif defined CONFIG_MELAN 31 - #define MODULE_PROC_FAMILY "ELAN " 32 34 #elif defined CONFIG_MCRUSOE 33 35 #define MODULE_PROC_FAMILY "CRUSOE " 34 36 #elif defined CONFIG_MEFFICEON