3.2. Android Bootloaders
Getting toolchain for u-boot builds
The toolchains are automatically downloaded by the build scripts.
Install OPTEE-OS build dependencies
Check OPTEE-OS docs to know list of dependencies needed to be installed : https://optee.readthedocs.io/en/latest/building/prerequisites.html
Install additional dependencies
$ sudo apt install bc bison build-essential curl u-boot-tools flex git libssl-dev python3 python3-pip wget -y
$ pip3 install pycryptodome pyelftools shyaml --user
3.2.1. Downloading sources
Fetch the code using repo
:
$ mkdir ${YOUR_PATH}/ti-bootloader-aosp/ && cd $_
$ repo init -u https://git.ti.com/git/android/manifest.git -b android15-release -m releases/RLS_10_01_Bootloader.xml
$ repo sync
For more information about repo
, visit Android’s official
documentation
3.2.2. Build Instructions
Build bootloaders images using:
$ cd ${YOUR_PATH}/ti-bootloader-aosp/ $ ./build/build_all.sh --config=build/config/boards/am62x-sk.yaml
This will generate all the required bootloaders in
out/am62x-sk/release
:$ tree out out/am62x-sk/ └── release ├── bl31-release.bin ├── tee-release.bin ├── tiboot3-release-gp.bin ├── tiboot3-release-hsfs.bin ├── tispl-release.bin └── u-boot-release.img
These binaries are valid for an AM62X SoC. To build for other boards, look at
build/config/boards
. We can see the following valid combinations:Name
Description
am62p-sk-dfu.yaml
AM62Px board with DFU boot enabled (usage with snagboot)
am62p-sk.yaml
AM62Px board (regular eMMC boot)
From
out/am62x-sk/release
, copy thetiboot3.bin
,tispl.bin
andu-boot.img
generated to$YOUR_PATH/ti-aosp-15/vendor/ti/am62x/bootloader
.If not copied, the prebuilt bootloader binaries already present in
vendor/ti/am62x/bootloader
will get used byflashall.sh
flashing script.For picking the correct filenames, refer to the upstream documentation.
Finally, rebuild Android by following Build Instructions.
Warning
If you also modify Trusted Applications (TA), it’s recommended to use the release_android.sh
script to avoid copying all the TAs manually as it’s quite error prone.
3.2.3. Release Instructions
In addition to building and copying manually to $YOUR_PATH/ti-aosp-15
,
it’s also possible to automatically build all supported variants and copy them to Android.
Assuming Android has already been downloaded following Downloading sources, This can be done using:
$ cd ${YOUR_PATH}/ti-bootloader-aosp/
$ ./build/release_android.sh --aosp=${YOUR_PATH}/ti-aosp-15 --commit
# [...] lots of build logs later
After that, rebuild Android by following Build Instructions to use the new bootloaders.
Tip
To only release for a particular board, pass the --config
option to release_android.sh
.