Вони запропонували скасувати стару підтримку ARM у Linux

видалити стару підтримку ARM на Linux

Арнд Бергманн, Розробник ядра Linux з філії arm-soc і менеджер пакетів ядра в SUSE випустив a пропозиція в якому він ставить на стіл проблема видалення ядра на основі GCC і створювати інструменти коду для підтримки старих ЦП ARM, пов’язаних з ними ABI, наборів інструкцій і можливостей ядра.

Про це згадує Арнд Бергманн підстава пропозиції про припинення підтримки для процесорів ARM старий в кернеl через припинення GCC, оскільки деякі ЦП, запропоновані для видалення, більше не підтримуються останніми гілками GCC, а інші планується видалити в наступних випусках.

Зауважте, що застосовуючи це, Буде сприяно модернізації та реалізації нових функцій у компіляторі. ІВидалення підтримки архітектури в GCC вимагатиме її видалення з ядра, якщо мінімальна версія GCC, підтримувана ядром, буде збільшена (наразі для компіляції ядра потрібна принаймні версія GCC 5.1).

Між архітектурами, мікросхемами та розширеннями які пропонується видалити з ядра, згадуються наступні:

  • ARMv3: Видалено в GCC-9, тому з часом його буде видалено з ядра, коли мінімальна кількість версій компілятора зростатиме.
  • ARMv4: Використовується для процесорів StrongARM і FA526, все ще на деяких платах. Навіть найновішим чіпам близько 20 років. Останньою версією Debian, яка їх підтримувала, була Lenny (5.0). Шість сімейств SoC з ядрами ARMv4T (ARM720T, ARM920T і ARM922T) все ще підтримуються. Хоча вони старі, вони мають більше користувачів і розробників, ніж ARMv4. Debian Stretch (9.0) був останнім, хто підтримував їх.
  • ARMv5: Приблизно третина підтримуваних платформ використовує ARMv5, але підтримка більшості майже закінчилася.
  • Рання версія ARMv6: включає ARM1136r0p в NXP i.MX31 і OMAP24xx, головним чином планшет Nokia N8xx. Потрібні спеціальні хаки для підтримки ядер із SMP. Існує патч, який змінює ARMv6 із сумісності з ARMv7 на сумісність із ARMv5, але він потребує додаткової роботи.
  • ARMv6K
    ARMv7-M: Cortex-M3/M4/M7 є єдиними ядрами, які підтримуються без MMU, наразі на 5 платформах мікроконтролерів. Їх можна буде видалити у 2027 році, але GCC все одно потребуватиме їх підтримки в інших операційних системах.
  • iWMMXt: немає відомих користувачів для iWMMXt, а підтримку процесорів ARMv7 PJ4 було видалено. Він підтримується лише в Intel/Marvell PXA та MMP1.
  • Ядро ARMv5 з великим порядком байтів (BE32): Лише один SoC використовує його, Intel IXP4xx. Debian підтримував його в режимі little-endian, але драйвери зламані в LE.
  • Ядро ARMv7 з великим порядком редагування (BE8)
  • Param_struct pre-ATAGS: Це було амортизовано в 2001 році, щоб бути ліквідовано через "5 років", що вже сталося.
  • Файли пластин на основі ATAGS: Після описаного вище очищення залишилося 29 файлів плати на 10 платформах SoC.
  • Ядра OABI: Практично всі сьогодні використовують EABI, і підтримку OABI було видалено як ціль у GCC-4.8. Ядро все ще допускає створення як OABI з -mabi=apcs-gnu, що використовується за замовчуванням у ядрах ARMv4/ARMv5.
  • Режим сумісності OABI: Це дозволяє запускати двійкові файли OABI з ядром EABI.
  • NWFPE
  • Highmem: Більшість машин ARM можуть працювати без підтримки highmem, використовуючи CONFIG_VMSPLIT_2GB для адресації до 2 ГБ фізичної пам’яті. Більші машини з Cortex-A15 з'явилися в 2012 році, швидко замінені 64-розрядними чіпами.
  • Sparsemem: Існує дискусія щодо видалення підтримки традиційного sparsemem. Це також стосується машин, яким потрібна highmem, щоб використовувати всю їхню оперативну пам’ять
  • RiscPC: Це найстаріша платформа, яка підтримується, і з часом її буде видалено, оскільки вона не працює з GCC-9 або новішою версією через видалення ARMv3.
  • SA1100, пішохідний міст: інші платформи на базі StrongARM, актуальні лише для ностальгії.
  • Gemini, Moxart: Обидва використовують процесорне ядро ​​Faraday FA526, яке, як і StrongARM, реалізує ARMv4 замість ARMv4T з великим пальцем. Мікросхемам також понад 20 років, але код ядра оновлено і не є тягарем для обслуговування.
  • Файли плати PXA: У коді PXA залишилося два файли пластини, які не були видалені два роки тому, сподіваючись, що це допоможе конвертувати в DT
  • OMAP1: єдина платформа ARMv4T/ARMv5 без підтримки DT, що робить її ціллю для видалення в певний момент.
  • Nspire, AT91RM9200, CLPS711X, EP93xx, iMX1
  • OMAP24xx
  • iMX31, realview/інтегратор з 1136r0
  • S3C64xx (Cragganmore): Це єдина плата ARMv6K без підтримки дерева пристроїв, а файл плати містить таку саму складність, як і всі інші файли плати разом узяті. arch/arm/mach-s3c/Kconfig.s3c64xx містить список для видалення на початку наступного року, що дозволить суттєво очистити інфраструктуру платформи та драйвери.
  • Orion5x, mv78xx0, файли дошки dove: Як і PXA, вони були залишені в очікуванні прогресу в напрямку перетворення DT, але нічого не сталося, крім деяких незначних виправлень у mv78xx0. Навпаки, Debian видалив двійковий файл ядра orion5x, посилаючись на відсутність користувачів, тому здається, що його завершення буде набагато меншим.
  • iMX35, WM8750, AST2500, BCM2835: Усі ці чотири є платформами ARMv6K і добре підтримуються, хоча лише AST2500 і BCM2835 мають активну базу користувачів.
  • Мікроконтролери Stm32f4/f7/h7: Це єдині мікросхеми Arm без MMU, які постійно розвиваються, оскільки ST продовжує підтримувати своїх існуючих клієнтів.

Нарешті, слід зазначити, що цей план все ще знаходиться на стадії RFC, тобто опубліковано для обговорення спільнотою. У разі схвалення пропонується почати видалення старих процесорів ARM в ядрі Linux 6.12, яке очікується в грудні. Першими кандидатами на видалення є ARMv4 (без видалення ARMv4T), iWMMXt, BE32 і OABI.

Фуенте: https://lkml.org