Yocto Customize U-Boot¶
Introduction¶
This guide demonstrates how to patch and rebuild the VAR-SOM-AM62 U-Boot images using Yocto.
To learn how to build the U-Boot images outside of Yocto, see: Build U-Boot from source code
Before Starting¶
Before starting this guide, you must have the Yocto environment set and be able to build images for the VAR-SOM-AM62.
Please see: Build Yocto from source code.
The remainder of the guide assumes the Yocto working directory is ~/var-ti-yocto
Making changes in the source code¶
Choose one of the following three methods to customize the U-Boot source code and build it using Yocto:
Add your patches on top of the Variscite source code¶
Fetch the U-Boot source:
MACHINE=am62x-var-som bitbake -c unpack virtual/bootloader
mkdir -p ../local_repos/ti-u-boot
cp -a arago-tmp-default-glibc/work/am62x_var_som-oe-linux/u-boot-variscite/<uboot version>/git/. ../local_repos/ti-u-boot
cd ../local_repos/ti-u-boot
git reset --hard
git clean -fdx
git diff > ~/var-ti-yocto/tisdk/sources/meta-variscite-bsp-ti/recipes-bsp/u-boot/u-boot-variscite/uboot.diff
~/var-ti-yocto/tisdk/sources/meta-variscite-bsp-ti/recipes-bsp/u-boot/u-boot-variscite_<u-boot
version>.bb to apply the patch by appending:
Use a local repository¶
Fetch the U-Boot source:
MACHINE=am62x-var-som bitbake -c unpack virtual/bootloader
mkdir -p ../local_repos/ti-u-boot
cp -a arago-tmp-default-glibc/work/am62x_var_som-oe-linux/u-boot-variscite/<uboot version>/git/. ../local_repos/ti-u-boot
cd ../local_repos/ti-u-boot
git reset --hard
git clean -fdx
cd ~/var-ti-yocto/local_repos/ti-u-boot
vim board/variscite/am62x_var_som/am62x_var_som.c
vim include/configs/am62x_var_som.h
edit and save
git commit -a -m "my_am62x_var_som_changes"
UBOOT_SRC = "git://<var-ti-yocto_directory_path>/local_repos/ti-u-boot;protocol=file"
SRCBRANCH:am62x-var-som = "ti-u-boot-2025.01_11.02.08.02_var01"
SRCREV:am62x-var-som = "The commit id you'd like to use"
Use your remote repository on GitHub¶
Using this method Yocto will fetch the source code from your remote repository on GitHub.
Create a GitHub account and upload your proprietary U-Boot to a new repository: You can fork our repository to your account by visiting the following link and clicking on "Fork" at the top right of the screen: https://github.com/varigit/ti-u-boot/tree/ti-u-boot-2025.01_11.00.09.04_var01
Alternatively, you can clone the repository to your local machine, and push it later to your account.
Update the recipes to use your remote repository instead of the default one:
Create a u-boot-variscite.bbappend file: and append the following lines to it (see the previous section for listing the commits or getting the latest commit ID):UBOOT_SRC = "git://github.com/<your_account>/ti-u-boot.git;protocol=git"
SRCBRANCH = "ti-u-boot-2025.01_11.02.08.02_var01"
SRCREV = "The commit id you'd like to use"
Building U-Boot using Yocto¶
After making the desired changes to the source code following one of the methods described in the Making changes in the source code, you can build the U-Boot images by running:
cd ~/var-ti-yocto/tisdk/build
. conf/setenv
# Build only the U-Boot images:
MACHINE=am62x-var-som bitbake -c deploy u-boot-variscite # tispl.bin and u-boot.img
MACHINE=am62x-var-som bitbake -c deploy mc:k3r5:u-boot-variscite # tiboot3.bin
# Optionally, you may skip building U-Boot and just build your image:
MACHINE=am62x-var-som bitbake <image name>
deploy-ti/images/am62x-var-som/u-boot.img
deploy-ti/images/am62x-var-som/tispl.bin
deploy-ti/images/am62x-var-som/tiboot3.bin