He tekevät ehdotuksen vanhan ARM-tuen poistamisesta Linuxista

poista vanha ARM-tuki Linuxista

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