Beagleplay u-boot error encountered

Branch v2023.04-ti-

./arch/arm/include/asm/global_data.h:125:65: error: invalid register name for ‘gd’

Which config are you building? bb-u-boot-beagleplay-debian-12/suite/bookworm/debian/rules · main · / repos-arm64 · GitLab


I am building config "am62x_evm_a53_defconfig. I just set Buildroot up for Beagleplay kernel, it compiled just fine. Now I added Beagleplay uboot to Buildroot, ran into this compilation error.

Use @jkridner 's branch here: Files · 2023.11-beagle · / Buildroot · GitLab


Thanks so much for the info. I’ve got the kernel going. Does this branch cover the u-boot config for Buildroot? I have the beagleplay kernel already compiled.

never mine, he runs of the current build: play: add readme (8d6b9e7a) · Commits · / Buildroot · GitLab

Right now to build u-boot for the BeaglePlay, you need:

git clone -b
git clone -b v2.10.0
git clone -b 4.0.0
git clone -b v2023.04-ti-

Build Trusted-Firmware-A

make -C ./trusted-firmware-a/ CROSS_COMPILE=/usr/bin/aarch64-linux-gnu- CFLAGS= LDFLAGS= ARCH=aarch64 PLAT=k3 TARGET_BOARD=lite K3_PM_SYSTEM_SUSPEND=1 SPD=opteed all

Grab: trusted-firmware-a/build/k3/lite/release/bl31.bin you’ll need it later…

Built Optee

make -C ./optee_os/ O=../optee CROSS_COMPILE=/usr/bin/arm-linux-gnueabihf- CROSS_COMPILE64=/usr/bin/aarch64-linux-gnu- CFLAGS= LDFLAGS= PLATFORM=k3-am62x CFG_WITH_SOFTWARE_PRNG=y CFG_ARM64_core=y all

Grab: optee/core/tee-pager_v2.bin you’ll need it later.

Build u-boot for the r5…

make -C ./u-boot O=../CORTEXR CROSS_COMPILE=/usr/bin/arm-linux-gnueabihf- am62x_evm_r5_defconfig beagleplay_r5.config
make -C ./u-boot O=../CORTEXR CROSS_COMPILE=/usr/bin/arm-linux-gnueabihf- BINMAN_INDIRS=../ti-linux-firmware

Grab: CORTEXR/tiboot3-am62x-gp-evm.bin that’s tiboot3.bin

build u-boot for the a53

make -C ./u-boot O=../CORTEXA CROSS_COMPILE=/usr/bin/aarch64-linux-gnu- am62x_evm_a53_defconfig beagleplay_a53.config
make -C ./u-boot O=../CORTEXA CROSS_COMPILE=/usr/bin/aarch64-linux-gnu- BL31=../trusted-firmware-a/build/k3/lite/release/bl31.bin TEE=../optee/core/tee-pager_v2.bin BINMAN_INDIRS=../ti-linux-firmware

Grab: CORTEXA/tispl.bin_unsigned that’s tispl.bin
Grab: CORTEXA/u-boot.img_unsigned that’s u-boot.img

So did you do all 4 builds in buildroot???


Yes, buildroot is set up to build all 4. It is getting a compilation error with uboot only. The kernel, trusted firmware, and optee all compile just fine. Uboot was the last piece I added. I’ll make sure I’m using the same repository you just listed in the buildroot config and see what happens.
Thanks for the detailed info!

I did have a problem with the Beagleboard git URL for uboot. I switched it, made sure I had the config & config-fragment correct, it failed yet again in the same place.

I ran the instructions you listed to build u-boot. I got successful builds for optee, trusted-firmware-a, and uboot for R5. I got the following error on A53 uboot build:

binman: ‘type’ object is not subscriptable
/home/patti/Projects/BeeBox/beebox/u-boot/Makefile:1108: recipe for target ‘.binman_stamp’ failed

Any hints on what this means and how to fix it?

No idea, what Linux distro and version are you using to build?

I am using Ubuntu 20.04 to run the uboot build. I moved my script to my work desktop which is Ubuntu 22.04 and the u-boot built successfully. Very weird. I’ll update my other computer to 22.04. Thanks for getting back to me!
One more question, do I take CORTEXR or CORTEXA binaries for BeaglePlay board booting?

On the Play, CORTEXR (R5/tiboot3.bin) runs at startup, loads the CORTEXA (A53/tispl.bin/u-boot.img), then we jump into A53, then from u-boot jump into Linux…


Ok, does R5/tiboot3.bin point to gp, hs, or hs-fs binary for BeaglePlay?

BeaglePlay use GP am62’s…


Thanks so much. Going to try it out now. Fingers crossed!

Got my beagleplay to boot with my own u-boot/kernel builds. Thanks so much for the assistance!