[PATCH v2 00/19] ARM: platform and feature deprecation

Arnd Bergmann arnd at kernel.org
Wed Jul 1 14:23:34 PDT 2026


From: Arnd Bergmann <arnd at arndb.de>

Sorry for dropping the ball on v1 of this series almost two years ago.
This is attempt to bring the source code to the state that we discussed
back in 2024, regarding a timeline for deprecating and removing features,
in particular platforms and ABIs that are basically unused and are
also getting in the way of maintenance.

The earlier consensus was to remove these features in 2025 or 2026
after the corresponding LTS kernel release. I would suggest pushing
these to early 2027 now, see the patch description for details on
each one:

 - all board files that are still not converted to DT
   (except for OMAP1 and S3C)

 - iWMMXt FPU support

 - ARMv6/ARM1136r0 (not ARMv6K/ARM1136r1/ARM1176) along with the
   OMAP24xx and i.MX31 SoCs using it

 - Cortex-M3/M4/M7 based microcontroller support
   (stm32, imxrt, lpc18xx, samv7)

 - LSI Axxia platform

 - OABI, OABI-compat and NWFPE are confined to StrongARM based
   builds and scheduled for removal once StrongARM is gone.

 - DEPRECATED_PARAM_STRUCT, which was originally scheduled for
   removal in 2006 (!)

The ARCH_S3C64XX platform was scheduled for removal in 2024, but is
still actively used and will get removed once Mark Brown stops using
it. The OMAP1 platform has some remaining boardfiles and is expected to
get converted to DT.

Big-endian ARMv7 CPU support is not scheduled for removal but marked
as broken the same way as ARM64 has, to reduce the need for testing
unused configurations. This may be removed in the future if arm64 does
it as well (note: big-endian ARMv5 support is not deprecated because
it is used by ixp4xx).

Regarding actually removing the code, I would suggest linux-7.4 (January
2027), removing both the board files and any drivers that have either
become newly unused or were missed in a previous machine removal series,
followed by removing support for then unused CPUs a release later.

Maintainers of the above features, please provide Acks or let me know
if you think any of them need to hand around for longer.

Changes since v1:

  - fix build failures for ARMv6 patch
  - update timelines
  - add a few more patches for features that were not
    quite as obsolete two years ago

Links to previous discussion:

  https://lore.kernel.org/linux-arm-kernel/20210109174357.GB1551@shell.armlinux.org.uk/
  https://lore.kernel.org/linux-arm-kernel/2831c5a6-cfbf-4fe0-b51c-0396e5b0aeb7@app.fastmail.com/
  https://lore.kernel.org/all/20241204102904.1863796-1-arnd@kernel.org/

Arnd Bergmann (19):
  ARM: use CONFIG_AEABI by default everywhere
  ARM: limit OABI support to StrongARM CPUs
  ARM: rework ARM11 CPU selection logic
  ARM: deprecate support for ARM1136r0
  ARM: turn CONFIG_ATAGS off by default
  ARM: mark CPU_ENDIAN_BE8 as deprecated
  ARM: update DEPRECATED_PARAM_STRUCT removal timeline
  ARM: s3c64xx: extend deprecation schedule
  ARM: update FPE_NWFPE help text
  ARM: mark IWMMXT as deprecated
  ARM: mark ARCH_DOVE as deprecated
  ARM: PXA: mark remaining board files as deprecated
  ARM: orion5x: mark all board files as deprecated
  ARM: mark mach-sa1100 as deprecated
  ARM: mark RiscPC as deprecated
  ARM: mark footbridge as deprecated
  ARM: mark Cortex-M3/M4/M7 based boards as deprecated
  ARM: mark axxia platform as deprecated
  ARM: mark mv78xx0 support as deprecated

 arch/arm/Kconfig                        | 80 ++++++++++++++-----------
 arch/arm/Kconfig.platforms              |  2 +-
 arch/arm/configs/am200epdkit_defconfig  |  3 +-
 arch/arm/configs/aspeed_g4_defconfig    |  2 -
 arch/arm/configs/aspeed_g5_defconfig    |  1 -
 arch/arm/configs/assabet_defconfig      |  3 +
 arch/arm/configs/at91_dt_defconfig      |  2 -
 arch/arm/configs/axm55xx_defconfig      |  2 -
 arch/arm/configs/bcm2835_defconfig      |  1 -
 arch/arm/configs/clps711x_defconfig     |  1 -
 arch/arm/configs/collie_defconfig       |  2 +-
 arch/arm/configs/davinci_all_defconfig  |  1 -
 arch/arm/configs/dove_defconfig         |  2 +-
 arch/arm/configs/ep93xx_defconfig       |  1 -
 arch/arm/configs/footbridge_defconfig   |  2 +
 arch/arm/configs/gemini_defconfig       |  1 -
 arch/arm/configs/h3600_defconfig        |  3 +-
 arch/arm/configs/hisi_defconfig         |  1 -
 arch/arm/configs/imx_v4_v5_defconfig    |  1 -
 arch/arm/configs/integrator_defconfig   |  2 -
 arch/arm/configs/ixp4xx_defconfig       |  1 -
 arch/arm/configs/jornada720_defconfig   |  3 +-
 arch/arm/configs/keystone_defconfig     |  1 -
 arch/arm/configs/lpc32xx_defconfig      |  1 -
 arch/arm/configs/mmp2_defconfig         |  1 -
 arch/arm/configs/moxart_defconfig       |  2 -
 arch/arm/configs/mps2_defconfig         |  1 -
 arch/arm/configs/multi_v4t_defconfig    |  2 -
 arch/arm/configs/multi_v5_defconfig     | 10 ----
 arch/arm/configs/mv78xx0_defconfig      |  3 +-
 arch/arm/configs/mvebu_v5_defconfig     | 10 ----
 arch/arm/configs/mxs_defconfig          |  1 -
 arch/arm/configs/neponset_defconfig     |  3 +
 arch/arm/configs/netwinder_defconfig    |  3 +
 arch/arm/configs/nhk8815_defconfig      |  1 -
 arch/arm/configs/omap1_defconfig        |  3 +-
 arch/arm/configs/orion5x_defconfig      | 11 ----
 arch/arm/configs/pxa168_defconfig       |  2 -
 arch/arm/configs/pxa3xx_defconfig       |  2 -
 arch/arm/configs/pxa910_defconfig       |  2 -
 arch/arm/configs/pxa_defconfig          |  5 --
 arch/arm/configs/rpc_defconfig          |  3 +
 arch/arm/configs/s3c6400_defconfig      |  2 +
 arch/arm/configs/sama5_defconfig        |  1 -
 arch/arm/configs/sama7_defconfig        |  1 -
 arch/arm/configs/spear13xx_defconfig    |  1 -
 arch/arm/configs/spitz_defconfig        |  2 +-
 arch/arm/configs/stm32_defconfig        |  3 +-
 arch/arm/configs/versatile_defconfig    |  2 -
 arch/arm/configs/vt8500_v6_v7_defconfig |  1 -
 arch/arm/configs/wpcm450_defconfig      |  2 -
 arch/arm/mach-at91/Kconfig              |  4 +-
 arch/arm/mach-axxia/Kconfig             |  4 +-
 arch/arm/mach-dove/Kconfig              |  8 ++-
 arch/arm/mach-footbridge/Kconfig        |  7 ++-
 arch/arm/mach-imx/Kconfig               | 13 +++-
 arch/arm/mach-mv78xx0/Kconfig           |  4 +-
 arch/arm/mach-omap2/Kconfig             | 18 ++++--
 arch/arm/mach-orion5x/Kconfig           | 47 +++++++++++----
 arch/arm/mach-pxa/Kconfig               | 10 +++-
 arch/arm/mach-rpc/Kconfig               |  5 +-
 arch/arm/mach-s3c/Kconfig.s3c64xx       | 15 +++--
 arch/arm/mach-sa1100/Kconfig            |  5 +-
 arch/arm/mach-stm32/Kconfig             | 14 +++--
 arch/arm/mach-versatile/Kconfig         | 15 +++--
 arch/arm/mm/Kconfig                     | 29 ++++++++-
 66 files changed, 227 insertions(+), 170 deletions(-)

-- 
2.39.5

Cc: Aaro Koskinen <aaro.koskinen at iki.fi>
Cc: Alexander Sverdlin <alexander.sverdlin at siemens.com>
Cc: Alexandre Belloni <alexandre.belloni at bootlin.com>
Cc: Alexandre Torgue <alexandre.torgue at foss.st.com>
Cc: Andrew Lunn <andrew at lunn.ch>
Cc: Ard Biesheuvel <ardb at kernel.org>
Cc: Claudiu Beznea <claudiu.beznea at tuxon.dev>
Cc: Daniel Mack <daniel at zonque.org>
Cc: Ethan Nelson-Moore <enelsonmoore at gmail.com>
Cc: Frank Li <Frank.Li at nxp.com>
Cc: Gregory Clement <gregory.clement at bootlin.com>
Cc: Haojian Zhuang <haojian.zhuang at gmail.com>
Cc: "Jeremy J. Peper" <jeremy at jeremypeper.com>
Cc: Kristoffer Ericson <kristoffer.ericson at gmail.com>
Cc: Krzysztof Kozlowski <krzk at kernel.org>
Cc: Linus Walleij <linusw at kernel.org>
Cc: Mark Brown <broonie at kernel.org>
Cc: Marc Zyngier <maz at kernel.org>
Cc: Mike Rapoport <rppt at kernel.org>
Cc: Nicolas Ferre <nicolas.ferre at microchip.com>
Cc: Patrice Chotard <patrice.chotard at foss.st.com>
Cc: Ralph Siemsen <ralph.siemsen at linaro.org>
Cc: Robert Jarzmik <robert.jarzmik at free.fr>
Cc: Russell King <linux at armlinux.org.uk>
Cc: Sascha Hauer <s.hauer at pengutronix.de>
Cc: Sebastian Hesselbarth <sebastian.hesselbarth at gmail.com>
Cc: Stefan Agner <stefan at agner.ch>
Cc: Stefan Wiehler <stefan.wiehler at nokia.com>
Cc: Tony Lindgren <tony at atomide.com>
Cc: Vladimir Zapolskiy <vz at mleia.com>
Cc: Will Deacon <will at kernel.org>
Cc: linux-arm-kernel at lists.infradead.org



More information about the linux-arm-kernel mailing list