[PATCH 2/3] k3-am62-pocketbeagle2: add initial board support
Marko Mäkelä
marko.makela at iki.fi
Sun Mar 29 19:13:57 CEST 2026
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
More information about the U-Boot
mailing list