Skip to content

Customizing U-Boot

Introduction

This guide demonstrates how to patch and rebuild Debian U-Boot images.

To learn how to build the U-Boot images outside of Debian, see: Build U-Boot from source code

Prerequisites

Make sure you set up the Flexbuild Docker environment properly. Follow the instructions from step 5 of the Build Debian from source code page.

Add your patches on top of the Variscite source code

The following steps can be executed outside or inside the container.

Fetch the U-Boot source:

git clone https://github.com/varigit/uboot-imx -b lf_v2024.04_6.6.52-2.2.2_var01
cd uboot-imx
git clean -fdx
Next, make the desired changes to the U-Boot source code. Example:
vim drivers/net/fsl_enetc.c
vim drivers/net/fsl_enetc.h
After changing the source code, commit the changes locally and generate a patch file:
git add .
git commit -e
git format-patch -1
Once the patch is created, copy it to the U-Boot patch folder, which is inside the Flexbuild directory:
mkdir -p [...]/flexbuild/patch/uboot/
cp 0001-my-changes.patch [...]/flexbuild/patch/uboot/

Build U-Boot individually

Do not run any 'git am' or 'git apply' command. That will be done inside the U-Boot Makefile. Now, if you're not inside the container, get in with the following commands:

cd [...]/flexbuild           # (Outside Docker environment)
. setup.env                  # (Outside Docker environment)
bld docker                   # (Outside Docker environment)
Once you've entered the Docker environment, run:
bld -f sdk-var.yml -m imx8mp-var-dart uboot           # (Inside Docker environment)

Rebuild U-Boot

Once you've built U-Boot, a clean step is needed if a rebuild is required:

bld clean-bsp                                           # (Inside Docker environment)
Then, just build U-Boot normally with:
bld -f sdk-var.yml -m imx8mp-var-dart uboot           # (Inside Docker environment)