[PATCH 2/3] board: theobroma-systems: add instructions for how to use upstream TF-A

Quentin Schulz foss+uboot at 0leil.net
Wed Jul 30 14:46:34 CEST 2025


From: Quentin Schulz <quentin.schulz at cherry.de>

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 at cherry.de>
---
 doc/board/theobroma-systems/jaguar_rk3588.rst | 38 +++++++++++++++++++++++----
 doc/board/theobroma-systems/tiger_rk3588.rst  | 38 +++++++++++++++++++++++----
 2 files changed, 66 insertions(+), 10 deletions(-)

diff --git a/doc/board/theobroma-systems/jaguar_rk3588.rst b/doc/board/theobroma-systems/jaguar_rk3588.rst
index 33cd7276852c5b74b750ad14ce2beb4a9440ef3f..eff0ee7347c7d0e810d9dba542ce3aaf28ef359d 100644
--- a/doc/board/theobroma-systems/jaguar_rk3588.rst
+++ b/doc/board/theobroma-systems/jaguar_rk3588.rst
@@ -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
 Systems.
 
-Get the TF-A and DDR init (TPL) binaries
-----------------------------------------
+Get DDR init (TPL) binary
+-------------------------
 
 .. prompt:: bash
 
    git clone https://github.com/rockchip-linux/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)
    sed -i 's/^uart baudrate=.*$/uart baudrate=115200/' tools/ddrbin_param.txt
    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)
 
 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
-gains support for open-source DRAM initialization in TPL.
+be updated in the future once U-Boot gains support for open-source DRAM initialization
+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
 ------------
@@ -58,6 +81,11 @@ Build U-Boot
    cd ../u-boot
    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
 (eMMC or SD card).
 
diff --git a/doc/board/theobroma-systems/tiger_rk3588.rst b/doc/board/theobroma-systems/tiger_rk3588.rst
index 71dbe4c59de8f8b3ccb6ece440a780459db127b1..493f191020fd4326bd19aa3a3c927ea9258a4720 100644
--- a/doc/board/theobroma-systems/tiger_rk3588.rst
+++ b/doc/board/theobroma-systems/tiger_rk3588.rst
@@ -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
 Systems.
 
-Get the TF-A and DDR init (TPL) binaries
-----------------------------------------
+Get DDR init (TPL) binary
+-------------------------
 
 .. prompt:: bash
 
    git clone https://github.com/rockchip-linux/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)
    sed -i 's/^uart baudrate=.*$/uart baudrate=115200/' 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)
 
 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
-gains support for open-source DRAM initialization in TPL.
+be updated in the future once U-Boot gains support for open-source DRAM initialization
+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
 ------------
@@ -66,6 +89,11 @@ Build U-Boot
    cd ../u-boot
    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
 (eMMC or SD card).
 

-- 
2.50.1



More information about the U-Boot mailing list