Spustili návrh na odstránenie starej podpory ARM v Linuxe

odstráňte starú podporu ARM v systéme Linux

Arnd Bergmann, Vývojár linuxového jadra z pobočky arm-soc a manažér balíkov jadra v SUSE, vydal a návrh v ktorom kladie na stôl problém odstránenia jadra založeného na GCC a vytvárať kódové nástroje na podporu starších procesorov ARM, ich pridružených ABI, inštrukčných sád a schopností jadra.

Arnd Bergmann to spomína základom návrhu o ukončení podpory pre ARM CPU starý v kernel je kvôli prerušeniu v GCC, pretože niektoré CPU navrhnuté na odstránenie už nie sú podporované najnovšími vetvami GCC a ďalšie sa plánujú odstrániť v budúcich vydaniach.

Spomeňte si, že uplatnením tohto Uľahčí sa modernizácia a implementácia nových funkcií v kompilátore. AOdstránenie podpory architektúry v GCC bude vyžadovať jej odstránenie z jadra, ak sa zvýši minimálna verzia GCC podporovaná jadrom (v súčasnosti je na kompiláciu jadra potrebná aspoň verzia GCC 5.1).

Medzi architektúrami, čipmi a rozšíreniami ktoré sú navrhnuté na odstránenie z jadra, sú spomenuté tieto:

  • ARMv3: Odstránené v GCC-9, takže bude nakoniec odstránené z jadra, keď sa zvýši minimálna verzia kompilátora.
  • ARMv4: Používa sa pre CPU StrongARM a FA526, stále na niektorých doskách. Dokonca aj najnovšie čipy majú takmer 20 rokov. Posledná verzia Debianu, ktorá ich podporovala, bol Lenny (5.0). Šesť rodín SoC s jadrami ARMv4T (ARM720T, ARM920T a ARM922T) je stále podporovaných. Hoci sú staré, majú viac používateľov a vývojárov ako ARMv4. Ako posledný ich podporoval Debian Stretch (9.0).
  • ARMv5: Asi tretina podporovaných platforiem používa ARMv5, no väčšina z nich je blízko konca podpory.
  • skorá verzia ARMv6: obsahuje ARM1136r0p v NXP i.MX31 a OMAP24xx, hlavne tablet Nokia N8xx. Vyžaduje špeciálne hacky na podporu jadier s SMP. Existuje oprava, ktorá mení ARMv6 z kompatibility s ARMv7 na kompatibilitu s ARMv5, ale vyžaduje si to viac práce.
  • ARMv6K
    ARMv7-M: Cortex-M3/M4/M7 sú jediné jadrá podporované bez MMU, momentálne na 5 platformách mikrokontrolérov. Mohli by byť odstránené v roku 2027, ale GCC ich bude stále musieť podporovať v iných operačných systémoch.
  • iWMMXt: nie sú známi žiadni zostávajúci používatelia pre iWMMXt a podpora pre procesory ARMv7 PJ4 bola odstránená. Je podporovaný iba v Intel/Marvell PXA a MMP1.
  • ARMv5 big endian kernel (BE32): Používa ho iba jeden SoC, Intel IXP4xx. Debian to podporoval v režime little-endian, ale ovládače sú v LE nefunkčné.
  • ARMv7 big endian kernel (BE8)
  • Param_struct pre-ATAGS: Toto bolo odpísané v roku 2001, aby sa odstránilo o „5 rokov“, čo sa už stalo.
  • Súbory platní založené na ATAGS: Po vyššie uvedenom vyčistení zostáva 29 súborov dosky na 10 platformách SoC.
  • Jadrá OABI: EABI dnes používa prakticky každý a podpora OABI bola odstránená ako cieľ v GCC-4.8. Jadro stále umožňuje zostavenie ako OABI s -mabi=apcs-gnu, ktorý sa štandardne používa v jadrách ARMv4/ARMv5.
  • Režim OABI Compat: To umožňuje spúšťať binárne súbory OABI s jadrom EABI.
  • NWFPE
  • Highmem: Väčšina počítačov ARM môže pracovať bez podpory highmem pomocou CONFIG_VMSPLIT_2 GB na adresovanie až 2 GB fyzickej pamäte. Väčšie stroje sa objavili s Cortex-A15 v roku 2012, rýchlo nahradené 64-bitovými čipmi.
  • Sparsemem: Diskutuje sa o odstránení podpory pre tradičný sparsemem. Týka sa to aj strojov, ktoré potrebujú highmem na využitie celej svojej RAM
  • RiscPC: Toto je najstaršia podporovaná platforma a nakoniec bude odstránená, pretože nefunguje s GCC-9 alebo vyššou z dôvodu odstránenia ARMv3.
  • SA1100, lávka: iné platformy založené na StrongARM, relevantné len pre nostalgiu.
  • Blíženci, Moxart: Obaja používajú jadro procesora Faraday FA526, ktoré podobne ako StrongARM implementuje ARMv4 namiesto ARMv4T s palcom. Čipy sú tiež staršie ako 20 rokov, ale kód jadra bol aktualizovaný a nepredstavuje záťaž na údržbu.
  • Súbory dosky PXA: V kóde PXA zostali dva súbory platní, ktoré neboli odstránené pred dvoma rokmi, dúfajúc, že ​​to pomôže konverzii na DT
  • OMAP1: jediná platforma ARMv4T/ARMv5 bez podpory DT, vďaka čomu je v určitom bode cieľom odstránenia.
  • Nspire, AT91RM9200, CLPS711X, EP93xx, iMX1
  • OMAP24xx
  • iMX31, realview/integrátor s 1136r0
  • S3C64xx (Cragganmore): Toto je jediná doska ARMv6K bez podpory stromu zariadení a súbor dosky obsahuje podobné množstvo zložitosti ako všetky ostatné súbory dosky dohromady. arch/arm/mach-s3c/Kconfig.s3c64xx ho uvádza na odstránenie začiatkom budúceho roka, čo by umožnilo veľké vyčistenie infraštruktúry platformy a ovládačov.
  • Súbory na dosku Orion5x, mv78xx0, dove: Rovnako ako PXA, aj tieto zostali v očakávaní pokroku smerom ku konverzii DT, ale nič sa nestalo okrem niekoľkých menších opráv v mv78xx0. Na rozdiel od toho Debian odstránil binárny súbor jadra orion5x s odvolaním sa na nedostatok používateľov, takže je oveľa menej pravdepodobné, že bude dokončený.
  • iMX35, WM8750, AST2500, BCM2835: Všetky tieto štyri sú platformy ARMv6K a sú dobre podporované, hoci iba AST2500 a BCM2835 majú aktívnu používateľskú základňu.
  • Mikrokontroléry Stm32f4/f7/h7: Toto sú jediné čipy mimo MMU Arm, ktoré zaznamenávajú pokračujúci vývoj, pretože ST naďalej podporuje svojich existujúcich zákazníkov.

Na záver treba spomenúť tento plán je stále v štádiu RFC, teda zverejnené na diskusiu v komunite. V prípade schválenia sa navrhuje začať s odstraňovaním starých procesorov ARM z jadra Linuxu 6.12, ktoré sa očakáva v decembri. Prvými kandidátmi na odstránenie sú ARMv4 (bez odstránenia ARMv4T), iWMMXt, BE32 a OABI.

Fuente: https://lkml.org