Plan to End Support for Old ARM Processors in the Linux Kernel

Arnd Bergmann, responsible for kernel packages at SUSE, announced in the Linux kernel developers mailing list a plan to remove code for supporting old ARM CPUs and their associated ABIs, instruction sets, and kernel features from the kernel and GCC build tools. The plan is currently at the RFC stage, meaning it is open for community discussion. If approved, the removal of old ARM processors is proposed to begin in Linux kernel 6.12, which is expected to be released in December. The first candidates for removal include ARMv4 (without removing ARMv4T), iWMMXt, BE32, and OABI.

The end of support for old ARM CPUs in the kernel overlaps with the discontinuation of their support in GCC β€” some of the CPUs proposed for removal are already not supported in recent GCC branches, and others are planned to be removed in future releases, simplifying the modernization and implementation of new features in the compiler. Removing architecture support in GCC will require it to be removed from the kernel if the minimum supported GCC version (currently GCC 5.1) is raised.

Architectures, chips, and extensions proposed for removal from the kernel:

  • ARMv3 β€” support has already been discontinued in GCC 9.
  • ARMv4 β€” used for the still common StrongARM and FA526 processors, with the latest of these chips released about 20 years ago. Support for ARMv4 was discontinued in Debian 5.0. It is proposed to first stop support for ARMv4 in GCC, and a few years later in the kernel.
  • ARMv4T β€” there are 6 families of SoCs with ARM720T, ARM920T, and ARM922T cores that are more widespread than SoCs based on ARMv4. Support for ARMv4T was discontinued in Debian 9.0. In the kernel, support for ARMv4T is planned to be discontinued no earlier than support for ARMv5 is dropped.
  • ARMv5 β€” used on about 1/3 of all platforms supported in the kernel, but most of these platforms are nearing the end of their life cycle. Debian continues to support ARMv5, but due to the lack of FPU and atomic operations, maintaining support becomes increasingly difficult, and Debian's port for ARMv5 is likely to be moved to unofficial status soon.
  • Early generations of ARMv6 β€” used in SoCs such as ARM1136r0p (NXP i.MX31) and OMAP24xx (Nokia N8xx), but their support requires hacks to work in SMP kernels.
  • ARMv6K β€” used in ARM1176 (Raspberry Pi 1, AST2500) and ARM1136r1. There are no obstacles in the kernel to discontinue support, but there are difficulties in distributions due to the mismatch with the typical armv7-a+vfpv3-d16 instruction set.
  • ARMv7-M β€” used in microcontrollers based on Cortex-M3/M4/M7, which remain the last supported chips without memory management unit (MMU) in the kernel. Work on cores for systems without an MMU ceased in 2017, after shifting focus for such chips to the development of RTOS like Zephyr. Support for ARMv7-M is suggested to be dropped in 2027, a decade after the end of development, despite ongoing support in GCC.
  • iWMMXt β€” support for CPU ARMv7 PJ4 (MMP2, Berlin) has already been discontinued in the kernel, leaving no remaining systems in use that employ this instruction set. Support for iWMMXt has already been dropped in Clang and is suggested for removal from GCC.
  • BE32 (big-endian ARMv5) β€” used only in one SoC Intel IXP4xx. In older versions of Debian, only the little-endian mode was supported, but issues remain unresolved in the drivers. Support for BE32 is proposed to be removed from GCC and the kernel, as no one has attempted to fix the issues in the drivers over the years.
  • BE8 (big-endian ARMv7) β€” many drivers have issues, testing has been discontinued, and there is no information on remaining devices in use. The BE8 mode may be of interest for testing user space components on big-endian systems, so support for BE8 is planned to be maintained in the kernel and GCC for at least a few more years until it starts causing problems.

Proposed kernel Linux features for removal:

  • The param_struct structure, used prior to ATAGS (ARM Tag-Area) β€” deprecated since 2001, but still in use in code for RiscPC and Footbridge platforms.
  • Files with parameters based on the ATAGS structure (used to convey configuration information before Device Tree) β€” the kernel retains 29 files related to 10 SoC platforms using ATAGS.
  • OABI (Old ABI, the old ABI for ARM architecture) is now mostly replaced by EABI (Embedded ABI). OABI is the cause of many errors as driver developers stopped considering some associated features. Support for OABI in user-space component builds was discontinued in GCC 4.8, but a flag '-mabi=apcs-gnu' has been left for the kernel. It is suggested to keep OABI for now but complicate its inclusion due to oversight.
  • The OABI compatibility mode (OABI_COMPAT) allows execution of binaries built for OABI using a kernel with EABI. Specific issues arise in drivers due to ioctl incompatibilities, but the maintenance effort for this mode is notably less than that of maintaining kernels with OABI. To preserve support for StrongARM, it would be rational to maintain support for OABI or OABI_COMPAT.
  • NWFPE (No Floating Point Emulator) is a patch required for executing floating-point operations. Patches for its removal were proposed 11 years ago, but NWFPE is necessary for some user-space components built for OABI, thus support for NWFPE is recommended to be retained until support for OABI or OABI_COMPAT remains in the kernel.
  • Highmem (used for managing memory in areas above 1 GB) β€” most ARM systems can operate without enabling highmem or can use CONFIG_VMSPLIT_2GB to access the first 2GB of physical memory. Work is underway to facilitate access to 4 GB of RAM on systems with LPAE (Cortex-A7/A15), after which support for Highmem may be removed.
  • Sparsemem is required for systems that need highmem.

Proposed for removal platforms:

  • RiscPC is the oldest supported platform in the kernel. It is no longer supported in GCC starting from the 9.x branch due to the removal of ARMv3 support. The maintainer continues to test kernel operation on this platform, but there seem to be no real users anymore, so support may be discontinued if the maintainer loses interest.
  • SA1100, Footbridge are outdated platforms preserved only out of nostalgia. Almost all platform description files for these platforms were removed in kernel 6.3, leaving only support for devices like ipaq h3600, assabet, netwinder, and ebsa285. The removal question depends on the maintainer's intentions.
  • Gemini, Moxart β€” use CPU based on ARMv4. The chips were released over 20 years ago, but their support does not require additional maintenance efforts, so there is no point in removing them until the StrongARM platform is phased out.
  • Files supporting the PXA platform are abandoned and out of circulation, and if there is no renewed interest, they are set for removal in early 2025.
  • OMAP1 remains, on one hand, the only platform based on ARMv4T/ARMv5 without Device Tree support, and there are no movements towards transitioning to Device Tree. On the other hand, the platform still has users.
  • Nspire, AT91RM9200, CLPS711X, EP93xx, iMX1 β€” use CPU based on ARMv4T. Work is underway to translate board descriptions to Device Tree, but the rationale for maintaining them remains only as long as ARMv5 support is preserved.
  • OMAP24xx is the only ARMv6 platform with active users. Continued support depends on the maintenance of the arm1136r0 CPU.
  • iMX31 β€” there is no information about active users, but there is no point in removing it before OMAP2.
  • S3C64xx (Cragganmore) β€” the only platform without Device Tree support built on ARMv6K. The platform continues to be used for testing audio codecs, so removal is postponed until testing is transitioned to another board.
  • Orion5x, mv78xx0 β€” the question of removal is planned to be reconsidered at the beginning of next year.
  • iMX35, WM8750, AST2500, BCM2835 β€” are well supported and have active users, and there are currently no plans for removal.
  • stm32f4/f7/h7 β€” microcontrollers without MMU, kernel maintenance continues, and there are active users. The question of removal is planned for consideration in 2026.

Source: opennet.ru

Buy reliable website hosting with DDoS protection, VPS VDS servers πŸ”₯ Buy reliable website hosting with DDoS protection, VPS VDS servers | ProHoster