Arnd Bergmann, Développeur de noyau Linux de la branche arm-soc et gestionnaire des packages de noyau chez SUSE, a publié un proposition dans lequel il met sur la table la question de la suppression du noyau basé sur GCC et créez des outils de code pour prendre en charge les anciens processeurs ARM, leurs ABI, jeux d'instructions et capacités du noyau associés.
Arnd Bergmann, mentionne que la base de la proposition de cessation de prise en charge pour les processeurs ARM vieux dans le Kernel est dû à l'arrêt dans GCC, car certains des processeurs proposés pour la suppression ne sont plus pris en charge dans les dernières branches GCC, et d'autres devraient être supprimés dans les versions futures.
Mentionnez qu'en appliquant ceci, La modernisation et la mise en œuvre de nouvelles fonctions dans le compilateur seront facilitées. ETLa suppression du support d'une architecture dans GCC nécessitera sa suppression 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 compiler le noyau).
Entre architectures, puces et extensions qu'il est proposé de supprimer du noyau, les éléments suivants sont mentionnés :
- ARMv3 : Supprimé dans GCC-9, il sera donc éventuellement supprimé du noyau à mesure que les versions minimales du compilateur augmenteront.
- ARMv4 : Utilisé pour les processeurs StrongARM et FA526, toujours sur certaines cartes. Même les puces les plus récentes ont près de 20 ans. La dernière version de Debian qui les supportait était Lenny (5.0). Six familles de SoC avec cœurs ARMv4T (ARM720T, ARM920T et ARM922T) sont toujours prises en charge. Bien qu’ils soient anciens, ils comptent plus d’utilisateurs et de développeurs qu’ARMv4. Debian Stretch (9.0) a été la dernière à les prendre en charge.
- ARMv5 : Environ un tiers des plates-formes prises en charge utilisent ARMv5, mais la plupart approchent de la fin de leur prise en charge.
- ARMv6 précoce : inclut ARM1136r0p dans NXP i.MX31 et OMAP24xx, principalement la tablette Nokia N8xx. Nécessite des hacks spéciaux pour prendre en charge les noyaux avec SMP. Il existe un correctif qui fait passer ARMv6 de compatible avec ARMv7 à compatible avec ARMv5, mais il nécessite plus de travail.
- ARMv6K
ARMv7-M : Cortex-M3/M4/M7 sont les seuls cœurs pris en charge sans MMU, actuellement sur 5 plates-formes de microcontrôleurs. Ils pourraient être supprimés en 2027, mais GCC devra toujours les prendre en charge sur d'autres systèmes d'exploitation. - iWMMXt : il n'y a aucun utilisateur restant connu pour iWMMXt et la prise en charge des processeurs ARMv7 PJ4 a été supprimée. Il n'est pris en charge que sur Intel/Marvell PXA et MMP1.
- Noyau big endian ARMv5 (BE32) : Un seul SoC l'utilise, l'Intel IXP4xx. Debian le supportait en mode petit-boutiste, mais les pilotes sont défectueux dans LE.
- Noyau big endian ARMv7 (BE8)
- Param_struct pré-ATAGS : Celui-ci a été amorti en 2001, pour être éliminé en « 5 ans », ce qui est déjà arrivé.
- Fichiers de plaques basés sur ATAGS : Après le nettoyage ci-dessus, il reste 29 fichiers de carte sur 10 plates-formes SoC.
- Noyaux OABI : Pratiquement tout le monde utilise EABI aujourd'hui, et la prise en charge d'OABI a été supprimée en tant que cible dans GCC-4.8. Le noyau permet toujours d'être construit en OABI avec -mabi=apcs-gnu, utilisé par défaut dans les noyaux ARMv4/ARMv5.
- Mode de compatibilité OABI : Cela permet d'exécuter des binaires OABI avec un noyau EABI.
- NWFPE
- Haut de la page : La plupart des machines ARM peuvent fonctionner sans prise en charge de la mémoire élevée en utilisant CONFIG_VMSPLIT_2GB pour adresser jusqu'à 2 Go de mémoire physique. Des machines plus grandes sont apparues avec le Cortex-A15 en 2012, rapidement remplacées par des puces 64 bits.
- Sparsemem : Il y a une discussion sur la suppression du support du sparsemem traditionnel. Cela concerne également les machines nécessitant beaucoup de mémoire pour utiliser toute leur RAM.
- RiscPC : Il s'agit de la plate-forme la plus ancienne prise en charge et elle sera éventuellement supprimée, car elle ne fonctionne pas avec GCC-9 ou version ultérieure en raison de la suppression d'ARMv3.
- SA1100, Passerelle : d'autres plates-formes basées sur StrongARM, pertinentes uniquement pour la nostalgie.
- Gémeaux, Moxart : Les deux utilisent le cœur du processeur Faraday FA526, qui, comme StrongARM, implémente ARMv4 au lieu d'ARMv4T avec le pouce. Les puces ont également plus de 20 ans, mais le code du noyau a été mis à jour et ne constitue pas une charge de maintenance.
- Fichiers de la carte PXA : Il reste deux fichiers de plaques dans le code PXA qui n'ont pas été supprimés il y a deux ans, en espérant que cela faciliterait la conversion en DT.
- OMAP1 : la seule plate-forme ARMv4T/ARMv5 sans prise en charge de DT, ce qui en fait une cible de suppression à un moment donné.
- Nspire, AT91RM9200, CLPS711X, EP93xx, iMX1
- OMAP24xx
- iMX31, realview/intégrateur avec 1136r0
- S3C64xx (Cragganmore) : Il s'agit de la seule carte ARMv6K sans prise en charge de Devicetree, et le fichier de carte contient une complexité similaire à celle de tous les autres fichiers de carte combinés. arch/arm/mach-s3c/Kconfig.s3c64xx le répertorie pour suppression au début de l'année prochaine, ce qui permettrait un grand nettoyage de l'infrastructure de la plate-forme et des pilotes.
- Orion5x, mv78xx0, fichiers de planche de colombe : Comme PXA, ceux-ci ont été laissés en attente de progrès vers la conversion DT, mais rien n'est arrivé à l'exception de quelques corrections mineures dans mv78xx0. En revanche, Debian a supprimé le binaire du noyau orion5x en invoquant le manque d'utilisateurs, il semble donc beaucoup moins probable qu'il soit terminé.
- iMX35, WM8750, AST2500, BCM2835 : Ces quatre plates-formes sont toutes ARMv6K et sont bien prises en charge, bien que seuls AST2500 et BCM2835 disposent d'une base d'utilisateurs active.
- Microcontrôleurs Stm32f4/f7/h7 : Ce sont les seules puces Arm non MMU à connaître un développement continu alors que ST continue de soutenir ses clients existants.
Enfin, il convient de mentionner que ce plan est encore au stade RFC, c'est-à-dire publié pour discussion communautaire. S'il est approuvé, il est proposé de commencer la suppression des anciens processeurs ARM du noyau Linux 6.12, attendue en décembre. Les premiers candidats à supprimer sont ARMv4 (sans supprimer ARMv4T), iWMMXt, BE32 et OABI.
source: https://lkml.org