Arnd Bergmann, responsable des paquets du noyau chez SUSE, a publié un message sur la liste de diffusion des développeurs du noyau. Linux Un projet vise à supprimer du noyau basé sur GCC et des outils de compilation afin de prendre en charge les anciens processeurs ARM et leurs ABI, jeux d'instructions et fonctionnalités noyau associés. Ce projet est actuellement au stade de RFC (référence scientifique), ce qui signifie qu'il est ouvert aux commentaires de la communauté. S'il est approuvé, la suppression des anciens processeurs ARM devrait commencer au niveau du noyau. Linux La version 6.12, dont la sortie est prévue en décembre, cible en priorité les architectures ARMv4 (à l'exception d'ARMv4T), iWMMXt, BE32 et OABI.
La cessation de la prise en charge des anciens processeurs ARM dans le noyau coĂŻncide avec la cessation de leur prise en charge dans GCC - certains des processeurs soumis pour suppression ne sont plus pris en charge dans les derniĂšres branches GCC, et certains devraient ĂȘtre supprimĂ©s dans les versions futures, ce qui simplifiera la modernisation et la mise en Ćuvre de nouvelles fonctionnalitĂ©s dans le compilateur. La suppression du support d'une architecture dans GCC nĂ©cessitera la suppression de son support du noyau si la version minimale de GCC prise en charge par le noyau est augmentĂ©e (actuellement, au moins la version 5.1 de GCC est requise pour construire le noyau).
Architectures, puces et extensions qu'il est proposé de supprimer du noyau :
- ARMv3 - n'est plus pris en charge dans GCC 9.
- L'architecture ARMv4 est utilisĂ©e pour les processeurs StrongARM et FA526, toujours en service, bien que les plus rĂ©cents de ces puces datent d'une vingtaine d'annĂ©es. La prise en charge d'ARMv4 a Ă©tĂ© abandonnĂ©e en [annĂ©e manquante]. Debian 5.0. Il est proposĂ© d'arrĂȘter d'abord la prise en charge d'ARMv4 dans GCC, puis dans quelques annĂ©es dans le noyau Ă©galement.
- ARMv4T - Six familles de SoC utilisent les cĆurs ARM720T, ARM920T et ARM922T, plus rĂ©pandus que les SoC basĂ©s sur ARMv4. La prise en charge d'ARMv4T a Ă©tĂ© abandonnĂ©e en Debian 9.0. La prise en charge d'ARMv4T sera abandonnĂ©e dans le noyau, pas avant l'abandon de la prise en charge d'ARMv5.
- ARMv5 - utilisé sur environ 1/3 de toutes les plateformes prises en charge par le noyau, mais la plupart de ces plateformes approchent de la fin de leur cycle de vie. Debian Il continue de prendre en charge ARMv5, mais en raison de l'absence d'unité de calcul en virgule flottante et d'opérations atomiques, la maintenance de cette prise en charge devient de plus en plus difficile et sera probablement bientÎt porté sur une autre architecture. Debian La version pour ARMv5 sera déplacée vers la liste non officielle.
- GĂ©nĂ©rations initiales d'ARMv6 - utilisĂ©es dans les SoC tels que ARM1136r0p (NXP i.MX31) et OMAP24xx (Nokia N8xx), mais leur prise en charge nĂ©cessite des hacks pour fonctionner dans les cĆurs avec SMP.
- ARMv6K - utilisĂ© dans ARM1176 (Raspberry Pi 1, AST2500) et ARM1136r1. Il n'y a aucun obstacle Ă l'arrĂȘt du support dans le noyau, mais des difficultĂ©s surviennent dans les distributions en raison du non-respect de l'ensemble standard armv7-a+vfpv3-d16.
- ARMv7-M - utilisĂ© dans les microcontrĂŽleurs basĂ©s sur Cortex-M3/M4/M7, qui restent les derniĂšres puces prises en charge par le cĆur sans unitĂ© de gestion de mĂ©moire (MMU). Les travaux sur les noyaux sur les systĂšmes sans MMU ont cessĂ© en 2017, suite au passage au dĂ©veloppement RTOS pour des puces similaires telles que le Zephyr. Il est proposĂ© de supprimer le support d'ARMv7-M en 2027, 10 ans aprĂšs l'arrĂȘt du dĂ©veloppement, malgrĂ© le support continu dans GCC.
- iWMMXt - le noyau a déjà cessé de prendre en charge les processeurs ARMv7 PJ4 (MMP2, Berlin), aprÚs quoi il n'y a plus aucun systÚme utilisé qui utilise cet ensemble d'instructions. iWMMXt est déjà obsolÚte dans Clang et il est proposé de le supprimer de GCC.
- BE32 (ARMv5 big-endian) - utilisé uniquement dans un seul SoC, l'Intel IXP4xx. Dans les versions plus anciennes. Debian Seul le mode little-endian était pris en charge, mais les pilotes présentent encore des problÚmes non résolus. Il est proposé de supprimer la prise en charge de BE32 de GCC et du noyau, car personne n'a traité ces problÚmes dans les pilotes depuis plusieurs années.
- BE8 (big-endian ARMv7) - de nombreux pilotes ont des problĂšmes, les tests se sont arrĂȘtĂ©s et il n'y a aucune information sur les pĂ©riphĂ©riques restant en cours d'utilisation. Le mode BE8 peut ĂȘtre intĂ©ressant pour tester les composants de l'espace utilisateur sur des systĂšmes big-endian, c'est pourquoi il est prĂ©vu que le support BE8 soit conservĂ© dans le noyau et GCC pendant au moins quelques annĂ©es avant qu'il ne commence Ă poser des problĂšmes.
Fonctionnalités du noyau proposées pour suppression Linux:
- La structure param_struct utilisée avant ATAGS (ARM Tag-Area) a été déclarée obsolÚte en 2001, mais est toujours utilisée dans le code des plateformes RiscPC et Footbridge.
- Fichiers avec des paramÚtres basés sur la structure ATAGS (utilisés pour transférer les informations de configuration vers l'arborescence des périphériques) - 29 fichiers restent dans le noyau associé à 10 plates-formes SoC utilisant ATAGS.
- OABI (Old ABI, old ABI pour l'architecture ARM) - EABI (Embedded ABI) est désormais utilisé presque partout. OABI est à l'origine de nombreuses erreurs car les développeurs de pilotes n'ont pas pris en compte certaines des fonctionnalités qui lui sont associées. La prise en charge d'OABI pour les builds en espace utilisateur a été interrompue dans GCC 4.8, mais l'indicateur du noyau "-mabi=apcs-gnu" a été conservé. Il est proposé de conserver l'OABI pour l'instant, mais de rendre son inclusion plus difficile en raison de la surveillance.
- Mode de compatibilitĂ© OABI (OABI_COMPAT) - Permet aux exĂ©cutables compilĂ©s pour OABI d'ĂȘtre exĂ©cutĂ©s Ă l'aide d'un noyau avec EABI. Certains problĂšmes surviennent dans les pilotes en raison d'une incompatibilitĂ© avec ioctl, mais la complexitĂ© de la maintenance de ce mode est nettement moindre que celle de la maintenance des noyaux avec OABI. Pour maintenir le support StrongARM, il serait raisonnable de conserver le support OABI ou OABI_COMPAT.
- NWFPE (No Floating Point Emulator) - des correctifs à supprimer ont été proposés il y a 11 ans, mais NWFPE est requis pour certains composants de l'espace utilisateur construits pour OABI, il est donc recommandé de maintenir le support NWFPE jusqu'à ce que le support OABI ou OABI_COMPAT reste dans le noyau.
- Highmem (utilisĂ© pour la gestion de la mĂ©moire dans les zones au-delĂ de 1 Go) - La plupart des systĂšmes ARM peuvent fonctionner sans highmem activĂ©, ou peuvent utiliser CONFIG_VMSPLIT_2GB pour accĂ©der aux 2 premiers Go de mĂ©moire physique. Des travaux sont en cours pour donner accĂšs Ă 4 Go de RAM sur les systĂšmes avec LPAE (Cortex-A7/A15), aprĂšs quoi le support Highmem pourra ĂȘtre supprimĂ©.
- Sparsemem - requis pour les systÚmes nécessitant une mémoire élevée.
Plateformes proposées à la suppression :
- RiscPC est la plus ancienne plateforme supportĂ©e par le noyau. Non pris en charge dans GCC depuis 9.x en raison de la suppression du support ARMv3. Le responsable continue de tester le noyau sur cette plate-forme, mais il ne semble plus y avoir de vĂ©ritables utilisateurs, le support peut donc ĂȘtre interrompu si le responsable se dĂ©sintĂ©resse.
- SA1100, Passerelle - quais vétustes, conservés uniquement pour des raisons de nostalgie. Presque tous les fichiers décrivant les cartes pour ces plates-formes ont été supprimés dans le noyau 6.3, ne laissant que la prise en charge des périphériques ipaq h3600, assabet, netwinder et ebsa285. La question de la suppression dépend des intentions du responsable.
- Gemini, Moxart - utilisez des processeurs basés sur ARMv4. Les puces ont été commercialisées il y a plus de 20 ans, mais leur prise en charge ne nécessite pas d'efforts de maintenance supplémentaires, il ne sert donc à rien de les supprimer avant de supprimer la plateforme StrongARM.
- Fichiers pour prendre en charge PXA - les plates-formes sont abandonnĂ©es et ne sont plus utilisĂ©es ; si l'intĂ©rĂȘt pour elles ne revient pas, elles seront supprimĂ©es dĂ©but 2025 ;
- OMAP1 - d'une part, reste la seule plate-forme basée sur ARMv4T/ARMv5 sans prise en charge de Device Tree et il n'y a aucun mouvement vers la transition vers Device Tree, mais d'autre part, la plate-forme a toujours des utilisateurs.
- Nspire, AT91RM9200, CLPS711X, EP93xx, iMX1 - utilisent des processeurs basés sur ARMv4T. Des travaux sont en cours pour transférer les descriptions des cartes vers l'arborescence des périphériques, mais il est logique de les prendre en charge uniquement tant que la prise en charge d'ARMv5 est maintenue.
- OMAP24xx est la seule plate-forme basée sur ARMv6 avec des utilisateurs actifs. Le maintien de la prise en charge dépend du maintien de la prise en charge du processeur arm1136r0.
- iMX31 - il n'y a aucune information sur la présence d'utilisateurs actifs, mais cela n'a aucun sens de supprimer avant OMAP2.
- S3C64xx (Cragganmore) est la seule plate-forme sans prise en charge de Device Tree, construite sur ARMv6K. La plate-forme continue d'ĂȘtre utilisĂ©e pour tester les codecs audio, la suppression est donc retardĂ©e jusqu'Ă ce que les tests puissent ĂȘtre dĂ©placĂ©s vers une autre carte.
- Orion5x, mv78xx0 - la question de la suppression devrait ĂȘtre examinĂ©e au dĂ©but de l'annĂ©e prochaine.
- iMX35, WM8750, AST2500, BCM2835 - sont bien pris en charge et ont des utilisateurs actifs, il n'est pas encore prévu de les supprimer.
- stm32f4/f7/h7 - microcontrĂŽleurs sans MMU, le support dans le noyau continue et il y a des utilisateurs actifs. La question du retrait devrait ĂȘtre examinĂ©e en 2026.
Source: opennet.ru
