====== UEFI загрузчик для RK3568 ====== ===== Использование сборки на базе Quartz-64 UEFI для платы RHOS-RK3568 ===== ==== Подготовка к сборке ==== Клонируем локально репозитарий [[https://github.com/MinimumLaw/rhos-rk3568-uefi.git | 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. Последнюю версию утилиты всегда можно найти [[https://github.com/rockchip-linux/rkdeveloptool.git|в этом репозитарии]], так же для загрузки прошивки понадобятся двоичные компоненты от RockChip доступные [[https://github.com/rockchip-linux/rkbin.git|здесь]], а так же присутствующие в данной репозитарии по пути 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 ===== Клонируем локально репозитарий [[https://github.com/jaredmcneill/quartz64_uefi.git | Qurtz64 UEFI]] Для сборки, используется скрипт "build.sh" с параметрами тип_сборки и используемая_плата $ ./build.sh RELEASE ROC-RK3568-PC На выходе получаем файлы "idblock.bin" и "ROC-RK3568-PC_EFI.itb" * idblock.bin - двоичный SPL от Rockchip с исправленной скоростью системной консоли на 115200n8 сделанный с помощью RK3568MINIALL.ini (см [[rk3568::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 или [[https://sourceforge.net/projects/win32diskimager/ | win32disk image ]] ===== Добавление собственной платы в проект Quartz64 UEFI ===== См. выше по поводу платы RHOS-RK3568 Основные ссылки: * [[https://github.com/jaredmcneill/quartz64_uefi.git | Qurtz64 UEFFI]] - исходный базовый проект (Pine64 Quartz64, SOQuartz, PineTab2, Firefly ROC-RK3566-PC, ROC-RK3568-PC, OrangePI3B)