De lancerer et forslag om at fjerne gammel ARM-understøttelse i Linux

fjern gammel ARM-understøttelse på Linux

Arnd Bergmann, Linux-kerneudvikler fra arm-soc-grenen og leder af kernepakker hos SUSE, udgav en forslag hvori han sætter på bordet spørgsmålet om at fjerne den GCC-baserede kerne og skabe kodeværktøjer til at understøtte ældre ARM CPU'er, deres tilknyttede ABI'er, instruktionssæt og kernefunktioner.

Arnd Bergmann, nævner det grundlaget for forslaget ophør af støtte til ARM CPU'er gammel i kernenJeg er på grund af afbrydelse i GCC, da nogle af de CPU'er, der foreslås til fjernelse, ikke længere understøttes i de seneste GCC-grene, og andre er planlagt til at blive fjernet i fremtidige udgivelser.

Nævn, at ved at anvende dette, Modernisering og implementering af nye funktioner i compileren vil blive lettet. OGFjernelse af understøttelse af en arkitektur i GCC vil kræve dens fjernelse fra kernen, hvis den mindste GCC-version, der understøttes af kernen, øges (i øjeblikket kræves der mindst GCC version 5.1 for at kompilere kernen).

Mellem arkitekturer, chips og udvidelser der foreslås fjernet fra kernen, er følgende nævnt:

  • ARMv3: Fjernet i GCC-9, så det til sidst vil blive fjernet fra kernen, efterhånden som minimum compilerversioner stiger.
  • ARMv4: Bruges til StrongARM og FA526 CPU'er, stadig på nogle boards. Selv de nyeste chips er tæt på 20 år gamle. Den sidste version af Debian, der understøttede dem, var Lenny (5.0). Seks SoC-familier med ARMv4T-kerner (ARM720T, ARM920T og ARM922T) understøttes stadig. Selvom de er gamle, har de flere brugere og udviklere end ARMv4. Debian Stretch (9.0) var den sidste til at støtte dem.
  • ARMv5: Omkring en tredjedel af de understøttede platforme bruger ARMv5, men de fleste er tæt på slutningen af ​​deres support.
  • ARMv6 tidligt: inkluderer ARM1136r0p i NXP i.MX31 og OMAP24xx, primært Nokia N8xx-tabletten. Kræver specielle hacks for at understøtte kerner med SMP. Der er en patch, der ændrer ARMv6 fra at være kompatibel med ARMv7 til at være kompatibel med ARMv5, men den kræver mere arbejde.
  • ARMv6K
    ARMv7-M: Cortex-M3/M4/M7 er de eneste kerner, der understøttes uden MMU, i øjeblikket på 5 mikrocontrollerplatforme. De kan blive fjernet i 2027, men GCC skal stadig understøtte dem på andre operativsystemer.
  • iWMMXt: der er ingen kendte tilbageværende brugere til iWMMXt, og understøttelse af ARMv7 PJ4 CPU'er er blevet fjernet. Det understøttes kun på Intel/Marvell PXA og MMP1.
  • ARMv5 big endian kerne (BE32): Kun én SoC bruger det, Intel IXP4xx. Debian understøttede det i little-endian-tilstand, men driverne er ødelagte i LE.
  • ARMv7 big endian kerne (BE8)
  • Param_struct præ-ATAGS: Dette blev afskrevet i 2001, for at blive elimineret om "5 år", hvilket allerede er sket.
  • ATAGS-baserede pladefiler: Efter ovenstående oprydning er der 29 board-filer tilbage på 10 SoC-platforme.
  • OABI-kerner: Stort set alle bruger EABI i dag, og OABI-understøttelse blev fjernet som et mål i GCC-4.8. Kernen tillader stadig at blive bygget som OABI med -mabi=apcs-gnu, brugt som standard i ARMv4/ARMv5 kerner.
  • OABI Compat Mode: Dette tillader at køre OABI-binære filer med en EABI-kerne.
  • NWFPE
  • Highmem: De fleste ARM-maskiner kan arbejde uden highmem-understøttelse ved at bruge CONFIG_VMSPLIT_2GB til at adressere op til 2GB fysisk hukommelse. Større maskiner dukkede op med Cortex-A15 i 2012, hurtigt erstattet af 64-bit chips.
  • Sparsemem: Der er en diskussion om at fjerne støtten til traditionelle sparsemem. Dette vedrører også maskiner, der har brug for highmem for at bruge al deres RAM
  • RiscPC: Dette er den ældste platform, der understøttes, og vil i sidste ende blive fjernet, da den ikke virker med GCC-9 eller højere på grund af fjernelsen af ​​ARMv3.
  • SA1100, gangbro: andre StrongARM-baserede platforme, kun relevante for nostalgi.
  • Gemini, Moxart: Begge bruger Faraday FA526 CPU-kernen, der ligesom StrongARM implementerer ARMv4 i stedet for ARMv4T med tommelfingeren. Chipsene er også over 20 år gamle, men kernekoden er blevet opdateret og er ikke en vedligeholdelsesbyrde.
  • PXA-kortfiler: Der er to pladefiler tilbage i PXA-koden, der ikke blev fjernet for to år siden, i håb om at dette ville hjælpe konverteringen til DT
  • OMAP1: den eneste ARMv4T/ARMv5-platform uden DT-understøttelse, hvilket gør den til et mål for fjernelse på et tidspunkt.
  • Nspire, AT91RM9200, CLPS711X, EP93xx, iMX1
  • OMAP24xx
  • iMX31, realview/integrator med 1136r0
  • S3C64xx (Cragganmore): Dette er det eneste ARMv6K-kort uden devicetree-understøttelse, og board-filen indeholder en tilsvarende mængde kompleksitet som alle andre board-filer kombineret. arch/arm/mach-s3c/Kconfig.s3c64xx angiver det til fjernelse i begyndelsen af ​​næste år, hvilket ville give mulighed for en stor oprydning af platformens infrastruktur og drivere.
  • Orion5x, mv78xx0, dove board filer: Ligesom PXA blev disse efterladt afventende fremskridt mod DT-konverteringen, men intet er sket bortset fra nogle mindre rettelser i mv78xx0. I modsætning hertil har Debian fjernet den binære orion5x-kerne med henvisning til mangel på brugere, så det ser ud til, at det er meget mindre sandsynligt, at det bliver gennemført.
  • iMX35, WM8750, AST2500, BCM2835: Disse fire er alle ARMv6K-platforme og er godt understøttet, selvom kun AST2500 og BCM2835 har en aktiv brugerbase.
  • Stm32f4/f7/h7 mikrocontrollere: Disse er de eneste ikke-MMU Arm-chips, der ser fortsat udvikling, da ST fortsætter med at støtte sine eksisterende kunder.

Endelig skal det nævnes, at denne plan er stadig i RFC-stadiet, altså udgivet til samfundsdiskussion. Hvis det bliver godkendt, foreslås det at påbegynde fjernelse af gamle ARM-processorer i Linux 6.12-kernen, der forventes i december. De første kandidater, der skal fjernes, er ARMv4 (uden at fjerne ARMv4T), iWMMXt, BE32 og OABI.

kilde: https://lkml.org