#!/usr/bin/bash -e PSDKR_PATH=/opt/ti-processor-sdk-rtos-j721e-evm-10_00_00_05 PSDK_LINUX_PATH=/opt/ti-processor-sdk-linux-adas-j721e-evm-10_00_00_08 ATF_DIR=$PSDK_LINUX_PATH/board-support/trusted-firmware-a-2.10+git UBOOT_DIR=$PSDK_LINUX_PATH/board-support/ti-u-boot-2024.04+git PREBUILT_DIR=$PSDK_LINUX_PATH/board-support/prebuilt-images CC_R5F=$PSDKR_PATH/gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf/bin/arm-none-linux-gnueabihf- CC_A72=$PSDKR_PATH/arm-gnu-toolchain-13.2.Rel1-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu- BUILD_DIR=$(readlink -f out) rm -fR $BUILD_DIR && mkdir -p $BUILD_DIR echo '*** Building ATF' make -sC $ATF_DIR BUILD_BASE=$BUILD_DIR/atf CROSS_COMPILE=$CC_A72 ARCH=aarch64 PLAT=k3 TARGET_BOARD=generic SPD=opteed BUILD_TYPE=release K3_USART=0 BL32_BASE=0x9e800000 PRELOADED_BL33_BASE=0x80080000 K3_HW_CONFIG_BASE=0x82000000 DEBUG=0 # Don't have source for TEE echo '*** Building TEE' mkdir -p $BUILD_DIR/tee cp $PREBUILT_DIR/bl32.bin $BUILD_DIR/tee/bl32.bin # Any old junk for DM just to prove the point echo '*** Building DM' mkdir -p $BUILD_DIR/dm dd if=/dev/random of=$BUILD_DIR/dm/mcu1_0.bin bs=1024 count=200 status=none # Uboot A72 echo '*** Building U-Boot A72' make -sC $UBOOT_DIR ARCH=arm CROSS_COMPILE=$CC_A72 HOSTCFLAGS="-Wno-stringop-overread" DTC_FLAGS="-Wno-unit_address_vs_reg -Wno-avoid_default_addr_size -Wno-reg_format" TEE=$BUILD_DIR/tee/bl32.bin BL31=$BUILD_DIR/atf/k3/generic/release/bl31.bin TI_DM=$BUILD_DIR/dm/mcu1_0.bin BINMAN_INDIRS=$PREBUILT_DIR BINMAN_VERBOSE=3 O=$BUILD_DIR/uboot/a72 j721e_evm_a72_defconfig make -sC $UBOOT_DIR ARCH=arm CROSS_COMPILE=$CC_A72 HOSTCFLAGS="-Wno-stringop-overread" DTC_FLAGS="-Wno-unit_address_vs_reg -Wno-avoid_default_addr_size -Wno-reg_format" TEE=$BUILD_DIR/tee/bl32.bin BL31=$BUILD_DIR/atf/k3/generic/release/bl31.bin TI_DM=$BUILD_DIR/dm/mcu1_0.bin BINMAN_INDIRS=$PREBUILT_DIR BINMAN_VERBOSE=3 O=$BUILD_DIR/uboot/a72 | tee $BUILD_DIR/uboot/a72.log PREBUILT_SIZE=$(stat --printf="%s" $PREBUILT_DIR/ti-dm/j721e/ipc_echo_testb_mcu1_0_release_strip.xer5f) CUSTOM_SIZE=$(stat --printf="%s" $BUILD_DIR/dm/mcu1_0.bin) USED_SIZE=$(fgrep -A1 ti-dm.bin $BUILD_DIR/uboot/a72.log |grep Wrote |cut -f2 -d' ') echo Size of original pre-build DM is $PREBUILT_SIZE bytes echo Size of custom DM is $CUSTOM_SIZE bytes echo Size of DM used by BINMAN is $(($USED_SIZE)) bytes (( $USED_SIZE == PREBUILT_SIZE )) && echo Binman used the PREBUILT image incorrectly (( $USED_SIZE == CUSTOM_SIZE )) && echo Binman used the CUSTOM image correctly