They launch a proposal to eliminate old ARM support in Linux

remove old ARM support on Linux

Arnd Bergmann, Linux kernel developer from the arm-soc branch and manager of kernel packages at SUSE, released a proposal in which he puts on the table the issue of removing the GCC based kernel and create code tools to support older ARM CPUs, their associated ABIs, instruction sets, and kernel capabilities.

Arnd Bergmann, mentions that the basis of the proposal of cessation of support for ARM CPUs old in the kernel is due to discontinuation in GCC, as some of the CPUs proposed for removal are no longer supported by the latest GCC branches, and others are planned to be removed in future releases.

Mention that by applying this, The modernization and implementation of new functions in the compiler will be facilitated. ANDRemoving support for an architecture in GCC will require its removal from the kernel if the minimum GCC version supported by the kernel is increased (currently, at least GCC version 5.1 is required to compile the kernel).

Between architectures, chips and extensions that are proposed to be removed from the kernel, the following are mentioned:

  • ARMv3: Removed in GCC-9, so it will eventually be removed from the kernel as minimum compiler versions increase.
  • ARMv4: Used for StrongARM and FA526 CPUs, still on some boards. Even the newest chips are close to 20 years old. The last version of Debian that supported them was Lenny (5.0). Six SoC families with ARMv4T cores (ARM720T, ARM920T and ARM922T) are still supported. Although they are old, they have more users and developers than ARMv4. Debian Stretch (9.0) was the last to support them.
  • ARMv5: About a third of supported platforms use ARMv5, but most are near the end of their support.
  • ARMv6 early: includes ARM1136r0p in NXP i.MX31 and OMAP24xx, mainly the Nokia N8xx tablet. Requires special hacks to support kernels with SMP. There is a patch that changes ARMv6 from being compatible with ARMv7 to being compatible with ARMv5, but it needs more work.
  • ARMv6K
    ARMv7-M: Cortex-M3/M4/M7 are the only cores supported without MMU, currently on 5 microcontroller platforms. They could be removed in 2027, but GCC will still need to support them on other operating systems.
  • iWMMXt: there are no known remaining users for iWMMXt, and support for ARMv7 PJ4 CPUs has been removed. It is only supported in Intel/Marvell PXA and MMP1.
  • ARMv5 big endian kernel (BE32): Only one SoC uses it, the Intel IXP4xx. Debian supported it in little-endian mode, but the drivers are broken in LE.
  • ARMv7 big endian kernel (BE8)
  • Param_struct pre-ATAGS: This was depreciated in 2001, to be eliminated in "5 years", which has already happened.
  • ATAGS based plate files: After the above cleanup, there are 29 board files left on 10 SoC platforms.
  • OABI Kernels: Virtually everyone uses EABI today, and OABI support was removed as a target in GCC-4.8. The kernel still allows being built as OABI with -mabi=apcs-gnu, used by default in ARMv4/ARMv5 kernels.
  • OABI Compat Mode: This allows running OABI binaries with an EABI kernel.
  • NWFPE
  • Highmem: Most ARM machines can work without highmem support using CONFIG_VMSPLIT_2GB to address up to 2GB of physical memory. Larger machines appeared with Cortex-A15 in 2012, quickly replaced by 64-bit chips.
  • Sparsemem: There is a discussion about removing support for traditional sparsemem. This also relates to machines needing highmem to use all their RAM
  • RiscPC: This is the oldest platform supported, and will eventually be removed, as it does not work with GCC-9 or higher due to the removal of ARMv3.
  • SA1100, Footbridge: other StrongARM-based platforms, relevant only for nostalgia.
  • Gemini, Moxart: Both use the Faraday FA526 CPU core, which like StrongARM implements ARMv4 instead of ARMv4T with thumb. The chips are also over 20 years old, but the kernel code has been updated and is not a maintenance burden.
  • PXA board files: There are two plate files left in the PXA code not removed two years ago, hoping this would help the conversion to DT
  • OMAP1: the only ARMv4T/ARMv5 platform without DT support, making it a target for removal at some point.
  • Nspire, AT91RM9200, CLPS711X, EP93xx, iMX1
  • OMAP24xx
  • iMX31, realview/integrator with 1136r0
  • S3C64xx (Cragganmore): This is the only ARMv6K board without devicetree support, and the board file contains a similar amount of complexity as all other board files combined. arch/arm/mach-s3c/Kconfig.s3c64xx lists it for removal early next year, which would allow for a big cleanup of the platform infrastructure and drivers.
  • Orion5x, mv78xx0, dove board files: Like PXA, these were left pending progress towards the DT conversion, but nothing has happened except some minor fixes in mv78xx0. In contrast, Debian has removed the orion5x kernel binary citing lack of users, so it seems much less likely to be completed.
  • iMX35, WM8750, AST2500, BCM2835: These four are all ARMv6K platforms and are well supported, although only AST2500 and BCM2835 have an active user base.
  • Stm32f4/f7/h7 microcontrollers: These are the only non-MMU Arm chips to see continued development as ST continues to support its existing customers.

Finally, it should be mentioned that this plan is still in the RFC stage, that is, published for community discussion. If approved, it is proposed to begin the removal of old ARM processors in the Linux 6.12 kernel, expected in December. The first candidates to be removed are ARMv4 (without removing ARMv4T), iWMMXt, BE32 and OABI.

Source: https://lkml.org


Leave a Comment

Your email address will not be published. Required fields are marked with *

*

*

  1. Responsible for the data: Miguel Ángel Gatón
  2. Purpose of the data: Control SPAM, comment management.
  3. Legitimation: Your consent
  4. Communication of the data: The data will not be communicated to third parties except by legal obligation.
  5. Data storage: Database hosted by Occentus Networks (EU)
  6. Rights: At any time you can limit, recover and delete your information.