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

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


rk3568:uboot

Ванильный U-Boot для плат на базе RK3568

Общие сведения

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

export BL31=../rkbin/bin/rk35/rk3568_bl31_v1.44.elf
export TEE=../rkbin/tee.elf
export ROCKCHIP_TPL=../rkbin/bin/rk35/rk3568_ddr_1560MHz_v1.21.bin
export CROSS_COMPILE=aarch64-linux-gnu-

Назначение переменных следующее:

  • BL31 - двоичный загрузчик от RockChip'а, который будет загружать U-Boot с рабочего накопителя
  • TEE - не обязательная перемененная, указывающая на ELF файл с OP-TEE см rkbin чтобы узнать как сделать ELF из поставляемого RockChip'ом BINа
  • ROCKCHIP_TPL - базовый двоичный загрузчик от RockChip'а, инициализирующий DDR память (ну еще консоль) см rkbin
  • CROSS_COMPILE - используемый для сборки кросс-компилятор

На выходе получаем u-boot-rockchip.bin, который необходимо записать на SD-карту или eMMC со смещением в 64 сектора, например с использованием rkdevelop. Например, с помощью такого скрипта

#!/bin/bash

echo Bootloader
./../rkbin/tools/rkdeveloptool db ./../rkbin/rk356x_spl_loader_v1.21.113.bin
echo U-Boot image
sleep 1
./../rkbin/tools/rkdeveloptool wl 64 u-boot-rockchip.bin
echo Reset board
sleep 1
./../rkbin/tools/rkdeveloptool rd

Обратите внимание, чип должен быть переведен в MaskRom режим (см bootmode), и в этом режиме используется предварительно созданный SPL загрузчик (см rkbin]).

Особые замечания про сборку с поддержкой OpTee

По невыясненным причинам (возможно баг в U-Boot версии 2024.10 и более ранних) ядро не хочет работать с рядом операционных систем. В частности в Debian Lunux (bookworm). В какой-то момент срабатывает защитв в OpTee и система перезагружается. Предположительно это происходит по причине достапа ядра Linux к регионам паямяти, из которых работает OpTee. Коммит https://github.com/MinimumLaw/ravion-kernel/commit/6493a49c8bd3608a20378765baec950c69975656 в первом приближении решает указанную проблему.

Требуется дальнейшая работа над данной проблематикой.

rk3568/uboot.txt · Последнее изменение: Alex A. Mihaylov