Desde Linux Darkcrizt  

Lanzan una propuesta para eliminar el soporte ARM antiguo en Linux

eliminar soporte ARM antiguo en Linux

Arnd Bergmann, desarrollador del kernel de Linux de la rama arm-soc y encargado de los paquetes del kernel en SUSE, dio a conocer una propuesta en la cual pone sobre la mesa el tema de eliminar el kernel basado en GCC y crear herramientas de código para admitir CPU ARM más antiguas, sus ABI, conjuntos de instrucciones y capacidades del kernel asociados.

Arnd Bergmann, menciona que la base de la propuesta del cese del soporte para las CPU ARM antiguas en el kernel es debido a la descontinuación en GCC, ya que algunas de las CPU propuestas para eliminación ya no son compatibles con las últimas ramas de GCC, y otras están planeadas para ser eliminadas en futuras versiones.

Menciona que al aplicar esto, se facilitará la modernización e implementación de nuevas funciones en el compilador. Eliminar el soporte para una arquitectura en GCC requerirá su eliminación del kernel si se aumenta la versión mínima de GCC soportada por el kernel (actualmente, al menos la versión 5.1 de GCC es necesaria para compilar el kernel).

Entre las arquitecturas, chips y extensiones que se proponen eliminar del kernel, se mencionan las siguientes:

  • ARMv3: Eliminada en GCC-9, por lo que eventualmente será eliminada del kernel al aumentar las versiones mínimas de compiladores.
  • ARMv4: Se utiliza para las CPUs StrongARM y FA526, todavía en algunas placas. Incluso los chips más nuevos tienen cerca de 20 años. La última versión de Debian que los soportaba fue Lenny (5.0). Aún se soportan seis familias de SoC con núcleos ARMv4T (ARM720T, ARM920T y ARM922T). Aunque son antiguos, tienen más usuarios y desarrolladores que los ARMv4. Debian Stretch (9.0) fue el último en soportarlos.
  • ARMv5: Aproximadamente un tercio de las plataformas soportadas utilizan ARMv5, pero la mayoría están cerca del final de su soporte.
  • ARMv6 early: incluye ARM1136r0p en NXP i.MX31 y OMAP24xx, principalmente la tablet Nokia N8xx. Requiere hacks especiales para soportar kernels con SMP. Hay un parche que cambia ARMv6 de ser compatible con ARMv7 a ser compatible con ARMv5, pero necesita más trabajo.
  • ARMv6K
    ARMv7-M: Cortex-M3/M4/M7 son los únicos núcleos soportados sin MMU, actualmente en 5 plataformas de microcontroladores. Podrían eliminarse en 2027, pero GCC aún deberá soportarlos en otros sistemas operativos.
  • iWMMXt: no se conocen usuarios restantes para iWMMXt, y se eliminó el soporte para CPUs ARMv7 PJ4. Solo queda soportado en Intel/Marvell PXA y MMP1.
  • Kernel ARMv5 big endian (BE32): Solo un SoC lo usa, el Intel IXP4xx. Debian lo soportaba en modo little-endian, pero los drivers están rotos en LE.
  • Kernel ARMv7 big endian (BE8)
  • Param_struct pre-ATAGS: Esto se deprecó en 2001, para eliminarse en «5 años», lo cual ya pasó.
  • Archivos de placa basados en ATAGS: Después de la limpieza anterior, quedan 29 archivos de placas en 10 plataformas SoC.
  • Kernels OABI: Prácticamente, todos usan EABI hoy, y el soporte OABI se eliminó como objetivo en GCC-4.8. El kernel aún permite construirse como OABI con -mabi=apcs-gnu, usado por defecto en kernels ARMv4/ARMv5.
  • Modo compat OABI: Esto permite ejecutar binarios OABI con un kernel EABI.
  • NWFPE
  • Highmem: La mayoría de las máquinas ARM pueden funcionar sin soporte highmem usando CONFIG_VMSPLIT_2GB para direccionar hasta 2GB de memoria física. Las máquinas más grandes aparecieron con Cortex-A15 en 2012, reemplazadas rápidamente por chips de 64 bits.
  • Sparsemem: Hay una discusión sobre eliminar el soporte para sparsemem tradicional. Esto también se relaciona con máquinas que necesitan highmem para usar toda su RAM
  • RiscPC: Esta es la plataforma más antigua soportada, y eventualmente se eliminará, ya que no funciona con GCC-9 o superior debido a la eliminación de ARMv3.
  • SA1100, Footbridge: otras plataformas basadas en StrongARM, relevantes solo por nostalgia.
  • Gemini, Moxart: Ambas utilizan el núcleo de CPU Faraday FA526, que como StrongARM implementa ARMv4 en lugar de ARMv4T con thumb. Los chips también tienen más de 20 años, pero el código del kernel se ha actualizado y no representa una carga de mantenimiento.
  • Archivos de placa PXA: Quedan dos archivos de placa en el código PXA no eliminados hace dos años, con la esperanza de que esto ayudara a la conversión a DT
  • OMAP1: la única plataforma ARMv4T/ARMv5 sin soporte DT, lo que la convierte en un objetivo para su eliminación en algún momento.
  • Nspire, AT91RM9200, CLPS711X, EP93xx, iMX1
  • OMAP24xx
  • iMX31, realview/integrator con 1136r0
  • S3C64xx (Cragganmore): Esta es la única placa ARMv6K sin soporte devicetree, y el archivo de placa contiene una cantidad de complejidad similar a todos los demás archivos de placa combinados. arch/arm/mach-s3c/Kconfig.s3c64xx lista su eliminación para principios del próximo año, lo que permitiría una gran limpieza en la infraestructura de la plataforma y los controladores.
  • Archivos de placa Orion5x, mv78xx0, dove: Como PXA, estos quedaron en espera de progresos hacia la conversión a DT, pero no ha sucedido nada excepto algunos arreglos menores en mv78xx0. Por el contrario, Debian ha eliminado el binario del kernel orion5x citando la falta de usuarios, por lo que parece mucho menos probable que se complete.
  • iMX35, WM8750, AST2500, BCM2835: Estas cuatro son todas plataformas ARMv6K y están bien soportadas, aunque solo AST2500 y BCM2835 tienen una base de usuarios activa.
  • Microcontroladores stm32f4/f7/h7: Estos son los únicos chips Arm sin MMU que ven desarrollo continuo, ya que ST sigue apoyando a sus clientes existentes.

Finalmente, cabe mencionar que este plan aún está en la etapa de RFC, es decir, publicado para discusión comunitaria. Si se aprueba, se propone iniciar la eliminación de procesadores ARM antiguos en el kernel de Linux 6.12, que se espera para diciembre. Los primeros candidatos a ser eliminados son ARMv4 (sin eliminar ARMv4T), iWMMXt, BE32 y OABI.

Fuente: https://lkml.org

Leave A Comment

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.