# Tools

The tools for the boot process include QDTE and Fastboot. QDTE is a GUI
editor tool that can be accessed through the [Qualcomm Software
Center](https://softwarecenter.qualcomm.com/#/) (QSC), whereas
Fastboot is a diagnostic tool that offers a Recovery mode known as the
Fastboot mode.

For more information on QSC, see [Qualcomm Software Center User
Guide](https://docs.qualcomm.com/bundle/publicresource/topics/80-72780-2/overview.html).

> 
> 
> [QDTE](https://docs.qualcomm.com/doc/80-70017-4/topic/tools.html#qdte-tools)
> 
> 
> QDTE is a tool used to configure the DTB by editing the `xbl_config.elf` file.
> 
> 
> [Fastboot](https://docs.qualcomm.com/doc/80-70017-4/topic/tools.html#fastboot)
> 
> 
> Fastboot allows you to flash software images such as the boot loader and helps in system recovery.
> 
> 
> [Capsule generation in UEFI](https://docs.qualcomm.com/doc/80-70017-4/topic/tools.html#capsule-generation-in-uefi)
> 
> 
> Capsule generation tools are specialized utilities designed to create capsule files, which are essential for performing firmware updates on various devices.
> 
> 
> These tools streamline the process of packaging firmware updates into a format that can be deployed and applied to the device hardware.
> 
> 
> The tools can be run on  both Linux and Windows environments, providing flexibility for different development setups.
> 
> 
> By using OpenSSL for certificate generation and signing, the tools ensure that the firmware updates are secure and authenticated. To set up the capsule see the [Capsule generation in UEFI](https://docs.qualcomm.com/doc/80-70017-4/topic/tools.html#capsule-generation-in-uefi).

## QDTE

QDTE is a tool used to configure the DTB by editing the `xbl_config.elf`
file.

You can download QDTE from
[QSC](https://softwarecenter.qualcomm.com/#/) and launch the UI using
the command `./qdte`.

QDTE offers the following features:

- Allows for experimentation with configuration settings in a test
environment.
- Opens/reads a DTB file directly or parses an `xbl_config.elf` file and
extracts the embedded DTB files. In the latter case, when the file is
saved, the `xbl_config.elf` file is regenerated with signing.

Do not use the QDTE tool to create the device tree source/device tree
source inclusion (DTS/DTSI) files that represent the input source.

Note

QDTE v1.3.0 is supported on:

> 
> 
> - Ubuntu 22.04 Linux host machines
> - Windows 10 and 11 host machines

For more information on how to configure QDTE, see
[Configure](https://docs.qualcomm.com/doc/80-70017-4/topic/configure-qdte.html#configure-qdte).

## Fastboot

Fastboot allows you to flash software images such as the boot loader and
helps in system recovery.

Fastboot is supported on Linux and Windows host machines. To enter
Fastboot mode, you can use a hotkey for Fastboot.

### Fastboot using hotkey

After powering on the device, press **VOL-**.

The figure shows the Fastboot logs from the device entering the Fastboot
mode.

![../../_images/fastboot-dectection.PNG](data:image/png;base64,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)

### Fastboot commands

When Fastboot mode is detected, you can run the corresponding Fastboot
commands.

Table : Fastboot commands

| Command | Usage | Example or use case |
| --- | --- | --- |
| `fastboot reboot` | Allows you to reboot the device. | A system reboot may be required after:<br><br><br><br>> <br>> <br>> <ul class="simple"><br>> <li><p>Flashing the software images</p></li><br>> <li><p>Completing a software update</p></li><br>> </ul> |
| `fastboot devices` | If it recognizes and connects to the device, fastboot displays the device information. | fastboot devices |
| `fastboot getvar <variable>` | Retrieves data from various partitions.<br><br><br>The following are the supported `getvar` commands.<br><br><br><br>> <br>> <br>> <ul class="simple"><br>> <li><p><code class="docutils literal notranslate"><span class="pre">fastboot</span> <span class="pre">getvar</span> <span class="pre">partition-size:system</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">fastboot</span> <span class="pre">getvar</span> <span class="pre">partition-size:xbl_a</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">fastboot</span> <span class="pre">getvar</span> <span class="pre">kernel</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">fastboot</span> <span class="pre">getvar</span> <span class="pre">max-download-size</span></code></p></li><br>> </ul> | Fastboot supports multiple variables. The data from these variables can be retrieved through this command.<br><br><br>For example, to retrieve a variable such as version, run the following Fastboot command:<br>.. container:: screenoutput<br><br><br><br>> <br>> <br>> fastboot getvar version |
| `fastboot flash <partition name> <full path to the SW image>` | Flashes the software images. | To flash the `xbl_config.elf` image, run the following command:<br><br><br>fastboot flash xbl\_config\_a xbl\_config.elf<br><br><br>Where:<br><ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">xbl_config_a</span></code> indicates the partition label</p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">xbl_config.elf</span></code> is the software image that is flashed</p></li><br></ul> |
| `fastboot erase` | Erase `fastboot erase` | fastboot erase xbl\_config\_a<br><br><br>Erases the `xbl_config_a` partition. |
| `fastboot continue` | To continue with the bootup | fastboot continue<br><br><br>Boots up the OS. |

### Recovery with Fastboot

Fastboot serves as a recovery solution when the systemd-boot image and
ESP are corrupted.

The systemd-boot image boots from the EFI system partition (ESP). In
such cases, Fastboot automatically initiates as a recovery option,
allowing you to reflash the ESP.

## Capsule generation in UEFI

The capsule generation tools are specialized utilities designed to create capsule files, which are essential for performing firmware updates on various devices.
These tools streamline the process of packaging firmware updates into a format that can be deployed and applied to the device hardware.
The tools can be run on both Linux and Windows environments, providing flexibility for different development setups. By using OpenSSL for certificate generation and signing, the tools ensure that the firmware updates are secure and authenticated.

**Pre-requisites to run the tool**

Before starting the capsule generation process, you need to generate the following certifications:

- Capsule generation scripts are available at: [https://github.com/quic/cbsp-boot-utilities/tree/ba1ea8d0fdb24857553730aa247eb602c7b589ba/uefi_capsule_generation](https://github.com/quic/cbsp-boot-utilities/tree/ba1ea8d0fdb24857553730aa247eb602c7b589ba/uefi_capsule_generation).
- The git clone link is: [https://github.com/quic/cbsp-boot-utilities.git](https://github.com/quic/cbsp-boot-utilities.git) and go to cbsp-boot-utilities/uefi\_capsule\_generation/ directory.
- OpenSSL certificates: These certificates should be placed in a separate folder named ‘Certificates’.
- The `QcFMPRoot.cer` (or `NewRoot.cer`) should be provided in the BOOT DT at `/sw/uefi/uefiplat/QcRootCer`.

| Linux | Windows |
| --- | --- |
| <ul class="simple"><br><li><p>OpenSSL: A toolkit for the Transport Layer Security (TLS) and Secure Sockets Layer (SSL) protocols.</p></li><br><li><p>Python3: A programming language that is widely used for scripting and automation.</p></li><br><li><p>Git: Version control system.</p></li><br></ul> | <ul class="simple"><br><li><p>OpenSSL: A toolkit for the Transport Layer Security (TLS) and Secure Sockets Layer (SSL) protocols.</p></li><br><li><p>Python3: A programming language that is widely used for scripting and automation.</p></li><br><li><p>Visual Studio with C++ Development Tool: An integrated development environment (IDE) from Microsoft, which includes tools for C++ development.</p></li><br><li><p>Git: Version control system.</p></li><br></ul> |

## Steps to generate capsule files

1. Setup the environment.

python3 capsule_setup.py
        Copy to clipboard
2. Generate firmware version file.

python3 SYSFW_VERSION_program.py -Gen -FwVer 0.0.A.B -LFwVer 0.0.0.0 -O SYSFW_VERSION.bin
        Copy to clipboard

    where A, B are the version numbers.

| -Gen | Generates a new firmware version file. |
    | --- | --- |
    | -FwVer | Specifies the firmware version. |
    | -LFwVer | - Specifies the lowest firmware version. -O: Output file<br>    - name. |
3. Create firmware volume (FV).

python3 FVCreation.py firmware.fv "-FvType" "SYS_FW" "FvUpdate_UFS.xml" SYSFW_VERSION.bin Images/
        Copy to clipboard

| firmware.fv | The firmware volume file. |
    | --- | --- |
    | -FvType | Type of firmware volume. |
    | FvUpdate\_UFS.xml | XML file for firmware update. |
    | SYSFW\_VERSION.bin | The firmware version file generated. |
    | Images/ | The directory containing the images. |

    All the /Images folders are available with all required firmware
images, from the FvUpdate\_UFS.xml file.
4. Update the JSON parameters.

python3 UpdateJsonParameters.py -j config.json -f SYS_FW -b SYSFW_VERSION.bin -pf firmware.fv -p Certificates/QcFMPCert.pem -x Certificates/QcFMPRoot.pub.pem -oc Certificates/QcFMPSub.pub.pem -g <FMP GUID>
        Copy to clipboard

| -j config.json | The JSON configuration file. |
    | --- | --- |
    | -f SYS\_FW | The firmware type. |
    | -b SYSFW\_VERSION.bin | The firmware version file. |
    | -pf firmware.fv | The firmware volume file. |
    | -p Certificates/QcFMPCert.pem | The certificate file. |
    | -x Certificates/QcFMPRoot.pub.pem | The root public certificate. |
    | -oc Certificates/QcFMPSub.pub.pem | The subordinate public certificate. |
    | -g &lt;FMP GUID&gt; | The firmware management protocol (FMP) GUID. |
5. Generate the capsule file.

python3 GenerateCapsule.py -e -j config.json -o <capsule_name>.cap --capflag PersistAcrossReset -v
        Copy to clipboard

| -e | Enable capsule generation. |
    | --- | --- |
    | -j config.json | The JSON configuration file. |
    | -o kodiak\_fw\_zak2.cap | The output capsule file. |
    | –capflag PersistAcrossReset | The flag to persist across reset. |
    | -v | The verbose mode. |

Last Published: Dec 30, 2024

[Previous Topic
Storage](https://docs.qualcomm.com/bundle/publicresource/80-70017-4/topics/storage-developer-touchpoints.md) [Next Topic
Develop](https://docs.qualcomm.com/bundle/publicresource/80-70017-4/topics/develop-boot-public.md)