board: theobroma-systems: add instructions for how to use upstream TF-A

Upstream TF-A has support for RK3588 since v2.12 so let's document how
to use upstream TF-A instead of the prebuilt binary blob from Rockchip
if one wants to do that.

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
This commit is contained in:
Quentin Schulz 2025-07-30 14:46:34 +02:00 committed by Kever Yang
parent a4dcf3183f
commit 1bea4284b0
2 changed files with 66 additions and 10 deletions

View File

@ -32,14 +32,13 @@ It provides the following features:
Here is the step-by-step to boot to U-Boot on SBC-RK3588-AMR Jaguar from Theobroma Here is the step-by-step to boot to U-Boot on SBC-RK3588-AMR Jaguar from Theobroma
Systems. Systems.
Get the TF-A and DDR init (TPL) binaries Get DDR init (TPL) binary
---------------------------------------- -------------------------
.. prompt:: bash .. prompt:: bash
git clone https://github.com/rockchip-linux/rkbin git clone https://github.com/rockchip-linux/rkbin
cd rkbin cd rkbin
export BL31=$(readlink -f bin/rk35/rk3588_bl31_v*.elf | head -1)
export ROCKCHIP_TPL=$(readlink -f bin/rk35/rk3588_ddr_lp4_2112MHz_lp5_2400MHz_v*.bin | head -1) export ROCKCHIP_TPL=$(readlink -f bin/rk35/rk3588_ddr_lp4_2112MHz_lp5_2400MHz_v*.bin | head -1)
sed -i 's/^uart baudrate=.*$/uart baudrate=115200/' tools/ddrbin_param.txt sed -i 's/^uart baudrate=.*$/uart baudrate=115200/' tools/ddrbin_param.txt
python3 ./tools/ddrbin_tool.py rk3588 tools/ddrbin_param.txt "$ROCKCHIP_TPL" python3 ./tools/ddrbin_tool.py rk3588 tools/ddrbin_param.txt "$ROCKCHIP_TPL"
@ -47,8 +46,32 @@ Get the TF-A and DDR init (TPL) binaries
export RKDB=$(readlink -f rk3588_spl_loader_v*.bin | head -1) export RKDB=$(readlink -f rk3588_spl_loader_v*.bin | head -1)
This will setup all required external dependencies for compiling U-Boot. This will This will setup all required external dependencies for compiling U-Boot. This will
be updated in the future once upstream Trusted-Firmware-A supports RK3588 or U-Boot be updated in the future once U-Boot gains support for open-source DRAM initialization
gains support for open-source DRAM initialization in TPL. in TPL.
Get TF-A
--------
There are two possible options, pick one or the other. Note that the instructions need
to be run from the ``rkbin`` directory.
Prebuilt binary from Rockchip
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. prompt:: bash
export BL31=$(readlink -f bin/rk35/rk3588_bl31_v*.elf | head -1)
Upstream
~~~~~~~~
.. prompt:: bash
cd ../
git clone https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git
cd trusted-firmware-a
make CROSS_COMPILE=aarch64-linux-gnu- PLAT=rk3588 bl31
export BL31=$PWD/build/rk3588/release/bl31/bl31.elf
Build U-Boot Build U-Boot
------------ ------------
@ -58,6 +81,11 @@ Build U-Boot
cd ../u-boot cd ../u-boot
make CROSS_COMPILE=aarch64-linux-gnu- jaguar-rk3588_defconfig all make CROSS_COMPILE=aarch64-linux-gnu- jaguar-rk3588_defconfig all
.. note::
If using upstream TF-A, one should disable ``SPL_ATF_NO_PLATFORM_PARAM`` symbol in
U-Boot config (via e.g. ``make CROSS_COMPILE=aarch64-linux-gnu- menuconfig``) which
will, among other things, enable console output in TF-A.
This will build ``u-boot-rockchip.bin`` which can be written to an MMC device This will build ``u-boot-rockchip.bin`` which can be written to an MMC device
(eMMC or SD card). (eMMC or SD card).

View File

@ -39,14 +39,13 @@ It provides the following feature set:
Here is the step-by-step to boot to U-Boot on SOM-RK3588-Q7 Tiger from Theobroma Here is the step-by-step to boot to U-Boot on SOM-RK3588-Q7 Tiger from Theobroma
Systems. Systems.
Get the TF-A and DDR init (TPL) binaries Get DDR init (TPL) binary
---------------------------------------- -------------------------
.. prompt:: bash .. prompt:: bash
git clone https://github.com/rockchip-linux/rkbin git clone https://github.com/rockchip-linux/rkbin
cd rkbin cd rkbin
export BL31=$(readlink -f bin/rk35/rk3588_bl31_v*.elf | head -1)
export ROCKCHIP_TPL=$(readlink -f bin/rk35/rk3588_ddr_lp4_2112MHz_lp5_2400MHz_v*.bin | head -1) export ROCKCHIP_TPL=$(readlink -f bin/rk35/rk3588_ddr_lp4_2112MHz_lp5_2400MHz_v*.bin | head -1)
sed -i 's/^uart baudrate=.*$/uart baudrate=115200/' tools/ddrbin_param.txt sed -i 's/^uart baudrate=.*$/uart baudrate=115200/' tools/ddrbin_param.txt
sed -i 's/^uart iomux=.*$/uart iomux=2/' tools/ddrbin_param.txt sed -i 's/^uart iomux=.*$/uart iomux=2/' tools/ddrbin_param.txt
@ -55,8 +54,32 @@ Get the TF-A and DDR init (TPL) binaries
export RKDB=$(readlink -f rk3588_spl_loader_v*.bin | head -1) export RKDB=$(readlink -f rk3588_spl_loader_v*.bin | head -1)
This will setup all required external dependencies for compiling U-Boot. This will This will setup all required external dependencies for compiling U-Boot. This will
be updated in the future once upstream Trusted-Firmware-A supports RK3588 or U-Boot be updated in the future once U-Boot gains support for open-source DRAM initialization
gains support for open-source DRAM initialization in TPL. in TPL.
Get TF-A
--------
There are two possible options, pick one or the other. Note that the instructions need
to be run from the ``rkbin`` directory.
Prebuilt binary from Rockchip
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. prompt:: bash
export BL31=$(readlink -f bin/rk35/rk3588_bl31_v*.elf | head -1)
Upstream
~~~~~~~~
.. prompt:: bash
cd ../
git clone https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git
cd trusted-firmware-a
make CROSS_COMPILE=aarch64-linux-gnu- PLAT=rk3588 bl31
export BL31=$PWD/build/rk3588/release/bl31/bl31.elf
Build U-Boot Build U-Boot
------------ ------------
@ -66,6 +89,11 @@ Build U-Boot
cd ../u-boot cd ../u-boot
make CROSS_COMPILE=aarch64-linux-gnu- tiger-rk3588_defconfig all make CROSS_COMPILE=aarch64-linux-gnu- tiger-rk3588_defconfig all
.. note::
If using upstream TF-A, one should disable ``SPL_ATF_NO_PLATFORM_PARAM`` symbol in
U-Boot config (via e.g. ``make CROSS_COMPILE=aarch64-linux-gnu- menuconfig``) which
will, among other things, enable console output in TF-A.
This will build ``u-boot-rockchip.bin`` which can be written to an MMC device This will build ``u-boot-rockchip.bin`` which can be written to an MMC device
(eMMC or SD card). (eMMC or SD card).