De lanserer et forslag om å eliminere gammel ARM-støtte i Linux

fjern gammel ARM-støtte på Linux

Arnd Bergmann, Linux-kjerneutvikler fra arm-soc-grenen og leder av kjernepakker hos SUSE, ga ut en forslaget der han legger på bordet problemet med å fjerne den GCC-baserte kjernen og lage kodeverktøy for å støtte eldre ARM-CPU-er, tilhørende ABI-er, instruksjonssett og kjernefunksjoner.

Arnd Bergmann, nevner det grunnlaget for forslaget av opphør av støtte for ARM CPUer gammel i kjernenjeg er på grunn av seponering i GCC, ettersom noen av CPU-ene som er foreslått for fjerning ikke lenger støttes av de nyeste GCC-grenene, og andre er planlagt å bli fjernet i fremtidige utgivelser.

Nevn at ved å bruke dette, Modernisering og implementering av nye funksjoner i kompilatoren vil bli tilrettelagt. OGFjerning av støtte for en arkitektur i GCC vil kreve at den fjernes fra kjernen hvis minimum GCC-versjon som støttes av kjernen økes (for øyeblikket kreves minst GCC versjon 5.1 for å kompilere kjernen).

Mellom arkitekturer, sjetonger og utvidelser som foreslås fjernet fra kjernen, er følgende nevnt:

  • ARMv3: Fjernet i GCC-9, så det vil til slutt bli fjernet fra kjernen ettersom minimum kompilatorversjoner øker.
  • ARMv4: Brukes for StrongARM og FA526 CPUer, fortsatt på noen kort. Selv de nyeste sjetongene er nærmere 20 år gamle. Den siste versjonen av Debian som støttet dem var Lenny (5.0). Seks SoC-familier med ARMv4T-kjerner (ARM720T, ARM920T og ARM922T) støttes fortsatt. Selv om de er gamle, har de flere brukere og utviklere enn ARMv4. Debian Stretch (9.0) var den siste som støttet dem.
  • ARMv5: Omtrent en tredjedel av støttede plattformer bruker ARMv5, men de fleste nærmer seg slutten av støtten.
  • ARMv6 tidlig: inkluderer ARM1136r0p i NXP i.MX31 og OMAP24xx, hovedsakelig Nokia N8xx-nettbrettet. Krever spesielle hacks for å støtte kjerner med SMP. Det er en oppdatering som endrer ARMv6 fra å være kompatibel med ARMv7 til å være kompatibel med ARMv5, men den trenger mer arbeid.
  • ARMv6K
    ARMv7-M: Cortex-M3/M4/M7 er de eneste kjernene som støttes uten MMU, for tiden på 5 mikrokontrollerplattformer. De kan bli fjernet i 2027, men GCC må fortsatt støtte dem på andre operativsystemer.
  • iWMMXt: det er ingen kjente gjenværende brukere for iWMMXt, og støtte for ARMv7 PJ4 CPUer er fjernet. Det støttes kun i Intel/Marvell PXA og MMP1.
  • ARMv5 big endian kjerne (BE32): Bare én SoC bruker den, Intel IXP4xx. Debian støttet det i little-endian-modus, men driverne er ødelagte i LE.
  • ARMv7 big endian kjerne (BE8)
  • Param_struct pre-ATAGS: Dette ble avskrevet i 2001, for å bli eliminert om "5 år", noe som allerede har skjedd.
  • ATAGS-baserte platefiler: Etter oppryddingen ovenfor er det 29 brettfiler igjen på 10 SoC-plattformer.
  • OABI-kjerner: Så godt som alle bruker EABI i dag, og OABI-støtte ble fjernet som et mål i GCC-4.8. Kjernen tillater fortsatt å bygges som OABI med -mabi=apcs-gnu, brukt som standard i ARMv4/ARMv5-kjerner.
  • OABI-kompatmodus: Dette gjør det mulig å kjøre OABI-binærfiler med en EABI-kjerne.
  • NWFPE
  • Highmem: De fleste ARM-maskiner kan fungere uten highmem-støtte ved å bruke CONFIG_VMSPLIT_2GB for å adressere opptil 2 GB fysisk minne. Større maskiner dukket opp med Cortex-A15 i 2012, raskt erstattet av 64-bits brikker.
  • Sparsemem: Det er en diskusjon om å fjerne støtten til tradisjonell sparsemem. Dette gjelder også maskiner som trenger highmem for å bruke all RAM
  • RiscPC: Dette er den eldste plattformen som støttes, og vil til slutt bli fjernet, siden den ikke fungerer med GCC-9 eller høyere på grunn av fjerningen av ARMv3.
  • SA1100, gangbro: andre StrongARM-baserte plattformer, kun relevant for nostalgi.
  • Gemini, Moxart: Begge bruker Faraday FA526 CPU-kjernen, som i likhet med StrongARM implementerer ARMv4 i stedet for ARMv4T med tommelen. Brikkene er også over 20 år gamle, men kjernekoden er oppdatert og er ikke en vedlikeholdsbyrde.
  • PXA-kortfiler: Det er to platefiler igjen i PXA-koden som ikke ble fjernet for to år siden, og håper dette vil hjelpe konverteringen til DT
  • OMAP1: den eneste ARMv4T/ARMv5-plattformen uten DT-støtte, noe som gjør den til et mål for fjerning på et tidspunkt.
  • Nspire, AT91RM9200, CLPS711X, EP93xx, iMX1
  • OMAP24xx
  • iMX31, realview/integrator med 1136r0
  • S3C64xx (Cragganmore): Dette er det eneste ARMv6K-kortet uten devicetree-støtte, og brettfilen inneholder en lignende kompleksitet som alle andre brettfiler kombinert. arch/arm/mach-s3c/Kconfig.s3c64xx viser den for fjerning tidlig neste år, noe som vil tillate en stor opprydding av plattformens infrastruktur og drivere.
  • Orion5x, mv78xx0, dove board filer: I likhet med PXA ble disse stående i påvente av fremgang mot DT-konverteringen, men ingenting har skjedd bortsett fra noen mindre rettelser i mv78xx0. Derimot har Debian fjernet orion5x-kjernen binær med henvisning til mangel på brukere, så det virker mye mindre sannsynlig at den blir fullført.
  • iMX35, WM8750, AST2500, BCM2835: Disse fire er alle ARMv6K-plattformer og støttes godt, selv om bare AST2500 og BCM2835 har en aktiv brukerbase.
  • Stm32f4/f7/h7 mikrokontrollere: Dette er de eneste ikke-MMU Arm-brikkene som ser fortsatt utvikling ettersom ST fortsetter å støtte sine eksisterende kunder.

Til slutt skal det nevnes at denne planen er fortsatt i RFC-stadiet, det vil si publisert for fellesskapsdiskusjon. Hvis godkjent, foreslås det å begynne fjerningen av gamle ARM-prosessorer i Linux 6.12-kjernen, forventet i desember. De første kandidatene som skal fjernes er ARMv4 (uten å fjerne ARMv4T), iWMMXt, BE32 og OABI.

Fuente: https://lkml.org