Инструменты пользователя

Инструменты сайта


rk3568:uefi

UEFI загрузчик для RK3568

Использование сборки на базе Quartz-64 UEFI для платы RHOS-RK3568

Подготовка к сборке

Клонируем локально репозитарий RHOS-RK3568

$ git clone https://github.com/MinimumLaw/rhos-rk3568-uefi.git

Инициализируем необходимые подмодули, для этого переходим в созданный каталог

$ cd rhos-rk3568-uefi/

и запускаем

$ git submodule update --init --recursive

Дожидаемся завершения синхронизации субмодулей. Все готово для сборки EDKII.

Сборка прошивки EDKII

Для сборки отладочной версии необходимо запустить

$ ./build-debug-rk3568-rhos.sh

Для сборки релизной версии необходимо запустить

$ ./build-release-rk3568-rhos.sh

В любом случае мы получим файл «RK3568-RHOS_EFI.img» в текущем каталоге. Это и есть итоговый файл прошивки.

Загрузка прошивки в плату

Загрузка собранной прошивки в плату осуществляется с помощью утилиты rkdeveloptools от RockChip. Последнюю версию утилиты всегда можно найти в этом репозитарии, так же для загрузки прошивки понадобятся двоичные компоненты от RockChip доступные здесь, а так же присутствующие в данной репозитарии по пути

edk2-rockchip-non-osi/rkbin

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

$ git clone git@github.com:MinimumLaw/rkbin.git

Тогда заливку прошивки можно будет осуществлять путем перевода платы с помощью джампера в MaskRom режим и запуска скрипта

flash-rk3568-rhos.sh

Некоторые комментарии о порте на плату RHOS-RK3568

В процессе порта был создан каталог

edk2-rockchip/Platform/Ravion

За основу была взята платформа Firefly ROC-RK3568-PC (путь: edk2-rockchip/Platform/Firefly/ROC-RK3568-PC). По сути все, что сделано для данной платы было скопировано и отрезано лишнее. В частности отрезан за ненадобностью код, связанный с GMAC0 и GMAC1 и добавлен код для подмены логотипа при загрузке.

Был добавлен код, ограничивающий тактовую частоту eMMC накопителя. В качестве конфигурационных параметров используются аналогичные для SD-карты.

Так же поправлены DSL файлы таблицы DSDT (см. edk2-rockchip/Platform/Rockchip/Rk356x/AcpiTables/RK3568-RHOS.inf). В первую очередь ради возможности совместной работы обоих присутствующих на чипе PCIe контроллеров. Данная функциональность требует проверки и не гарантирована в части работоспособности.

Так же были внесены необходимые правки в файлы «build.sh» и «Makefile» для иницирования процесса сборки прошивки. А еще добавлены предварительно собраные файлы с деревом устройств «rk3568-rhos-kitsbimx8.dtb» в каталог «dtb».

Использование Qurtz64 UEFI для платы Firefly ROC-RK3568-PC

Клонируем локально репозитарий Qurtz64 UEFI

Для сборки, используется скрипт «build.sh» с параметрами тип_сборки и используемая_плата

$ ./build.sh RELEASE ROC-RK3568-PC

На выходе получаем файлы «idblock.bin» и «ROC-RK3568-PC_EFI.itb»

  • idblock.bin - двоичный SPL от Rockchip с исправленной скоростью системной консоли на 115200n8 сделанный с помощью RK3568MINIALL.ini (см rkbin)
  • ROC-RK3568-PC_EFI.itb - FIT-image образ, предназначенный для загрузки с помощью SPL. В данном образе содержится UEFI образ для системы

Размещение образов на SD-карте или eMMC (смещение указано в блоках, размер блока 512 байт)

Имя образа Смещение
idblock.bin 64
ROC-RK3568-PC_EFI.itb 20480

Автоматически создать образ SD-карты, готовый к записи можно с помощью команды

make sdcard

Внимание!!! Данная команда создаст образы SD-карты для ВСЕХ поддерживаемых платформ.

На выходе получим файл с именем BOARD_EFI.img, например ROC-RK3568-PC_EFI.img пригодный для непосредственной записи на SD-карту или eMMC с использованием программ типа dd или win32disk image

Добавление собственной платы в проект Quartz64 UEFI

См. выше по поводу платы RHOS-RK3568

Основные ссылки:

  • Qurtz64 UEFFI - исходный базовый проект (Pine64 Quartz64, SOQuartz, PineTab2, Firefly ROC-RK3566-PC, ROC-RK3568-PC, OrangePI3B)
rk3568/uefi.txt · Последнее изменение: 2024/05/27 14:08 — Alex A. Mihaylov