Hi Ashwin,

On Fri, Jan 30, 2026 at 12:18:14AM +0530, Aswin Murugan wrote:
> 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.
> 

As I suggested in earlier posting as well, we rather need to use
upstream FIT tooling and infrastructure to generate this FIT image. Do
you know how much of the mkimage tooling can be reused here? Can we push
upstream relevant .dts and .its files as reference?

The next bigger question to me is how FIT signatures are going to be
supported here with secure boot enabled?

Also, as I see here [1] there are only Qcom reference designs supported.
What it will take to support OEM boards based on Qcom silicon?

So I would rather suggest you to build an upstream framework to enable
generating these FIT DTBs, ability to support FIT signatures and
add proper documentation around it upstream U-Boot project.

[1] 
https://github.com/qualcomm-linux/qcom-dtb-metadata/blob/main/qcom-platforms.md

-Sumit

> 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/[email protected]/
> 
> 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
> 

Reply via email to