Предупреждение! Данные прошивки используются только для ядра ОС ZeroPoint
Для Raspberry Pi4
Планируется так же сделать для QEMU на плату virt с Cortex-A72
Что настраивает прошивка:
UARTPL011
GICv2/3
GPIO: 14(TXD) и 15(RXD) - только для Raspberry Pi4!
Прошивка загружается по адресу: 0x00000000
Работает в EL3 с переходом на EL2h NS по окончании работы
SP стек выделяется для EL3 и EL2
Адреса периферии передаются в ядро через регистры - X10 - X16:
X10 - X15 - Регистры UARTPL011: DR, CR, FR, MIS, RIS, ICR
X16 - GICCv2
Чтобы настроить UART и GIC в Pi4 с помощью данной прошивки, нужно в файле config.txt указать следующие:
enable_uart=1
enable_gic=1
droverlay=disable-bt
init_uart_clock=48000000
init_uart_baud=115200
Проект собирается через компилятор - aarch64-none-elf-
Прошивка собирается изначально в файл .elf. Для перевода его в .bin используется - aarch64-none-elf-objcopy
Для сборки используется CMake