Arnd Bergmann, Programer Linux kernela iz arm-soc ogranka i menadžer kernel paketa u SUSE-u, objavio je a prijedlog koju stavlja na sto problem uklanjanja kernela zasnovanog na GCC-u i kreirajte alate za kod za podršku starijih ARM CPU-a, njihovih povezanih ABI-ja, skupova instrukcija i mogućnosti kernela.
Arnd Bergmann, to pominje osnovu prijedloga prestanka podrške za ARM CPU star u kerneul je zbog prekida u GCC, budući da neki od CPU-a predloženih za uklanjanje više nisu podržani u najnovijim GCC granama, a planirano je da drugi budu uklonjeni u budućim izdanjima.
Navedite da primjenom ovoga, Olakšaće se modernizacija i implementacija novih funkcija u kompajleru. IUklanjanje podrške za arhitekturu u GCC-u će zahtijevati njeno uklanjanje iz kernela ako se poveća minimalna GCC verzija koju kernel podržava (trenutno je za kompajliranje kernela potrebna najmanje GCC verzija 5.1).
Između arhitektura, čipova i ekstenzija za koje se predlaže da se uklone iz kernela, spominju se sljedeće:
- ARMv3: Uklonjeno u GCC-9, tako da će na kraju biti uklonjeno iz kernela kako se minimalne verzije kompajlera povećavaju.
- ARMv4: Koristi se za StrongARM i FA526 CPU, još uvijek na nekim pločama. Čak su i najnoviji čipovi stari blizu 20 godina. Posljednja verzija Debiana koja ih je podržavala bila je Lenny (5.0). Šest SoC porodica sa ARMv4T jezgrama (ARM720T, ARM920T i ARM922T) je i dalje podržano. Iako su stari, imaju više korisnika i programera od ARMv4. Debian Stretch (9.0) je posljednji koji ih je podržao.
- ARMv5: Otprilike trećina podržanih platformi koristi ARMv5, ali većina je pri kraju svoje podrške.
- ARMv6 rano: uključuje ARM1136r0p u NXP i.MX31 i OMAP24xx, uglavnom Nokia N8xx tablet. Zahtijeva posebne hakove za podršku kernela sa SMP-om. Postoji zakrpa koja mijenja ARMv6 iz kompatibilnosti sa ARMv7 u kompatibilnost sa ARMv5, ali treba više raditi.
- ARMv6K
ARMv7-M: Cortex-M3/M4/M7 jedine su jezgre podržane bez MMU, trenutno na 5 platformi mikrokontrolera. Mogli bi biti uklonjeni 2027. godine, ali će GCC i dalje morati da ih podržava na drugim operativnim sistemima. - iWMMXt: nema poznatih preostalih korisnika za iWMMXt, a podrška za ARMv7 PJ4 CPU je uklonjena. Podržan je samo u Intel/Marvell PXA i MMP1.
- ARMv5 big endian kernel (BE32): Samo jedan SoC ga koristi, Intel IXP4xx. Debian ga je podržao u načinu rada s malim brojem okretaja, ali su drajveri pokvareni u LE.
- ARMv7 big endian kernel (BE8)
- Param_struct pre-ATAGS: Ovo je depresirano 2001. godine, da bi se eliminisalo za "5 godina", što se već dogodilo.
- Fajlovi ploča zasnovani na ATAGS: Nakon gornjeg čišćenja, ostalo je 29 fajlova ploča na 10 SoC platformi.
- OABI kerneli: Gotovo svi danas koriste EABI, a podrška za OABI je uklonjena kao cilj u GCC-4.8. Kernel i dalje dozvoljava da bude izgrađen kao OABI sa -mabi=apcs-gnu, koji se podrazumevano koristi u jezgrima ARMv4/ARMv5.
- OABI Compat Mode: Ovo omogućava pokretanje OABI binarnih datoteka sa EABI kernelom.
- NWFPE
- Highmem: Većina ARM mašina može raditi bez highmem podrške koristeći CONFIG_VMSPLIT_2GB za adresiranje do 2GB fizičke memorije. Veće mašine su se pojavile sa Cortex-A15 2012. godine, brzo zamenjene 64-bitnim čipovima.
- Sparsemem: Raspravlja se o uklanjanju podrške za tradicionalni sparsemem. Ovo se takođe odnosi na mašine kojima je potreban highmem da bi koristili svu svoju RAM memoriju
- RiscPC: Ovo je najstarija podržana platforma i na kraju će biti uklonjena, jer ne radi sa GCC-9 ili novijim zbog uklanjanja ARMv3.
- SA1100, Pešački most: druge platforme zasnovane na StrongARM-u, relevantne samo za nostalgiju.
- Blizanci, Moxart: Oba koriste Faraday FA526 CPU jezgro, koje poput StrongARM implementira ARMv4 umjesto ARMv4T sa palcem. Čipovi su također stari preko 20 godina, ali kod kernela je ažuriran i ne predstavlja opterećenje za održavanje.
- PXA fajlovi ploče: Ostale su dvije tablične datoteke u PXA kodu koje nisu uklonjene prije dvije godine, u nadi da će to pomoći konverziji u DT
- OMAP1: jedina ARMv4T/ARMv5 platforma bez DT podrške, što je čini metom za uklanjanje u nekom trenutku.
- Nspire, AT91RM9200, CLPS711X, EP93xx, iMX1
- OMAP24xx
- iMX31, realview/integrator sa 1136r0
- S3C64xx (Cragganmore): Ovo je jedina ARMv6K ploča bez podrške za stablo uređaja, a datoteka ploče sadrži sličnu količinu složenosti kao i svi ostali fajlovi ploče zajedno. arch/arm/mach-s3c/Kconfig.s3c64xx navodi ga za uklanjanje početkom sljedeće godine, što bi omogućilo veliko čišćenje infrastrukture platforme i drajvera.
- Orion5x, mv78xx0, dove board fajlovi: Kao i PXA, i ovi su ostali na čekanju na napredak ka DT konverziji, ali ništa se nije dogodilo osim nekih manjih popravki u mv78xx0. Nasuprot tome, Debian je uklonio orion5x kernel binarni program navodeći nedostatak korisnika, pa se čini mnogo manje vjerojatno da će biti dovršen.
- iMX35, WM8750, AST2500, BCM2835: Ove četiri su sve ARMv6K platforme i dobro su podržane, iako samo AST2500 i BCM2835 imaju aktivnu korisničku bazu.
- Stm32f4/f7/h7 mikrokontroleri: Ovo su jedini ne-MMU Arm čipovi koji vide nastavak razvoja dok ST nastavlja da podržava svoje postojeće kupce.
Na kraju, to treba spomenuti ovaj plan je još uvijek u fazi RFC-a, odnosno objavljeno za raspravu u zajednici. Ukoliko bude odobreno, predlaže se početak uklanjanja starih ARM procesora u Linux kernelu 6.12, koje se očekuje u decembru. Prvi kandidati za uklanjanje su ARMv4 (bez uklanjanja ARMv4T), iWMMXt, BE32 i OABI.
Izvor: https://lkml.org