Поддержка ядра Linux для ARM Cortex-A78

Поддержка ядра Linux для ARM Cortex-A78

Я планирую загрузить Linux для системы на базе ARM Cortex A78.
И у меня есть некоторые сомнения по этому поводу.

1. Какую версию ядра мне выбрать?
Я проверил ядра 5.4.112, 5.10.30, 5.11.14, 5.12-rc7 на наличие ARM_CPU_PART_CORTEX_A78 в root/arch/arm64/include/cputype.h, но совпадений нет.
Можете ли вы предложить версию ядра с поддержкой Cortex-A78? ИЛИ
можете ли вы предложить какой-либо патч, который может добавить поддержку Cortex-A78 в ядро?

2. Моя целевая платформа/машина — эмулятор с ядром ARM Cortex A78 и только DDR RAM. Никаких других периферийных устройств на данный момент.
Каковы должны быть минимальные конфигурации ядра для этой машины?
Какие опции в defconfig можно выбрать как «нет» при настройке ядра, с гарантией того, что выбранные минимальные конфигурации наверняка загрузят Linux на указанной выше платформе?

3. Следует ли использовать несжатое или сжатое изображение?
Обратите внимание, я планирую поместить скомпилированный двоичный файл образа Linux в ОЗУ, в место, куда A78 перейдет при сбросе. Если потребуется, мы также разработаем базовый загрузочный код для A78, который позволит процессору переходить в местоположение образа Linux в ОЗУ.

Я знаю, что загрузка Linux на встраиваемых устройствах требует больше программных компонентов, таких как код boot, FSBL, uboot и т. д.
Но я просто хочу поэкспериментировать, и именно поэтому я хочу скомпилировать наименьший возможный Linux для системы ARM Cortex-A78 и DDR RAM, а также хочу увидеть ту же систему, работающую с Linux.

Помимо ответов на вышеуказанные вопросы, ваши предложения будут высоко оценены.
Пожалуйста, не стесняйтесь сообщать мне, если я вам что-то неясно в какой-либо момент.

Спасибо и с уважением,
Мауник Патель

решение1

  1. версия для Linux

Вам не нужны никакие конкретные версии ядра Linux. Современные процессоры ARM сообщают о поддерживаемых функциях через регистры идентификаторов — ядру не нужны особые знания о том, какой именно процессор вы используете. Используйте самое последнее ядро, какое только сможете.

  1. Минимальная платформа

Единственное реальное требование для работы Linux — это контроллер прерываний (и Cortex-A78 разработан для работы с одним из них, соответствующим спецификации ARM GICv4), и таймер (включен в A78). Но вам понадобится какой-то способ взаимодействия с системой (и последовательная консоль на UART — это способ сделать это).

Если вы полностью обойдете EL3 и напишете обертку, которая попадает в EL2 и запускает ядро ​​там, вам может не понадобиться отдельная консоль для Secure World. С другой стороны, UART дешевы, так что, возможно, стоит добавить запасной. Однако, как только вы задумаетесь о запуске более одного ядра, вам понадобится реализация PSCI. В этот момент вы можете также использовать Trusted Firmware-A в качестве прошивки EL3.

Затем вам понадобится дерево устройств, описывающее DRAM, CPU(s), UART, GIC и общие таймеры. (И любые PSCI-хуки.)

  1. Сжатое ядро ​​или нет

64-битный ARM не поддерживает автономный исполняемый файл самораспаковывающегося zImage, как 32-битный ARM. Нет смысла сжимать ядро, если вы не начинаете беспокоиться о пространстве для хранения.

Связанный контент