Nad teevad ettepaneku kaotada Linuxis vana ARM-i tugi

eemaldage Linuxist vana ARM-i tugi

Arnd Bergmann, Linuxi kerneli arendaja arm-soc harust ja SUSE tuumapakettide haldur, andis välja a ettepanek milles ta lauale paneb GCC-põhise kerneli eemaldamise probleem ja luua kooditööriistu, et toetada vanemaid ARM-protsessoreid, nendega seotud ABI-sid, käsukomplekte ja kerneli võimalusi.

Arnd Bergmann, mainib seda ettepaneku alusel toetuse andmise lõpetamisest ARM-protsessorite jaoks vana tuumasl on tingitud katkestamisest GCC-s, kuna mõnda eemaldamiseks pakutud protsessorit ei toetata enam GCC uusimates harudes ja teised plaanitakse tulevastes väljaannetes eemaldada.

Mainige, et seda rakendades Soodustatakse kaasajastamist ja uute funktsioonide juurutamist kompilaatoris. JAArhitektuuri toe eemaldamine GCC-s nõuab selle eemaldamist tuumast, kui kerneli toetatud minimaalset GCC versiooni suurendatakse (praegu on tuuma kompileerimiseks nõutav vähemalt GCC versioon 5.1).

Arhitektuuride, kiipide ja laienduste vahel mis kavatsetakse tuumast eemaldada, mainitakse järgmist:

  • ARMv3: Eemaldatud GCC-9-s, seega eemaldatakse see lõpuks tuumast, kui kompilaatorite minimaalne versioon suureneb.
  • ARMv4: Kasutatakse StrongARM ja FA526 protsessorite jaoks, mõnel plaadil ikka. Ka kõige uuemad kiibid on ligi 20 aastat vanad. Viimane Debiani versioon, mis neid toetas, oli Lenny (5.0). Kuus ARMv4T tuumadega SoC perekonda (ARM720T, ARM920T ja ARM922T) on endiselt toetatud. Kuigi need on vanad, on neil rohkem kasutajaid ja arendajaid kui ARMv4-l. Viimasena toetas neid Debian Stretch (9.0).
  • ARMv5: Umbes kolmandik toetatud platvormidest kasutab ARMv5, kuid enamiku tugi on lõppemas.
  • ARMv6 varakult: sisaldab ARM1136r0p mudelites NXP i.MX31 ja OMAP24xx, peamiselt tahvelarvutis Nokia N8xx. SMP-ga tuumade toetamiseks on vaja spetsiaalseid häkkimisi. Seal on plaaster, mis muudab ARMv6 ühilduvuse ARMv7-ga ühilduvaks ARMv5-ga, kuid see vajab rohkem tööd.
  • ARMv6K
    ARMv7-M: Cortex-M3/M4/M7 on ainsad tuumad, mida toetatakse ilma MMUta, praegu 5 mikrokontrolleri platvormil. Need võidakse eemaldada 2027. aastal, kuid GCC peab neid siiski toetama teistes operatsioonisüsteemides.
  • iWMMXt: iWMMXt jaoks pole teadaolevaid kasutajaid ja ARMv7 PJ4 CPU-de tugi on eemaldatud. Seda toetavad ainult Intel/Marvell PXA ja MMP1.
  • ARMv5 big endian kernel (BE32): Seda kasutab ainult üks SoC, Intel IXP4xx. Debian toetas seda little-endian režiimis, kuid LE-s on draiverid katki.
  • ARMv7 big endian kernel (BE8)
  • Param_struct pre-TAGS: See amortiseeriti 2001. aastal, likvideerimiseks "5 aastaga", mis on juba juhtunud.
  • ATAGS-põhised plaadifailid: Pärast ülaltoodud puhastamist on 29 SoC platvormil jäänud 10 plaadifaili.
  • OABI tuumad: Peaaegu kõik kasutavad tänapäeval EABI-d ja GCC-4.8-s eemaldati OABI tugi. Kernel lubab siiski ehitada OABI-na koos -mabi=apcs-gnu, mida kasutatakse vaikimisi ARMv4/ARMv5 tuumades.
  • OABI ühilduv režiim: See võimaldab käitada OABI binaarfaile EABI tuumaga.
  • NWFPE
  • Highmem: Enamik ARM-seadmeid saab töötada ilma kõrgmälu toeta, kasutades CONFIG_VMSPLIT_2 GB kuni 2 GB füüsilise mälu jaoks. Suuremad masinad ilmusid 15. aastal koos Cortex-A2012-ga, mis asendati kiiresti 64-bitiste kiipidega.
  • Sparsemem: Arutletakse traditsioonilise sparsememi toetuse kaotamise üle. See puudutab ka masinaid, mis vajavad kogu RAM-i kasutamiseks highmemi
  • RiscPC: See on vanim toetatud platvorm ja see eemaldatakse lõpuks, kuna see ei tööta GCC-9 või uuema versiooniga ARMv3 eemaldamise tõttu.
  • SA1100, jalgsild: muud StrongARM-põhised platvormid, mis on olulised ainult nostalgia jaoks.
  • Kaksikud, Moxart: Mõlemad kasutavad Faraday FA526 protsessori südamikku, mis sarnaselt StrongARM-iga rakendab pöidlaga ARMv4T asemel ARMv4. Kiibid on samuti üle 20 aasta vanad, kuid kerneli koodi on uuendatud ja see ei ole hoolduskoormus.
  • PXA tahvli failid: PXA-koodis on alles kaks plaadifaili, mida kaks aastat tagasi ei eemaldatud, lootes, et see aitab DT-ks teisendada
  • OMAP1: ainus ARMv4T/ARMv5 platvorm ilma DT-toeta, muutes selle mingil hetkel eemaldamise sihtmärgiks.
  • Nspire, AT91RM9200, CLPS711X, EP93xx, iMX1
  • OMAP24xx
  • iMX31, realview/integraator 1136r0-ga
  • S3C64xx (Cragganmore): See on ainus ARMv6K-plaat, millel puudub seadmepuu tugi, ja plaadifail on samasuguse keerukusega kui kõik teised plaadifailid kokku. arch/arm/mach-s3c/Kconfig.s3c64xx loetleb selle eemaldamiseks järgmise aasta alguses, mis võimaldaks platvormi infrastruktuuri ja draivereid põhjalikult puhastada.
  • Orion5x, mv78xx0, dove board failid: Sarnaselt PXA-ga jäeti need DT teisendamise pooleli, kuid midagi pole juhtunud, välja arvatud mõned mv78xx0 väiksemad parandused. Seevastu Debian on kasutajate puudumisele viidates eemaldanud orion5x kerneli binaarfaili, mistõttu tundub, et selle valmimine on palju väiksem.
  • iMX35, WM8750, AST2500, BCM2835: Need neli on kõik ARMv6K platvormid ja on hästi toetatud, kuigi ainult AST2500 ja BCM2835 on aktiivne kasutajabaas.
  • Stm32f4/f7/h7 mikrokontrollerid: Need on ainsad mitte-MMU Arm kiibid, mis näevad jätkuvat arengut, kuna ST jätkab oma olemasolevate klientide toetamist.

Lõpuks tuleb mainida, et see plaan on veel RFC etapisst avaldatud kogukonna aruteluks. Kui see heaks kiidetakse, tehakse ettepanek alustada vanade ARM-protsessorite eemaldamist Linuxi 6.12 tuumast, eeldatavasti detsembris. Esimesed eemaldatavad kandidaadid on ARMv4 (ilma ARMv4T-d eemaldamata), iWMMXt, BE32 ja OABI.

allikas: https://lkml.org