From 30b1c4a340892e4bb93a9596b852f5384f6605d2 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Wed, 3 Apr 2024 10:59:31 +0200 Subject: [PATCH 01/19] ARM: use CONFIG_AEABI by default everywhere On ARMv4 and ARMv5, the default is still to build for OABI, with CONFIG_AEABI disabled, even though distros and toolchains no longer support OABI as a target. Change the default to EABI for all architecture levels and change the defconfig entries as follows: - All machines that used to explicitly enable EABI can drop that line now - Machines that are likely to actually use old distros and had NWFPE enabled in combination with OABI (rpc, footrbridge, netwinder, assabet, neponset) explicitly turn it on now. - Machines that already had both EABI and NWFPE disabled in defconfig (spear3xx, spear6xx) were likely not usable with either OABI or EABI and now use EABI instead implicitly, making it more likely that they could work. Acked-by: Linus Walleij Acked-by: Nicolas Ferre Acked-by: Alexandre Belloni Acked-by: Aaro Koskinen # OMAP Acked-by: Alexander Sverdlin Signed-off-by: Arnd Bergmann --- arch/arm/Kconfig | 15 ++++++--------- arch/arm/configs/am200epdkit_defconfig | 1 - arch/arm/configs/aspeed_g4_defconfig | 1 - arch/arm/configs/assabet_defconfig | 1 + arch/arm/configs/at91_dt_defconfig | 1 - arch/arm/configs/axm55xx_defconfig | 1 - arch/arm/configs/bcm2835_defconfig | 1 - arch/arm/configs/clps711x_defconfig | 1 - arch/arm/configs/collie_defconfig | 1 - arch/arm/configs/davinci_all_defconfig | 1 - arch/arm/configs/dove_defconfig | 1 - arch/arm/configs/ep93xx_defconfig | 1 - arch/arm/configs/footbridge_defconfig | 1 + arch/arm/configs/gemini_defconfig | 1 - arch/arm/configs/h3600_defconfig | 1 - arch/arm/configs/hisi_defconfig | 1 - arch/arm/configs/imx_v4_v5_defconfig | 1 - arch/arm/configs/integrator_defconfig | 1 - arch/arm/configs/ixp4xx_defconfig | 1 - arch/arm/configs/jornada720_defconfig | 1 - arch/arm/configs/keystone_defconfig | 1 - arch/arm/configs/lpc32xx_defconfig | 1 - arch/arm/configs/mmp2_defconfig | 1 - arch/arm/configs/moxart_defconfig | 1 - arch/arm/configs/multi_v4t_defconfig | 1 - arch/arm/configs/multi_v5_defconfig | 1 - arch/arm/configs/mv78xx0_defconfig | 2 -- arch/arm/configs/mvebu_v5_defconfig | 1 - arch/arm/configs/mxs_defconfig | 1 - arch/arm/configs/neponset_defconfig | 1 + arch/arm/configs/netwinder_defconfig | 1 + arch/arm/configs/nhk8815_defconfig | 1 - arch/arm/configs/omap1_defconfig | 2 -- arch/arm/configs/orion5x_defconfig | 2 -- arch/arm/configs/pxa168_defconfig | 2 -- arch/arm/configs/pxa3xx_defconfig | 2 -- arch/arm/configs/pxa910_defconfig | 2 -- arch/arm/configs/pxa_defconfig | 1 - arch/arm/configs/rpc_defconfig | 1 + arch/arm/configs/spear13xx_defconfig | 1 - arch/arm/configs/spitz_defconfig | 1 - arch/arm/configs/versatile_defconfig | 1 - arch/arm/configs/vt8500_v6_v7_defconfig | 1 - arch/arm/configs/wpcm450_defconfig | 1 - 44 files changed, 11 insertions(+), 53 deletions(-) diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 9187240a02db..ccc0114d30de 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -1153,17 +1153,14 @@ config ARM_PATCH_IDIV config AEABI bool "Use the ARM EABI to compile the kernel" if !CPU_V7 && \ !CPU_V7M && !CPU_V6 && !CPU_V6K && !CC_IS_CLANG - default CPU_V7 || CPU_V7M || CPU_V6 || CPU_V6K || CC_IS_CLANG + default y help - This option allows for the kernel to be compiled using the latest - ARM ABI (aka EABI). This is only useful if you are using a user - space environment that is also compiled with EABI. + The Arm EABI is the default ABI on all modern Linux + distributions, replacing the obsolete and "OABI" that was + commonly used on ARMv4 distributions before ca. 2013. - Since there are major incompatibilities between the legacy ABI and - EABI, especially with regard to structure member alignment, this - option also changes the kernel syscall calling convention to - disambiguate both ABIs and allow for backward compatibility support - (selected with CONFIG_OABI_COMPAT). + Everyone should enable this, as support for OABI user space + was dropped in gcc-4.8 and most distributions after ca. 2013. config OABI_COMPAT bool "Allow old ABI binaries to run with this kernel (EXPERIMENTAL)" diff --git a/arch/arm/configs/am200epdkit_defconfig b/arch/arm/configs/am200epdkit_defconfig index d8198592fe1b..b3f81237c6e1 100644 --- a/arch/arm/configs/am200epdkit_defconfig +++ b/arch/arm/configs/am200epdkit_defconfig @@ -7,7 +7,6 @@ CONFIG_EXPERT=y # CONFIG_ARCH_MULTI_V7 is not set CONFIG_ARCH_PXA=y CONFIG_ARCH_GUMSTIX=y -CONFIG_AEABI=y # CONFIG_OABI_COMPAT is not set CONFIG_CMDLINE="console=ttyS0,115200n8 root=1f01 rootfstype=jffs2" CONFIG_MODULES=y diff --git a/arch/arm/configs/aspeed_g4_defconfig b/arch/arm/configs/aspeed_g4_defconfig index 45d8738abb75..3dcb80157f77 100644 --- a/arch/arm/configs/aspeed_g4_defconfig +++ b/arch/arm/configs/aspeed_g4_defconfig @@ -22,7 +22,6 @@ CONFIG_KEXEC=y CONFIG_ARCH_ASPEED=y CONFIG_MACH_ASPEED_G4=y CONFIG_VMSPLIT_2G=y -CONFIG_AEABI=y CONFIG_UACCESS_WITH_MEMCPY=y # CONFIG_ATAGS is not set CONFIG_JUMP_LABEL=y diff --git a/arch/arm/configs/assabet_defconfig b/arch/arm/configs/assabet_defconfig index 07ab9eaac4af..df63889b0c4c 100644 --- a/arch/arm/configs/assabet_defconfig +++ b/arch/arm/configs/assabet_defconfig @@ -5,6 +5,7 @@ CONFIG_ARCH_MULTI_V4=y # CONFIG_ARCH_MULTI_V7 is not set CONFIG_ARCH_SA1100=y CONFIG_SA1100_ASSABET=y +# CONFIG_AEABI is not set CONFIG_CMDLINE="mem=32M console=ttySA0,38400n8 initrd=0xc0800000,3M root=/dev/ram" CONFIG_FPE_NWFPE=y CONFIG_PM=y diff --git a/arch/arm/configs/at91_dt_defconfig b/arch/arm/configs/at91_dt_defconfig index e331242dece7..320eb27a6a2e 100644 --- a/arch/arm/configs/at91_dt_defconfig +++ b/arch/arm/configs/at91_dt_defconfig @@ -18,7 +18,6 @@ CONFIG_SOC_AT91SAM9=y CONFIG_SOC_SAM9X60=y CONFIG_SOC_SAM9X7=y # CONFIG_ATMEL_CLOCKSOURCE_PIT is not set -CONFIG_AEABI=y CONFIG_UACCESS_WITH_MEMCPY=y # CONFIG_ATAGS is not set CONFIG_ARM_APPENDED_DTB=y diff --git a/arch/arm/configs/axm55xx_defconfig b/arch/arm/configs/axm55xx_defconfig index 0952e5e94c5e..12c59a4ee504 100644 --- a/arch/arm/configs/axm55xx_defconfig +++ b/arch/arm/configs/axm55xx_defconfig @@ -38,7 +38,6 @@ CONFIG_PCIE_AXXIA=y CONFIG_SMP=y CONFIG_NR_CPUS=16 CONFIG_HOTPLUG_CPU=y -CONFIG_AEABI=y CONFIG_OABI_COMPAT=y CONFIG_HIGHMEM=y CONFIG_ARM_APPENDED_DTB=y diff --git a/arch/arm/configs/bcm2835_defconfig b/arch/arm/configs/bcm2835_defconfig index 4a8ac09843d7..b469ecc36cf5 100644 --- a/arch/arm/configs/bcm2835_defconfig +++ b/arch/arm/configs/bcm2835_defconfig @@ -25,7 +25,6 @@ CONFIG_CRASH_DUMP=y CONFIG_ARCH_MULTI_V6=y CONFIG_ARCH_BCM=y CONFIG_ARCH_BCM2835=y -CONFIG_AEABI=y CONFIG_SECCOMP=y CONFIG_KEXEC=y CONFIG_CPU_FREQ=y diff --git a/arch/arm/configs/clps711x_defconfig b/arch/arm/configs/clps711x_defconfig index f66d502ce2ef..7ba344e84c62 100644 --- a/arch/arm/configs/clps711x_defconfig +++ b/arch/arm/configs/clps711x_defconfig @@ -6,7 +6,6 @@ CONFIG_RD_LZMA=y CONFIG_EXPERT=y CONFIG_JUMP_LABEL=y CONFIG_PARTITION_ADVANCED=y -CONFIG_AEABI=y # CONFIG_COREDUMP is not set CONFIG_SLUB_TINY=y CONFIG_NET=y diff --git a/arch/arm/configs/collie_defconfig b/arch/arm/configs/collie_defconfig index 578c6a4af620..165202960438 100644 --- a/arch/arm/configs/collie_defconfig +++ b/arch/arm/configs/collie_defconfig @@ -10,7 +10,6 @@ CONFIG_ARCH_MULTI_V4=y CONFIG_ARCH_SA1100=y CONFIG_SA1100_COLLIE=y CONFIG_CMDLINE="noinitrd root=/dev/mtdblock2 rootfstype=jffs2 fbcon=rotate:1" -CONFIG_FPE_NWFPE=y CONFIG_PM=y # CONFIG_SWAP is not set CONFIG_SLUB_TINY=y diff --git a/arch/arm/configs/davinci_all_defconfig b/arch/arm/configs/davinci_all_defconfig index 72703ef0c51c..e6fbe1f03920 100644 --- a/arch/arm/configs/davinci_all_defconfig +++ b/arch/arm/configs/davinci_all_defconfig @@ -17,7 +17,6 @@ CONFIG_ARCH_DAVINCI=y CONFIG_ARCH_DAVINCI_DA850=y CONFIG_DAVINCI_MUX_DEBUG=y CONFIG_DAVINCI_MUX_WARNINGS=y -CONFIG_AEABI=y CONFIG_SECCOMP=y CONFIG_ARM_APPENDED_DTB=y CONFIG_ARM_ATAG_DTB_COMPAT=y diff --git a/arch/arm/configs/dove_defconfig b/arch/arm/configs/dove_defconfig index b6ed01216a62..08271e6719d7 100644 --- a/arch/arm/configs/dove_defconfig +++ b/arch/arm/configs/dove_defconfig @@ -7,7 +7,6 @@ CONFIG_EXPERT=y CONFIG_ARCH_MULTI_V7=y CONFIG_ARCH_DOVE=y CONFIG_MACH_CM_A510=y -CONFIG_AEABI=y CONFIG_HIGHMEM=y CONFIG_ARM_APPENDED_DTB=y CONFIG_ARM_ATAG_DTB_COMPAT=y diff --git a/arch/arm/configs/ep93xx_defconfig b/arch/arm/configs/ep93xx_defconfig index ce41dc8c435c..6863d8fd7713 100644 --- a/arch/arm/configs/ep93xx_defconfig +++ b/arch/arm/configs/ep93xx_defconfig @@ -18,7 +18,6 @@ CONFIG_MACH_EDB9315=y CONFIG_MACH_EDB9315A=y CONFIG_MACH_TS72XX=y CONFIG_MACH_VISION_EP9307=y -CONFIG_AEABI=y CONFIG_CMDLINE="console=ttyAM0,115200 root=/dev/nfs ip=bootp" CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y diff --git a/arch/arm/configs/footbridge_defconfig b/arch/arm/configs/footbridge_defconfig index 5f6963687ee4..589b7b1df8c6 100644 --- a/arch/arm/configs/footbridge_defconfig +++ b/arch/arm/configs/footbridge_defconfig @@ -11,6 +11,7 @@ CONFIG_ARCH_EBSA285_HOST=y CONFIG_ARCH_NETWINDER=y CONFIG_FPE_NWFPE=y CONFIG_FPE_NWFPE_XP=y +# CONFIG_AEABI is not set CONFIG_MODULES=y CONFIG_PARTITION_ADVANCED=y CONFIG_ACORN_PARTITION=y diff --git a/arch/arm/configs/gemini_defconfig b/arch/arm/configs/gemini_defconfig index 7b1daec630cb..5860b2fe7d1f 100644 --- a/arch/arm/configs/gemini_defconfig +++ b/arch/arm/configs/gemini_defconfig @@ -11,7 +11,6 @@ CONFIG_KEXEC=y CONFIG_ARCH_MULTI_V4=y # CONFIG_ARCH_MULTI_V7 is not set CONFIG_ARCH_GEMINI=y -CONFIG_AEABI=y CONFIG_HIGHMEM=y CONFIG_CMDLINE="console=ttyS0,115200n8" CONFIG_PM=y diff --git a/arch/arm/configs/h3600_defconfig b/arch/arm/configs/h3600_defconfig index 4e272875c797..0923d331190a 100644 --- a/arch/arm/configs/h3600_defconfig +++ b/arch/arm/configs/h3600_defconfig @@ -9,7 +9,6 @@ CONFIG_ARCH_MULTI_V4=y CONFIG_ARCH_SA1100=y CONFIG_SA1100_H3600=y # CONFIG_CPU_FREQ_STAT is not set -CONFIG_FPE_NWFPE=y CONFIG_MODULES=y CONFIG_NET=y CONFIG_UNIX=y diff --git a/arch/arm/configs/hisi_defconfig b/arch/arm/configs/hisi_defconfig index dde9cff951d4..c89b743784ca 100644 --- a/arch/arm/configs/hisi_defconfig +++ b/arch/arm/configs/hisi_defconfig @@ -10,7 +10,6 @@ CONFIG_ARCH_HIP04=y CONFIG_ARCH_HIX5HD2=y CONFIG_SMP=y CONFIG_NR_CPUS=16 -CONFIG_AEABI=y CONFIG_HIGHMEM=y CONFIG_ARM_APPENDED_DTB=y CONFIG_ARM_ATAG_DTB_COMPAT=y diff --git a/arch/arm/configs/imx_v4_v5_defconfig b/arch/arm/configs/imx_v4_v5_defconfig index 9139d1784c70..871e93dd65b5 100644 --- a/arch/arm/configs/imx_v4_v5_defconfig +++ b/arch/arm/configs/imx_v4_v5_defconfig @@ -15,7 +15,6 @@ CONFIG_ARCH_MXC=y CONFIG_SOC_IMX1=y CONFIG_SOC_IMX25=y CONFIG_SOC_IMX27=y -CONFIG_AEABI=y CONFIG_PM_DEBUG=y CONFIG_KPROBES=y CONFIG_MODULES=y diff --git a/arch/arm/configs/integrator_defconfig b/arch/arm/configs/integrator_defconfig index 61711d4bbf74..ba38ec810a61 100644 --- a/arch/arm/configs/integrator_defconfig +++ b/arch/arm/configs/integrator_defconfig @@ -13,7 +13,6 @@ CONFIG_ARCH_INTEGRATOR=y CONFIG_ARCH_INTEGRATOR_AP=y CONFIG_INTEGRATOR_IMPD1=y CONFIG_ARCH_INTEGRATOR_CP=y -CONFIG_AEABI=y # CONFIG_ATAGS is not set CONFIG_CMDLINE="console=ttyAM0,38400n8 root=/dev/nfs ip=bootp" CONFIG_CPU_FREQ=y diff --git a/arch/arm/configs/ixp4xx_defconfig b/arch/arm/configs/ixp4xx_defconfig index 418ef909572b..122ca7354986 100644 --- a/arch/arm/configs/ixp4xx_defconfig +++ b/arch/arm/configs/ixp4xx_defconfig @@ -9,7 +9,6 @@ CONFIG_EXPERT=y # CONFIG_ARCH_MULTI_V7 is not set CONFIG_ARCH_IXP4XX=y CONFIG_CPU_BIG_ENDIAN=y -CONFIG_AEABI=y CONFIG_CMDLINE="console=ttyS0,115200" CONFIG_STRICT_KERNEL_RWX=y CONFIG_STRICT_MODULE_RWX=y diff --git a/arch/arm/configs/jornada720_defconfig b/arch/arm/configs/jornada720_defconfig index d57285cfefb2..0ebddd083b36 100644 --- a/arch/arm/configs/jornada720_defconfig +++ b/arch/arm/configs/jornada720_defconfig @@ -5,7 +5,6 @@ CONFIG_ARCH_MULTI_V4=y CONFIG_ARCH_SA1100=y CONFIG_SA1100_JORNADA720=y CONFIG_SA1100_JORNADA720_SSP=y -CONFIG_FPE_NWFPE=y CONFIG_PM=y CONFIG_MODULES=y CONFIG_NET=y diff --git a/arch/arm/configs/keystone_defconfig b/arch/arm/configs/keystone_defconfig index b0cadd878152..af91b9a420c9 100644 --- a/arch/arm/configs/keystone_defconfig +++ b/arch/arm/configs/keystone_defconfig @@ -22,7 +22,6 @@ CONFIG_PCI_KEYSTONE=y CONFIG_SMP=y CONFIG_HOTPLUG_CPU=y CONFIG_ARM_PSCI=y -CONFIG_AEABI=y CONFIG_HIGHMEM=y CONFIG_VFP=y CONFIG_NEON=y diff --git a/arch/arm/configs/lpc32xx_defconfig b/arch/arm/configs/lpc32xx_defconfig index b9e2e603cd95..c0b45eea1b0f 100644 --- a/arch/arm/configs/lpc32xx_defconfig +++ b/arch/arm/configs/lpc32xx_defconfig @@ -10,7 +10,6 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_EXPERT=y # CONFIG_ARCH_MULTI_V7 is not set CONFIG_ARCH_LPC32XX=y -CONFIG_AEABI=y CONFIG_ARM_APPENDED_DTB=y CONFIG_ARM_ATAG_DTB_COMPAT=y CONFIG_CMDLINE="console=ttyS0,115200n81 root=/dev/ram0" diff --git a/arch/arm/configs/mmp2_defconfig b/arch/arm/configs/mmp2_defconfig index 0ea608c75f22..2ca166d4e78f 100644 --- a/arch/arm/configs/mmp2_defconfig +++ b/arch/arm/configs/mmp2_defconfig @@ -4,7 +4,6 @@ CONFIG_PREEMPT=y CONFIG_LOG_BUF_SHIFT=14 # CONFIG_BLK_DEV_BSG is not set CONFIG_ARCH_MMP=y -CONFIG_AEABI=y CONFIG_MACH_MMP2_DT=y CONFIG_CMDLINE="root=/dev/nfs rootfstype=nfs nfsroot=192.168.1.100:/nfsroot/ ip=192.168.1.101:192.168.1.100::255.255.255.0::eth0:on console=ttyS2,38400 mem=128M user_debug=255 earlyprintk" CONFIG_VFP=y diff --git a/arch/arm/configs/moxart_defconfig b/arch/arm/configs/moxart_defconfig index e2d9f3610063..d97d9ea5c34d 100644 --- a/arch/arm/configs/moxart_defconfig +++ b/arch/arm/configs/moxart_defconfig @@ -16,7 +16,6 @@ CONFIG_ARCH_MULTI_V4=y # CONFIG_ARCH_MULTI_V7 is not set CONFIG_ARCH_MOXART=y CONFIG_MACH_UC7112LX=y -CONFIG_AEABI=y # CONFIG_ATAGS is not set CONFIG_ARM_APPENDED_DTB=y # CONFIG_SWAP is not set diff --git a/arch/arm/configs/multi_v4t_defconfig b/arch/arm/configs/multi_v4t_defconfig index 1a86dc305523..14c93bb59ad6 100644 --- a/arch/arm/configs/multi_v4t_defconfig +++ b/arch/arm/configs/multi_v4t_defconfig @@ -17,7 +17,6 @@ CONFIG_INTEGRATOR_IMPD1=y CONFIG_INTEGRATOR_CM720T=y CONFIG_INTEGRATOR_CM920T=y CONFIG_INTEGRATOR_CM922T_XA10=y -CONFIG_AEABI=y # CONFIG_ATAGS is not set CONFIG_CPU_IDLE=y CONFIG_ARM_CPUIDLE=y diff --git a/arch/arm/configs/multi_v5_defconfig b/arch/arm/configs/multi_v5_defconfig index d237ea8ea327..7eab9fb9ffc4 100644 --- a/arch/arm/configs/multi_v5_defconfig +++ b/arch/arm/configs/multi_v5_defconfig @@ -36,7 +36,6 @@ CONFIG_MACH_NET2BIG=y CONFIG_MACH_MSS2_DT=y CONFIG_ARCH_SUNXI=y CONFIG_ARCH_VERSATILE=y -CONFIG_AEABI=y CONFIG_HIGHMEM=y CONFIG_ARM_APPENDED_DTB=y CONFIG_ARM_ATAG_DTB_COMPAT=y diff --git a/arch/arm/configs/mv78xx0_defconfig b/arch/arm/configs/mv78xx0_defconfig index 1174893102bd..823f7963b8b3 100644 --- a/arch/arm/configs/mv78xx0_defconfig +++ b/arch/arm/configs/mv78xx0_defconfig @@ -11,9 +11,7 @@ CONFIG_ARCH_MULTI_V5=y # CONFIG_ARCH_MULTI_V7 is not set CONFIG_ARCH_MV78XX0=y CONFIG_MACH_TERASTATION_WXL=y -CONFIG_AEABI=y CONFIG_HIGHMEM=y -CONFIG_FPE_NWFPE=y CONFIG_VFP=y CONFIG_KPROBES=y CONFIG_MODULES=y diff --git a/arch/arm/configs/mvebu_v5_defconfig b/arch/arm/configs/mvebu_v5_defconfig index 781f8f72df5f..0709a5e66bb5 100644 --- a/arch/arm/configs/mvebu_v5_defconfig +++ b/arch/arm/configs/mvebu_v5_defconfig @@ -22,7 +22,6 @@ CONFIG_MACH_MV2120=y CONFIG_MACH_D2NET_DT=y CONFIG_MACH_NET2BIG=y CONFIG_MACH_MSS2_DT=y -CONFIG_AEABI=y CONFIG_HIGHMEM=y CONFIG_ARM_APPENDED_DTB=y CONFIG_ARM_ATAG_DTB_COMPAT=y diff --git a/arch/arm/configs/mxs_defconfig b/arch/arm/configs/mxs_defconfig index 603fb003b223..b0b5eb33d01e 100644 --- a/arch/arm/configs/mxs_defconfig +++ b/arch/arm/configs/mxs_defconfig @@ -17,7 +17,6 @@ CONFIG_BLK_DEV_INITRD=y CONFIG_PERF_EVENTS=y # CONFIG_ARCH_MULTI_V7 is not set CONFIG_ARCH_MXS=y -CONFIG_AEABI=y CONFIG_MODULES=y CONFIG_MODULE_FORCE_LOAD=y CONFIG_MODULE_UNLOAD=y diff --git a/arch/arm/configs/neponset_defconfig b/arch/arm/configs/neponset_defconfig index 8a5dcca743fc..c3010a4d93a8 100644 --- a/arch/arm/configs/neponset_defconfig +++ b/arch/arm/configs/neponset_defconfig @@ -11,6 +11,7 @@ CONFIG_ZBOOT_ROM_BSS=0xc1000000 CONFIG_ZBOOT_ROM=y CONFIG_CMDLINE="console=ttySA0,38400n8 cpufreq=221200 rw root=/dev/mtdblock2 mtdparts=sa1100:512K(boot),1M(kernel),2560K(initrd),4M(root) mem=32M noinitrd initrd=0xc0800000,3M" CONFIG_FPE_NWFPE=y +# CONFIG_AEABI is not set CONFIG_PM=y CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y diff --git a/arch/arm/configs/netwinder_defconfig b/arch/arm/configs/netwinder_defconfig index e639e6ad02cb..7ff70439458d 100644 --- a/arch/arm/configs/netwinder_defconfig +++ b/arch/arm/configs/netwinder_defconfig @@ -4,6 +4,7 @@ CONFIG_ARCH_MULTI_V4=y # CONFIG_ARCH_MULTI_V7 is not set CONFIG_ARCH_FOOTBRIDGE=y CONFIG_ARCH_NETWINDER=y +# CONFIG_AEABI is not set CONFIG_DEPRECATED_PARAM_STRUCT=y CONFIG_CMDLINE="root=0x801" CONFIG_FPE_NWFPE=y diff --git a/arch/arm/configs/nhk8815_defconfig b/arch/arm/configs/nhk8815_defconfig index 696b4fbc2412..7a307bd93730 100644 --- a/arch/arm/configs/nhk8815_defconfig +++ b/arch/arm/configs/nhk8815_defconfig @@ -12,7 +12,6 @@ CONFIG_KALLSYMS_ALL=y # CONFIG_ARCH_MULTI_V7 is not set CONFIG_ARCH_NOMADIK=y CONFIG_MACH_NOMADIK_8815NHK=y -CONFIG_AEABI=y CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y # CONFIG_SWAP is not set diff --git a/arch/arm/configs/omap1_defconfig b/arch/arm/configs/omap1_defconfig index 7bf58e8a5ab5..8d11ba724204 100644 --- a/arch/arm/configs/omap1_defconfig +++ b/arch/arm/configs/omap1_defconfig @@ -28,9 +28,7 @@ CONFIG_MACH_OMAP_PALMTE=y CONFIG_MACH_SX1=y CONFIG_MACH_NOKIA770=y CONFIG_MACH_AMS_DELTA=y -CONFIG_AEABI=y CONFIG_CMDLINE="root=1f03 rootfstype=jffs2" -CONFIG_FPE_NWFPE=y # CONFIG_SUSPEND is not set CONFIG_PM=y CONFIG_MODULES=y diff --git a/arch/arm/configs/orion5x_defconfig b/arch/arm/configs/orion5x_defconfig index f5be2e26d9ae..d658d5e04e2d 100644 --- a/arch/arm/configs/orion5x_defconfig +++ b/arch/arm/configs/orion5x_defconfig @@ -20,10 +20,8 @@ CONFIG_MACH_TS409=y CONFIG_MACH_TS78XX=y CONFIG_MACH_MV2120=y CONFIG_MACH_NET2BIG=y -CONFIG_AEABI=y CONFIG_ARM_APPENDED_DTB=y CONFIG_ARM_ATAG_DTB_COMPAT=y -CONFIG_FPE_NWFPE=y CONFIG_VFP=y CONFIG_KPROBES=y CONFIG_MODULES=y diff --git a/arch/arm/configs/pxa168_defconfig b/arch/arm/configs/pxa168_defconfig index 8cbca84fe33a..d6af01434f04 100644 --- a/arch/arm/configs/pxa168_defconfig +++ b/arch/arm/configs/pxa168_defconfig @@ -3,11 +3,9 @@ CONFIG_SYSVIPC=y CONFIG_NO_HZ_IDLE=y CONFIG_HIGH_RES_TIMERS=y CONFIG_PREEMPT=y -CONFIG_AEABI=y CONFIG_LOG_BUF_SHIFT=14 CONFIG_ARCH_MMP=y CONFIG_CMDLINE="root=/dev/nfs rootfstype=nfs nfsroot=192.168.2.100:/nfsroot/ ip=192.168.2.101:192.168.2.100::255.255.255.0::eth0:on console=ttyS0,115200 mem=128M" -CONFIG_FPE_NWFPE=y CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y CONFIG_MODULE_FORCE_UNLOAD=y diff --git a/arch/arm/configs/pxa3xx_defconfig b/arch/arm/configs/pxa3xx_defconfig index fb272e3a2337..2a777698d06f 100644 --- a/arch/arm/configs/pxa3xx_defconfig +++ b/arch/arm/configs/pxa3xx_defconfig @@ -7,9 +7,7 @@ CONFIG_KALLSYMS_ALL=y # CONFIG_ARCH_MULTI_V7 is not set CONFIG_ARCH_PXA=y CONFIG_MACH_PXA3XX_DT=y -CONFIG_AEABI=y CONFIG_CMDLINE="root=/dev/nfs rootfstype=nfs nfsroot=192.168.1.100:/nfsroot/ ip=192.168.1.101:192.168.1.100::255.255.255.0::eth0:on console=ttyS0,115200 mem=64M debug" -CONFIG_FPE_NWFPE=y CONFIG_MODULES=y CONFIG_NET=y CONFIG_PACKET=y diff --git a/arch/arm/configs/pxa910_defconfig b/arch/arm/configs/pxa910_defconfig index 71ed0d73f8a9..9e7b11d1e723 100644 --- a/arch/arm/configs/pxa910_defconfig +++ b/arch/arm/configs/pxa910_defconfig @@ -10,8 +10,6 @@ CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y CONFIG_MODULE_FORCE_UNLOAD=y # CONFIG_BLK_DEV_BSG is not set -CONFIG_AEABI=y -CONFIG_FPE_NWFPE=y CONFIG_NET=y CONFIG_PACKET=y CONFIG_UNIX=y diff --git a/arch/arm/configs/pxa_defconfig b/arch/arm/configs/pxa_defconfig index 66cc149c5ca4..396680975506 100644 --- a/arch/arm/configs/pxa_defconfig +++ b/arch/arm/configs/pxa_defconfig @@ -20,7 +20,6 @@ CONFIG_ARCH_GUMSTIX=y CONFIG_PXA_SHARPSL=y CONFIG_MACH_AKITA=y CONFIG_MACH_BORZOI=y -CONFIG_AEABI=y CONFIG_ARCH_FORCE_MAX_ORDER=8 CONFIG_CMDLINE="root=/dev/ram0 ro" CONFIG_CPU_FREQ=y diff --git a/arch/arm/configs/rpc_defconfig b/arch/arm/configs/rpc_defconfig index 46df453e224e..8d73ec43cb41 100644 --- a/arch/arm/configs/rpc_defconfig +++ b/arch/arm/configs/rpc_defconfig @@ -7,6 +7,7 @@ CONFIG_ARCH_MULTI_V4=y CONFIG_ARCH_RPC=y CONFIG_CPU_SA110=y CONFIG_FPE_NWFPE=y +# CONFIG_AEABI is not set CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y CONFIG_PARTITION_ADVANCED=y diff --git a/arch/arm/configs/spear13xx_defconfig b/arch/arm/configs/spear13xx_defconfig index 6712ae741c19..648260f536a1 100644 --- a/arch/arm/configs/spear13xx_defconfig +++ b/arch/arm/configs/spear13xx_defconfig @@ -9,7 +9,6 @@ CONFIG_MACH_SPEAR1340=y CONFIG_SMP=y # CONFIG_SMP_ON_UP is not set # CONFIG_ARM_CPU_TOPOLOGY is not set -CONFIG_AEABI=y CONFIG_ARM_APPENDED_DTB=y CONFIG_ARM_ATAG_DTB_COMPAT=y CONFIG_VFP=y diff --git a/arch/arm/configs/spitz_defconfig b/arch/arm/configs/spitz_defconfig index 8f8a058294fb..d68a8f9cdad4 100644 --- a/arch/arm/configs/spitz_defconfig +++ b/arch/arm/configs/spitz_defconfig @@ -11,7 +11,6 @@ CONFIG_PXA_SHARPSL=y CONFIG_MACH_AKITA=y CONFIG_MACH_BORZOI=y CONFIG_CMDLINE="console=ttyS0,115200n8 console=tty1 noinitrd root=/dev/mtdblock2 rootfstype=jffs2 debug" -CONFIG_FPE_NWFPE=y CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y CONFIG_MODULE_FORCE_UNLOAD=y diff --git a/arch/arm/configs/versatile_defconfig b/arch/arm/configs/versatile_defconfig index 849118cbbb44..8e89debb5a5b 100644 --- a/arch/arm/configs/versatile_defconfig +++ b/arch/arm/configs/versatile_defconfig @@ -6,7 +6,6 @@ CONFIG_LOG_BUF_SHIFT=14 CONFIG_BLK_DEV_INITRD=y # CONFIG_ARCH_MULTI_V7 is not set CONFIG_ARCH_VERSATILE=y -CONFIG_AEABI=y CONFIG_OABI_COMPAT=y CONFIG_CMDLINE="root=1f03 mem=32M" CONFIG_FPE_NWFPE=y diff --git a/arch/arm/configs/vt8500_v6_v7_defconfig b/arch/arm/configs/vt8500_v6_v7_defconfig index 41607a84abc8..2925a1f1dbb6 100644 --- a/arch/arm/configs/vt8500_v6_v7_defconfig +++ b/arch/arm/configs/vt8500_v6_v7_defconfig @@ -8,7 +8,6 @@ CONFIG_ARM_ERRATA_720789=y CONFIG_ARM_ERRATA_754322=y CONFIG_ARM_ERRATA_775420=y CONFIG_HAVE_ARM_ARCH_TIMER=y -CONFIG_AEABI=y CONFIG_HIGHMEM=y CONFIG_HIGHPTE=y CONFIG_ARM_APPENDED_DTB=y diff --git a/arch/arm/configs/wpcm450_defconfig b/arch/arm/configs/wpcm450_defconfig index 67b64a378166..9cb379077d70 100644 --- a/arch/arm/configs/wpcm450_defconfig +++ b/arch/arm/configs/wpcm450_defconfig @@ -13,7 +13,6 @@ CONFIG_PROFILING=y CONFIG_ARCH_NPCM=y CONFIG_ARCH_WPCM450=y CONFIG_CPU_DCACHE_WRITETHROUGH=y -CONFIG_AEABI=y CONFIG_UACCESS_WITH_MEMCPY=y # CONFIG_ATAGS is not set CONFIG_ARM_APPENDED_DTB=y From 25900bd99d4d10faa939a79e2fdc49c3373b51e7 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Tue, 20 Aug 2024 10:45:38 +0200 Subject: [PATCH 02/19] ARM: limit OABI support to StrongARM CPUs As discussed on the mailing lists, there is no way to build OABI userspace binaries any more since gcc-4.8, and now support is also getting dropped in binutils, which will make it impossible to build pure OABI kernels at some point in the future. I found no evidence of anyone still sing OABI userspace on embedded systems that keep getting kernel updates, but there are a few desktop-class machines that date back to the 1990s using Intel StrongARM processors that were supported by old versions of Debian, Red Hat or the official Corel Netwinder distribution. Add a much stricter Kconfig dependency for both native OABI and OABI_COMPAT enabled kernels, only allowing either of them to be selected when building a kernel that targets a StrongARM based machine. Link: https://lore.kernel.org/lkml/2831c5a6-cfbf-4fe0-b51c-0396e5b0aeb7@app.fastmail.com/ Acked-by: Linus Walleij Signed-off-by: Arnd Bergmann --- arch/arm/Kconfig | 14 +++++++------- arch/arm/configs/am200epdkit_defconfig | 1 - arch/arm/configs/axm55xx_defconfig | 1 - arch/arm/configs/versatile_defconfig | 1 - 4 files changed, 7 insertions(+), 10 deletions(-) diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index ccc0114d30de..3b2316dc9d13 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -1151,8 +1151,7 @@ config ARM_PATCH_IDIV code to do integer division. config AEABI - bool "Use the ARM EABI to compile the kernel" if !CPU_V7 && \ - !CPU_V7M && !CPU_V6 && !CPU_V6K && !CC_IS_CLANG + bool "Use the ARM EABI to compile the kernel" if CPU_SA110 || CPU_SA1100 default y help The Arm EABI is the default ABI on all modern Linux @@ -1162,9 +1161,13 @@ config AEABI Everyone should enable this, as support for OABI user space was dropped in gcc-4.8 and most distributions after ca. 2013. + Support for OABI mode will be removed from the kernel + once Intel StrongARM CPUs are phased out. + config OABI_COMPAT bool "Allow old ABI binaries to run with this kernel (EXPERIMENTAL)" depends on AEABI && !THUMB2_KERNEL + depends on CPU_SA110 || CPU_SA1100 help This option preserves the old syscall interface along with the new (ARM EABI) one. It also provides a compatibility layer to @@ -1177,11 +1180,8 @@ config OABI_COMPAT selected, since there is no way yet to sensibly distinguish between calling conventions during filtering. - If you know you'll be using only pure EABI user space then you - can say N here. If this option is not selected and you attempt - to execute a legacy ABI binary then the result will be - UNPREDICTABLE (in fact it can be predicted that it won't work - at all). If in doubt say N. + Support for OABI_COMPAT will be removed from the kernel + once Intel StrongARM CPUs are phased out. config ARCH_SELECT_MEMORY_MODEL def_bool y diff --git a/arch/arm/configs/am200epdkit_defconfig b/arch/arm/configs/am200epdkit_defconfig index b3f81237c6e1..d4745b0f3dcb 100644 --- a/arch/arm/configs/am200epdkit_defconfig +++ b/arch/arm/configs/am200epdkit_defconfig @@ -7,7 +7,6 @@ CONFIG_EXPERT=y # CONFIG_ARCH_MULTI_V7 is not set CONFIG_ARCH_PXA=y CONFIG_ARCH_GUMSTIX=y -# CONFIG_OABI_COMPAT is not set CONFIG_CMDLINE="console=ttyS0,115200n8 root=1f01 rootfstype=jffs2" CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y diff --git a/arch/arm/configs/axm55xx_defconfig b/arch/arm/configs/axm55xx_defconfig index 12c59a4ee504..541e38e2205b 100644 --- a/arch/arm/configs/axm55xx_defconfig +++ b/arch/arm/configs/axm55xx_defconfig @@ -38,7 +38,6 @@ CONFIG_PCIE_AXXIA=y CONFIG_SMP=y CONFIG_NR_CPUS=16 CONFIG_HOTPLUG_CPU=y -CONFIG_OABI_COMPAT=y CONFIG_HIGHMEM=y CONFIG_ARM_APPENDED_DTB=y CONFIG_ARM_ATAG_DTB_COMPAT=y diff --git a/arch/arm/configs/versatile_defconfig b/arch/arm/configs/versatile_defconfig index 8e89debb5a5b..bb9eb9ccbbde 100644 --- a/arch/arm/configs/versatile_defconfig +++ b/arch/arm/configs/versatile_defconfig @@ -6,7 +6,6 @@ CONFIG_LOG_BUF_SHIFT=14 CONFIG_BLK_DEV_INITRD=y # CONFIG_ARCH_MULTI_V7 is not set CONFIG_ARCH_VERSATILE=y -CONFIG_OABI_COMPAT=y CONFIG_CMDLINE="root=1f03 mem=32M" CONFIG_FPE_NWFPE=y CONFIG_VFP=y From d70242427110123b65c095594eb74a703d3af156 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Tue, 20 Aug 2024 18:52:48 +0000 Subject: [PATCH 03/19] ARM: rework ARM11 CPU selection logic Support for SMP on ARM1136r0 has been broken for a while, and nobody is working on fixing it. I had a plan to change ARMv6 support to no longer coexist in a common kernel with ARMv7 CPUs but instead ARMv5 and below. This would have addressed the problem, but after a recent mailing list discussion, we concluded that an easier approach is to just forbid ARM1136r0 CPU support on SMP-enabled kernels. This mainly affects users of the Nokia N800/N810 tablets using an OMAP2420 SoC, which is the only commercial product with an ARM1136r0 that is still supported by the kernel. The other machines that are still in the same hardware catogory are: - TI OMAP2420 H4 reference board - TI OMAP2430 SDP software development platform - Freescale/NXP i.MX31 Lite Development Kit - Buglabs i.MX31 Bug 1.x prototype - Arm Integrator/AP with CM1136JF-S core module To my knowledge, none of these have any actual users aside from reference boards being used to more easily test the platforms. There are also a few ARM1136r1 machines, which implement the ARMv6K SMP support (barriers, atomics and TLS): - Eukrea CPUIMX35 reference platform - Freescale/NXP i.MX35 Product Development Kit - ARM Integrator/CP/IM-LT3 with ARM1136J Core Tile - ARM Realview/EB with ARM1136J Core Tile Again, these are mainly reference implementations rather than actual products, but since they support ARMv6K, they should continue to work correctly in SMP-enabled kernels. For the ARM Core Tile, I have not found a datasheet but instead use the revision based on what the respective virtual models report. All the other ARMv6 platforms use an ARM1176 with ARMv6K, VMSAv7 and Trustzone support. To avoid the broken configuration, annotate the ARM1136 based machines with specific CPU_ARM1136R0 or CPU_ARM1136R2 symbols in Kconfig and make the r0 variants depend on !SMP. Link: https://lore.kernel.org/linux-arm-kernel/2831c5a6-cfbf-4fe0-b51c-0396e5b0aeb7@app.fastmail.com/T/ Acked-by: Linus Walleij Acked-by: Aaro Koskinen # OMAP Signed-off-by: Arnd Bergmann --- arch/arm/Kconfig.platforms | 2 +- arch/arm/mach-imx/Kconfig | 4 +++- arch/arm/mach-omap2/Kconfig | 3 ++- arch/arm/mach-versatile/Kconfig | 10 +++++----- arch/arm/mm/Kconfig | 24 +++++++++++++++++++++++- 5 files changed, 34 insertions(+), 9 deletions(-) diff --git a/arch/arm/Kconfig.platforms b/arch/arm/Kconfig.platforms index 386eccc81868..2e118b65f93b 100644 --- a/arch/arm/Kconfig.platforms +++ b/arch/arm/Kconfig.platforms @@ -33,7 +33,7 @@ config ARCH_MULTI_V4_V5 config ARCH_MULTI_V6 bool "ARMv6 based platforms (ARM11)" select ARCH_MULTI_V6_V7 - select CPU_V6K + select CPU_ARM1176 config ARCH_MULTI_V7 bool "ARMv7 based platforms (Cortex-A, PJ4, Scorpion, Krait)" diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig index a361840d7a04..041e73ad203a 100644 --- a/arch/arm/mach-imx/Kconfig +++ b/arch/arm/mach-imx/Kconfig @@ -41,13 +41,15 @@ comment "ARM1136 platforms" config SOC_IMX31 bool "i.MX31 support" - select CPU_V6 + depends on !SMP + select CPU_ARM1136R0 select MXC_AVIC help This enables support for Freescale i.MX31 processor config SOC_IMX35 bool "i.MX35 support" + select CPU_ARM1136R1 select MXC_AVIC help This enables support for Freescale i.MX35 processor diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig index f3f19bcfca2c..13987ffbba00 100644 --- a/arch/arm/mach-omap2/Kconfig +++ b/arch/arm/mach-omap2/Kconfig @@ -8,8 +8,9 @@ config OMAP_HWMOD config ARCH_OMAP2 bool "TI OMAP2" depends on ARCH_MULTI_V6 + depends on !SMP select ARCH_OMAP2PLUS - select CPU_V6 + select CPU_ARM1136R0 select OMAP_HWMOD select SOC_HAS_OMAP2_SDRC diff --git a/arch/arm/mach-versatile/Kconfig b/arch/arm/mach-versatile/Kconfig index 513618078440..de42da7de8c8 100644 --- a/arch/arm/mach-versatile/Kconfig +++ b/arch/arm/mach-versatile/Kconfig @@ -113,7 +113,8 @@ config INTEGRATOR_CM1136JFS bool "Integrator/CM1136JF-S core module" depends on ARCH_INTEGRATOR_AP depends on ARCH_MULTI_V6 - select CPU_V6 + depends on !SMP + select CPU_ARM1136R0 config ARCH_INTEGRATOR_CP bool "Support Integrator/CP platform" @@ -135,7 +136,7 @@ config INTEGRATOR_CTB36 bool "Integrator/CTB36 (ARM1136JF-S) core tile" depends on ARCH_INTEGRATOR_CP depends on ARCH_MULTI_V6 - select CPU_V6 + select CPU_ARM1136R1 config ARCH_CINTEGRATOR depends on ARCH_INTEGRATOR_CP @@ -182,7 +183,7 @@ config MACH_REALVIEW_EB config REALVIEW_EB_ARM1136 bool "Support ARM1136J(F)-S Tile" depends on MACH_REALVIEW_EB && ARCH_MULTI_V6 - select CPU_V6 + select CPU_ARM1136R1 help Enable support for the ARM1136 tile fitted to the Realview(R) Emulation Baseboard platform. @@ -201,11 +202,10 @@ config REALVIEW_EB_A9MP Enable support for the Cortex-A9MPCore tile fitted to the Realview(R) Emulation Baseboard platform. -# ARMv6 CPU without K extensions, but does have the new exclusive ops config MACH_REALVIEW_PB1176 bool "Support RealView(R) Platform Baseboard for ARM1176JZF-S" depends on ARCH_MULTI_V6 - select CPU_V6 + select CPU_ARM1176 select HAVE_TCM help Include support for the ARM(R) RealView(R) Platform Baseboard for diff --git a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig index 871bd58d2ccc..f3d71e89a31f 100644 --- a/arch/arm/mm/Kconfig +++ b/arch/arm/mm/Kconfig @@ -376,6 +376,7 @@ config CPU_PJ4B # ARMv6 config CPU_V6 bool + depends on !SMP select CPU_32v6 select CPU_ABRT_EV6 select CPU_CACHE_V6 @@ -386,7 +387,6 @@ config CPU_V6 select CPU_PABRT_V6 select CPU_THUMB_CAPABLE select CPU_TLB_V6 if MMU - select SMP_ON_UP if SMP # ARMv6k config CPU_V6K @@ -403,6 +403,28 @@ config CPU_V6K select CPU_THUMB_CAPABLE select CPU_TLB_V6 if MMU +config CPU_ARM1136R0 + bool + select CPU_V6 + depends on !SMP + help + These early revisions of ARM1136 lack support for the + ARMv6k extensions for multiprocessing. + +config CPU_ARM1136R1 + bool + select CPU_V6K + help + Later revisions of ARM1136 add ARMv6k (atomics, barriers + and TLS register) in addition to the features from r0. + +config CPU_ARM1176 + bool + select CPU_V6K + help + ARM1176 implements ARMv6k, VMSAv7 and Trustzone in + addition to the ARMv6 baseline. + # ARMv7 and ARMv8 architectures config CPU_V7 bool From b5fdfa2081754248d6f25d15af66f2088f9eaff7 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Tue, 20 Aug 2024 21:05:25 +0000 Subject: [PATCH 04/19] ARM: deprecate support for ARM1136r0 This CPU revision remains a special case as it is now incompatible with CONFIG_SMP. Only the Nokia N8x0 is used in practice, and even that one is fairly rare these days, so let's plan to remove all of them after the 2026 LTS kernel release. Acked-by: Linus Walleij Acked-by: Vladimir Zapolskiy # Freescale i.MX31 Acked-by: Aaro Koskinen # OMAP Signed-off-by: Arnd Bergmann --- arch/arm/mach-imx/Kconfig | 5 ++++- arch/arm/mach-omap2/Kconfig | 15 ++++++++++++--- arch/arm/mach-versatile/Kconfig | 5 ++++- arch/arm/mm/Kconfig | 2 ++ 4 files changed, 22 insertions(+), 5 deletions(-) diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig index 041e73ad203a..f85a5f8c0a58 100644 --- a/arch/arm/mach-imx/Kconfig +++ b/arch/arm/mach-imx/Kconfig @@ -40,13 +40,16 @@ if ARCH_MULTI_V6 comment "ARM1136 platforms" config SOC_IMX31 - bool "i.MX31 support" + bool "i.MX31 support (DEPRECATED)" depends on !SMP select CPU_ARM1136R0 select MXC_AVIC help This enables support for Freescale i.MX31 processor + This SoC is scheduled for removal in early 2027, + since it uses the ARM1136r0 CPU revision. + config SOC_IMX35 bool "i.MX35 support" select CPU_ARM1136R1 diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig index 13987ffbba00..79f8afe3a6bf 100644 --- a/arch/arm/mach-omap2/Kconfig +++ b/arch/arm/mach-omap2/Kconfig @@ -207,18 +207,24 @@ comment "OMAP Core Type" depends on ARCH_OMAP2 config SOC_OMAP2420 - bool "OMAP2420 support" + bool "OMAP2420 support (DEPRECATED)" depends on ARCH_OMAP2 default y select OMAP_DM_SYSTIMER select OMAP_DM_TIMER select SOC_HAS_OMAP2_SDRC + help + This SoC is scheduled for removal in early 2027, + since it uses the ARM1136r0 CPU revision. config SOC_OMAP2430 - bool "OMAP2430 support" + bool "OMAP2430 support (DEPRECATED)" depends on ARCH_OMAP2 default y select SOC_HAS_OMAP2_SDRC + help + This SoC is scheduled for removal in early 2027, + since it uses the ARM1136r0 CPU revision. config SOC_OMAP3430 bool "OMAP3430 support" @@ -249,11 +255,14 @@ config MACH_NOKIA_N810_WIMAX bool config MACH_NOKIA_N8X0 - bool "Nokia N800/N810" + bool "Nokia N800/N810 (DEPRECATED)" depends on SOC_OMAP2420 default y select MACH_NOKIA_N810 select MACH_NOKIA_N810_WIMAX + help + This machine is scheduled for removal in early 2027, + since it uses the ARM1136r0 CPU revision. endmenu diff --git a/arch/arm/mach-versatile/Kconfig b/arch/arm/mach-versatile/Kconfig index de42da7de8c8..1ee9b6608d71 100644 --- a/arch/arm/mach-versatile/Kconfig +++ b/arch/arm/mach-versatile/Kconfig @@ -110,11 +110,14 @@ config INTEGRATOR_CM1026EJS select CPU_ARM1026 config INTEGRATOR_CM1136JFS - bool "Integrator/CM1136JF-S core module" + bool "Integrator/CM1136JF-S core module (DEPRECATED)" depends on ARCH_INTEGRATOR_AP depends on ARCH_MULTI_V6 depends on !SMP select CPU_ARM1136R0 + help + This machine is scheduled for removal in early 2027, + since it uses the ARM1136r0 CPU revision. config ARCH_INTEGRATOR_CP bool "Support Integrator/CP platform" diff --git a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig index f3d71e89a31f..27010b9389ad 100644 --- a/arch/arm/mm/Kconfig +++ b/arch/arm/mm/Kconfig @@ -410,6 +410,8 @@ config CPU_ARM1136R0 help These early revisions of ARM1136 lack support for the ARMv6k extensions for multiprocessing. + Support for this revision is scheduled for removal + from the kernel in early 2027. config CPU_ARM1136R1 bool From db75f16378084059d5c75e80dc6d37b0f2a72bd1 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Tue, 20 Aug 2024 21:16:45 +0000 Subject: [PATCH 05/19] ARM: turn CONFIG_ATAGS off by default Only a very small number of machines remain that rely on traditional board files with the ATAGS boot data instead of devicetree, and we have not accepted new ones for a decade. Most of the remaining ones are on their way out of the kernel, but the Kconfig option that controls ATAGS is still enabled by default. To reflect the actual status of ATAGS support and alert the remaining users of upstream and out-of-tree platforms with this, change it to being default-disabled and add a dependency on CONFIG_EXPERT. The board specific defconfig files that rely on ATAGS are changed to turn on both EXPERT and ATAGS if they were not doing that already, and the ones that explicitly turned it off before no longer need to. Acked-by: Linus Walleij Reviewed-by: Ethan Nelson-Moore Acked-by: Aaro Koskinen # OMAP Signed-off-by: Arnd Bergmann --- arch/arm/Kconfig | 13 ++++++++----- arch/arm/configs/am200epdkit_defconfig | 1 + arch/arm/configs/aspeed_g4_defconfig | 1 - arch/arm/configs/aspeed_g5_defconfig | 1 - arch/arm/configs/assabet_defconfig | 2 ++ arch/arm/configs/at91_dt_defconfig | 1 - arch/arm/configs/collie_defconfig | 1 + arch/arm/configs/dove_defconfig | 1 + arch/arm/configs/footbridge_defconfig | 1 + arch/arm/configs/h3600_defconfig | 2 ++ arch/arm/configs/integrator_defconfig | 1 - arch/arm/configs/jornada720_defconfig | 2 ++ arch/arm/configs/moxart_defconfig | 1 - arch/arm/configs/mps2_defconfig | 1 - arch/arm/configs/multi_v4t_defconfig | 1 - arch/arm/configs/mv78xx0_defconfig | 1 + arch/arm/configs/neponset_defconfig | 2 ++ arch/arm/configs/netwinder_defconfig | 2 ++ arch/arm/configs/omap1_defconfig | 1 + arch/arm/configs/rpc_defconfig | 2 ++ arch/arm/configs/s3c6400_defconfig | 2 ++ arch/arm/configs/sama5_defconfig | 1 - arch/arm/configs/sama7_defconfig | 1 - arch/arm/configs/spitz_defconfig | 1 + arch/arm/configs/stm32_defconfig | 1 - arch/arm/configs/wpcm450_defconfig | 1 - 26 files changed, 29 insertions(+), 16 deletions(-) diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 3b2316dc9d13..0033d861e378 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -1390,12 +1390,15 @@ config ARCH_WANT_FLAT_DTB_INSTALL config ATAGS bool "Support for the traditional ATAGS boot data passing" - default y + depends on EXPERT help - This is the traditional way of passing data to the kernel at boot - time. If you are solely relying on the flattened device tree (or - the ARM_ATAG_DTB_COMPAT option) then you may unselect this option - to remove ATAGS support from your kernel binary. + This is the traditional way of passing data to the kernel at + boot but is now only used by a few of the oldest ARMv4 and + ARMv5 machines. Users that still rely on ATAGS should plan + on migrating to devicetree based booting. + + Support for ATAGS will be removed when the last machine using + it is either converted to DT or removed. config DEPRECATED_PARAM_STRUCT bool "Provide old way to pass kernel parameters" diff --git a/arch/arm/configs/am200epdkit_defconfig b/arch/arm/configs/am200epdkit_defconfig index d4745b0f3dcb..61beac88e863 100644 --- a/arch/arm/configs/am200epdkit_defconfig +++ b/arch/arm/configs/am200epdkit_defconfig @@ -7,6 +7,7 @@ CONFIG_EXPERT=y # CONFIG_ARCH_MULTI_V7 is not set CONFIG_ARCH_PXA=y CONFIG_ARCH_GUMSTIX=y +CONFIG_ATAGS=y CONFIG_CMDLINE="console=ttyS0,115200n8 root=1f01 rootfstype=jffs2" CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y diff --git a/arch/arm/configs/aspeed_g4_defconfig b/arch/arm/configs/aspeed_g4_defconfig index 3dcb80157f77..f86dd4ce7d0d 100644 --- a/arch/arm/configs/aspeed_g4_defconfig +++ b/arch/arm/configs/aspeed_g4_defconfig @@ -23,7 +23,6 @@ CONFIG_ARCH_ASPEED=y CONFIG_MACH_ASPEED_G4=y CONFIG_VMSPLIT_2G=y CONFIG_UACCESS_WITH_MEMCPY=y -# CONFIG_ATAGS is not set CONFIG_JUMP_LABEL=y CONFIG_STRICT_KERNEL_RWX=y # CONFIG_BLK_DEBUG_FS is not set diff --git a/arch/arm/configs/aspeed_g5_defconfig b/arch/arm/configs/aspeed_g5_defconfig index ec558e57d081..45b937419dbd 100644 --- a/arch/arm/configs/aspeed_g5_defconfig +++ b/arch/arm/configs/aspeed_g5_defconfig @@ -29,7 +29,6 @@ CONFIG_VMSPLIT_2G=y CONFIG_NR_CPUS=2 CONFIG_HIGHMEM=y CONFIG_UACCESS_WITH_MEMCPY=y -# CONFIG_ATAGS is not set CONFIG_VFP=y CONFIG_NEON=y CONFIG_KERNEL_MODE_NEON=y diff --git a/arch/arm/configs/assabet_defconfig b/arch/arm/configs/assabet_defconfig index df63889b0c4c..e4264fdac2e5 100644 --- a/arch/arm/configs/assabet_defconfig +++ b/arch/arm/configs/assabet_defconfig @@ -1,11 +1,13 @@ CONFIG_SYSVIPC=y CONFIG_LOG_BUF_SHIFT=14 CONFIG_BLK_DEV_INITRD=y +CONFIG_EXPERT=y CONFIG_ARCH_MULTI_V4=y # CONFIG_ARCH_MULTI_V7 is not set CONFIG_ARCH_SA1100=y CONFIG_SA1100_ASSABET=y # CONFIG_AEABI is not set +CONFIG_ATAGS=y CONFIG_CMDLINE="mem=32M console=ttySA0,38400n8 initrd=0xc0800000,3M root=/dev/ram" CONFIG_FPE_NWFPE=y CONFIG_PM=y diff --git a/arch/arm/configs/at91_dt_defconfig b/arch/arm/configs/at91_dt_defconfig index 320eb27a6a2e..830c6c0dbdaf 100644 --- a/arch/arm/configs/at91_dt_defconfig +++ b/arch/arm/configs/at91_dt_defconfig @@ -19,7 +19,6 @@ CONFIG_SOC_SAM9X60=y CONFIG_SOC_SAM9X7=y # CONFIG_ATMEL_CLOCKSOURCE_PIT is not set CONFIG_UACCESS_WITH_MEMCPY=y -# CONFIG_ATAGS is not set CONFIG_ARM_APPENDED_DTB=y CONFIG_ARM_ATAG_DTB_COMPAT=y CONFIG_CMDLINE="console=ttyS0,115200 initrd=0x21100000,25165824 root=/dev/ram0 rw" diff --git a/arch/arm/configs/collie_defconfig b/arch/arm/configs/collie_defconfig index 165202960438..570a5f8bc57b 100644 --- a/arch/arm/configs/collie_defconfig +++ b/arch/arm/configs/collie_defconfig @@ -9,6 +9,7 @@ CONFIG_ARCH_MULTI_V4=y # CONFIG_ARCH_MULTI_V7 is not set CONFIG_ARCH_SA1100=y CONFIG_SA1100_COLLIE=y +CONFIG_ATAGS=y CONFIG_CMDLINE="noinitrd root=/dev/mtdblock2 rootfstype=jffs2 fbcon=rotate:1" CONFIG_PM=y # CONFIG_SWAP is not set diff --git a/arch/arm/configs/dove_defconfig b/arch/arm/configs/dove_defconfig index 08271e6719d7..917a864fec74 100644 --- a/arch/arm/configs/dove_defconfig +++ b/arch/arm/configs/dove_defconfig @@ -8,6 +8,7 @@ CONFIG_ARCH_MULTI_V7=y CONFIG_ARCH_DOVE=y CONFIG_MACH_CM_A510=y CONFIG_HIGHMEM=y +CONFIG_ATAGS=y CONFIG_ARM_APPENDED_DTB=y CONFIG_ARM_ATAG_DTB_COMPAT=y CONFIG_VFP=y diff --git a/arch/arm/configs/footbridge_defconfig b/arch/arm/configs/footbridge_defconfig index 589b7b1df8c6..7fa556fb6cf4 100644 --- a/arch/arm/configs/footbridge_defconfig +++ b/arch/arm/configs/footbridge_defconfig @@ -9,6 +9,7 @@ CONFIG_ARCH_MULTI_V4=y CONFIG_ARCH_FOOTBRIDGE=y CONFIG_ARCH_EBSA285_HOST=y CONFIG_ARCH_NETWINDER=y +CONFIG_ATAGS=y CONFIG_FPE_NWFPE=y CONFIG_FPE_NWFPE_XP=y # CONFIG_AEABI is not set diff --git a/arch/arm/configs/h3600_defconfig b/arch/arm/configs/h3600_defconfig index 0923d331190a..3e8da62d959d 100644 --- a/arch/arm/configs/h3600_defconfig +++ b/arch/arm/configs/h3600_defconfig @@ -4,11 +4,13 @@ CONFIG_HIGH_RES_TIMERS=y CONFIG_PREEMPT=y CONFIG_LOG_BUF_SHIFT=14 CONFIG_BLK_DEV_INITRD=y +CONFIG_EXPERT=y CONFIG_ARCH_MULTI_V4=y # CONFIG_ARCH_MULTI_V7 is not set CONFIG_ARCH_SA1100=y CONFIG_SA1100_H3600=y # CONFIG_CPU_FREQ_STAT is not set +CONFIG_ATAGS=y CONFIG_MODULES=y CONFIG_NET=y CONFIG_UNIX=y diff --git a/arch/arm/configs/integrator_defconfig b/arch/arm/configs/integrator_defconfig index ba38ec810a61..82180381bf3c 100644 --- a/arch/arm/configs/integrator_defconfig +++ b/arch/arm/configs/integrator_defconfig @@ -13,7 +13,6 @@ CONFIG_ARCH_INTEGRATOR=y CONFIG_ARCH_INTEGRATOR_AP=y CONFIG_INTEGRATOR_IMPD1=y CONFIG_ARCH_INTEGRATOR_CP=y -# CONFIG_ATAGS is not set CONFIG_CMDLINE="console=ttyAM0,38400n8 root=/dev/nfs ip=bootp" CONFIG_CPU_FREQ=y CONFIG_CPU_FREQ_GOV_POWERSAVE=y diff --git a/arch/arm/configs/jornada720_defconfig b/arch/arm/configs/jornada720_defconfig index 0ebddd083b36..a96cfb81aba5 100644 --- a/arch/arm/configs/jornada720_defconfig +++ b/arch/arm/configs/jornada720_defconfig @@ -1,11 +1,13 @@ CONFIG_SYSVIPC=y CONFIG_LOG_BUF_SHIFT=14 +CONFIG_EXPERT=y CONFIG_ARCH_MULTI_V4=y # CONFIG_ARCH_MULTI_V7 is not set CONFIG_ARCH_SA1100=y CONFIG_SA1100_JORNADA720=y CONFIG_SA1100_JORNADA720_SSP=y CONFIG_PM=y +CONFIG_ATAGS=y CONFIG_MODULES=y CONFIG_NET=y CONFIG_PACKET=y diff --git a/arch/arm/configs/moxart_defconfig b/arch/arm/configs/moxart_defconfig index d97d9ea5c34d..699d7ad98dd2 100644 --- a/arch/arm/configs/moxart_defconfig +++ b/arch/arm/configs/moxart_defconfig @@ -16,7 +16,6 @@ CONFIG_ARCH_MULTI_V4=y # CONFIG_ARCH_MULTI_V7 is not set CONFIG_ARCH_MOXART=y CONFIG_MACH_UC7112LX=y -# CONFIG_ATAGS is not set CONFIG_ARM_APPENDED_DTB=y # CONFIG_SWAP is not set # CONFIG_COMPAT_BRK is not set diff --git a/arch/arm/configs/mps2_defconfig b/arch/arm/configs/mps2_defconfig index e995e50537ef..cacf3876f6e4 100644 --- a/arch/arm/configs/mps2_defconfig +++ b/arch/arm/configs/mps2_defconfig @@ -16,7 +16,6 @@ CONFIG_ARCH_MPS2=y CONFIG_SET_MEM_PARAM=y CONFIG_DRAM_BASE=0x21000000 CONFIG_DRAM_SIZE=0x1000000 -# CONFIG_ATAGS is not set # CONFIG_SUSPEND is not set # CONFIG_BLOCK is not set CONFIG_BINFMT_FLAT=y diff --git a/arch/arm/configs/multi_v4t_defconfig b/arch/arm/configs/multi_v4t_defconfig index 14c93bb59ad6..7b592345db21 100644 --- a/arch/arm/configs/multi_v4t_defconfig +++ b/arch/arm/configs/multi_v4t_defconfig @@ -17,7 +17,6 @@ CONFIG_INTEGRATOR_IMPD1=y CONFIG_INTEGRATOR_CM720T=y CONFIG_INTEGRATOR_CM920T=y CONFIG_INTEGRATOR_CM922T_XA10=y -# CONFIG_ATAGS is not set CONFIG_CPU_IDLE=y CONFIG_ARM_CPUIDLE=y CONFIG_ARM_CLPS711X_CPUIDLE=y diff --git a/arch/arm/configs/mv78xx0_defconfig b/arch/arm/configs/mv78xx0_defconfig index 823f7963b8b3..e3cc8de7c1c2 100644 --- a/arch/arm/configs/mv78xx0_defconfig +++ b/arch/arm/configs/mv78xx0_defconfig @@ -12,6 +12,7 @@ CONFIG_ARCH_MULTI_V5=y CONFIG_ARCH_MV78XX0=y CONFIG_MACH_TERASTATION_WXL=y CONFIG_HIGHMEM=y +CONFIG_ATAGS=y CONFIG_VFP=y CONFIG_KPROBES=y CONFIG_MODULES=y diff --git a/arch/arm/configs/neponset_defconfig b/arch/arm/configs/neponset_defconfig index c3010a4d93a8..164643f1b6c0 100644 --- a/arch/arm/configs/neponset_defconfig +++ b/arch/arm/configs/neponset_defconfig @@ -1,11 +1,13 @@ CONFIG_SYSVIPC=y CONFIG_LOG_BUF_SHIFT=14 CONFIG_BLK_DEV_INITRD=y +CONFIG_EXPERT=y CONFIG_ARCH_MULTI_V4=y # CONFIG_ARCH_MULTI_V7 is not set CONFIG_ARCH_SA1100=y CONFIG_SA1100_ASSABET=y CONFIG_ASSABET_NEPONSET=y +CONFIG_ATAGS=y CONFIG_ZBOOT_ROM_TEXT=0x80000 CONFIG_ZBOOT_ROM_BSS=0xc1000000 CONFIG_ZBOOT_ROM=y diff --git a/arch/arm/configs/netwinder_defconfig b/arch/arm/configs/netwinder_defconfig index 7ff70439458d..77d4a2b5916b 100644 --- a/arch/arm/configs/netwinder_defconfig +++ b/arch/arm/configs/netwinder_defconfig @@ -1,10 +1,12 @@ CONFIG_SYSVIPC=y CONFIG_LOG_BUF_SHIFT=14 +CONFIG_EXPERT=y CONFIG_ARCH_MULTI_V4=y # CONFIG_ARCH_MULTI_V7 is not set CONFIG_ARCH_FOOTBRIDGE=y CONFIG_ARCH_NETWINDER=y # CONFIG_AEABI is not set +CONFIG_ATAGS=y CONFIG_DEPRECATED_PARAM_STRUCT=y CONFIG_CMDLINE="root=0x801" CONFIG_FPE_NWFPE=y diff --git a/arch/arm/configs/omap1_defconfig b/arch/arm/configs/omap1_defconfig index 8d11ba724204..fcbaaf37bc9b 100644 --- a/arch/arm/configs/omap1_defconfig +++ b/arch/arm/configs/omap1_defconfig @@ -28,6 +28,7 @@ CONFIG_MACH_OMAP_PALMTE=y CONFIG_MACH_SX1=y CONFIG_MACH_NOKIA770=y CONFIG_MACH_AMS_DELTA=y +CONFIG_ATAGS=y CONFIG_CMDLINE="root=1f03 rootfstype=jffs2" # CONFIG_SUSPEND is not set CONFIG_PM=y diff --git a/arch/arm/configs/rpc_defconfig b/arch/arm/configs/rpc_defconfig index 8d73ec43cb41..edb52d56f679 100644 --- a/arch/arm/configs/rpc_defconfig +++ b/arch/arm/configs/rpc_defconfig @@ -2,12 +2,14 @@ CONFIG_SYSVIPC=y CONFIG_LOG_BUF_SHIFT=14 CONFIG_BLK_DEV_INITRD=y +CONFIG_EXPERT=y CONFIG_ARCH_MULTI_V4=y # CONFIG_ARCH_MULTI_V7 is not set CONFIG_ARCH_RPC=y CONFIG_CPU_SA110=y CONFIG_FPE_NWFPE=y # CONFIG_AEABI is not set +CONFIG_ATAGS=y CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y CONFIG_PARTITION_ADVANCED=y diff --git a/arch/arm/configs/s3c6400_defconfig b/arch/arm/configs/s3c6400_defconfig index 7bf28a83946a..a0707707d960 100644 --- a/arch/arm/configs/s3c6400_defconfig +++ b/arch/arm/configs/s3c6400_defconfig @@ -2,8 +2,10 @@ CONFIG_BLK_DEV_INITRD=y CONFIG_KALLSYMS_ALL=y CONFIG_ARCH_MULTI_V6=y # CONFIG_ARCH_MULTI_V7 is not set +CONFIG_EXPERT=y CONFIG_ARCH_S3C64XX=y CONFIG_MACH_WLF_CRAGG_6410=y +CONFIG_ATAGS=y CONFIG_CMDLINE="console=ttySAC0,115200 root=/dev/ram init=/linuxrc initrd=0x51000000,6M ramdisk_size=6144" CONFIG_VFP=y CONFIG_MODULES=y diff --git a/arch/arm/configs/sama5_defconfig b/arch/arm/configs/sama5_defconfig index bd7f0b5f7d66..1eafad9139f1 100644 --- a/arch/arm/configs/sama5_defconfig +++ b/arch/arm/configs/sama5_defconfig @@ -13,7 +13,6 @@ CONFIG_SOC_SAMA5D3=y CONFIG_SOC_SAMA5D4=y # CONFIG_ATMEL_CLOCKSOURCE_PIT is not set CONFIG_UACCESS_WITH_MEMCPY=y -# CONFIG_ATAGS is not set CONFIG_CMDLINE="console=ttyS0,115200 initrd=0x21100000,25165824 root=/dev/ram0 rw" CONFIG_VFP=y CONFIG_NEON=y diff --git a/arch/arm/configs/sama7_defconfig b/arch/arm/configs/sama7_defconfig index cc7f6daf9fc7..4af87c57483d 100644 --- a/arch/arm/configs/sama7_defconfig +++ b/arch/arm/configs/sama7_defconfig @@ -20,7 +20,6 @@ CONFIG_ATMEL_CLOCKSOURCE_TCB=y # CONFIG_CPU_SW_DOMAIN_PAN is not set CONFIG_ARCH_FORCE_MAX_ORDER=14 CONFIG_UACCESS_WITH_MEMCPY=y -# CONFIG_ATAGS is not set CONFIG_CMDLINE="console=ttyS0,115200 earlyprintk ignore_loglevel" CONFIG_CPU_FREQ=y CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE=y diff --git a/arch/arm/configs/spitz_defconfig b/arch/arm/configs/spitz_defconfig index d68a8f9cdad4..c7cf089001bf 100644 --- a/arch/arm/configs/spitz_defconfig +++ b/arch/arm/configs/spitz_defconfig @@ -10,6 +10,7 @@ CONFIG_ARCH_PXA=y CONFIG_PXA_SHARPSL=y CONFIG_MACH_AKITA=y CONFIG_MACH_BORZOI=y +CONFIG_ATAGS=y CONFIG_CMDLINE="console=ttyS0,115200n8 console=tty1 noinitrd root=/dev/mtdblock2 rootfstype=jffs2 debug" CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y diff --git a/arch/arm/configs/stm32_defconfig b/arch/arm/configs/stm32_defconfig index 82190b155b14..7366aade19ad 100644 --- a/arch/arm/configs/stm32_defconfig +++ b/arch/arm/configs/stm32_defconfig @@ -20,7 +20,6 @@ CONFIG_ARCH_STM32=y CONFIG_CPU_V7M_NUM_IRQ=240 CONFIG_SET_MEM_PARAM=y CONFIG_DRAM_BASE=0x90000000 -# CONFIG_ATAGS is not set CONFIG_XIP_KERNEL=y CONFIG_XIP_PHYS_ADDR=0x08008000 # CONFIG_SUSPEND is not set diff --git a/arch/arm/configs/wpcm450_defconfig b/arch/arm/configs/wpcm450_defconfig index 9cb379077d70..7512ec4292a0 100644 --- a/arch/arm/configs/wpcm450_defconfig +++ b/arch/arm/configs/wpcm450_defconfig @@ -14,7 +14,6 @@ CONFIG_ARCH_NPCM=y CONFIG_ARCH_WPCM450=y CONFIG_CPU_DCACHE_WRITETHROUGH=y CONFIG_UACCESS_WITH_MEMCPY=y -# CONFIG_ATAGS is not set CONFIG_ARM_APPENDED_DTB=y CONFIG_CPU_IDLE=y CONFIG_KPROBES=y From fe91e4e9da70765420538d9cbcf6d9a970237a8d Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Wed, 17 Jun 2026 16:13:56 +0200 Subject: [PATCH 06/19] ARM: mark CPU_ENDIAN_BE8 as deprecated Following the deprecation of big-endian ARMv8 mode in arch/arm64 in commit 1cf89b6bf660 ("arm64: Kconfig: Make CPU_BIG_ENDIAN depend on BROKEN"), this does the same for ARMv7 (and v6), leaving the code around but disabled by default: There are no known products that make use of this mode any more, and it only hangs around for testing that it still works. At the moment, there are no known bugs with big-endian ARMv7 mode, but it does break occasionally and require someone to fix it. By marking the code as 'depends on BROKEN' now, it will no longer be covered by CI testing. If any users remain, they can keep patching out the dependency but are more likely to run into regressions. The big-endian ARMv5 support (CONFIG_CPU_ENDIAN_BE32) in contrast is still used on Intel IXP4xx platform, and is the only currently supported mode there, so this one can still be enabled. There is no timeline for actually removing the code at this point, we will likely debate this if we ever remove IXP4xx support on arm, or big-endian support on ARM64. Signed-off-by: Arnd Bergmann --- arch/arm/mm/Kconfig | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig index 27010b9389ad..048edb011511 100644 --- a/arch/arm/mm/Kconfig +++ b/arch/arm/mm/Kconfig @@ -778,7 +778,8 @@ config CPU_LITTLE_ENDIAN space builds. config CPU_BIG_ENDIAN - bool "Build big-endian kernel" + bool "Build big-endian kernel (DEPRECATED)" + depends on ARCH_MULTI_V5 || BROKEN depends on !LD_IS_LLD help Say Y if you plan on running a kernel in big-endian mode. From 949b2df588eebbf5bfdb08e826a0f0f3db7445b0 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Fri, 23 Aug 2024 07:09:11 +0000 Subject: [PATCH 07/19] ARM: update DEPRECATED_PARAM_STRUCT removal timeline This configuration option is for the older boot method that preceeded ATAGS. This was scheduled for removal back in 2001, but the removal never happened, presumably because nobody cared enough to actually do it, not because there are any users left. Add "(DEPRECATED)' to the Kconfig line and update the timeline so we can remove it next year along with the other options that are not scheduled for that timeframe. Acked-by: Linus Walleij Signed-off-by: Arnd Bergmann --- arch/arm/Kconfig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 0033d861e378..48937e70d55a 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -1401,11 +1401,11 @@ config ATAGS it is either converted to DT or removed. config DEPRECATED_PARAM_STRUCT - bool "Provide old way to pass kernel parameters" + bool "Provide old way to pass kernel parameters (DEPRECATED)" depends on ATAGS help This was deprecated in 2001 and announced to live on for 5 years. - Some old boot loaders still use this way. + It is now scheduled for removal in early 2027. # Compressed boot loader in ROM. Yes, we really want to ask about # TEXT and BSS so we preserve their values in the config files. From a1c9be016475f2b5fe17482d45005f5dd6d4d443 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Fri, 23 Aug 2024 07:35:46 +0000 Subject: [PATCH 08/19] ARM: s3c64xx: extend deprecation schedule Mark Brown is still using this machine for regular work, so it should not be removed as originally scheduled. Give the platform another year, with the option to extend it further based on the state of ATAGS support next year. I expect that we end up removing all of s3c64xx when either Mark has moved his test setup to other hardware, or when all other ATAGS based machines are getting removed. Cc: Mark Brown Acked-by: Krzysztof Kozlowski Signed-off-by: Arnd Bergmann --- arch/arm/mach-s3c/Kconfig.s3c64xx | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/arch/arm/mach-s3c/Kconfig.s3c64xx b/arch/arm/mach-s3c/Kconfig.s3c64xx index 3f97fba8e4f5..cf59147dc9ca 100644 --- a/arch/arm/mach-s3c/Kconfig.s3c64xx +++ b/arch/arm/mach-s3c/Kconfig.s3c64xx @@ -23,10 +23,17 @@ menuconfig ARCH_S3C64XX help Samsung S3C64XX series based systems - The platform is deprecated and scheduled for removal. Please reach to - the maintainers of the platform and linux-samsung-soc@vger.kernel.org if - you still use it. - Without such feedback, the platform will be removed after 2024. + The use of ATAGS based board files is on its way out, and + the only remaining S3C64xx machine in the kernel (Wolfson + Cragganmore 6410) relies on this, without any realistic way + to migrate it to devicetree. + + Support for S3C64XX will be kept until the 2027 LTS kernel + release and may be removed in early 2028. + + Please reach out to the maintainers of the platform and + linux-samsung-soc@vger.kernel.org if you use any additional + s3c64xx machines based on devicetree. if ARCH_S3C64XX From e3c0bc30b188c214fd1716ad13d7d99106009a2e Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Fri, 23 Aug 2024 07:43:15 +0000 Subject: [PATCH 09/19] ARM: update FPE_NWFPE help text The help text is seriously outdated and predates the introduction of VFP floating point units that were available as early as some ARM926 based systems. Change the help text to reflect that this is now a legacy feature and that it will go away along with OABI support in the future. Acked-by: Linus Walleij Acked-by: Ralph Siemsen Signed-off-by: Arnd Bergmann --- arch/arm/Kconfig | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 48937e70d55a..1f02183cff13 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -1651,16 +1651,16 @@ menu "Floating point emulation" comment "At least one emulation must be selected" config FPE_NWFPE - bool "NWFPE math emulation" + bool "NWFPE math emulation (DEPRECATED)" depends on (!AEABI || OABI_COMPAT) && !THUMB2_KERNEL help Say Y to include the NWFPE floating point emulator in the kernel. - This is necessary to run most binaries. Linux does not currently - support floating point hardware so you need to say Y here even if - your machine has an FPA or floating point co-processor podule. - You may say N here if you are going to load the Acorn FPEmulator - early in the bootup. + This is only used on OABI userspace binaries, either using a + pure OABI (!CONFIG_AEABI) kernel, or the OABI emulation. + + Support for NWFPE will be removed in the future when OABI + support is removed. config FPE_NWFPE_XP bool "Support extended precision" From 4486f02005ea01b59174ecb1dc7115883eb7b994 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Fri, 23 Aug 2024 08:59:13 +0000 Subject: [PATCH 10/19] ARM: mark IWMMXT as deprecated With no remaining users and support getting removed from future compilers, there seems little point in keeping iwmmxt around much longer. On the other hand, the iwmmxt support in the kernel rarely gets in the way, so there is little cost, so set a removal date of early 2027 for the moment. If anyone is still using this, it can be extended as long there is binutils support. Signed-off-by: Arnd Bergmann --- arch/arm/Kconfig | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 1f02183cff13..e2bdf2591c10 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -513,13 +513,21 @@ config PLAT_VERSATILE source "arch/arm/mm/Kconfig" config IWMMXT - bool "Enable iWMMXt support" - depends on CPU_XSCALE || CPU_XSC3 || CPU_MOHAWK - default y if PXA27x || PXA3xx || ARCH_MMP + bool "Enable iWMMXt support (DEPRECATED)" + depends on PXA27x || PXA3xx || ARCH_MMP help Enable support for iWMMXt context switching at run time if running on a CPU that supports it. + Machines that actually support this feature are very rare, + and support is deprecated in new gcc-14. While there were a + few applications that used this in the past, none are known + to still do so. + + If you use this, please send a patch to remove the + deprecation, otherwise this will be removed in early + 2027. + if !MMU source "arch/arm/Kconfig-nommu" endif From 5faae2fbe1268a4df0dbaf44afd497b0a04d023f Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Fri, 23 Aug 2024 09:04:41 +0000 Subject: [PATCH 11/19] ARM: mark ARCH_DOVE as deprecated The Marvell Armada 510 (Dove) platform is supported both as devicetree and atags/boardfile variants, with varying degrees of hardware support. Russell was the last known user of the board file version, and there are very few users overall. Unless Russell still needs this variant, let's remove after the next LTS kernel, leaving the CONFIG_MACH_DOVE variant with devicetree. Reviewed-by: Ethan Nelson-Moore Signed-off-by: Arnd Bergmann --- arch/arm/mach-dove/Kconfig | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/arch/arm/mach-dove/Kconfig b/arch/arm/mach-dove/Kconfig index 996888ffcfe7..f547120e223e 100644 --- a/arch/arm/mach-dove/Kconfig +++ b/arch/arm/mach-dove/Kconfig @@ -1,6 +1,6 @@ # SPDX-License-Identifier: GPL-2.0 menuconfig ARCH_DOVE - bool "Marvell Dove" if ARCH_MULTI_V7 + bool "Marvell Dove (DEPRECATED)" if ARCH_MULTI_V7 depends on ATAGS select CPU_PJ4 select GPIOLIB @@ -11,7 +11,11 @@ menuconfig ARCH_DOVE select PM_GENERIC_DOMAINS if PM select PCI_QUIRKS if PCI help - Support for the Marvell Dove SoC 88AP510 + Support for the Marvell Dove SoC 88AP510 using board files. + + Support for this machine will be removed in early 2027, unless + there is a strong reason to keep it. Users should migrate to + the devicetree-enabled version (CONFIG_MACH_DOVE) instead. if ARCH_DOVE From cc7852314abdb6134939c02ea54221339f2b4b75 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Fri, 23 Aug 2024 10:22:43 +0000 Subject: [PATCH 12/19] ARM: PXA: mark remaining board files as deprecated In the 2021 board file removal, the gumstix and sharpsl support was left around in order to make it easier to convert more of the PXA platform to device tree, given that both platforms had some level of support in qemu. As far as I can tell, nobody has worked on additional DT conversion in that time, and qemu has in turn deprecated the entire PXA platform. Schedule the remaining board files for removal now, as they are unlikely to be of any help in the future. If anyone wants to revive support for these machines, they can obviously still contribute device tree based code and work on updating the corresponding drivers. Any drivers that are only usable on legacy PXA board files can also get removed along with the boards, or saved by adding devicetree support. Signed-off-by: Arnd Bergmann --- arch/arm/configs/pxa_defconfig | 4 ---- arch/arm/mach-pxa/Kconfig | 10 ++++++++-- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/arch/arm/configs/pxa_defconfig b/arch/arm/configs/pxa_defconfig index 396680975506..e7a7ed2b7ef7 100644 --- a/arch/arm/configs/pxa_defconfig +++ b/arch/arm/configs/pxa_defconfig @@ -16,10 +16,6 @@ CONFIG_PROFILING=y CONFIG_KEXEC=y # CONFIG_ARCH_MULTI_V7 is not set CONFIG_ARCH_PXA=y -CONFIG_ARCH_GUMSTIX=y -CONFIG_PXA_SHARPSL=y -CONFIG_MACH_AKITA=y -CONFIG_MACH_BORZOI=y CONFIG_ARCH_FORCE_MAX_ORDER=8 CONFIG_CMDLINE="root=/dev/ram0 ro" CONFIG_CPU_FREQ=y diff --git a/arch/arm/mach-pxa/Kconfig b/arch/arm/mach-pxa/Kconfig index 66e26990e2c8..1fa282a9ef38 100644 --- a/arch/arm/mach-pxa/Kconfig +++ b/arch/arm/mach-pxa/Kconfig @@ -58,12 +58,15 @@ if ATAGS comment "Legacy board files" config ARCH_GUMSTIX - bool "Gumstix XScale 255 boards" + bool "Gumstix XScale 255 boards (DEPRECATED)" select PXA25x help Say Y here if you intend to run this kernel on Basix, Connex, ws-200ax, ws-400ax systems + Support for this machine will go away in early 2027, + unless it gets converted to device tree. + choice prompt "Gumstix Carrier/Expansion Board" depends on ARCH_GUMSTIX @@ -77,7 +80,7 @@ config GUMSTIX_AM300EPD endchoice config PXA_SHARPSL - bool "SHARP Zaurus SL-5600, SL-C7xx and SL-Cxx00 Models" + bool "SHARP Zaurus SL-5600, SL-C7xx and SL-Cxx00 Models (DEPRECATED)" select SHARP_PARAM select SHARP_SCOOP help @@ -87,6 +90,9 @@ config PXA_SHARPSL SL-C3000 (Spitz), SL-C3100 (Borzoi) or SL-C6000x (Tosa) handheld computer. + Support for these machines will go away in early 2027, + unless they get converted to device tree. + config PXA_SHARPSL_DETECT_MACH_ID bool "Detect machine ID at run-time in the decompressor" depends on PXA_SHARPSL From 71b038f9b5608980ce8fa9b73bbef1c7ed70d42a Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Fri, 23 Aug 2024 09:14:28 +0000 Subject: [PATCH 13/19] ARM: orion5x: mark all board files as deprecated Conversion of the old orion5x board files to devicetree has stalled over the past few years, so it seems better to remove the remaining ones in order to allow cleaning up the device drivers. Debian and OpenWRT no longer support orion5x, and buildroot could keep using linux-7.3-LTS for a few more years. Jeremy Peper still plans to convert the Terastation 2 Pro to devicetree in the future, but that can be done even after it is removed. Reviewed-by: Andrew Lunn Signed-off-by: Arnd Bergmann --- arch/arm/configs/multi_v5_defconfig | 9 ------ arch/arm/configs/mvebu_v5_defconfig | 9 ------ arch/arm/configs/orion5x_defconfig | 9 ------ arch/arm/mach-orion5x/Kconfig | 47 +++++++++++++++++++++++------ 4 files changed, 37 insertions(+), 37 deletions(-) diff --git a/arch/arm/configs/multi_v5_defconfig b/arch/arm/configs/multi_v5_defconfig index 7eab9fb9ffc4..a0d2fb2fcf9a 100644 --- a/arch/arm/configs/multi_v5_defconfig +++ b/arch/arm/configs/multi_v5_defconfig @@ -22,17 +22,8 @@ CONFIG_ARCH_NPCM=y CONFIG_ARCH_WPCM450=y CONFIG_ARCH_ORION5X=y CONFIG_MACH_RD88F5182_DT=y -CONFIG_MACH_KUROBOX_PRO=y -CONFIG_MACH_DNS323=y -CONFIG_MACH_TS209=y -CONFIG_MACH_TERASTATION_PRO2=y -CONFIG_MACH_LINKSTATION_PRO=y CONFIG_MACH_LINKSTATION_MINI=y -CONFIG_MACH_TS409=y -CONFIG_MACH_TS78XX=y -CONFIG_MACH_MV2120=y CONFIG_MACH_D2NET_DT=y -CONFIG_MACH_NET2BIG=y CONFIG_MACH_MSS2_DT=y CONFIG_ARCH_SUNXI=y CONFIG_ARCH_VERSATILE=y diff --git a/arch/arm/configs/mvebu_v5_defconfig b/arch/arm/configs/mvebu_v5_defconfig index 0709a5e66bb5..dbc6c511e70b 100644 --- a/arch/arm/configs/mvebu_v5_defconfig +++ b/arch/arm/configs/mvebu_v5_defconfig @@ -10,17 +10,8 @@ CONFIG_ARCH_MVEBU=y CONFIG_MACH_KIRKWOOD=y CONFIG_ARCH_ORION5X=y CONFIG_MACH_RD88F5182_DT=y -CONFIG_MACH_KUROBOX_PRO=y -CONFIG_MACH_DNS323=y -CONFIG_MACH_TS209=y -CONFIG_MACH_TERASTATION_PRO2=y -CONFIG_MACH_LINKSTATION_PRO=y CONFIG_MACH_LINKSTATION_MINI=y -CONFIG_MACH_TS409=y -CONFIG_MACH_TS78XX=y -CONFIG_MACH_MV2120=y CONFIG_MACH_D2NET_DT=y -CONFIG_MACH_NET2BIG=y CONFIG_MACH_MSS2_DT=y CONFIG_HIGHMEM=y CONFIG_ARM_APPENDED_DTB=y diff --git a/arch/arm/configs/orion5x_defconfig b/arch/arm/configs/orion5x_defconfig index d658d5e04e2d..f47a84ac872f 100644 --- a/arch/arm/configs/orion5x_defconfig +++ b/arch/arm/configs/orion5x_defconfig @@ -10,16 +10,7 @@ CONFIG_ARCH_MULTI_V5=y # CONFIG_ARCH_MULTI_V7 is not set CONFIG_ARCH_ORION5X=y CONFIG_MACH_RD88F5182_DT=y -CONFIG_MACH_KUROBOX_PRO=y -CONFIG_MACH_DNS323=y -CONFIG_MACH_TS209=y -CONFIG_MACH_TERASTATION_PRO2=y -CONFIG_MACH_LINKSTATION_PRO=y CONFIG_MACH_LINKSTATION_MINI=y -CONFIG_MACH_TS409=y -CONFIG_MACH_TS78XX=y -CONFIG_MACH_MV2120=y -CONFIG_MACH_NET2BIG=y CONFIG_ARM_APPENDED_DTB=y CONFIG_ARM_ATAG_DTB_COMPAT=y CONFIG_VFP=y diff --git a/arch/arm/mach-orion5x/Kconfig b/arch/arm/mach-orion5x/Kconfig index cef19bea6164..c61999d01c80 100644 --- a/arch/arm/mach-orion5x/Kconfig +++ b/arch/arm/mach-orion5x/Kconfig @@ -19,7 +19,7 @@ menuconfig ARCH_ORION5X if ARCH_ORION5X config ARCH_ORION5X_DT - bool "Marvell Orion5x Flattened Device Tree" + def_bool y select ORION_CLK select ORION_IRQCHIP select ORION_TIMER @@ -38,37 +38,49 @@ config MACH_RD88F5182_DT Orion-NAS (88F5182) RD2, Flattened Device Tree. config MACH_KUROBOX_PRO - bool "KuroBox Pro" + bool "KuroBox Pro (DEPRECATED)" select I2C_BOARDINFO if I2C depends on ATAGS help Say 'Y' here if you want your kernel to support the KuroBox Pro platform. + Support for this machine will go away in early 2027, + unless it gets converted to device tree. + config MACH_DNS323 - bool "D-Link DNS-323" + bool "D-Link DNS-323 (DEPRECATED)" select I2C_BOARDINFO if I2C depends on ATAGS help Say 'Y' here if you want your kernel to support the D-Link DNS-323 platform. + Support for this machine will go away in early 2027, + unless it gets converted to device tree. + config MACH_TS209 - bool "QNAP TS-109/TS-209" + bool "QNAP TS-109/TS-209 (DEPRECATED)" depends on ATAGS help Say 'Y' here if you want your kernel to support the QNAP TS-109/TS-209 platform. + Support for this machine will go away in early 2027, + unless it gets converted to device tree. + config MACH_TERASTATION_PRO2 - bool "Buffalo Terastation Pro II/Live" + bool "Buffalo Terastation Pro II/Live (DEPRECATED)" depends on ATAGS help Say 'Y' here if you want your kernel to support the Buffalo Terastation Pro II/Live platform. + Support for this machine will go away in early 2027, + unless it gets converted to device tree. + config MACH_LINKSTATION_PRO - bool "Buffalo Linkstation Pro/Live" + bool "Buffalo Linkstation Pro/Live (DEPRECATED)" depends on ATAGS select I2C_BOARDINFO if I2C help @@ -76,6 +88,9 @@ config MACH_LINKSTATION_PRO Buffalo Linkstation Pro/Live platform. Both v1 and v2 devices are supported. + Support for this machine will go away in early 2027, + unless it gets converted to device tree. + config MACH_LINKSTATION_MINI bool "Buffalo Linkstation Mini (Flattened Device Tree)" select ARCH_ORION5X_DT @@ -84,26 +99,35 @@ config MACH_LINKSTATION_MINI Buffalo Linkstation Mini (LS-WSGL) platform. config MACH_TS409 - bool "QNAP TS-409" + bool "QNAP TS-409 (DEPRECATED)" depends on ATAGS help Say 'Y' here if you want your kernel to support the QNAP TS-409 platform. + Support for this machine will go away in early 2027, + unless it gets converted to device tree. + config MACH_TS78XX - bool "Technologic Systems TS-78xx" + bool "Technologic Systems TS-78xx (DEPRECATED)" depends on ATAGS help Say 'Y' here if you want your kernel to support the Technologic Systems TS-78xx platform. + Support for this machine will go away in early 2027, + unless it gets converted to device tree. + config MACH_MV2120 - bool "HP Media Vault mv2120" + bool "HP Media Vault mv2120 (DEPRECATED)" depends on ATAGS help Say 'Y' here if you want your kernel to support the HP Media Vault mv2120 or mv5100. + Support for this machine will go away in early 2027, + unless it gets converted to device tree. + config MACH_D2NET_DT bool "LaCie d2 Network / Big Disk Network (Flattened Device Tree)" select ARCH_ORION5X_DT @@ -112,13 +136,16 @@ config MACH_D2NET_DT LaCie d2 Network NAS. config MACH_NET2BIG - bool "LaCie 2Big Network" + bool "LaCie 2Big Network (DEPRECATED)" depends on ATAGS select I2C_BOARDINFO if I2C help Say 'Y' here if you want your kernel to support the LaCie 2Big Network NAS. + Support for this machine will go away in early 2027, + unless it gets converted to device tree. + config MACH_MSS2_DT bool "Maxtor Shared Storage II (Flattened Device Tree)" select ARCH_ORION5X_DT From 7d92e50ceacd32c801fab648c96dc2f74b0f0d48 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Fri, 23 Aug 2024 12:52:15 +0000 Subject: [PATCH 14/19] ARM: mark mach-sa1100 as deprecated Most of the old StrongARM1100 machines were removed two years ago as part of a wider cleanup, the remaining four were left either because someone showed interest in converting them to devicetree, or because they were still supported by qemu and therefore useful to keep the platform alive. None of the devicetree conversion actually happened, and qemu has marked the platform as deprecated, so do the same in the kernel now. If anyone is still running one of these four machines and planning to keep updating their kernels, please speak up now so we can adapt the plans as needed. If nobody is found using StrongARM1100 any more, it can be removing during 2027, leaving 7.3-LTS as the last longterm support kernel for it. Acked-by: Linus Walleij Cc: Kristoffer Ericson Signed-off-by: Arnd Bergmann --- arch/arm/mach-sa1100/Kconfig | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/arch/arm/mach-sa1100/Kconfig b/arch/arm/mach-sa1100/Kconfig index e23700e0d6c8..d50721e39641 100644 --- a/arch/arm/mach-sa1100/Kconfig +++ b/arch/arm/mach-sa1100/Kconfig @@ -1,6 +1,6 @@ # SPDX-License-Identifier: GPL-2.0-only menuconfig ARCH_SA1100 - bool "SA11x0 Implementations" + bool "SA11x0 Implementations (DEPRECATED)" depends on ARCH_MULTI_V4 && !(ARCH_MULTI_V4T || ARCH_MULTI_V5) depends on !(ARCH_MOXART || ARCH_GEMINI) depends on ATAGS @@ -20,6 +20,9 @@ menuconfig ARCH_SA1100 help Support for StrongARM 11x0 based boards. + Support for these machines will go away in 2027, + unless there are any remaining users that speak up. + if ARCH_SA1100 config SA1100_ASSABET From 016564f9224342f1dde0f4e02278abe123f3a389 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Fri, 23 Aug 2024 13:13:44 +0000 Subject: [PATCH 15/19] ARM: mark RiscPC as deprecated This platform is the oldest still supported machine, dating back to the original 1994 ARM610 version. The only currently supported configuration uses an ARMv4 StrongARM but still requires building for ARMv3 because of the board design not supporting 16-bit data access. ARMv3 support has been removed in gcc-9, and the gcc-8 release is already old but still supported for building the kernel. The only set of machines that lacks support for 16-bit load/store instructions (Alpha EV5 and older) was recently removed from the kernel. Since there is little hope of this being maintainable much longer, plan to remove it in early 2027 while it is still expected to mostly work. Signed-off-by: Arnd Bergmann --- arch/arm/mach-rpc/Kconfig | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/arch/arm/mach-rpc/Kconfig b/arch/arm/mach-rpc/Kconfig index 55f6d829b677..60b3823b690c 100644 --- a/arch/arm/mach-rpc/Kconfig +++ b/arch/arm/mach-rpc/Kconfig @@ -1,5 +1,5 @@ config ARCH_RPC - bool "RiscPC" + bool "RiscPC (DEPRECATED)" depends on ARCH_MULTI_V4 && !(ARCH_MULTI_V4T || ARCH_MULTI_V5) depends on !(ARCH_FOOTBRIDGE || ARCH_SA1100 || ARCH_MOXART || ARCH_GEMINI) depends on !CC_IS_CLANG && GCC_VERSION < 90100 && GCC_VERSION >= 60000 @@ -19,3 +19,6 @@ config ARCH_RPC help On the Acorn Risc-PC, Linux can support the internal IDE disk and CD-ROM interface, serial and parallel port, and the floppy drive. + + Support for these machines will go away in 2027, + unless there are any remaining users that speak up. From 1608b4d1c54f57220efd9f40a5e1b6ac718e455a Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Fri, 23 Aug 2024 14:24:13 +0000 Subject: [PATCH 16/19] ARM: mark footbridge as deprecated Along with RiscPC and SA1100, these are the last remaining Intel StrongARM machines. The Corel NetWinder used to be particular popular in the late 1990s, but was discontinued during the bankruptcy of rebel.com in 2001. The other machine is the DEC (later Intel) EBSA285 evaluation board that was made in small numbers in 1997 for software developers. The footbridge/netwinder platform was the main target for the first Debian 2.0 "Hamm" release on the Arm architecture back in 1998, but was dropped in Debian 6.0 "Squeeze" in 2011, which only supported ARMv4T and higher with the EABI based ports as ARMv4 hardware had fallen already out of use by that time. Link: http://netwinder.org/ Cc: Linus Walleij Cc: Russell King Acked-by: Ralph Siemsen Acked-by: Linus Walleij Acked-by: Marc Zyngier Signed-off-by: Arnd Bergmann --- arch/arm/mach-footbridge/Kconfig | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/arch/arm/mach-footbridge/Kconfig b/arch/arm/mach-footbridge/Kconfig index 78189997caa1..96a74d447028 100644 --- a/arch/arm/mach-footbridge/Kconfig +++ b/arch/arm/mach-footbridge/Kconfig @@ -1,6 +1,6 @@ # SPDX-License-Identifier: GPL-2.0-only menuconfig ARCH_FOOTBRIDGE - bool "FootBridge Implementations" + bool "FootBridge Implementations (DEPRECATED)" depends on ARCH_MULTI_V4 && !(ARCH_MULTI_V4T || ARCH_MULTI_V5) depends on !(ARCH_MOXART || ARCH_GEMINI || ARCH_SA1100) depends on ATAGS @@ -12,7 +12,10 @@ menuconfig ARCH_FOOTBRIDGE select NEED_MACH_MEMORY_H help Support for systems based on the DC21285 companion chip - ("FootBridge"), such as the Simtec CATS and the Rebel NetWinder. + ("FootBridge"), used in the EBSA285 and the Rebel NetWinder. + + Support for these machines will go away in 2027, + unless there are any remaining users that speak up. if ARCH_FOOTBRIDGE From f70425ca424a6a7a044e79f5c1c99fb2b1b2783b Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Wed, 17 Jun 2026 12:50:39 +0200 Subject: [PATCH 17/19] ARM: mark Cortex-M3/M4/M7 based boards as deprecated The Cortex-M3/M4/M7 cores were designed as a replacement for the earlier ARM7TDMI and ARM9TDMI microarchitectures used in older microcontrollers. At the moment, Linux can run these cores either when they are integrated into a larger SoC, or as standalone microcontrollers. While there was a lot of development work going into Cortex-M support from 2011 to 2016, this largely stopped when it became clear that Zephyr and other RTOS had taken over that market. To date, the only Cortex-M based based microcontroller boards supported upstream are reference implementations. Schedule these for removal after the next LTS kernel, so if any users remain that want to update their kernels, they can stay on that version for a few years before having to maintain the platform support out of tree. Acked-by: Vladimir Zapolskiy # NXP LPC18xx/LPC43xx Acked-by: Vladimir Murzin # MPS2 Acked-by: Nicolas Ferre Acked-by: Frank Li # i.MX Signed-off-by: Arnd Bergmann --- arch/arm/Kconfig | 8 ++++++-- arch/arm/mach-at91/Kconfig | 4 +++- arch/arm/mach-imx/Kconfig | 4 +++- arch/arm/mach-stm32/Kconfig | 14 ++++++++------ 4 files changed, 20 insertions(+), 10 deletions(-) diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index e2bdf2591c10..5adccaed7d01 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -471,7 +471,7 @@ source "arch/arm/mach-zynq/Kconfig" # ARMv7-M architecture config ARCH_LPC18XX - bool "NXP LPC18xx/LPC43xx" + bool "NXP LPC18xx/LPC43xx (DEPRECATED)" depends on ARM_SINGLE_ARMV7M select ARCH_HAS_RESET_CONTROLLER select ARM_AMBA @@ -481,8 +481,10 @@ config ARCH_LPC18XX Support for NXP's LPC18xx Cortex-M3 and LPC43xx Cortex-M4 high performance microcontrollers. + This platform is scheduled for removal in early 2027 + config ARCH_MPS2 - bool "ARM MPS2 platform" + bool "ARM MPS2 platform (DEPRECATED)" depends on ARM_SINGLE_ARMV7M select ARM_AMBA select CLKSRC_MPS2 @@ -493,6 +495,8 @@ config ARCH_MPS2 Please, note that depends which Application Note is used memory map for the platform may vary, so adjustment of RAM base might be needed. + This platform is scheduled for removal in early 2027 + # Definitions to make life easier config ARCH_ACORN bool diff --git a/arch/arm/mach-at91/Kconfig b/arch/arm/mach-at91/Kconfig index c5ef27e3cd8f..cb0e3ff8e0ca 100644 --- a/arch/arm/mach-at91/Kconfig +++ b/arch/arm/mach-at91/Kconfig @@ -15,13 +15,15 @@ menuconfig ARCH_AT91 if ARCH_AT91 config SOC_SAMV7 - bool "SAM Cortex-M7 family" if ARM_SINGLE_ARMV7M + bool "SAM Cortex-M7 family (DEPRECATED)" if ARM_SINGLE_ARMV7M select COMMON_CLK_AT91 select PINCTRL_AT91 help Select this if you are using an SoC from Microchip's SAME7, SAMS7 or SAMV7 families. + This platform is scheduled for removal in early 2027 + config SOC_SAMA5D2 bool "SAMA5D2 family" depends on ARCH_MULTI_V7 diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig index f85a5f8c0a58..3f0521c652cb 100644 --- a/arch/arm/mach-imx/Kconfig +++ b/arch/arm/mach-imx/Kconfig @@ -219,12 +219,14 @@ config SOC_IMX7ULP This enables support for Freescale i.MX7 Ultra Low Power processor. config SOC_IMXRT - bool "i.MXRT support" + bool "i.MXRT support (DEPRECATED)" depends on ARM_SINGLE_ARMV7M select ARMV7M_SYSTICK if ARM_SINGLE_ARMV7M help This enables support for Freescale i.MXRT Crossover processor. + This platform is scheduled for removal in early 2027 + config SOC_VF610 bool "Vybrid Family VF610 support" select ARM_GIC if ARCH_MULTI_V7 diff --git a/arch/arm/mach-stm32/Kconfig b/arch/arm/mach-stm32/Kconfig index 630b992f32b1..4ac3384e397a 100644 --- a/arch/arm/mach-stm32/Kconfig +++ b/arch/arm/mach-stm32/Kconfig @@ -14,30 +14,32 @@ menuconfig ARCH_STM32 select STM32_EXTI if ARM_SINGLE_ARMV7M select STM32_FIREWALL help - Support for STMicroelectronics STM32 processors. + Support for STMicroelectronics STM32MP1 processors using Cortex-A7 + cores. Note that support for the earlier Cortex-M based variants + is deprecated and scheduled for removal in early 2027. if ARCH_STM32 if ARM_SINGLE_ARMV7M config MACH_STM32F429 - bool "STMicroelectronics STM32F429" + bool "STMicroelectronics STM32F429 (DEPRECATED)" default y config MACH_STM32F469 - bool "STMicroelectronics STM32F469" + bool "STMicroelectronics STM32F469 (DEPRECATED)" default y config MACH_STM32F746 - bool "STMicroelectronics STM32F746" + bool "STMicroelectronics STM32F746 (DEPRECATED)" default y config MACH_STM32F769 - bool "STMicroelectronics STM32F769" + bool "STMicroelectronics STM32F769 (DEPRECATED)" default y config MACH_STM32H743 - bool "STMicroelectronics STM32H743" + bool "STMicroelectronics STM32H743 (DEPRECATED)" default y endif # ARMv7-M From 9b34e61860c85f1d9f0722b42a073aff21e82dfa Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Wed, 17 Jun 2026 14:07:31 +0200 Subject: [PATCH 18/19] ARM: mark axxia platform as deprecated The Axxia platform was initially upstream by Anders Berg for LSI and later Avago, but this included only support for I2C and reset drivers, while most of the interesting bits (network, pci, rapidio, usb, ...) or the arm64 platform support were never merged. The downstream kernel was maintained by Intel up to linux-5.15 when the product line was discontinued. Known users include Nokia and Ericsson, but both of them use kernels derived from the out-of-tree drivers rather than the upstream version, and will be able to continue doing that even when the rudimentary mainline support is gone. Mark it as deprecated for removal after the next LTS kernel. Link: https://github.com/axxia/linux-yocto Cc: Stefan Wiehler Reviewed-by: Alexander Sverdlin Reviewed-by: Ethan Nelson-Moore Signed-off-by: Arnd Bergmann --- arch/arm/mach-axxia/Kconfig | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/arch/arm/mach-axxia/Kconfig b/arch/arm/mach-axxia/Kconfig index d3eae6037913..f773a66c1402 100644 --- a/arch/arm/mach-axxia/Kconfig +++ b/arch/arm/mach-axxia/Kconfig @@ -1,6 +1,6 @@ # SPDX-License-Identifier: GPL-2.0 config ARCH_AXXIA - bool "LSI Axxia platforms" + bool "LSI Axxia platforms (DEPRECATED)" depends on ARCH_MULTI_V7 && ARM_LPAE select ARM_AMBA select ARM_GIC @@ -13,3 +13,5 @@ config ARCH_AXXIA The LSI Axxia platforms require a Flattened Device Tree to be passed to the kernel. + + This platform is scheduled for removal in early 2027 From 6cb7a10ef7488720f4379e27575d723a85790b30 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Fri, 19 Jun 2026 14:37:35 +0200 Subject: [PATCH 19/19] ARM: mark mv78xx0 support as deprecated Only one machine remains supported and was kept in 2022 for the Debian_on_Buffalo project that was still using this, with plans to convert it to devicetree. The conversion never happened, and Debian_on_Buffalo does not provide kernels later than linux-6.1, so it is unlikely to still be useful for a DT conversion in the future. Mark the platform for deprecation after the next LTS kernel, which should give any remaining users a few more years of bugfixes. Acked-by: Gregory CLEMENT Link: https://lore.kernel.org/all/20221019150410.3851944-6-arnd@kernel.org/ Signed-off-by: Arnd Bergmann --- arch/arm/mach-mv78xx0/Kconfig | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/arch/arm/mach-mv78xx0/Kconfig b/arch/arm/mach-mv78xx0/Kconfig index 670e6587827e..98b35f5d05ba 100644 --- a/arch/arm/mach-mv78xx0/Kconfig +++ b/arch/arm/mach-mv78xx0/Kconfig @@ -1,6 +1,6 @@ # SPDX-License-Identifier: GPL-2.0-only menuconfig ARCH_MV78XX0 - bool "Marvell MV78xx0" + bool "Marvell MV78xx0 (DEPRECATED)" depends on ARCH_MULTI_V5 depends on CPU_LITTLE_ENDIAN depends on ATAGS @@ -14,6 +14,8 @@ menuconfig ARCH_MV78XX0 Support for the following Marvell MV78xx0 series SoCs: MV781x0, MV782x0. + This platform is scheduled for removal in early 2027. + if ARCH_MV78XX0 config MACH_TERASTATION_WXL