Skip to main content

Overview

This page provides an overview of U-Boot (Universal Boot Loader) support in Qualcomm Linux (QLI) software.

Supported SoCs

Build U-Boot image

This section describes how to build the U-Boot binary as part of the QLI 2.0 software.

1. From Qualcomm Linux GitHub repository

Prerequisites

Before proceeding with the build steps, do the following:
  1. Install following package on your local machine:
  2. Download and extract the Arm GNU Toolchain:
    • This creates the toolchain directory at ~/arm-gnu-toolchain-14.2.rel1-x86_64-aarch64-none-linux-gnu/. If you extract it to a different location, adjust the paths in the build commands accordingly.
    • Install the toolchain on an x86 64-bit host computer only.
    • For other versions, visit Arm GNU Toolchain Downloads.
  3. Download the qtestsign utility:

Build steps

  1. Download the U-Boot repository from Qualcomm Linux GitHub to your local workspace and move to the u-boot folder:
  2. Switch the branch:
  3. Check out the SRC REV for the QLI 2.0 release:
  4. Since Kernel-Based Virtual Machine (KVM) is enabled by default on IQ-9075 and IQ-615, add the following configuration options to their respective defconfig files:
    Skip this step for QCS6490 because KVM is not enabled by default.
  5. Configure the build for your platform. This command creates the required configuration files in the .output directory. Choose the command based on your platform:
  6. Build U-Boot using the cross-compile toolchain:
    Replace ~/arm-gnu-toolchain-14.2.rel1-x86_64-aarch64-none-linux-gnu/ with your actual toolchain installation path if you extracted it to a different location.
    Expected result:
    • The U-Boot build completes without errors.
    • The u-boot.elf file is available in the .output directory.

Convert u-boot.elf to u-boot.mbn

This command generates the signed u-boot.mbn file required for flashing:
Replace ~/qtestsign/ with your actual qtestsign installation path if you cloned it to a different location.

2. Using Yocto build

Follow the instructions on the Build Qualcomm Linux using Yocto page with the following modifications:
  • To generate the U-Boot binary, append :meta-qcom/ci/u-boot-qcom.yml KAS fragment to the build command in step 3 of “Build a BSP image”.
  • In the build artifacts folder, the final U-Boot binary is generated as uefi.elf in the <workspace-dir>/build/tmp/deploy/images/<MACHINE>/<IMAGE>-<MACHINE>.rootfs.qcomflash/ directory.
Kernel-Based Virtual Machine (KVM) is enabled by default for KVM-supported targets (IQ-9075 and IQ-615) in the Yocto build. The following configurations are added by default when building U-Boot for these targets:

Flash U-Boot image

Using Qualcomm tools

Follow the build flashing instructions to flash the U-Boot binary along with the QLI 2.0 build as described in Flash software images.

Using Fastboot

  1. Enter fastboot mode using one of the following methods:
    • From kernel:
    • From U-Boot CLI:
  2. Flash the desired image from the host. For example, to flash the U-Boot image:
  3. Restart the device:

Supported U-Boot commands

The following table lists some of the key U-Boot commands available on the supported platforms. These commands cover boot management, environment management, storage access, and hardware peripheral control. The available commands may vary depending on the platform support.
  • In QCS6490, Watchdog is used by the Hypervisor; therefore, Watchdog commands do not work for QCS6490.

See also