Debian Customizing U-Boot: Difference between revisions

From Variscite Wiki
No edit summary
No edit summary
Line 30: Line 30:
  $ vim drivers/net/fsl_enetc.h
  $ vim drivers/net/fsl_enetc.h
After changing the source code, create a diff file, edit, and save:
After changing the source code, create a diff file, edit, and save:
  $ git diff > uboot.diff
  $ git diff > my_changes.patch


Once the patch is created, copy it to the U-Boot patch folder, which is inside the Flexbuild directory:
$ cp my_changes.patch [...]/flexbuild/patch/uboot/


== Build U-Boot individually ==


Refer to the instructions on how to download the Debian source code and apply the U-Boot patch during the Debian image build process. After cloning the Debian source code, it will be located in the '''{{#var:BUILD_FOLDER}}/ti-bdebstrap/'''".
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)


Create the directory  '''{{#var:BUILD_FOLDER}}/ti-bdebstrap/patches/ti-u-boot''' and copy the '''uboot.diff''' patch.
Once you've entered the Docker environment, run:
  $ mkdir -p {{#var:BUILD_FOLDER}}/ti-bdebstrap/patches/ti-u-boot
  $ bld -f sdk-var.yml -m imx8mm-var-dart uboot             (Inside Docker environment)
$ cp {{#var:BUILD_FOLDER_UBOOT}}/{{#var:U-BOOT}}/uboot.diff  {{#var:BUILD_FOLDER}}/ti-bdebstrap/patches/ti-u-boot


Refer to {{Varlink|Debian_Build_Release_TI|{{#var:RELEASE_LINK}}#Building_the_Debian_image|'''Build and flash the Debian image with uboot changes'''}}.
== Rebuild U-Boot ==


== Use your remote repository on GitHub ==
Once you've built U-Boot, a clean step is needed if a rebuild is required:
Create a GitHub account and upload your proprietary U-Boot to a new repository:
$ bld clean-bsp                                          (Inside Docker environment)
You can fork our repository to your account by visiting the following link and clicking on "Fork" at the top right of the screen:
Then, just build U-Boot normally with:
https://github.com/varigit/{{#var:U-BOOT_REPO}}/tree/{{#var:U-BOOT_BRANCH}}
$ bld -f sdk-var.yml -m imx8mm-var-dart uboot            (Inside Docker environment)
 
Alternatively, you can clone the repository to your local machine, and push it later to your account.<br>
 
Refer to {{Varlink|Debian_Build_Release_TI|{{#var:RELEASE_LINK}}#Deploy_source|'''How to Download Debian Source Code'''}}. After downloading the source, open the file '''{{#var:BUILD_FOLDER}}/ti-bdebstrap/configs/bsp_sources.toml''' and locate the tag '''{{#var:TI_RELEASE}}_var01'''.
 
    atf_srcrev = "00f1ec6b8740ccd403e641131e294aabacf2a48b"
    optee_srcrev = "012cdca49db398693903e05c42a254a3a0c0d8f2"
    uboot_srcuri = "https://github.com/varigit/ti-u-boot.git"  #change to your repository name of uboot
    uboot_srcrev = "80ceb4d91326e00edd22a3fabf5dd2d64f6a7635"  #update the hash with the latest commit
    linux_fw_srcrev = "09.02.00.010"
 
Finally refer to {{Varlink|Debian_Build_Release_TI|{{#var:RELEASE_LINK}}#Building_the_Debian_image|'''Build the Debian image with updated u-boot repository'''}}.

Revision as of 22:56, 3 June 2025

Warning: This page is designed to be used with a 'release' URL parameter.

This page is using the default release mx8mm-debian-bookworm-6.6.52_24.12-v1.0.
To view this page for a specific Variscite SoM and software release, please follow these steps:

  1. Visit variwiki.com
  2. Select your SoM
  3. Select the software release


DART-MX8M-MINI - Debian Customize from source code

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

Prerequirements

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.0_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, create a diff file, edit, and save:

$ git diff > my_changes.patch

Once the patch is created, copy it to the U-Boot patch folder, which is inside the Flexbuild directory:

$ cp 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 imx8mm-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 imx8mm-var-dart uboot             (Inside Docker environment)