Standalone U-Boot Development

In order to build and package a bootable U-Boot binary, you will need the following additional project sources and binary artifacts:

Many of our boards are also supported in the upstream U-Boot project. For instructions on building from upstream sources, refer to the official documentation: https://docs.u-boot.org/en/latest/board/phytec/index.html

Host Setup

To build U-Boot successfully, several development tools and libraries are required. Install the following packages on Ubuntu/Debian systems:

sh-host:~$ sudo apt-get install build-essential swig bison flex swig libyaml-dev pkg-config python3-dev libncurses5-dev lzop perl libssl-dev gcc-arm-linux-gnueabihf gcc-aarch64-linux-gnu

Note

Package names and requirements may vary for other Linux distributions.

Checking out the right branch

All of our BSPs target a specific branch and commit for each software component. Since we are working outside of Yocto, you must manually check out the appropriate branches. Refer to the BSP-Yocto-Ampliphy-AM62x-PD24.1.2 to locate the matching tags and branch names.

Das U-Boot

sh-host:~$ cd ~/
sh-host:~$ git clone https://github.com/phytec/u-boot-phytec.git
sh-host:~$ cd u-boot-phytec
sh-host:~$ git checkout v2025.07-phy2

Trusted Firmware-A (TF-A)

sh-host:~$ cd ~/
sh-host:~$ git clone https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git/
sh-host:~$ cd trusted-firmware-a
sh-host:~$ git checkout lts-v2.10.4

OP-TEE

sh-host:~$ cd ~/
sh-host:~$ git clone https://github.com/OP-TEE/optee_os.git
sh-host:~$ cd optee_os
sh-host:~$ git checkout 4.1.0

TI Firmware (TIFS, DM, SYSFW)

sh-host:~$ cd ~/
sh-host:~$ git clone https://git.ti.com/git/processor-firmware/ti-linux-firmware.git
sh-host:~$ cd ti-linux-firmware
sh-host:~$ git checkout 11.01.05

Building OP-TEE

sh-host:~$ cd ~/optee_os
sh-host:~$ export ARCH=arm
sh-host:~$ export CROSS_COMPILE=arm-linux-gnueabihf-
sh-host:~$ export CROSS_COMPILE64=aarch64-linux-gnu-
sh-host:~$ make PLATFORM=k3-am62x CFG_ARM64_core=y

Building Trusted Firmware-A (TF-A)

sh-host:~$ cd ~/trusted-firmware-a
sh-host:~$ export ARCH=aarch64
sh-host:~$ export CROSS_COMPILE=aarch64-linux-gnu-
sh-host:~$ make PLAT=k3 SPD=opteed TARGET_BOARD=lite

Building R5 U-Boot

sh-host:~$ cd ~/u-boot-phytec
sh-host:~$ export ARCH=arm
sh-host:~$ export CROSS_COMPILE=arm-linux-gnueabihf-
sh-host:~$ export BINMAN_INDIRS=~/ti-linux-firmware
sh-host:~$ make O=r5 phycore_am62x_r5_defconfig
sh-host:~$ make O=r5 -j$(nproc)

Expected output artifacts r5/tiboot3.bin.

Building A53 U-Boot

sh-host:~$ cd ~/u-boot-phytec
sh-host:~$ export ARCH=arm64
sh-host:~$ export CROSS_COMPILE=aarch64-linux-gnu-
sh-host:~$ export BINMAN_INDIRS=~/ti-linux-firmware
sh-host:~$ export TEE=~/optee_os/out/arm-plat-k3/core/tee-pager_v2.bin
sh-host:~$ export BL31=~/trusted-firmware-a/build/k3/lite/release/bl31.bin
sh-host:~$ make O=a phycore_am62x_a53_defconfig
sh-host:~$ make O=a -j$(nproc)

Expected output artifacts a/tispl.bin and a/u-boot.img.