Арнд Бергман, Разработчик на ядрото на 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 big endian ядро (BE32): Само един SoC го използва, Intel IXP4xx. Debian го поддържаше в режим little-endian, но драйверите са повредени в LE.
- ARMv7 big endian ядро (BE8)
- Param_struct pre-ATAGS: Това беше амортизирано през 2001 г., за да бъде премахнато за "5 години", което вече се случи.
- ATAGS базирани файлове за табели: След горното почистване остават 29 файла на борда на 10 SoC платформи.
- OABI ядра: На практика всеки използва EABI днес и поддръжката на OABI беше премахната като цел в GCC-4.8. Ядрото все още позволява изграждането като OABI с -mabi=apcs-gnu, използвано по подразбиране в ядрата ARMv4/ARMv5.
- OABI Compat Mode: Това позволява стартиране на OABI двоични файлове с EABI ядро.
- NWFPE
- Highmem: Повечето ARM машини могат да работят без поддръжка на highmem, като използват CONFIG_VMSPLIT_2GB за адресиране на до 2GB физическа памет. По-големите машини се появиха с Cortex-A15 през 2012 г., бързо заменени от 64-битови чипове.
- Sparsemem: Има дискусия относно премахването на поддръжката за традиционния sparsemem. Това също се отнася до машини, които се нуждаят от highmem, за да използват цялата си RAM
- RiscPC: Това е най-старата поддържана платформа и в крайна сметка ще бъде премахната, тъй като не работи с GCC-9 или по-нова версия поради премахването на ARMv3.
- SA1100, Пешеходен мост: други базирани на StrongARM платформи, подходящи само за носталгия.
- Близнаци, 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 без поддръжка на devicetree и файлът на платката съдържа подобно количество сложност като всички други файлове на платката, взети заедно. arch/arm/mach-s3c/Kconfig.s3c64xx го изброява за премахване в началото на следващата година, което би позволило голямо почистване на инфраструктурата на платформата и драйверите.
- Orion5x, mv78xx0, dove бордови файлове: Подобно на PXA, те бяха оставени в очакване на напредък към преобразуването на DT, но нищо не се случи освен някои незначителни корекции в mv78xx0. За разлика от това, Debian премахна бинарния файл на ядрото orion5x, позовавайки се на липса на потребители, така че изглежда много по-малко вероятно да бъде завършен.
- iMX35, WM8750, AST2500, BCM2835: Всички тези четири са ARMv6K платформи и се поддържат добре, въпреки че само AST2500 и BCM2835 имат активна потребителска база.
- Микроконтролери Stm32f4/f7/h7: Това са единствените не-MMU Arm чипове, които продължават да се развиват, тъй като ST продължава да поддържа своите съществуващи клиенти.
И накрая, трябва да се спомене, че този план все още е на етап RFC, тоест публикувани за обсъждане в общността. Ако бъде одобрено, се предлага да започне премахването на стари ARM процесори в ядрото на Linux 6.12, което се очаква през декември. Първите кандидати за премахване са ARMv4 (без премахване на ARMv4T), iWMMXt, BE32 и OABI.
Fuente: https://lkml.org