# Architecture

The boot architecture includes boot loaders and board support packages (BSP) images that are used at each stage of boot.
The boot loaders are involved at different stages of the boot process until the Linux kernel and applications are enabled.

## Boot loader

The boot loader software runs when the system is powered on and serves as an interface for loading the operating system and other required applications.

Qualcomm chipsets, including the ones supported by Qualcomm Linux, use a multistage boot process as follows:

![../../_images/boot-loader-latest-10-01.png](data:image/png;base64,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)

### Primary boot loader (PBL)

- Establishes a secure root-of-trust (RoT) and secure boot process for
applications. For more information, see [Secure boot](https://docs.qualcomm.com/bundle/publicresource/topics/80-70017-11/secure-boot.html).
- Identifies the primary storage device and loads the secondary boot loader called the eXtensible boot loader (XBL).

    If any recoverable error occurs while loading the XBL image, the PBL
enters the emergency download (EDL) mode. For more information on how
EDL mode is detected, see [Enumeration of EDL device manager](https://docs.qualcomm.com/doc/80-70017-4/topic/examples.html#edl-device-manager-enumeration).
- Loads XBL segments into the boot SoC internal memory. For more
information on how PBL loads the XBL segments, see [Cold boot architecture](https://docs.qualcomm.com/doc/80-70017-4/topic/architecture.html#cold-boot-architecture).

### eXtensible Boot Loader (XBL)

- Initializes the hardware, firmware images, CPU cache, MMU, boot
device, PMIC, and DDR.
- Sets up the RAM dump USB driver, USB charging, thermal
check, power management integrated circuit
([PMIC](https://docs.qualcomm.com/bundle/publicresource/topics/80-70017-4/pmic-developer-touchpoints.html)),
and low-power double data rate (LPDDR) clock functions.
- Collects the RAM dump over USB to the host PC.
- Loads and verifies the Qualcomm^®^ Trusted Execution Environment
(Qualcomm TEE), Qualcomm Hypervisor, and UEFI image.
- Provides the XBL configuration (XBL\_CFG), which is part of the cold
boot flow and includes PMIC and other driver settings.
- Provides XBL with a Qualcomm-signed ELF segment to initialize the
external protection units (xPU).
- XBL\_CFG is a standalone binary with platform-specific configurations
and settings. The XBL uses the XBL\_CFG driver to load and configure
the required settings. The driver uses the binary to provide
on-demand read access to each setting of XBL\_CFG.

### Unified Extensible Firmware Interface (UEFI)

<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewbox="0 0 640 400" width="640" height="400" style="cursor:auto !important">
    <defs>
      <style>@import url("https://fonts.googleapis.com/css2?family=Roboto+Flex:opsz,wght@8..144,100..1000&amp;display=swap");
.svg-1 .bg-fill { fill: var(--color-background) }
.svg-1 .fill-text { color: var(--color-content); fill: var(--color-content) }
.svg-1 .video-hoverbox { transition: opacity 0.15s ease-in-out }
.svg-1 .video-hoverbox:hover { opacity: 0.9 }</style>
  </defs>

  <foreignobject x="0" y="0" width="640" height="400">
    <body xmlns="http://www.w3.org/1999/xhtml">
        <iframe width="640" height="400" src="https://players.brightcove.net/1414329538001/4JiZQnWhg_default/index.html?videoId=6362756918112" allowfullscreen="" allow="encrypted-media"></iframe>.
    <div class='topic-detail'><div class='topic-updated-date'><span> Last Published: </span>Dec 30, 2024</div><div class='prev-and-next-links'></div></div></body>
    </foreignobject>
</svg>

UEFI is the software interface between an operating system (OS) and the platform
firmware.

It includes data tables with platform information, along with the boot
and runtime service calls that the OS and its loader can use. Together,
they create a standard environment for booting an operating system and
running UEFI applications.

Qualcomm uses TianocoreEDK2, an open-source implementation available at
[http://www.tianocore.org/edk2/](https://github.com/tianocore/tianocore.github.io/wiki/EDK-II/)
which follows the [UEFI
specification](https://uefi.org/specs/UEFI/2.10/).

There are two build options, which are:

- Retail build: Has minimal debug features and an optimal memory
footprint, making it ideal for production environments.
- Debug build: Ideal for development environments, with all debug
features enabled.

For developing a UEFI application, see [Unified Extensible Firmware Interface (UEFI)](https://docs.qualcomm.com/doc/80-70017-4/topic/uefi-develop.html#uefi-develop).

### systemd-boot OS manager

systemd-boot is a UEFI boot manager which executes configured EFI
images. It supports systems with UEFI firmware exclusively and does the
following:

- Loads boot entry information from the EFI system partition (ESP),
typically mounted at `/efi`, `/boot`, or `/boot/efi` during the Linux OS
runtime and from the extended boot loader partition (XBOOTLDR)
(mounted to `/boot`).

    The configuration file fragments, kernels, initial RAM disk (initrd),
and other EFI images must be located within the ESP or XBOOTLDR.
- Reads simple and generic boot loader configuration files, and selects
one file per boot loader entry. All the files are in the ESP
partition.

To ensure that the Qualcomm Linux kernel can be directly run as an EFI
image, use the `CONFIG_EFI_STUB` compilation option.

For more information on:

- EFI boot stub, see
[https://docs.kernel.org/admin-guide/efi-stub.html](https://docs.kernel.org/admin-guide/efi-stub.html).
- A sample structure of the EFI partition, see [Systemd-boot in
Qualcomm Linux Yocto
Guide](https://docs.qualcomm.com/bundle/publicresource/topics/80-70017-27/platform_software_features.html#systemd-boot).

## Cold boot architecture

A cold boot starts the system from a power-off state. This process
begins with the PBL.

The following figure shows the cold boot flow:

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

**Figure : Cold boot flow**

The cold boot process operates in two security modes: Secure and
Nonsecure.

At the EL0, EL1, and EL2 [exception
levels](https://developer.arm.com/documentation/102412/0103/Privilege-and-Exception-levels/Exception-levels),
the boot core can operate in either Secure or Nonsecure mode, however at the EL3 it
always operates in Secure mode.

For more information on the security modes, see [Software Security
Architecture](https://docs.qualcomm.com/bundle/publicresource/topics/80-70017-11/architecture.html).

The Linux kernel runs in the Nonsecure EL1 state. After the security
settings are completed in the secure EL3 state, the XBL may switch to
the UEFI nonsecure EL1 state.

The cold boot sequence involves the following steps:

1. After a reset, the boot core exits the Reset state and executes the
PBL. The PBL initializes the hardware clocks, CPU caches, memory
management unit (MMU), and identifies the boot device based on the
boot option settings.
2. The PBL loads and authenticates the XBL from the boot device. The XBL
runs the security setup in EL3 Secure state and performs the
following tasks:

    1. Initializes the hardware, firmware images, CPU cache, MMU, boot
device, PMIC, and DDR.
    2. Loads and authenticates the Qualcomm TEE image from the boot
device.
    3. Loads and authenticates the Qualcomm Hypervisor image.
    4. Loads and authenticates the UEFI image.
    5. Makes a secure channel manager (SCM) call to jump to the Qualcomm
TEE image. SCM is the driver that communicates with Qualcomm TEE
using a [secure monitor
call](https://developer.arm.com/documentation/ddi0333/latest/programmer-s-model/exceptions/secure-monitor-call--smc-)
(SMC).
3. The Qualcomm TEE sets up the secure environment and runs the Qualcomm
Hypervisor image.
4. The Qualcomm Hypervisor hands over control to UEFI, which then loads
and authenticates the systemd-boot EFI image using the [UEFI secure
boot](https://docs.qualcomm.com/bundle/publicresource/topics/80-70017-11/enable-uefi-secure-boot.html).
5. The systemd-boot image loads and authenticates the Qualcomm Linux
kernel image, and then passes control to the Qualcomm Linux kernel.
If kernel-based virtual machine (KVM) mode is enabled, UEFI will shutdown Qualcomm Hypervisor and exit the UEFI boot services; it then passes off the control to Linux KVM in EL2.
6. The Qualcomm Linux kernel launches the Linux application such as
the bash shell.

## Update and recovery

The firmware on a device is updated using a capsule, through the UEFI. This process involves encapsulating the firmware update payload in a capsule [.cap file], which is then processed by the system firmware to update the device’s firmware.

Note

The mentioned capsule update is applicable to Qualcomm Linux advanced/custom variant only.

To generate a capsule, see [Capsule generation in UEFI](https://docs.qualcomm.com/doc/80-70017-4/topic/tools.html#capsule-generation-in-uefi).

### Update device firmware

Updating device firmware involves installing new software onto a device’s firmware, which is the low-level software that controls the hardware.
This process can improve the device’s performance, fix bugs, add new features, or enhance security. To update the device firmware through a capsule, do the following:

1. **Preparation**: The OS creates a capsule containing the firmware update.
2. **Staging**: This capsule is accessible in the  EFI system partition (ESP). [/EFI/UpdateCapsule/&lt;capsule&gt;.cap], before the OS loads.
3. **Reboot**: The OS will trigger the capsule update and reboot the system to enter the UEFI environment.
4. **Update Initiation**: The UEFI firmware detects the capsule and starts the update process.
5. **Verification**: The firmware checks the capsule’s integrity and authenticity.
6. **Installation**: The firmware is updated using the capsule’s data.
7. **Completion**: The system reboots again to complete the update.

In this process, the firmware update payload is encapsulated in a.cap file. This capsule (.cap) file is then processed to ensure secure and reliable firmware updates.

### **UEFI variables involved in capsule update**

Communication between the OS and UEFI uses protocols and services to interact with platform firmware. UEFI offers a standard boot environment, data tables with platform information, and boot/runtime service calls for the OS loader and OS.
The UEFI variables for capsule updates include:

| Variable name | Description |
| --- | --- |
| OsIndications | This variable is owned by the OS and is used to indicate the features the OS wants the firmware to enable or the OS wants the firmware to take. This variable is set by OS and cleared by UEFI. |
| OsIndicationsSupported | This variable is owned by the firmware and indicates which of the OS indication features and actions the firmware supports. |
| OsTrialBootStatus | <ul class="simple"><br><li><p>7:0 - Version - Version number of OsTrialBootStatus</p></li><br><li><p>11:8 - TrialBootMaxCount - This is set by the OS before triggering the capsule update.</p></li><br><li><p>15:12 - TrialBootCount - This is set/incremented by UEFI (if TrialBootEnabled is not cleared by OS). The OS can set to TrialBootMaxCount, if the OS wants to trigger a firmware rollback.</p></li><br><li><p>16 - TrialBootEnabled - This is set to 1 by UEFI after capsule update and cleared by the OS after successful OTA update.</p></li><br><li><p>31:17 - Unused</p></li><br></ul> |
| EFI system resource table (ESRT) | The ESRT table is set by the UEFI after the capsule update. |

For more information on OsIndications and OsIndicationsSupported see
[https://uefi.org/specs/UEFI/2.10/08_Services_Runtime_Services.html?highlight=osindications#exchanging-information-between-the-os-and-firmware](https://uefi.org/specs/UEFI/2.10/08_Services_Runtime_Services.html?highlight=osindications#exchanging-information-between-the-os-and-firmware).

Note

- If there is more than one capsule in the ESP partition [in EFI/UpdateCapsule], then all the capsules are considered for the update and are updated alphabetically.
- All the UEFI non-volatile variables are stored in the rollback protection memory block (RPMB) partition, which needs to be in a Provisioned state. The RPMB is autoprovisioned on a Qualcomm secure-boot enabled device. On Qualcomm non-secure devices RPMB is not autoprovisioned and can be provisioned with test keys. If RPMB is provisioned with test keys on non-secure devices, it cannot be re-provisioned with a device key while enabling Qualcomm secureboot on the device. The rpmbClient app can be used for RPMB provisioning from Linux. For more information, see [Qualcomm Security Linux Guide](https://docs.qualcomm.com/bundle/publicresource/topics/80-70017-11/bring-up.html#verify-trustzone/device-configuration/hypervisor-image-loading).

### EFI System Resource Table (ESRT) for Capsule Update Status from HLOS

> 
> 
> The EFI System Resource Table (ESRT) is an optional mechanism for identifying the device and the system firmware resources to target firmware updates. Each ESRT entry describes a firmware resource that can be updated and reports the status of the last attempted update.
> The entries in ESRT, which are used to report status of the last attempted update are:

| **ESRT Field** | **Description** |
| --- | --- |
| FwClass | The firmware class field contains a GUID that identifies a firmware component that can be updated through *UpdateCapsule().* |
| FwType | Identifies the type of firmware resource. |
| FwVersion | The firmware version field represents the current version of the firmware resource. The value must always increase as a larger number represents a newer version. |
| LowestSupportedFwVersion | The lowest firmware resource version to which a firmware resource can be rolled back for the specified system/device. |
| CapsuleFlags | The capsule flags field contains the *CapsuleGuid* flags (bits 0- 15) as defined in the *EFI\_CAPSULE\_HEADER* that is set in the capsule header. |
| LastAttemptVersion | The field describes the last firmware version for which an update was attempted (uses the same format as the firmware version). |
| LastAttemptStatus | The field describes the result of the last firmware update attempt for the firmware resource entry. |

ESRT content is exposed by the OS from the sysfs path:

/sys/firmware/efi/esrt/entries/entry0/
    sh-5.1# cd /sys/firmware/efi/esrt/entries/entry0/
    sh-5.1# ls
    capsule_flags  fw_type     last_attempt_status   lowest_supported_fw_version
    w_class       fw_version  last_attempt_version
    Copy to clipboard

ESRT table is set by UEFI after the capsule update. X is the firmware version before the capsule update. Y is the version of the firmware, which is available in the capsule [.cap] file.

| **Last attempted firmware version** | **Current firmware version** | **last\_attempt satus** | **Capsule update scenario** |
| --- | --- | --- | --- |
| Y | Y | 0 | Update success |
| Y | X | 1 | Capsule update failure |
| 0 | X | 0 | Capsule meta-data failure |
| Y | X | 0 | Firmware rollback done |

For more information on ESRT, see [Firmware Update and
Reporting - UEFI Specification 2.10
documentation](https://uefi.org/specs/UEFI/2.10/23_Firmware_Update_and_Reporting.html#efi-system-resource-table)

The flowchart explains how the device firmware is updated using the UEFI capsule solution/method using different UEFI variables along with the rollback support.

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

1. **Initiation**: The over the air (OTA) update process starts, and the OS prepares
to update the capsule, signaling the UEFI (through setting
`OsIndications`) to begin the update. The OS sets a
`TrialBootMaxCount` to track the number of trial boots allowed and
then reboots the device.
2. **UEFI update**: Upon reboot, the system checks for
`OsIndications`. If present, it performs the capsule update,
updates the EFI system resource table (ESRT), clears `OsIndications`, and if
`TrialBootMaxCount` is set, enables `TrialBootEnabled` and
reboots the system again.
3. **Trialboot handling**:

    - If the `OsIndications` are not set, the system checks if the
`TrialBootEnabled` is active.
    - If the `TrialBootEnabled` is active and the `TrialBootCount`
equals the `TrialBootMaxCount`, it checks the rollback count.

        - If a rollback is allowed, the UEFI reverts to the firmware, updates the ESRT, and reboots.
        - If a rollback is not allowed, it indicates that the rollback limit is reached.
    - If the `TrialBootCount` is less than the `TrialBootMaxCount`, it
increments the `TrialBootCount` and continues the process.
4. **Completion**: The system boots to the OS, checks the ESRT, and if
the OS boots successfully, it resets the `TrialBootEnabled` field.
5. **Result**:

    - If `TrialBootEnabled` is not active, the OTA update is confirmed
as complete.
    - The system clears the `OtaTrialBootStatus` and sets the
`LwSupportedFwVersion` to the current firmware version to
disable rollback.
6. **Recovery**:
If a firmware capsule update fails during the update process, UEFI has a
recovery mechanism to maintain the stability and functionality. A high level overview of the recovery process:

    - **Rollback**: If a rollback is allowed, UEFI reverts to the previous firmware version. This involves restoring the firmware to the state before the update attempt.
    - **ESRT update**: The ESRT is updated to reflect the rollback.
    - **Reboot**: After the rollback is complete, the UEFI triggers a reboot to ensure it is running the previous, stable firmware version.

    This process ensures that the update is applied and allows for rollback if any issues are encountered during the trial period.

### Authentication and signing

Authentication is essential for firmware updates to ensure security and
stability. It guarantees that only updates from trusted sources are
applied, preventing malicious or unauthorized updates. By verifying the
digital signature of the capsule, it ensures the update has not been
tampered with during transmission and that only verified and tested
updates are installed. This reduces the risk of system crashes or
malfunctions due to faulty firmware.

To authenticate capsule-based system firmware updates using the
instructions from the Tianocore GitHub page, follow these steps:

1. **Generate signing keys**:

    - Use OpenSSL command line utilities to create a new self-signed
X.509 certificate chain. This involves generating a private key
and a corresponding public certificate.
    - The private key is used to sign the firmware update capsules,
while the public certificate is used by the UEFI firmware to
verify the signature.
2. **Sign the firmware update capsule**:

    - Use the signing keys to sign the firmware
update capsule. This ensures that the capsule is authenticated and
has not been tampered with.
    - The signing process typically involves creating a hash of the
firmware update payload and then encrypting this hash with the
private key to create a digital signature.
    - Place these certificates in a folder named `Certificates’. Sample
files available in this folder might include `QcFMPCert.pem`,
`QcFMPRoot.pub.pem`, and `QcFMPSub.pub.pem`.
3. **Verify the capsule**:

    - The UEFI firmware will use the public certificate to verify the
digital signature on the capsule. If the signature is valid and
matches the trusted certificate, the firmware update process will
proceed.
    - The `QcFMPRoot.cer` (or `NewRoot.cer`) should be provided in
the boot DT at `/sw/uefi/uefiplat/QcCapsuleRootCert`.

This verification step ensures that only authorized firmware updates are applied to the system.

Last Published: Dec 30, 2024

[Previous Topic
Getting started](https://docs.qualcomm.com/bundle/publicresource/80-70017-4/topics/getting-started.md) [Next Topic
Interfaces](https://docs.qualcomm.com/bundle/publicresource/80-70017-4/topics/interfaces.md)