Hi Robert,

Sat, Mar 28, 2026 at 11:39:00AM -0500, Robert Nelson wrote:
Side note, here's my ci builder for u-boot.. :
https://github.com/beagleboard/u-boot-pocketbeagle2

Thank you. I see that the build_u-boot.sh is fetching trusted-firmware-a from a different source than I am (see below).

For debug, if you have access to them, grab the Raspberry PI debug cable: https://www.digikey.com/en/products/detail/raspberry-pi/SC0889/17877576 and they are available globally..

Yesterday, a friend gave me an adapter cable that allows me to use an existing 3.3V compatible USB UART adapter.

When using the pristine PocketBeagle 2 MicroSD card image, I will get some messages from U-boot, followed by the console output from the Linux kernel and finally from the Debian user space.

With any of my self-built images, the SPL is unable to start the 64-bit U-boot:

U-Boot SPL 2026.01 (Mar 29 2026 - 15:56:33 +0000)
SYSFW ABI: 4.0 (firmware rev 0x000c '12.0.2--v12.00.02 (Clever Cat)')
Changed A53 CPU frequency to 1400000000Hz (T grade) in DT
SPL initial stack usage: 13416 bytes
Trying to boot from MMC2
Authentication passed
Authentication passed
Authentication passed
Authentication passed
Authentication passed
Starting ATF on ARM64 core...

I had a working build script for the phyBOARD Lyra, which I have slightly modified for this experiment. I have a build container that was set up some months ago, as follows:

FROM debian:latest

RUN apt update&&apt install -y build-essential bc flex bison libssl-dev kmod \
binutils-multiarch gcc-aarch64-linux-gnu gcc-arm-linux-gnueabihf \
python3 python3-setuptools python3-dev python3-cryptography \
python3-pyelftools python3-yaml yamllint python3-jsonschema swig gnutls-dev

I set up source directories like this:

[ -d u-boot ] ||
    git clone --depth=1 -b master https://source.denx.de/u-boot/u-boot.git \
        u-boot
[ -d trusted-firmware-a ] ||
    git clone --depth=1 -b master \
        https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git/ \
        trusted-firmware-a
[ -d optee_os ] ||
    git clone --depth=1 -b master https://github.com/OP-TEE/optee_os.git \
        optee_os
[ -d ti-linux-firmware ] ||
    git clone --depth=1 -b ti-linux-firmware \
        https://git.ti.com/git/processor-firmware/ti-linux-firmware.git \
        ti-linux-firmware

Initially, I used some older checkouts of the other components. Updating them to the latest did not make any difference: the SPL was able to start up also with the older snapshots.

Here are the git revisions that I used of the above directories:

u-boot: your ef03e35488377a32cdd4f76d1a03ef7f60c798ef
trusted-firmware-a: 8dae0862c502e08568a61a1050091fa9357f1240 (Mar 23)
optee_os: 1c0c7c06563e9be0ebc55b47cdb71422b02906a6 (Mar 23)
ti-linux-firmware: 12.00.00.07 (Mar 20)

For podman run, I am bind-mounting the source directory tree using the :O (overlay) option. So, even though I appear to run "in-source" build, the original source directories outside the container will remain unchanged. The files tiboot3.bin, tispl.bin, and u-boot.img are generated by running the following commands inside the container:

make -j$(nproc) -C trusted-firmware-a CROSS_COMPILE=aarch64-linux-gnu- \
ARCH=aarch64 PLAT=k3 SPD=opteed TARGET_BOARD=lite

make -j$(nproc) -C optee_os CROSS_COMPILE=arm-linux-gnueabihf- \
CROSS_COMPILE64=aarch64-linux-gnu- CFG_ARM64_core=y CFG_WITH_SOFTWARE_PRNG=y \
PLATFORM=k3-am62x

cd u-boot
make am62_pocketbeagle2_r5_defconfig &&
make -j$(nproc) CROSS_COMPILE=arm-linux-gnueabihf- \
BINMAN_INDIRS=$(pwd)/../ti-linux-firmware &&

make am62_pocketbeagle2_a53_defconfig &&
make -j$(nproc) CROSS_COMPILE=aarch64-linux-gnu- \
BINMAN_INDIRS=$(pwd)/../ti-linux-firmware \
BL31=$(pwd)/../trusted-firmware-a/build/k3/lite/release/bl31.bin \
TEE=$(pwd)/../optee_os/out/arm-plat-k3/core/tee-raw.bin

Based on reviewing your build script, I revised the above by adding TFA_EXTRA_ARGS=K3_USART_0x6 to trusted-firmware-a and CFG_CONSOLE_UART=0x6 to optee_os, but they made no difference. Furthermore, I replaced tee-raw.bin with tee-pager_v2.bin: no change.

What am I doing wrong here?

With best regards,

        Marko

Reply via email to