[PATCH v2 0/3] Add FIT multi-DTB selection for Qualcomm platforms
Aswin Murugan
aswin.murugan at oss.qualcomm.com
Thu Jan 29 19:48:14 CET 2026
This series adds dynamic device tree selection from FIT images for
Qualcomm Snapdragon platforms, enabling U-Boot to select the
appropriate DTB based on hardware parameters detected from SMEM.
Qualcomm fit based DTB format is documented in [1]
The fit image contains only DTB, while the kernel will be part of UKI image.
The implementation consists of three parts:
1. SMEM cache infrastructure: Provides cached access to commonly
used SMEM data (socinfo, RAM partitions) to avoid redundant
lookups during boot. Includes socinfo header from Linux kernel
for SoC identification.
2. FIT multi-DTB selection: Implements the core selection logic
that reads hardware parameters from SMEM, parses metadata DTB,
matches FIT configurations, and loads the selected DTB with
overlays. Integrates with EFI boot flow by setting fdt_addr.
3. Platform configuration: Enables the feature by default and
configures platform-specific IMEM sizes needed for storage
type detection (QCM6490/QCS615: 0x2B000, QCS9100: 0x59000).
[1] https://github.com/qualcomm-linux/qcom-dtb-metadata/blob/main/Documentation.md
---
Changes in v2:
- In v1, a combined DTB format was used for multi-DTB support. Based on
feedback, v2 implements FIT-based DTB selection instead.
- Link to v1: https://lore.kernel.org/all/20260106122134.2047864-1-aswin.murugan@oss.qualcomm.com/
Aswin Murugan (3):
mach-snapdragon: Add generic SMEM cache infrastructure
mach-snapdragon: Add FIT multi-DTB selection support
configs: snapdragon: Enable FIT multi-DTB and configure IMEM
arch/arm/mach-snapdragon/Kconfig | 18 +
arch/arm/mach-snapdragon/Makefile | 1 +
arch/arm/mach-snapdragon/board.c | 112 ++
arch/arm/mach-snapdragon/qcom-priv.h | 10 +
arch/arm/mach-snapdragon/qcom_fit_multidtb.c | 1237 ++++++++++++++++++
arch/arm/mach-snapdragon/qcom_fit_multidtb.h | 170 +++
arch/arm/mach-snapdragon/rampart.h | 236 ++++
configs/qcm6490_defconfig | 2 +
configs/qcom_defconfig | 2 +
configs/qcom_qcs615_defconfig | 2 +
configs/qcom_qcs9100_defconfig | 1 +
include/soc/qcom/socinfo.h | 114 ++
12 files changed, 1905 insertions(+)
create mode 100644 arch/arm/mach-snapdragon/qcom_fit_multidtb.c
create mode 100644 arch/arm/mach-snapdragon/qcom_fit_multidtb.h
create mode 100644 arch/arm/mach-snapdragon/rampart.h
create mode 100644 include/soc/qcom/socinfo.h
--
2.34.1
More information about the U-Boot
mailing list