Linux Kernel to Support Legacy ARM Processors

Arnd Bergmann, responsible for the core packages in SUSE, recently published in the list of newsletters from Developers of the Linux kernel, outlining a plan to remove support for old ARM CPUs in the Linux kernel and assembly tools based on GCC. The plan is currently at the RFC stage, open for discussion within the community. If approved, the removal of support for old ARM processors is proposed to begin in the Linux 6.12 kernel, expected to be released in December. The first candidates for removal include ARMV4 (excluding ARMV4T), IWMMMXT, BE32, and OABI.

This decision to stop supporting old ARM CPUs in the kernel aligns with the discontinuation of their support in GCC. Some CPUs slated for removal are no longer supported in the latest GCC branches, with plans to remove them in future releases. Removing architecture support in GCC will also require removing it from the kernel in the case of an increase in the minimum supported GCC version (currently requiring at least GCC 5.1 for kernel assembly).

The list of architectures, chips, and extensions proposed to be removed from the kernel include:

  • ARMV3 – Support already discontinued in GCC 9.
  • ARMV4 – used in aging processors Strongarm and FA526, with the newest of these chips released about 20 years ago. ARMV4 support in Debian 5.0 is set to be terminated. Support in GCC will end first, followed by the kernel after a few years.
  • ARMV4T – Found in 6 SOC families with ARM720T cores, ARM920T, and ARM922T. ARMV4T support in Debian 9.0 has been ceased. In the kernel, support for ARMV4T is planned to end after ARMV5 support.
  • ARMV5 – Currently used in about 1/3 of all supported platforms in the kernel, but most are nearing the end of their lifecycle. Difficulty in maintaining support due to lack of FPU and atomic operations may lead to the ARMV5 Debian port becoming unofficial soon.
  • Initial generations ARMV6 – Used in SOC like ARM1136R0P (NXP I.MX31) and OMAP24XX (Nokia N8XX), with support requiring hacks for SMP cores.
  • ARMV6K – Utilized in ARM1176 (Raspberry Pi 1, AST2500) and ARM1136R1. Kernel support is feasible, but distribution challenges exist due to inconsistency with ARMV7-A+VFPV3-D16
/Reports, release notes, official announcements.