When the Yocto build is initiated, U-Boot used in Gemstone boards is automatically downloaded, compiled, and its outputs are packaged. Therefore, no additional commands need to be run. If there is a situation that requires recompiling U-Boot (e.g., adding support for booting the operating system from an SSD), the following steps can be followed.
Some operations, such as modifying kernel parameters or adding device-tree overlays, can be done without recompiling U-Boot by updating the /boot/uEnv.txt file.
All the commands below will be executed inside the distrobox. Therefore, you must first run the devbox shell —> task box commands. Additionally, to switch to the Yocto environment, you need to run the m:oeinit t3-gem-o1 command.

Updating Configuration with Menuconfig

If you want to enable/disable various features (such as enabling the TFTP command) instead of modifying the source code, you can access menuconfig using the following commands.
In this example, the T3-GEM-O1 board will be used for explanation. If you are applying these steps for a different machine, change the machine name accordingly.

Modifying Source Code

Open the <sdk-directory>/build/tmp-musl/work/t3_gem_o1-gemstone-linux-musl/u-boot-t3-gem-o1/2025.04+git/git folder in your text editor. After making the desired changes, compile U-Boot using the following commands. To avoid losing your changes, you can create your own fork of the T3 Gemstone U-Boot repository and push your changes there.
bitbake virtual/bootloader
After the compilation is complete, copy the generated files in the <sdk-directory>/build/t3-gem-o1/deploy-ti/images directory to the /boot directory on the SD card. If you have fixed an issue or added a new feature, you can create a pull request to the T3 Gemstone U-Boot repository so the community can benefit from it.