Spustili návrh na odstranění staré podpory ARM v Linuxu

odebrat starou podporu ARM na Linuxu

Arnd Bergmann, Vývojář linuxového jádra z pobočky arm-soc a správce jaderných balíčků ve společnosti SUSE vydal a návrh do kterého klade na stůl problém odstranění jádra založeného na GCC a vytvářet kódové nástroje pro podporu starších CPU ARM, jejich přidružených ABI, instrukčních sad a schopností jádra.

Arnd Bergmann to zmiňuje základ návrhu o ukončení podpory pro ARM CPU starý v kernejsem kvůli přerušení v GCC, protože některé CPU navržené k odstranění již nejsou podporovány nejnovějšími větvemi GCC a další se plánují v budoucích verzích odstranit.

Uveďte, že použitím tohoto Usnadní se modernizace a implementace nových funkcí v kompilátoru. AOdstranění podpory pro architekturu v GCC bude vyžadovat její odstranění z jádra, pokud se zvýší minimální verze GCC podporovaná jádrem (v současnosti je ke kompilaci jádra vyžadována alespoň verze GCC 5.1).

Mezi architekturami, čipy a rozšířeními které jsou navrženy k odstranění z jádra, jsou zmíněny následující:

  • ARMv3: Odstraněno v GCC-9, takže bude nakonec odstraněno z jádra, když se zvýší minimální verze kompilátoru.
  • ARMv4: Používá se pro CPU StrongARM a FA526, stále na některých deskách. Dokonce i nejnovější čipy jsou staré téměř 20 let. Poslední verzí Debianu, která je podporovala, byl Lenny (5.0). Šest rodin SoC s jádry ARMv4T (ARM720T, ARM920T a ARM922T) je stále podporováno. Přestože jsou staré, mají více uživatelů a vývojářů než ARMv4. Jako poslední je podporoval Debian Stretch (9.0).
  • ARMv5: Přibližně třetina podporovaných platforem používá ARMv5, ale většina z nich je téměř u konce podpory.
  • ARMv6 brzy: zahrnuje ARM1136r0p v NXP i.MX31 a OMAP24xx, hlavně tablet Nokia N8xx. Vyžaduje speciální hacky pro podporu jader s SMP. Existuje oprava, která mění ARMv6 z kompatibilního s ARMv7 na kompatibilní s ARMv5, ale vyžaduje více práce.
  • ARMv6K
    ARMv7-M: Cortex-M3/M4/M7 jsou jediná jádra podporovaná bez MMU, aktuálně na 5 platformách mikrokontrolérů. Mohou být odstraněny v roce 2027, ale GCC je bude stále muset podporovat na jiných operačních systémech.
  • iWMMXt: nejsou známí žádní zbývající uživatelé pro iWMMXt a podpora pro CPU ARMv7 PJ4 byla odstraněna. Je podporován pouze v Intel/Marvell PXA a MMP1.
  • ARMv5 big endian kernel (BE32): Používá jej pouze jeden SoC, Intel IXP4xx. Debian to podporoval v režimu little-endian, ale ovladače jsou v LE nefunkční.
  • ARMv7 big endian kernel (BE8)
  • Param_struct pre-ATAGS: Toto bylo odepsáno v roce 2001, aby bylo vyřazeno za „5 let“, což se již stalo.
  • Soubory desek založené na ATAGS: Po výše uvedeném vyčištění zbývá 29 souborů desky na 10 platformách SoC.
  • Jádra OABI: EABI dnes používá prakticky každý a podpora OABI byla odstraněna jako cíl v GCC-4.8. Jádro stále umožňuje sestavení jako OABI s -mabi=apcs-gnu, které se standardně používá v jádrech ARMv4/ARMv5.
  • Režim OABI Compat: To umožňuje spouštění binárních souborů OABI s jádrem EABI.
  • NWFPE
  • Highmem: Většina počítačů ARM může pracovat bez podpory highmem pomocí CONFIG_VMSPLIT_2GB k adresování až 2GB fyzické paměti. Větší stroje se objevily s Cortex-A15 v roce 2012, rychle nahrazené 64bitovými čipy.
  • Sparsemem: Probíhá diskuse o odstranění podpory pro tradiční sparsemem. To se také týká strojů, které potřebují highmem k využití veškeré své RAM
  • RiscPC: Toto je nejstarší podporovaná platforma a bude nakonec odstraněna, protože nefunguje s GCC-9 nebo vyšší kvůli odstranění ARMv3.
  • SA1100, lávka: jiné platformy založené na StrongARM, relevantní pouze pro nostalgii.
  • Blíženci, Moxart: Oba používají jádro procesoru Faraday FA526, které stejně jako StrongARM implementuje ARMv4 namísto ARMv4T s palcem. Čipy jsou také starší 20 let, ale kód jádra byl aktualizován a nepředstavuje zátěž pro údržbu.
  • Soubory desky PXA: V kódu PXA zůstaly dva soubory destiček, které nebyly odstraněny před dvěma lety, v naději, že to pomůže při konverzi na DT
  • OMAP1: jediná platforma ARMv4T/ARMv5 bez podpory DT, díky čemuž je v určitém okamžiku cílem pro odstranění.
  • Nspire, AT91RM9200, CLPS711X, EP93xx, iMX1
  • OMAP24xx
  • iMX31, realview/integrátor s 1136r0
  • S3C64xx (Cragganmore): Toto je jediná deska ARMv6K bez podpory stromu zařízení a soubor desky obsahuje podobné množství složitosti jako všechny ostatní soubory desky dohromady. arch/arm/mach-s3c/Kconfig.s3c64xx jej uvádí k odstranění začátkem příštího roku, což by umožnilo velké vyčištění infrastruktury platformy a ovladačů.
  • Soubory desky Orion5x, mv78xx0, dove: Stejně jako PXA, i tyto zůstaly v očekávání pokroku směrem ke konverzi DT, ale nic se nestalo kromě několika drobných oprav v mv78xx0. Naproti tomu Debian odstranil binární soubor jádra orion5x z důvodu nedostatku uživatelů, takže se zdá mnohem méně pravděpodobné, že bude dokončen.
  • iMX35, WM8750, AST2500, BCM2835: Všechny tyto čtyři jsou platformy ARMv6K a jsou dobře podporovány, ačkoli pouze AST2500 a BCM2835 mají aktivní uživatelskou základnu.
  • Mikrokontroléry Stm32f4/f7/h7: Jedná se o jediné čipy mimo MMU Arm, které se neustále vyvíjejí, protože ST nadále podporuje své stávající zákazníky.

Na závěr je třeba zmínit, že tento plán je stále ve fázi RFC, tedy zveřejněno pro komunitní diskusi. Pokud bude schváleno, navrhuje se zahájit odstraňování starých procesorů ARM v jádře Linuxu 6.12, které se očekává v prosinci. Prvními kandidáty na odstranění jsou ARMv4 (bez odstranění ARMv4T), iWMMXt, BE32 a OABI.

zdroj: https://lkml.org