Arnd Bergmann, Linux-ytimen kehittäjä arm-soc-haaralta ja SUSE:n ydinpaketteista vastaava julkaisi a ehdotus jossa hän laittaa pöydälle GCC-pohjaisen ytimen poistamisen ongelma ja luoda koodityökaluja tukemaan vanhempia ARM-suorittimia, niihin liittyviä ABI:ita, käskyjoukkoja ja ytimen ominaisuuksia.
Arnd Bergmann mainitsee sen ehdotuksen pohjalta tuen lopettamisesta ARM-suorittimille vanha ytimessäOlen lopettanut GCC:n, koska joitakin poistettavaksi ehdotetuista prosessoreista ei enää tueta uusimmissa GCC-haaroissa, ja osa aiotaan poistaa tulevissa julkaisuissa.
Mainitse, että soveltamalla tätä Kääntäjän modernisointia ja uusien toimintojen käyttöönottoa helpotetaan. JAArkkitehtuurin tuen poistaminen GCC:stä edellyttää sen poistamista ytimestä, jos ytimen tukemaa GCC-vähimmäisversiota lisätään (tällä hetkellä ytimen kääntämiseen vaaditaan vähintään GCC-versio 5.1).
Arkkitehtuurien, sirujen ja laajennusten välillä jotka ehdotetaan poistettavaksi ytimestä, mainitaan seuraavat:
- ARMv3: Poistettu GCC-9:ssä, joten se poistetaan lopulta ytimestä kun kääntäjien vähimmäisversiot kasvavat.
- ARMv4: Käytetty StrongARM- ja FA526-suorittimissa, edelleen joissakin korteissa. Jopa uusimmat sirut ovat lähes 20 vuotta vanhoja. Viimeisin niitä tukenut Debian-versio oli Lenny (5.0). Kuusi ARMv4T-ytimellä varustettua SoC-perhettä (ARM720T, ARM920T ja ARM922T) on edelleen tuettu. Vaikka ne ovat vanhoja, niillä on enemmän käyttäjiä ja kehittäjiä kuin ARMv4. Debian Stretch (9.0) oli viimeinen, joka tuki niitä.
- ARMv5: Noin kolmasosa tuetuista alustoista käyttää ARMv5:tä, mutta useimmat ovat lähellä tukinsa loppua.
- ARMv6 aikaisin: sisältää ARM1136r0p:n NXP i.MX31:ssä ja OMAP24xx:ssä, pääasiassa Nokia N8xx -tabletin. Vaatii erityisiä hakkereita tukeakseen ytimiä SMP:llä. On korjaustiedosto, joka muuttaa ARMv6:n ARMv7:n kanssa yhteensopivaksi ARMv5:n kanssa, mutta se vaatii enemmän työtä.
- ARMv6K
ARMv7-M: Cortex-M3/M4/M7 ovat ainoat ytimet, joita tuetaan ilman MMU:ta, tällä hetkellä viidellä mikro-ohjainalustalla. Ne voidaan poistaa vuonna 5, mutta GCC:n on silti tuettava niitä muissa käyttöjärjestelmissä. - iWMMXt: iWMMXt:lle ei ole tiedossa enää käyttäjiä, ja tuki ARMv7 PJ4 -suorittimille on poistettu. Sitä tuetaan vain Intel/Marvell PXA:ssa ja MMP1:ssä.
- ARMv5 big endian ydin (BE32): Vain yksi SoC käyttää sitä, Intel IXP4xx. Debian tuki sitä little-endian-tilassa, mutta ajurit ovat rikki LE:ssä.
- ARMv7 big endian ydin (BE8)
- Param_struct pre-TAGS: Tämä poistettiin vuonna 2001 ja eliminoidaan "5 vuodessa", mikä on jo tapahtunut.
- ATAGS-pohjaiset levytiedostot: Yllä olevan siivouksen jälkeen 29 SoC-alustalla on jäljellä 10 levytiedostoa.
- OABI-ytimet: Käytännössä kaikki käyttävät EABI:ta nykyään, ja OABI-tuki poistettiin kohteena GCC-4.8:ssa. Ydin sallii edelleen rakentamisen OABI:na komennolla -mabi=apcs-gnu, jota käytetään oletuksena ARMv4/ARMv5-ytimissä.
- OABI Compat Mode: Tämä mahdollistaa OABI-binaarien suorittamisen EABI-ytimen kanssa.
- NWFPE
- Highmem: Useimmat ARM-koneet voivat toimia ilman highmem-tukea käyttämällä CONFIG_VMSPLIT_2 Gt jopa 2 Gt fyysistä muistia. Suuremmat koneet ilmestyivät vuonna 15 Cortex-A2012:llä, joka korvattiin nopeasti 64-bittisillä siruilla.
- Sparsemem: Keskustelua käydään perinteisen sparsememin tuen poistamisesta. Tämä koskee myös koneita, jotka tarvitsevat highmemin käyttääkseen kaiken RAM-muistinsa
- RiscPC: Tämä on vanhin tuettu alusta, ja se poistetaan lopulta, koska se ei toimi GCC-9:n tai uudemman kanssa ARMv3:n poistamisen vuoksi.
- SA1100, Jalankulkusilta: muut StrongARM-pohjaiset alustat, jotka ovat merkityksellisiä vain nostalgialle.
- Kaksoset, Moxart: Molemmat käyttävät Faraday FA526 CPU -ydintä, joka, kuten StrongARM, toteuttaa ARMv4:n ARMv4T:n sijaan peukalolla. Sirut ovat myös yli 20 vuotta vanhoja, mutta ytimen koodi on päivitetty eikä se ole ylläpitotaakka.
- PXA-levytiedostot: PXA-koodissa on jäljellä kaksi levytiedostoa, joita ei poistettu kaksi vuotta sitten, toivottavasti tämä auttaisi muuntamista DT:ksi
- OMAP1: ainoa ARMv4T/ARMv5-alusta ilman DT-tukea, joten se on jossain vaiheessa poistettava kohde.
- Nspire, AT91RM9200, CLPS711X, EP93xx, iMX1
- OMAP24xx
- iMX31, realview/integraattori 1136r0:lla
- S3C64xx (Cragganmore): Tämä on ainoa ARMv6K-kortti, jossa ei ole laitepuutukea, ja levytiedosto sisältää saman verran monimutkaisuutta kuin kaikki muut levytiedostot yhteensä. arch/arm/mach-s3c/Kconfig.s3c64xx listaa sen poistettavaksi ensi vuoden alussa, mikä mahdollistaisi alustan infrastruktuurin ja ohjainten suuren puhdistamisen.
- Orion5x, mv78xx0, dove board -tiedostot: Kuten PXA, nämäkin jätettiin odottamaan edistymistä kohti DT-muuntamista, mutta mitään ei ole tapahtunut lukuun ottamatta joitain pieniä korjauksia mv78xx0:ssa. Sitä vastoin Debian on poistanut orion5x-ytimen binaarin käyttäjien puutteen vuoksi, joten sen valmistuminen näyttää paljon epätodennäköiseltä.
- iMX35, WM8750, AST2500, BCM2835: Nämä neljä ovat kaikki ARMv6K-alustoja ja niitä tuetaan hyvin, vaikka vain AST2500:lla ja BCM2835:llä on aktiivinen käyttäjäkunta.
- Stm32f4/f7/h7 mikro-ohjaimet: Nämä ovat ainoita ei-MMU Arm -siruja, joiden kehitys jatkuu, kun ST jatkaa nykyisten asiakkaidensa tukemista.
Lopuksi on mainittava, että tämä suunnitelma on vielä RFC-vaiheessa, eli julkaistu yhteisön keskustelua varten. Jos se hyväksytään, ehdotetaan, että Linux 6.12 -ytimestä poistetaan vanhoja ARM-prosessoreja, odotetaan joulukuussa. Ensimmäiset poistettavat ehdokkaat ovat ARMv4 (poistamatta ARMv4T:tä), iWMMXt, BE32 ja OABI.
lähde: https://lkml.org