# Boot architecture The boot architecture uses boot loaders and board support package (BSP) images at each stage of boot. The boot loaders manage different stages of the boot process until they enable the Linux kernel and applications. ## 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/bundle/publicresource/topics/80-70020-11/features.html#secure-boot). - Identifies the primary storage device and loads the secondary boot loader called the eXtensible Boot Loader (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-70020-4/topic/edl-device-manager-enumeration.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 [APSS cold boot flow](https://docs.qualcomm.com/doc/80-70020-4/topic/bootloader-architecture.html#bootloader-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-70020-4/pmic-developer-touchpoints.html)), and low-power double data rate (LPDDR) clock functions. - Collects the RAM dump over USB onto 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) .
Last Published: Jun 25, 2025
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 UEFI applications. Qualcomm uses Tianocore EDK2, 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-70020-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 supports systems with UEFI firmware only 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`). 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 be directly run as an EFI image, use the `CONFIG_EFI_STUB` compilation option. For more information, see the following documents: - EFI boot stub, see [https://docs.kernel.org/admin-guide/efi-stub.html](https://docs.kernel.org/admin-guide/efi-stub.html). - For a sample structure of the EFI partition, see [Systemd-boot in Qualcomm Linux Yocto Guide](https://docs.qualcomm.com/bundle/publicresource/topics/80-70020-27/qualcomm_linux_software_components.html#configure-and-secure-boot-with-systemd-boot-and-uki). Next steps: Last Published: Jun 25, 2025 [Previous Topic Boot overview](https://docs.qualcomm.com/bundle/publicresource/80-70020-4/topics/overview.md) [Next Topic APSS cold boot flow](https://docs.qualcomm.com/bundle/publicresource/80-70020-4/topics/bootloader-architecture.md)