Arnd Bergmann, kes vastutab SUSE'i tuumade pakettide eest, avaldas Linuxi tuumade arendajate postitusloendis plaani vabaneda GNU GCC-l pÔhinevast tuumast ja ehitusvahenditest, eemaldades to support vanu ARM CPU-sid ning seotud ABI-t, kÀskude kogumeid ja tuuma funktsioone. Plaan on praegu RFC etapis, st see on avalik arutamiseks kogukonnas. Kui plaan heaks kiidetakse, soovitatakse vanade ARM protsessorite eemaldamisega alustada Linuxi tuumas versioonis 6.12, mille vÀljalaskmist oodatakse detsembris. Esimeste eemaldamiseks kandidaatideks on ARMv4 (ilma ARMv4T eemaldamata), iWMMXt, BE32 ja OABI.
Vanade ARM CPU-de toe lĂ”petamine tuumas koosneb GCC toe lĂ”petamisest â osa eemaldamiseks kavandatud CPU-dest ei ole juba uusi GCC harude versioonides toetatud ning osa kavatsetakse tulevastes vĂ€ljalasetest eemaldada, mis lihtsustab kompilaatori uuendamist ja uute funktsioonide rakendamist. Toetuse eemaldamine arhitektuuris GCC-s nĂ”uab ka seda toe eemaldamist tuumast, juhul kui GCC minimaalne versioon, mida tuum toetab, tĂ”useb (praegu on tuuma ehitamiseks vajalik vĂ€hemalt GCC versioon 5.1).
Arhitektuurid, kiibid ja laiendused, mille eemaldamist tuumast soovitatakse:
- ARMv3 â toetus on GCC 9-s juba lĂ”petatud.
- ARMv4 â kasutatakse endiselt kĂ€igusolevate StrongARM ja FA526 protsessorite jaoks, samas kui nende kiipide uusim versioon on vĂ€ljastatud umbes 20 aastat tagasi. Toetust ARMv4 on lĂ”petatud Debian 5.0-s. Esiteks soovitatakse lĂ”petada ARMv4 toe GCC-s, ja paar aastat hiljem ka tuumas.
- ARMv4T â kĂ€igusolevatel protsessoritel on 6 SoC peres ARM720T, ARM920T ja ARM922T, mis on levinuamad kui ARMv4 baasil töödeldavad SoC-d. ARMv4T tugi on lĂ”petatud Debian 9.0-s. Tuumas plaanitakse ARMv4T toe lĂ”petamisega alustada mitte varem kui ARMv5 toe lĂ”petamise puhul.
- ARMv5 â kasutatakse umbes 1/3 kĂ”igist tuumas toetatud platvormidest, kuid enamik neist platvormidest on oma elu tsĂŒklis lĂ”pus. Debian jĂ€tkab ARMv5 toetust, kuid FPU ja aatomite operatsioonide puudumise tĂ”ttu muutub toe sĂ€ilitamine jĂ€rjest keerulisemaks ja tĂ”enĂ€oliselt viiakse peagi Debian ARMv5 pordid mitteametlikuks.
- Algajad ARMv6 pĂ”lvkonnad â kasutatakse sellistes SoC-des nagu ARM1136r0p (NXP i.MX31) ja OMAP24xx (Nokia N8xx), kuid nende tugi nĂ”uab SMP tuumades töötamiseks hacke.
- ARMv6K â kasutatakse ARM1176 (Raspberry Pi 1, AST2500) ja ARM1136r1. Tuumas ei ole takistusi toe lĂ”petamiseks, kuid distributsioonides tekivad raskused, kuna see ei vasta tĂŒĂŒpilisele komplektile armv7-a+vfpv3-d16.
- ARMv7-M â kasutatakse Cortex-M3/M4/M7 mikroprotsessorites, mis on viimased tuumad, mida tuum toetab ilma mĂ€lu juhtimise blokeerimiseta (MMU). Töö tuumadega, mis ei kasuta MMU-d, lĂ”petati 2017. aastal, pĂ€rast ĂŒleminekut sellistele protsessoritele RTOS-ide, nagu Zephyr, arendamisele. ARMv7-M toetus on kavandatud eemaldamiseks 2027. aastal, 10 aastat pĂ€rast arendamise lĂ”petamist, vaatamata sellele, et GCC-s jĂ€tkub toetus.
- iWMMXt â tuumas on juba lĂ”petatud ARMv7 PJ4 (MMP2, Berlin) CPU toe tugi, pĂ€rast mida ei jÀÀnud kasutuses olevaid sĂŒsteeme, mis kasutavad seda kĂ€sukogumit. iWMMXt toe tugi on juba lĂ”petatud Clangis ja on kavandatud eemaldamiseks GCC-st.
- BE32 (big endian ARMv5) â kasutatakse ainult ĂŒhes SoC Intel IXP4xx. Vana Debian versioonides toetati ainult little-endian reĆŸiimi, kuid draiverites jÀÀvad lahendamata probleemid. BE32 toe tugi on kavandatud eemaldamiseks GCC-st ja tuumast, kuna draiverites pole mĂ”ne aasta jooksul keegi ĂŒritanud probleeme lahendada.
- BE8 (big-endian ARMv7) â paljudes draiverites on probleeme, testimise lĂ”petamine ja puuduvad andmed kasutuses olevate seadmete kohta. BE8 reĆŸiim vĂ”ib olla huvitav kasutajakoodide komponentide testimiseks big-endian sĂŒsteemides, seetĂ”ttu kavatsetakse BE8 toetus tuumas ja GCC-s sĂ€ilitada vĂ€hemalt mitmeks aastaks, kuni see hakkab probleeme tekitama.
Eemaldamiseks pakutud Linuxi tuum vÔimalused:
- param_struct struktuur, mida kasutati kuni ATAGS (ARM Tag-Area) â kuulutati vananenuks juba 2001. aastal, kuid seda kasutatakse endiselt RiscPC ja Footbridge platvormide koodis.
- ATAGS struktuuri pĂ”hjal on parameetrifailid (kasutatud konfiguratsiooniteabe edastamiseks kuni seadme puu) â tuumas jÀÀb 29 faili, mis on seotud 10 SoC platvormiga, mis kasutavad ATAGS-d.
- OABI (Vanem ABI, vana ABI arhitektuurile ARM) - nĂŒĂŒd kasutatakse peaaegu kĂ”ikjal EABI (Embeded ABI). OABI on paljude viga pĂ”hjuste tĂ”ttu, kuna draiverite arendajad on lĂ”petanud selle seotud omaduste arvessevĂ”tmise. OABI toe toetamine kasutajaruumi komponentide koostamisel lĂ”petatakse GCC 4.8 versiooniga, kuid tuuma jaoks jÀÀb flag "-mabi=apcs-gnu". Soovitatav on OABI jĂ€tta, kuid muuta selle lubamine keerulisemaks hooletuse tĂ”ttu.
- OABI ĂŒhilduvusreĆŸiim (OABI_COMPAT) - vĂ”imaldab OABI jaoks koostatud tĂ€itmisfailide kĂ€itamise EABI tuumaga. Draiverites tekivad teatud probleemid, kuna ioctl on ĂŒhilduvuse probleem, kuid selle reĆŸiimi hooldamise töömahukus on mĂ€rkimisvÀÀrselt vĂ€iksem kui OABI tuumade hooldamine. StrongARM'i toe sĂ€ilitamiseks on mĂ”istlik sĂ€ilitada OABI vĂ”i OABI_COMPAT tugi.
- NWFPE (Ilma ujuvkomma emulaator, emulaator ujuvkomma operatsioonide tÀitmiseks) - eemaldamise plaastrid pakuti vÀlja juba 11 aastat tagasi, kuid NWFPE on vajalik mÔnede kasutajaruumi komponentide jaoks, mis on koostatud OABI jaoks, seetÔttu soovitatakse NWFPE tugi sÀilitada seni, kuni tuumas on OABI vÔi OABI_COMPAT tugi.
- Highmem (kasutatakse mĂ€luhalduseks ĂŒle 1 GB alades) - enamik ARM-sĂŒsteeme saavad töötada ilma highmem'i lubamata vĂ”i saavad kasutada CONFIG_VMSPLIT_2GB, et pÀÀseda ligi esimesele 2 GB fĂŒĂŒsilisele mĂ€lule. Töödeldakse ligipÀÀsu korraldamist 4 GB RAM-ile LPAE (Cortex-A7/A15) sĂŒsteemides, mille lĂ”puleviimise korral vĂ”ib Highmem'i tugi eemaldada.
- Sparsemem - vajalik sĂŒsteemide jaoks, kus on vajalik highmem.
Eemaldamiseks ettepanekud platformide kohta:
- RiscPC - vanim tuumas toetatav platvorm. Ei ole toetatud GCC-s alates 9.x harust, kuna ARMv3 toetust on eemaldatud. Kaaslane jÀtkab tuuma töös testimist sellel platvormil, kuid reaalsete kasutajate pÔhjal nÀib puuduvat, seetÔttu vÔib tugi peatuda, kui kaaslasel huvi kaob.
- SA1100, Footbridge - aegunud platvormid, mis sĂ€ilinud ainult nostalgiakaalutlustel. Peaaegu kĂ”ik selle platvormi kirjeldavate failide kirjeldused on eemaldatud tuumas 6.3, jÀÀb alles tugi seadmetele ipaq h3600, assabet, netwinder ja ebsa285. Eemaldamise kĂŒsimus sĂ”ltub kaaslase kavatsustest.
- Gemini, Moxart â kasutavad ARMv4 baasil töötavat CPU-d. Äipide tootmine toimus ĂŒle 20 aasta tagasi, kuid nende tugi ei nĂ”ua tĂ€iendavaid pingutusi hoolduses, seega pole mĂ”tet neid eemaldada enne StrongARM platvormi kĂ”rvaldamist.
- PXA platvormi toetavad failid on mahajÀetud ja on vÀlja langenud, kui huvi nende vastu ei taastu, plaanitakse need eemaldada 2025. aasta alguses.
- OMAP1 â on ĂŒhtpidi ainus ARMv4T/ARMv5 baasil platvorm, millel puudub Device Tree tugi ja ei ole mingeid liikumisi Device Tree-le ĂŒleminekuks, kuid teisalt on platvormil alles kasutajad.
- Nspire, AT91RM9200, CLPS711X, EP93xx, iMX1 â kasutavad ARMv4T baasil töötavat CPU-d. Tööd kĂ€ivad kirjelduse ĂŒleminekul Device Tree-le, kuid nende toetamine on mĂ”ttekas ainult seni, kuni ARMv5 toetamine kestab.
- OMAP24xx â ainus ARMv6 baasil platvorm, millel on aktiivsed kasutajad. Toetuse sĂ€ilitamine sĂ”ltub CPU arm1136r0 toetamises.
- iMX31 â ei ole teateid aktiivsete kasutajate olemasolu kohta, kuid pole mĂ”tet eemaldada enne OMAP2.
- S3C64xx (Cragganmore) â ainus platvorm ilma Device Tree toetuseta, mis on rajatud ARMv6K baasil. Platvormi kasutatakse jĂ€tkuvalt helikoodikute testimiseks, seega on eemaldamine edasilĂŒkatud kuni testimine viiakse teisele plaadile.
- Orion5x, mv78xx0 â plaanivad eemaldamise kĂŒsimust arutada jĂ€rgmisel aastal.
- iMX35, WM8750, AST2500, BCM2835 â on hĂ€sti toetatud ja neil on aktiivsed kasutajad, nende eemaldamist hetkel ei planeerita.
- stm32f4/f7/h7 â mikrokontrollerid ilma MMU-ta, hooldus tuumas jĂ€tkub ja neil on aktiivsed kasutajad. Eemaldamise kĂŒsimust plaanitakse arutada 2026. aastal.
Allikas: opennet.ru
