Soporte del kernel de Linux para ARM Cortex-A78

Soporte del kernel de Linux para ARM Cortex-A78

Estoy planeando iniciar Linux para un sistema basado en ARM Cortex A78.
Y tengo algunas dudas sobre lo mismo.

1. ¿Qué versión de kernel debo seleccionar?
Revisé los kernels 5.4.112, 5.10.30, 5.11.14, 5.12-rc7 para ARM_CPU_PART_CORTEX_A78 en root/arch/arm64/include/cputype.h, pero no hay coincidencias.
¿Puede sugerir una versión de Kernel que sea compatible con Cortex-A78? O
¿Puede sugerir algún parche que pueda agregar soporte de Cortex-A78 a un kernel?

2. Mi plataforma/máquina de destino es un emulador, con un núcleo ARM Cortex A78 y solo una RAM DDR. Ningún otro periférico por ahora.
¿Cuáles deberían ser las configuraciones mínimas del kernel para esta máquina?
¿Qué opciones en defconfig se pueden seleccionar como 'no', mientras se configura el kernel, con la garantía de que las configuraciones mínimas seleccionadas seguramente iniciarán Linux en la plataforma mencionada anteriormente?

3. ¿Debo utilizar una imagen sin comprimir o comprimida?
Tenga en cuenta que estoy planeando colocar el binario de la imagen compilada de Linux en la RAM, en una ubicación donde el A78 saltará al reiniciarse. Si es necesario, también desarrollaremos un código de arranque básico para A78, que permitirá que el procesador salte a la ubicación de la imagen de Linux en la RAM.

Sé que arrancar Linux en dispositivos integrados requiere más componentes de software, como bood code, FSBL, uboot, etc.
Pero solo quiero experimentar y es por eso que quiero compilar el Linux más pequeño posible para ARM Cortex-A78 y A DDR RAM. sistema y desea ver el mismo sistema ejecutándose con Linux.

Aparte de las respuestas a las preguntas anteriores, sus sugerencias serán muy apreciadas.
No dude en informarme si no le queda claro en algún momento.

Gracias y saludos,
Maunik Patel.

Respuesta1

  1. versión de linux

No necesita ninguna versión específica del kernel de Linux. Las CPU ARM modernas informan sus funciones compatibles a través de registros de ID: el kernel no necesita conocimientos específicos del procesador exacto que está utilizando. Elija el kernel más reciente que pueda.

  1. Plataforma mínima

El único requisito real para ejecutar Linux es un controlador de interrupciones (y el Cortex-A78 está diseñado para funcionar con uno que cumpla con la especificación GICv4 de ARM) y un temporizador (incluido en el A78). Pero querrás alguna forma de interactuar con el sistema, y ​​una consola serie en UART es la manera de hacerlo.

Si omite EL3 por completo y escribe un contenedor que cae en EL2 y ejecuta el kernel allí, es posible que no necesite una consola separada para Secure World. Por otra parte, los UART son baratos, así que tal vez agregue uno de repuesto de todos modos. Sin embargo, tan pronto como desee ejecutar más de un núcleo, necesitará una implementación de PSCI. En ese punto, también podría incorporar Trusted Firmware-A como su firmware EL3.

Luego necesita un árbol de dispositivos que describa la DRAM, las CPU, la UART, el GIC y los temporizadores genéricos. (Y cualquier gancho PSCI).

  1. Núcleo comprimido o no

ARM de 64 bits no admite una zImage autodescomprimible ejecutable independiente como ARM de 32 bits. No tiene ningún valor comprimir el kernel a menos que empiece a preocuparse por el espacio de almacenamiento.

información relacionada