# Boot architecture
The boot architecture uses boot loaders and Board Support Package (BSP) images at each stage of boot.
The boot loaders manage each boot stage until the Linux Kernel and the applications are ready to run.
## Boot loader
The system runs the boot loader software when powered on, serving 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:
### 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/doc/80-70030-11/topic/features.html#secure-boot).
- Identifies the primary storage device and loads the secondary boot loader called the eXtensible Bootloader (XBL).
If the system encounters any recoverable error while loading the XBL image, the PBL enters the emergency download (EDL) mode. For more information about how to detect EDL mode, see [Enumeration of EDL device manager](https://docs.qualcomm.com/doc/80-70030-4/topic/edl-device-manager-enumeration.html#edl-device-manager-enumeration).
- Loads XBL segments into the boot SoC internal memory. For more
information about how PBL loads the XBL segments, see [APSS cold boot flow](https://docs.qualcomm.com/doc/80-70030-4/topic/bootloader-architecture.html#bootloader-architecture).
### eXtensible Bootloader (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/doc/80-70030-4/topic/pmic-developer-touchpoints.html)),
and low-power double data rate (LPDDR) clock functions.
- Collects the RAM dump over USB onto the host computer.
- 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)
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 OS and running the UEFI applications.
Qualcomm uses Tianocore EDK-II, 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/).
The system offers the following build options:
- 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-70030-4/topic/develop-boot-public.html#develop-boot-public).
### systemd-boot OS manager
systemd-boot is a UEFI boot manager that executes configured EFI
images. It only supports systems with UEFI firmware and does the
following:
- Loads boot entry information from the EFI system partition (ESP),
mounted at `/efi`, `/boot`, or `/boot/efi` during the Linux OS
runtime and from the extended boot loader partition (XBOOTLDR)
(mounted to `/boot`).
You must locate the configuration file fragments, kernels, initial RAM disk (initrd), and other EFI images 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 run as an EFI image, use the `CONFIG_EFI_STUB` compilation option.
Last Published: Jul 20, 2026
[Previous Topic
Boot overview](https://docs.qualcomm.com/bundle/publicresource/80-70030-4/topics/overview.md) [Next Topic
APSS cold boot flow](https://docs.qualcomm.com/bundle/publicresource/80-70030-4/topics/bootloader-architecture.md)