工具与软件:
CPU:AM6254ATCGGLW
交叉编译器: PROCESSOR-SDK-ANDROID - AM62X/09.02.00
构建代码: Overview_Building_ 201_SDK
DFU 闪存: Overview_Flashing .html
尊敬的 TI 团队:
请帮助我解决在构建 SDK 和 DFU 闪存 EMMC 时遇到的问题。
下载并构建默认 SDK 代码 cmd:
export YOUR_PATH=$PWD
export PATH=/opt/arm-gnu-toolchain-11.3.rel1-x86_64-aarch64-none-linux-gnu/bin/:$PATH
export PATH=/opt/arm-gnu-toolchain-11.3.rel1-x86_64-arm-none-linux-gnueabihf/bin/:$PATH
echo "start> 1:Downloading sources"
#Downloading sources
##Bootloader components
if [ ! -d "${YOUR_PATH}/ti-bootloader-aosp" ]; then
mkdir ${YOUR_PATH}/ti-bootloader-aosp/ && cd $_
git clone -b 09.02.00.009 git://git.ti.com/atf/arm-trusted-firmware.git
git clone -b 09.02.00.009 git://git.ti.com/optee/ti-optee-os.git optee_os
git clone -b 09.02.00.009 git://git.ti.com/ti-u-boot/ti-u-boot.git
git clone -b 09.02.00.009 git://git.ti.com/processor-firmware/ti-linux-firmware.git
fi
##Kernel
if [ ! -d "${YOUR_PATH}/ti-kernel-aosp" ]; then
mkdir ${YOUR_PATH}/ti-kernel-aosp/ && cd $_
repo init -u git://git.ti.com/android/manifest.git -b android14-release -m releases/RLS_09_02_Kernel.xml
repo sync
fi
##Android file system
if [ ! -d "${YOUR_PATH}/ti-aosp-14" ]; then
mkdir ${YOUR_PATH}/ti-aosp-14/ && cd $_
repo init -u git://git.ti.com/android/manifest.git -b android14-release -m releases/RLS_09_02.xml
repo sync
fi
echo "start> 2:Build Instructions-Bootloader components"
##Build Instructions-Bootloader components
##Build ATF
if [ -d "${YOUR_PATH}/ti-bootloader-aosp/arm-trusted-firmware" ]; then
cd ${YOUR_PATH}/ti-bootloader-aosp/arm-trusted-firmware
make E=0 CROSS_COMPILE=aarch64-none-linux-gnu- ARCH=aarch64 PLAT=k3 TARGET_BOARD=lite SPD=opteed CFLAGS+="-DK3_PM_SYSTEM_SUSPEND=1"
fi
##Build OPTEE-OS
if [ -d "${YOUR_PATH}/ti-bootloader-aosp/optee_os" ]; then
cd ${YOUR_PATH}/ti-bootloader-aosp/optee_os
make PLATFORM=k3 CFG_ARM64_core=y CROSS_COMPILE=arm-none-linux-gnueabihf- CROSS_COMPILE64=aarch64-none-linux-gnu-
fi
###Build tiboot3.bin
if [ -d "${YOUR_PATH}/ti-bootloader-aosp/ti-u-boot" ]; then
cd ${YOUR_PATH}/ti-bootloader-aosp/ti-u-boot/
make ARCH=arm am62x_evm_r5_usbdfu_defconfig #usb dfu flash emmc mode
#make ARCH=arm am62x_evm_r5_defconfig #flash sdcard mode
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabihf- \
BINMAN_INDIRS=${YOUR_PATH}/ti-bootloader-aosp/ti-linux-firmware
fi
####Build tispl.bin and u-boot.img
if [ -d "${YOUR_PATH}/ti-bootloader-aosp/ti-u-boot" ]; then
cd ${YOUR_PATH}/ti-bootloader-aosp/ti-u-boot/
make ARCH=arm am62x_evm_a53_defconfig
make ARCH=arm am62x_android_a53.config
make ARCH=arm CROSS_COMPILE=aarch64-none-linux-gnu- \
BL31=${YOUR_PATH}/ti-bootloader-aosp/arm-trusted-firmware/build/k3/lite/release/bl31.bin \
TEE=${YOUR_PATH}/ti-bootloader-aosp/optee_os/out/arm-plat-k3/core/tee-pager_v2.bin \
BINMAN_INDIRS=${YOUR_PATH}/ti-bootloader-aosp/ti-linux-firmware
fi
###Copy tiboot3.bin and tispl.bin and u-boot.img
if [ -d "${YOUR_PATH}/ti-bootloader-aosp/ti-u-boot" ]; then
cd ${YOUR_PATH}/ti-bootloader-aosp/ti-u-boot
sudo cp u-boot.img_unsigned ${YOUR_PATH}/ti-aosp-14/out/target/product/am62x/emmc-dfu-u-boot.img
sudo cp tispl.bin_unsigned ${YOUR_PATH}/ti-aosp-14/out/target/product/am62x/emmc-dfu-tispl.bin
sudo cp tiboot3-am62x-gp-evm.bin ${YOUR_PATH}/ti-aosp-14/out/target/product/am62x/emmc-dfu-tiboot3.bin
fi
echo "start> 3:Build Instructions-Kernel"
##Build Instructions-Kernel
###Building everything from scratch
if [ -d "${YOUR_PATH}/ti-kernel-aosp" ]; then
cd ${YOUR_PATH}/ti-kernel-aosp/
export DIST_DIR=${YOUR_PATH}/ti-aosp-14/device/ti/am62x-kernel/kernel/6.1
tools/bazel run //common:ti_dist -- --dist_dir=$DIST_DIR
fi
echo "start> 4:Android File System"
##Android File System
if [ -d "${YOUR_PATH}/ti-aosp-14" ]; then
cd ${YOUR_PATH}/ti-aosp-14
source build/envsetup.sh
lunch am62x-userdebug
m
fi
编辑.dts 并构建内核 cmd:
export YOUR_PATH=$PWD
export PATH=/opt/arm-gnu-toolchain-11.3.rel1-x86_64-aarch64-none-linux-gnu/bin/:$PATH
export PATH=/opt/arm-gnu-toolchain-11.3.rel1-x86_64-arm-none-linux-gnueabihf/bin/:$PATH
#edit ${YOUR_PATH}/ti-kernel-aosp/common/arch/arm64/boot/dts/ti/k3-am625-sk.dts
#edit ${YOUR_PATH}/ti-kernel-aosp/common/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
echo "start> 3:Build Instructions-Kernel"
##Build Instructions-Kernel
###Building everything from scratch
if [ -d "${YOUR_PATH}/ti-kernel-aosp" ]; then
cd ${YOUR_PATH}/ti-kernel-aosp/
export DIST_DIR=${YOUR_PATH}/ti-aosp-14/device/ti/am62x-kernel/kernel/6.1
tools/bazel run //common:ti_dist -- --dist_dir=$DIST_DIR
fi
闪存 EMMC SOP:
01.(build code PC)cd ${YOUR_PATH}/ti-aosp-14/out/target/product/am62x
02.(AM62)set bootmode to DFU mode
03.(AM62)power on
04.(build code PC)snagrecover -s am625 -f ./am62x-sk-evm.yaml
05.(AM62)interrupt U-Boot to go in console
06.(AM62)=> env default -f -a; saveenv;
07.(AM62)=> fastboot 0
08.(build code PC)sudo ./flashall.sh --board am62x-sk
09.(AM62)power down
10.(AM62)set bootmode to EMMC mode
11.(AM62)power on
构建内核后、哪个文件需要 从 ti-kernel-AOSP 和 ti-bootloader-AOSP 的 CP 到${your_path}/ti-aosp-14/out/target/product/am62x 才能运行 flashall.sh。
谢谢!
Andrew