Hello,
I am trying to build U-Boot for the SK-AM62A-LP (AM62A HS-FS). I don't want to make any changes, I just want to re-build U-Boot using my locally installed toolchain.
I am using the instructions listed here: https://software-dl.ti.com/processor-sdk-linux/esd/AM62AX/09_01_00/exports/docs/linux/Foundational_Components/U-Boot/UG-General-Info.html
Using this page as a guide, I created a script to complete the build:
=================================
MACHINE=am62ax_evm
TOOLDIR=/home/tools/mitysom-62x
N_PROC=$(nproc)
DEPENDDIR="$PWD/build-dependencies"
TOOLCHAIN_R5=arm-gnu-toolchain-11.3.rel1-x86_64-arm-none-linux-gnueabihf
TOOLCHAIN_A53=arm-gnu-toolchain-11.3.rel1-x86_64-aarch64-none-linux-gnu
PREFIX_R5=arm-none-linux-gnueabihf-
PREFIX_A53=aarch64-none-linux-gnu-
echo "Building u-Boot for $MACHINE in $PWD/$MACHINE"
echo "A53 Toolchain = ${TOOLDIR}/${TOOLCHAIN_A53}"
echo " R5 Toolchain = ${TOOLDIR}/${TOOLCHAIN_R5}"
[ -x "${TOOLDIR}/${TOOLCHAIN_A53}"/bin/${PREFIX_A53}cpp ] || die Unable to exec A53 compiler
[ -x "${TOOLDIR}/${TOOLCHAIN_R5}"/bin/${PREFIX_R5}cpp ] || die Unable to exec R5 compiler
BUILDDIR="$PWD/build-$MACHINE"
TI_LINUX_FW_DIR="${TOOLDIR}"/ti-processor-sdk-linux-edgeai-am62axx-evm-09_01_00_07/board-support/prebuilt-images
R5_BUILDDIR="$BUILDDIR/r5"
A53_BUILDDIR="$BUILDDIR/a53"
# Build R5 u-boot. tiboot3.bin
make -j"$N_PROC" DEVICE_TREE_DEBUG=1 "$MV" ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabihf- O="$R5_BUILDDIR" "${MACHINE}_r5_defconfig"
make -j"$N_PROC" DEVICE_TREE_DEBUG=1 BINMAN_DEBUG=1 BINMAN_VERBOSE=3 "$MV" ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabihf- O="$R5_BUILDDIR" BINMAN_INDIRS="$TI_LINUX_FW_DIR"
# Build A53 u-boot
# To build tispl.bin and u-boot.img. Saved in <path-to-u-boot-a53>/a53. Requires bl31.bin, tee-pager_v2.bin, and ipc_echo_testb_mcu1_0_release_strip.
make -j"$N_PROC" DEVICE_TREE_DEBUG=1 "$MV" ARCH=arm CROSS_COMPILE=aarch64-none-linux-gnu- O="$A53_BUILDDIR" "${MACHINE}_a53_defconfig"
make -j"$N_PROC" DEVICE_TREE_DEBUG=1 "$MV" ARCH=arm CROSS_COMPILE=aarch64-none-linux-gnu- BL31="$TI_LINUX_FW_DIR/bl31.bin" TEE="$TI_LINUX_FW_DIR/bl32.bin" O="$A53_BUILDDIR" BINMAN_INDIRS="$TI_LINUX_FW_DIR"
echo
echo "Output files:"
ls -l "$R5_BUILDDIR/tiboot3.bin"
ls -l "$A53_BUILDDIR/tispl.bin"
ls -l "$A53_BUILDDIR/u-boot.img"
=================================
I will note that my intention is to use the firmware binaries included in the 09.01.00.07 62A Linux Processor SDK (as described in the previously linked documentation). So, I am using the TI_LINUX_FW_DIR variable to point to a local SDK install. In addition, I explicitly referenced the SDK install in the BL31 and TEE variables in the last make command.
This build appears to succeed.
When I copy my build output to the BOOT partition on the SD card, the EVM boots and the EdgeAI demos launch. However, when I select an specific demo, the EdgeAI GUI hangs. When I use the "official" SD card image, the EdgeAI demos run OK.
For U-Boot I am using ti-u-boot, at tag 09.01.00.008.
I've attached the U-Boot compile output.
Can someone try to do a manual build of U-Boot and verify that the EdgeAI demos work on the EVM? Can you find any obvious errors in my build process?
Thanks,
-Bob
((09.01.00.008))bob@radbox:~/62ax-evm-test/ti-u-boot$ ./62ax-build.sh + MACHINE=am62ax_evm + TOOLDIR=/home/tools/mitysom-62x ++ nproc + N_PROC=28 + DEPENDDIR=/home/bob/62ax-evm-test/ti-u-boot/build-dependencies + TOOLCHAIN_R5=arm-gnu-toolchain-11.3.rel1-x86_64-arm-none-linux-gnueabihf + TOOLCHAIN_A53=arm-gnu-toolchain-11.3.rel1-x86_64-aarch64-none-linux-gnu + PREFIX_R5=arm-none-linux-gnueabihf- + PREFIX_A53=aarch64-none-linux-gnu- + DO_CLEAN=0 + MV=V=0 + INSTALL_DEPENDS= + SETUP_ONLY= +++ basename ./62ax-build.sh ++ getopt -o D:d:t:T:m:vcis --long tooldir:,dependdir:,toolchainA53:,toolchainR5:,machine:verbose,debug,clean,install-depends,setup -n 62ax-build.sh -- + TEMP=' --' + '[' 0 '!=' 0 ']' + eval set -- ' --' ++ set -- -- + true + case "$1" in + shift + break + date Mon Mar 25 11:24:34 PM EDT 2024 + echo 'Building u-Boot for am62ax_evm in /home/bob/62ax-evm-test/ti-u-boot/am62ax_evm' Building u-Boot for am62ax_evm in /home/bob/62ax-evm-test/ti-u-boot/am62ax_evm + echo 'A53 Toolchain = /home/tools/mitysom-62x/arm-gnu-toolchain-11.3.rel1-x86_64-aarch64-none-linux-gnu' A53 Toolchain = /home/tools/mitysom-62x/arm-gnu-toolchain-11.3.rel1-x86_64-aarch64-none-linux-gnu + echo ' R5 Toolchain = /home/tools/mitysom-62x/arm-gnu-toolchain-11.3.rel1-x86_64-arm-none-linux-gnueabihf' R5 Toolchain = /home/tools/mitysom-62x/arm-gnu-toolchain-11.3.rel1-x86_64-arm-none-linux-gnueabihf + '[' -x /home/tools/mitysom-62x/arm-gnu-toolchain-11.3.rel1-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-cpp ']' + '[' -x /home/tools/mitysom-62x/arm-gnu-toolchain-11.3.rel1-x86_64-arm-none-linux-gnueabihf/bin/arm-none-linux-gnueabihf-cpp ']' + PATH=/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/usr/local/plan9/bin:/home/bob/.local/bin:/home/bob/bin:/usr/local/plan9/bin:/home/tools/mitysom-62x/arm-gnu-toolchain-11.3.rel1-x86_64-arm-none-linux-gnueabihf/bin + PATH=/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/usr/local/plan9/bin:/home/bob/.local/bin:/home/bob/bin:/usr/local/plan9/bin:/home/tools/mitysom-62x/arm-gnu-toolchain-11.3.rel1-x86_64-arm-none-linux-gnueabihf/bin:/home/tools/mitysom-62x/arm-gnu-toolchain-11.3.rel1-x86_64-aarch64-none-linux-gnu/bin + [[ ! /home/bob/62ax-evm-test/ti-u-boot/build-dependencies = /* ]] + [[ ! /home/tools/mitysom-62x = /* ]] + BUILDDIR=/home/bob/62ax-evm-test/ti-u-boot/build-am62ax_evm + [[ 0 -eq 0 ]] + FW_DIR=/home/bob/62ax-evm-test/ti-u-boot/build-dependencies/ti-linux-firmware + TI_LINUX_FW_DIR=/home/tools/mitysom-62x/ti-processor-sdk-linux-edgeai-am62axx-evm-09_01_00_07/board-support/prebuilt-images + TFA_DIR=/home/bob/62ax-evm-test/ti-u-boot/build-dependencies/trusted-firmware-a + OPTEE_DIR=/home/bob/62ax-evm-test/ti-u-boot/build-dependencies/optee_os + R5_BUILDDIR=/home/bob/62ax-evm-test/ti-u-boot/build-am62ax_evm/r5 + A53_BUILDDIR=/home/bob/62ax-evm-test/ti-u-boot/build-am62ax_evm/a53 + pushd . ~/62ax-evm-test/ti-u-boot ~/62ax-evm-test/ti-u-boot + popd ~/62ax-evm-test/ti-u-boot + make -j28 DEVICE_TREE_DEBUG=1 V=0 ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabihf- O=/home/bob/62ax-evm-test/ti-u-boot/build-am62ax_evm/r5 am62ax_evm_r5_defconfig make[1]: Entering directory '/home/bob/62ax-evm-test/ti-u-boot/build-am62ax_evm/r5' GEN Makefile # # configuration written to .config # make[1]: Leaving directory '/home/bob/62ax-evm-test/ti-u-boot/build-am62ax_evm/r5' + make -j28 DEVICE_TREE_DEBUG=1 BINMAN_DEBUG=1 BINMAN_VERBOSE=3 V=0 ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabihf- O=/home/bob/62ax-evm-test/ti-u-boot/build-am62ax_evm/r5 BINMAN_INDIRS=/home/tools/mitysom-62x/ti-processor-sdk-linux-edgeai-am62axx-evm-09_01_00_07/board-support/prebuilt-images make[1]: Entering directory '/home/bob/62ax-evm-test/ti-u-boot/build-am62ax_evm/r5' GEN Makefile scripts/kconfig/conf --syncconfig Kconfig CFG u-boot.cfg GEN include/autoconf.mk.dep CFG spl/u-boot.cfg GEN include/autoconf.mk GEN spl/include/autoconf.mk GEN Makefile ENVC include/generated/env.txt UPD include/generated/timestamp_autogenerated.h ENVP include/generated/env.in ENVT include/generated/environment.h Using /home/bob/62ax-evm-test/ti-u-boot as source for U-Boot CC cmd/version.o CC env/common.o AR cmd/built-in.o CC lib/efi_loader/dtbdump.o CC lib/efi_loader/initrddump.o AR env/built-in.o LD lib/efi_loader/initrddump_efi.so OBJCOPY lib/efi_loader/initrddump.efi LD lib/efi_loader/dtbdump_efi.so OBJCOPY lib/efi_loader/dtbdump.efi LD u-boot OBJCOPY u-boot.srec OBJCOPY u-boot-nodtb.bin SYM u-boot.sym scripts/Makefile.lib:335: Automatic .dtsi inclusion: options: /home/bob/62ax-evm-test/ti-u-boot/arch/arm/dts/k3-am62a7-sk-u-boot.dtsi /home/bob/62ax-evm-test/ti-u-boot/arch/arm/dts/k3-u-boot.dtsi /home/bob/62ax-evm-test/ti-u-boot/arch/arm/dts/armv7-u-boot.dtsi /home/bob/62ax-evm-test/ti-u-boot/arch/arm/dts/ti-u-boot.dtsi /home/bob/62ax-evm-test/ti-u-boot/arch/arm/dts/u-boot.dtsi ... found: "/home/bob/62ax-evm-test/ti-u-boot/arch/arm/dts/k3-am62a7-sk-u-boot.dtsi" scripts/Makefile.lib:335: scripts/Makefile.lib:335: Automatic .dtsi inclusion: options: /home/bob/62ax-evm-test/ti-u-boot/arch/arm/dts/k3-am62a7-sk-u-boot.dtsi /home/bob/62ax-evm-test/ti-u-boot/arch/arm/dts/k3-u-boot.dtsi /home/bob/62ax-evm-test/ti-u-boot/arch/arm/dts/armv7-u-boot.dtsi /home/bob/62ax-evm-test/ti-u-boot/arch/arm/dts/ti-u-boot.dtsi /home/bob/62ax-evm-test/ti-u-boot/arch/arm/dts/u-boot.dtsi ... found: "/home/bob/62ax-evm-test/ti-u-boot/arch/arm/dts/k3-am62a7-sk-u-boot.dtsi" scripts/Makefile.lib:335: scripts/Makefile.lib:335: Automatic .dtsi inclusion: options: /home/bob/62ax-evm-test/ti-u-boot/arch/arm/dts/k3-am62a7-r5-sk-u-boot.dtsi /home/bob/62ax-evm-test/ti-u-boot/arch/arm/dts/k3-u-boot.dtsi /home/bob/62ax-evm-test/ti-u-boot/arch/arm/dts/armv7-u-boot.dtsi /home/bob/62ax-evm-test/ti-u-boot/arch/arm/dts/ti-u-boot.dtsi /home/bob/62ax-evm-test/ti-u-boot/arch/arm/dts/u-boot.dtsi ... found: nothing! scripts/Makefile.lib:335: CAT u-boot-dtb.bin MKIMAGE u-boot.img MKIMAGE u-boot-dtb.img COPY u-boot.bin CC spl/common/spl/spl.o AR spl/common/spl/built-in.o LD spl/u-boot-spl OBJCOPY spl/u-boot-spl-nodtb.bin SYM spl/u-boot-spl.sym CAT spl/u-boot-spl-dtb.bin COPY spl/u-boot-spl.bin BINMAN .binman_stamp Pack completed after 1 pass(es) Writing image to './custMpk.pem' Wrote 0xcab bytes Pack completed after 1 pass(es) Writing image to './ti-degenerate-key.pem' Wrote 0x21a bytes Pack completed after 1 pass(es) Writing image to './board-cfg.bin' Wrote 0x1d bytes Pack completed after 1 pass(es) Writing image to './pm-cfg.bin' Wrote 0x2 bytes Pack completed after 1 pass(es) Writing image to './rm-cfg.bin' Wrote 0x596 bytes Pack completed after 1 pass(es) Writing image to './sec-cfg.bin' Wrote 0x15d bytes Pack completed after 1 pass(es) Writing image to './combined-tifs-cfg.bin' Wrote 0x674 bytes Pack completed after 1 pass(es) Writing image to './combined-dm-cfg.bin' Wrote 0x5aa bytes Pack completed after 1 pass(es) Writing image to './combined-sysfw-cfg.bin' Wrote 0x734 bytes Pack completed after 1 pass(es) Writing image to './tiboot3-am62ax-hs-evm.bin' Wrote 0x4dac2 bytes Pack completed after 1 pass(es) Writing image to './tiboot3-am62ax-hs-fs-evm.bin' Wrote 0x4dac2 bytes Pack completed after 1 pass(es) Writing image to './tiboot3-am62ax-gp-evm.bin' Wrote 0x4d0a5 bytes OFCHK .config make[1]: Leaving directory '/home/bob/62ax-evm-test/ti-u-boot/build-am62ax_evm/r5' + make -j28 DEVICE_TREE_DEBUG=1 V=0 ARCH=arm CROSS_COMPILE=aarch64-none-linux-gnu- O=/home/bob/62ax-evm-test/ti-u-boot/build-am62ax_evm/a53 am62ax_evm_a53_defconfig make[1]: Entering directory '/home/bob/62ax-evm-test/ti-u-boot/build-am62ax_evm/a53' GEN Makefile arch/../configs/am62ax_evm_a53_defconfig:165:warning: override: reassigning to symbol SUPPORT_EMMC_BOOT # # configuration written to .config # make[1]: Leaving directory '/home/bob/62ax-evm-test/ti-u-boot/build-am62ax_evm/a53' + make -j28 DEVICE_TREE_DEBUG=1 V=0 ARCH=arm CROSS_COMPILE=aarch64-none-linux-gnu- BL31=/home/tools/mitysom-62x/ti-processor-sdk-linux-edgeai-am62axx-evm-09_01_00_07/board-support/prebuilt-images/bl31.bin TEE=/home/tools/mitysom-62x/ti-processor-sdk-linux-edgeai-am62axx-evm-09_01_00_07/board-support/prebuilt-images/bl32.bin O=/home/bob/62ax-evm-test/ti-u-boot/build-am62ax_evm/a53 BINMAN_INDIRS=/home/tools/mitysom-62x/ti-processor-sdk-linux-edgeai-am62axx-evm-09_01_00_07/board-support/prebuilt-images make[1]: Entering directory '/home/bob/62ax-evm-test/ti-u-boot/build-am62ax_evm/a53' GEN Makefile scripts/kconfig/conf --syncconfig Kconfig CFG u-boot.cfg GEN include/autoconf.mk.dep CFG spl/u-boot.cfg GEN include/autoconf.mk GEN spl/include/autoconf.mk GEN Makefile ENVC include/generated/env.txt UPD include/generated/timestamp_autogenerated.h ENVP include/generated/env.in ENVT include/generated/environment.h Using /home/bob/62ax-evm-test/ti-u-boot as source for U-Boot CC cmd/version.o CC env/common.o AR cmd/built-in.o CC lib/efi_loader/dtbdump.o CC lib/efi_loader/initrddump.o AR env/built-in.o LD lib/efi_loader/initrddump_efi.so OBJCOPY lib/efi_loader/initrddump.efi LD lib/efi_loader/dtbdump_efi.so OBJCOPY lib/efi_loader/dtbdump.efi LD u-boot OBJCOPY u-boot.srec OBJCOPY u-boot-nodtb.bin SYM u-boot.sym scripts/Makefile.lib:335: Automatic .dtsi inclusion: options: /home/bob/62ax-evm-test/ti-u-boot/arch/arm/dts/k3-am62a7-sk-u-boot.dtsi /home/bob/62ax-evm-test/ti-u-boot/arch/arm/dts/k3-u-boot.dtsi /home/bob/62ax-evm-test/ti-u-boot/arch/arm/dts/armv8-u-boot.dtsi /home/bob/62ax-evm-test/ti-u-boot/arch/arm/dts/ti-u-boot.dtsi /home/bob/62ax-evm-test/ti-u-boot/arch/arm/dts/u-boot.dtsi ... found: "/home/bob/62ax-evm-test/ti-u-boot/arch/arm/dts/k3-am62a7-sk-u-boot.dtsi" scripts/Makefile.lib:335: scripts/Makefile.lib:335: Automatic .dtsi inclusion: options: /home/bob/62ax-evm-test/ti-u-boot/arch/arm/dts/k3-am62a7-sk-u-boot.dtsi /home/bob/62ax-evm-test/ti-u-boot/arch/arm/dts/k3-u-boot.dtsi /home/bob/62ax-evm-test/ti-u-boot/arch/arm/dts/armv8-u-boot.dtsi /home/bob/62ax-evm-test/ti-u-boot/arch/arm/dts/ti-u-boot.dtsi /home/bob/62ax-evm-test/ti-u-boot/arch/arm/dts/u-boot.dtsi ... found: "/home/bob/62ax-evm-test/ti-u-boot/arch/arm/dts/k3-am62a7-sk-u-boot.dtsi" scripts/Makefile.lib:335: scripts/Makefile.lib:335: Automatic .dtsi inclusion: options: /home/bob/62ax-evm-test/ti-u-boot/arch/arm/dts/k3-am62a7-r5-sk-u-boot.dtsi /home/bob/62ax-evm-test/ti-u-boot/arch/arm/dts/k3-u-boot.dtsi /home/bob/62ax-evm-test/ti-u-boot/arch/arm/dts/armv8-u-boot.dtsi /home/bob/62ax-evm-test/ti-u-boot/arch/arm/dts/ti-u-boot.dtsi /home/bob/62ax-evm-test/ti-u-boot/arch/arm/dts/u-boot.dtsi ... found: nothing! scripts/Makefile.lib:335: RELOC u-boot-nodtb.bin CAT u-boot-fit-dtb.bin MKIMAGE u-boot.img MKIMAGE u-boot-dtb.img COPY u-boot.bin FDTGREP spl/dts/k3-am62a7-sk.dtb MKIMAGE spl/u-boot-spl.multidtb.fit CC spl/common/spl/spl.o CC spl/env/common.o AR spl/env/built-in.o AR spl/common/spl/built-in.o LD spl/u-boot-spl OBJCOPY spl/u-boot-spl-nodtb.bin SYM spl/u-boot-spl.sym CAT spl/u-boot-spl-dtb.bin COPY spl/u-boot-spl.bin BINMAN .binman_stamp Image 'fsstub-hs' is missing external blobs but is still functional: fsstub-hs-cert.bin fsstub-hs-enc.bin Image 'fsstub-fs' is missing external blobs but is still functional: fsstub-fs-cert.bin fsstub-fs-enc.bin Image 'fsstub-gp' is missing external blobs but is still functional: fsstub-gp.bin OFCHK .config make[1]: Leaving directory '/home/bob/62ax-evm-test/ti-u-boot/build-am62ax_evm/a53' + echo + echo 'Output files:' Output files: + ls -l /home/bob/62ax-evm-test/ti-u-boot/build-am62ax_evm/r5/tiboot3.bin lrwxrwxrwx. 1 bob bob 30 Mar 25 23:24 /home/bob/62ax-evm-test/ti-u-boot/build-am62ax_evm/r5/tiboot3.bin -> ./tiboot3-am62ax-hs-fs-evm.bin + ls -l /home/bob/62ax-evm-test/ti-u-boot/build-am62ax_evm/a53/tispl.bin -rw-r--r--. 1 bob bob 1334631 Mar 25 23:24 /home/bob/62ax-evm-test/ti-u-boot/build-am62ax_evm/a53/tispl.bin + ls -l /home/bob/62ax-evm-test/ti-u-boot/build-am62ax_evm/a53/u-boot.img -rw-r--r--. 1 bob bob 1104483 Mar 25 23:24 /home/bob/62ax-evm-test/ti-u-boot/build-am62ax_evm/a53/u-boot.img + exit 0