Arnd Bergmann, Razvijalec jedra Linuxa iz podružnice arm-soc in upravitelj paketov jedra pri SUSE je izdal a predlog v kateri postavi na mizo vprašanje odstranjevanja jedra, ki temelji na GCC in ustvarite kodna orodja za podporo starejšim procesorjem ARM, njihovim povezanim ABI-jem, nizom navodil in zmogljivosti jedra.
Arnd Bergmann, to omenja osnova predloga o prenehanju podpore za procesorje ARM star v kernel je zaradi prekinitve v GCC, ker nekateri CPU-ji, predlagani za odstranitev, niso več podprti v najnovejših vejah GCC, drugi pa naj bi bili odstranjeni v prihodnjih izdajah.
Omenite, da z uporabo tega, Omogočena bo posodobitev in implementacija novih funkcij v prevajalnik. INOdstranitev podpore za arhitekturo v GCC bo zahtevala njeno odstranitev iz jedra, če se poveča minimalna različica GCC, ki jo podpira jedro (trenutno je za prevajanje jedra potrebna vsaj različica GCC 5.1).
Med arhitekturami, čipi in razširitvami ki naj bi jih odstranili iz jedra, so omenjeni naslednji:
- ARMv3: Odstranjeno v GCC-9, tako da bo sčasoma odstranjeno iz jedra, ko se bo povečalo najmanjše število različic prevajalnika.
- ARMv4: Uporablja se za procesorje StrongARM in FA526, še vedno na nekaterih ploščah. Tudi najnovejši čipi so stari skoraj 20 let. Zadnja različica Debiana, ki jih je podpirala, je bila Lenny (5.0). Še vedno je podprtih šest družin SoC z jedri ARMv4T (ARM720T, ARM920T in ARM922T). Čeprav so stari, imajo več uporabnikov in razvijalcev kot ARMv4. Zadnji jih je podpiral Debian Stretch (9.0).
- ARMv5: Približno tretjina podprtih platform uporablja ARMv5, vendar je večina blizu konca podpore.
- ARMv6 zgodaj: vključuje ARM1136r0p v NXP i.MX31 in OMAP24xx, predvsem tablico Nokia N8xx. Zahteva posebne vdore za podporo jedra s SMP. Obstaja popravek, ki spremeni ARMv6 iz združljivega z ARMv7 v združljiv z ARMv5, vendar je potrebno še več dela.
- ARMv6K
ARMv7-M: Cortex-M3/M4/M7 so edina jedra, ki so podprta brez MMU, trenutno na 5 platformah mikrokrmilnikov. Lahko bi jih odstranili leta 2027, vendar jih bo moral GCC še vedno podpirati v drugih operacijskih sistemih. - iWMMXt: za iWMMXt ni znanih preostalih uporabnikov, podpora za procesorje ARMv7 PJ4 pa je bila odstranjena. Podprt je samo na Intel/Marvell PXA in MMP1.
- ARMv5 big endian jedro (BE32): Uporablja ga samo en SoC, Intel IXP4xx. Debian ga je podpiral v načinu little-endian, vendar so gonilniki v LE pokvarjeni.
- ARMv7 big endian jedro (BE8)
- Param_struct pre-ATAGS: Ta je bila leta 2001 amortizirana, da bi jo odpravili v "5 letih", kar se je že zgodilo.
- Datoteke plošč na osnovi ATAGS: Po zgornjem čiščenju je na 29 platformah SoC ostalo 10 datotek plošče.
- OABI jedra: Skoraj vsi danes uporabljajo EABI, podpora za OABI pa je bila odstranjena kot cilj v GCC-4.8. Jedro še vedno omogoča gradnjo kot OABI z -mabi=apcs-gnu, ki se privzeto uporablja v jedrih ARMv4/ARMv5.
- OABI Compat Mode: To omogoča izvajanje binarnih datotek OABI z jedrom EABI.
- NWFPE
- Highmem: Večina strojev ARM lahko deluje brez podpore za highmem z uporabo CONFIG_VMSPLIT_2GB za naslavljanje do 2 GB fizičnega pomnilnika. Leta 15 so se pojavili večji stroji s Cortex-A2012, ki so jih hitro nadomestili 64-bitni čipi.
- Sparsemem: Obstaja razprava o odstranitvi podpore za tradicionalni sparsemem. To se nanaša tudi na stroje, ki potrebujejo highmem za uporabo celotnega RAM-a
- RiscPC: To je najstarejša podprta platforma in bo sčasoma odstranjena, saj zaradi odstranitve ARMv9 ne deluje z GCC-3 ali novejšim.
- SA1100, Brv: druge platforme, ki temeljijo na StrongARM, pomembne le za nostalgijo.
- Gemini, Moxart: Oba uporabljata CPU jedro Faraday FA526, ki tako kot StrongARM izvaja ARMv4 namesto ARMv4T s palcem. Tudi čipi so stari več kot 20 let, vendar je bila koda jedra posodobljena in ni breme za vzdrževanje.
- Datoteke plošče PXA: V kodi PXA sta ostali dve datoteki plošče, ki nista bili odstranjeni pred dvema letoma, v upanju, da bo to pomagalo pri pretvorbi v DT
- OMAP1: edina platforma ARMv4T/ARMv5 brez podpore za DT, zaradi česar bo na neki točki tarča odstranitve.
- Nspire, AT91RM9200, CLPS711X, EP93xx, iMX1
- OMAP24xx
- iMX31, realview/integrator z 1136r0
- S3C64xx (Cragganmore): To je edina plošča ARMv6K brez podpore za drevo naprav, datoteka plošče pa vsebuje podobno količino kompleksnosti kot vse druge datoteke plošče skupaj. arch/arm/mach-s3c/Kconfig.s3c64xx ga navaja za odstranitev v začetku naslednjega leta, kar bi omogočilo veliko čiščenje infrastrukture platforme in gonilnikov.
- Orion5x, mv78xx0, datoteke plošče dove: Tako kot PXA so tudi ti ostali v čakanju na napredek v smeri pretvorbe DT, vendar se ni zgodilo nič razen nekaj manjših popravkov v mv78xx0. Nasprotno pa je Debian odstranil dvojiško datoteko jedra orion5x zaradi pomanjkanja uporabnikov, zato se zdi veliko manj verjetno, da bo dokončana.
- iMX35, WM8750, AST2500, BCM2835: Vse te štiri so platforme ARMv6K in so dobro podprte, čeprav imata samo AST2500 in BCM2835 aktivno bazo uporabnikov.
- Mikrokontrolerji Stm32f4/f7/h7: To so edini čipi Arm brez MMU, ki se še naprej razvijajo, saj ST še naprej podpira svoje obstoječe stranke.
Na koncu je treba omeniti še to ta načrt je še vedno v fazi RFC, to je objavljeno za razpravo skupnosti. Če bo odobreno, se predlaga začetek odstranjevanja starih procesorjev ARM v jedru Linuxa 6.12, predvidoma decembra. Prvi kandidati za odstranitev so ARMv4 (brez odstranitve ARMv4T), iWMMXt, BE32 in OABI.
vir: https://lkml.org