From 9c2532c8f0f5c164e85dd82912fcacd4ad837b96 Mon Sep 17 00:00:00 2001 From: Kavinaya S Date: Mon, 17 Nov 2025 22:05:55 +0530 Subject: [PATCH 01/12] lib/qcom_fitimage.py: add DTB-only FIT image generation support `qcom_fitimage.py` imports OE-Core provided FIT image generation script, `fitimage.py`, and extends it to support Qualcomm-specific requirements for DTB-only FIT images. Some enhancements include enabling compatibility string handling and custom '.its' generation for Qualcomm platforms. Signed-off-by: Kavinaya S --- lib/qcom_fitimage.py | 131 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 lib/qcom_fitimage.py diff --git a/lib/qcom_fitimage.py b/lib/qcom_fitimage.py new file mode 100644 index 000000000..0d79fee9a --- /dev/null +++ b/lib/qcom_fitimage.py @@ -0,0 +1,131 @@ +# Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. +# SPDX-License-Identifier: BSD-3-Clause-Clear +# +# This file contains functions for Qualcomm specific DTB-only fitimage generation, +# which imports classes from OE-Core fitimage.py and enhances to meet Qualcomm FIT +# specifications. + +import os +import shlex +import subprocess +import bb +from typing import Tuple +import oe.fitimage +from oe.fitimage import ItsNodeRootKernel, get_compatible_from_dtb + +class QcomItsNodeRoot(ItsNodeRootKernel): + + def __init__(self, description, address_cells, host_prefix, arch, conf_prefix, + sign_enable=False, sign_keydir=None, + mkimage=None, mkimage_dtcopts=None, + mkimage_sign=None, mkimage_sign_args=None, + hash_algo=None, sign_algo=None, pad_algo=None, + sign_keyname_conf=None, + sign_individual=False, sign_keyname_img=None): + # Call parent constructor + super().__init__(description, address_cells, host_prefix, arch, conf_prefix, + sign_enable, sign_keydir, mkimage, mkimage_dtcopts, + mkimage_sign, mkimage_sign_args, hash_algo, sign_algo, + pad_algo, sign_keyname_conf, sign_individual, sign_keyname_img) + + self._mkimage_extra_opts = [] + self._dtbs = [] + + def set_extra_opts(self, mkimage_extra_opts): + self._mkimage_extra_opts = shlex.split(mkimage_extra_opts) if mkimage_extra_opts else [] + + # Override DTB section to allow compatible_override + def fitimage_emit_section_dtb(self, dtb_id, dtb_path, dtb_loadaddress=None, + dtbo_loadaddress=None, add_compatible=False, + compatible_str=None, dtb_abspath=None): + load = None + dtb_ext = os.path.splitext(dtb_path)[1] + if dtb_ext == ".dtbo": + if dtbo_loadaddress: + load = dtbo_loadaddress + elif dtb_loadaddress: + load = dtb_loadaddress + + opt_props = { + "data": '/incbin/("' + dtb_path + '")', + "arch": self._arch + } + if load: + opt_props["load"] = f"<{load}>" + + compatibles = None + if add_compatible: + if compatible_str: + compatibles = str(compatible_str).split() + elif dtb_ext != ".dtbo": + compatibles = get_compatible_from_dtb(dtb_abspath) + + dtb_node = self.its_add_node_dtb( + "fdt-" + dtb_id, + "Flattened Device Tree blob", + "flat_dt", + "none", + opt_props, + compatibles + ) + self._dtbs.append((dtb_node, compatibles or [])) + + def fitimage_emit_section_config(self, default_dtb_image=None): + if self._dtbs: + counter = 0 + for entry in self._dtbs: + if isinstance(entry, tuple) and len(entry) == 2: + dtb_node, compatibles = entry + if compatibles: + for comp in compatibles: + conf_name = f"{self._conf_prefix}{counter}" + counter += 1 + self._fitimage_emit_one_section_config(conf_name, dtb_node) + conf_node = self.configurations.sub_nodes[-1] + conf_node.add_property('compatible', comp) + else: + conf_name = f"{self._conf_prefix}{counter}" + counter += 1 + self._fitimage_emit_one_section_config(conf_name, dtb_node) + else: + dtb_node = entry + conf_name = f"{self._conf_prefix}{counter}" + counter += 1 + self._fitimage_emit_one_section_config(conf_name, dtb_node) + else: + # Currently exactly one kernel is supported. + self._fitimage_emit_one_section_config(self._conf_prefix + "1") + + default_conf = self.configurations.sub_nodes[0].name + if default_dtb_image and self._dtbs: + default_conf = self._conf_prefix + default_dtb_image + self.configurations.add_property('default', default_conf) + + # Override mkimage assemble to inject extra opts + def run_mkimage_assemble(self, itsfile, fitfile): + cmd = [self._mkimage, *self._mkimage_extra_opts, '-f', itsfile, fitfile] + if self._mkimage_dtcopts: + cmd.insert(1, '-D') + cmd.insert(2, self._mkimage_dtcopts) + + bb.note(f"Running mkimage with extra opts: {' '.join(cmd)}") + + try: + subprocess.run(cmd, check=True, capture_output=True) + except subprocess.CalledProcessError as e: + bb.fatal( + f"Command '{' '.join(cmd)}' failed with return code {e.returncode}\n" + f"stdout: {e.stdout.decode()}\n" + f"stderr: {e.stderr.decode()}\n" + f"itsfile: {os.path.abspath(itsfile)}" + ) + + def get_compatible_from_dtb(dtb_path, fdtget_path="fdtget"): + compatible = None + cmd = [fdtget_path, "-t", "s", dtb_path, "/", "compatible"] + try: + ret = subprocess.run(cmd, check=True, capture_output=True, text=True) + compatible = ret.stdout.strip().split() + except subprocess.CalledProcessError: + compatible = None + return compatible From a13b2746458ddb55429e686ddaa5549043bfd5e2 Mon Sep 17 00:00:00 2001 From: Kavinaya S Date: Fri, 14 Nov 2025 14:17:24 +0530 Subject: [PATCH 02/12] recipes-kernel: add qcom-dtb-metadata recipe for FIT image generation Introduce qcom-dtb-metadata recipe to build `qcom-metadata.dtb`, which is required by fit-image.its for generating the FIT image (ITB). This recipe fetches sources from the qualcomm-linux/qcom-dtb-metadata repo and installs the generated `qcom-metadata.dtb` into the deploy directory. Signed-off-by: Kavinaya S --- recipes-kernel/linux/qcom-dtb-metadata_git.bb | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 recipes-kernel/linux/qcom-dtb-metadata_git.bb diff --git a/recipes-kernel/linux/qcom-dtb-metadata_git.bb b/recipes-kernel/linux/qcom-dtb-metadata_git.bb new file mode 100644 index 000000000..71c43acc7 --- /dev/null +++ b/recipes-kernel/linux/qcom-dtb-metadata_git.bb @@ -0,0 +1,25 @@ +SUMMARY = "Build qcom-metadata.dtb from vendored qcom-dtb-metadata" +HOMEPAGE = "https://github.com/qualcomm-linux/qcom-dtb-metadata" + +LICENSE = "BSD-3-Clause-Clear" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=2998c54c288b081076c9af987bdf4838" + +DEPENDS = "dtc-native" + +SRC_URI = "git://github.com/qualcomm-linux/qcom-dtb-metadata.git;branch=main;protocol=https" + +SRCREV = "6b9e4b9c093cba36a80035af103015f0a7d3f9fc" + +PV = "0.1+git" + +inherit deploy + +do_compile() { + oe_runmake +} + +do_deploy() { + install -d ${DEPLOY_DIR_IMAGE} + install -m 0644 ${S}/qcom-metadata.dtb ${DEPLOY_DIR_IMAGE}/qcom-metadata.dtb +} +addtask deploy after do_compile before do_build From dafd926ec7818a27782f9ddb80a50335f0be1930 Mon Sep 17 00:00:00 2001 From: Kavinaya S Date: Tue, 2 Dec 2025 15:44:43 +0530 Subject: [PATCH 03/12] classes-recipe: add dtb-fit-image.bbclass for FIT image generation This `dtb-fit-image.bbclass` creates fit-image.its and the corresponding FIT image (ITB). This class initializes the ITS structure, adds DTB sections to it including qcom-metadata.dtb, modifies ITS for Qualcomm specific requirements, and assembles the final image using mkimage. Signed-off-by: Kavinaya S --- classes-recipe/dtb-fit-image.bbclass | 111 +++++++++++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 classes-recipe/dtb-fit-image.bbclass diff --git a/classes-recipe/dtb-fit-image.bbclass b/classes-recipe/dtb-fit-image.bbclass new file mode 100644 index 000000000..af87d323d --- /dev/null +++ b/classes-recipe/dtb-fit-image.bbclass @@ -0,0 +1,111 @@ +inherit kernel-arch uboot-config + +require conf/image-fitimage.conf + +DEPENDS += "\ + u-boot-tools-native dtc-native \ + qcom-dtb-metadata \ +" + +# Initialize root node +python fitimage_init_rootnode() { + import sys, os + file_path = d.getVar('FILE') + customfit = os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(file_path))), 'lib') + if os.path.isdir(customfit) and customfit not in sys.path: + sys.path.insert(0, customfit) + bb.note("Added to sys.path (parse-time): %s" % customfit) + import oe.types + from qcom_fitimage import QcomItsNodeRoot + root_node = QcomItsNodeRoot( + d.getVar("FIT_DESC"), d.getVar("FIT_ADDRESS_CELLS"), + d.getVar('HOST_PREFIX'), d.getVar('UBOOT_ARCH'), d.getVar("FIT_CONF_PREFIX"), + oe.types.boolean(d.getVar('UBOOT_SIGN_ENABLE')), d.getVar("UBOOT_SIGN_KEYDIR"), + d.getVar("UBOOT_MKIMAGE"), d.getVar("UBOOT_MKIMAGE_DTCOPTS"), + d.getVar("UBOOT_MKIMAGE_SIGN"), d.getVar("UBOOT_MKIMAGE_SIGN_ARGS"), + d.getVar('FIT_HASH_ALG'), d.getVar('FIT_SIGN_ALG'), d.getVar('FIT_PAD_ALG'), + d.getVar('UBOOT_SIGN_KEYNAME'), + oe.types.boolean(d.getVar('FIT_SIGN_INDIVIDUAL')), d.getVar('UBOOT_SIGN_IMG_KEYNAME') + ) + d.setVar("__fit_root_node", root_node) + bb.debug(1, "Global root_node initialized") +} + +# Add DTB section +python fitimage_add_dtb_section() { + import shutil, os + deploydir = d.getVar('DEPLOY_DIR_IMAGE') + kerneldeploydir = d.getVar("DEPLOYDIR") + root_node = d.getVar("__fit_root_node") + if not root_node: + bb.fatal("root_node not initialized.") + + # Pass additional options + root_node.set_extra_opts(d.getVar("UBOOT_MKIMAGE_EXTRA_OPTS")) + kernel_devicetree = d.getVar('KERNEL_DEVICETREE') + + # Handle qcom metadata + kernel_devicetree = 'qcom-metadata.dtb ' + kernel_devicetree + shutil.copy(os.path.join(deploydir, 'qcom-metadata.dtb'), os.path.join(kerneldeploydir, 'qcom-metadata.dtb')) + + if kernel_devicetree: + for dtb in kernel_devicetree.split(): + dtb_name = os.path.basename(dtb) + dtb_base = os.path.splitext(dtb_name)[0] + compatible = d.getVarFlag("FIT_DTB_COMPATIBLE", dtb_base) or "" + abs_path = os.path.join(deploydir, dtb_name) + root_node.fitimage_emit_section_dtb(dtb_name, dtb_name, + d.getVar("UBOOT_DTB_LOADADDRESS"), d.getVar("UBOOT_DTBO_LOADADDRESS"), True, + compatible_str=compatible, dtb_abspath=abs_path) +} + +# Modify ITS file +python fitimage_modify_its_file() { + import re + + deploy_dir = d.getVar("DEPLOYDIR") + itsfile = os.path.join(deploy_dir, "fit-image.its") + + with open(itsfile, 'r') as f: + content = f.read() + + # Replace type as qcom_metadata for qcom-dtb-metadata + content = re.sub(r'(fdt-qcom-metadata.dtb\s*\{[^}]*?)type\s*=\s*"flat_dt";', + r'\1type = "qcom_metadata";', content, flags=re.DOTALL) + + # Remove conf-0 entry which corresponds to fdt-0 + content = re.sub(r'conf-0\s*\{[^}]*\};', '', content, flags=re.DOTALL) + + with open(itsfile, 'w') as f: + f.write(content) +} + +# Generate ITS and FIT image +python fitimage_generate_its() { + deploy_dir = d.getVar("DEPLOYDIR") + itsfile = os.path.join(deploy_dir, "fit-image.its") + fitname = os.path.join(deploy_dir, "fitImage") + + bb.build.exec_func('fitimage_init_rootnode', d) + bb.build.exec_func('fitimage_add_dtb_section', d) + root_node = d.getVar("__fit_root_node") + root_node.fitimage_emit_section_config(d.getVar("FIT_CONF_DEFAULT_DTB")) + root_node.write_its_file(itsfile) + bb.build.exec_func('fitimage_modify_its_file', d) + root_node.run_mkimage_assemble(itsfile, fitname) + root_node.run_mkimage_sign(fitname) +} + +do_compile_qcom_fitimage[depends] += "qcom-dtb-metadata:do_deploy" + +python do_compile_qcom_fitimage() { + bb.build.exec_func('fitimage_generate_its', d) +} + + +do_deploy_qcom_fitimage() { + install -m 0644 "${DEPLOYDIR}/fitImage" "${DEPLOY_DIR_IMAGE}/fitImage" + install -m 0644 "${DEPLOYDIR}/fit-image.its" "${DEPLOY_DIR_IMAGE}/fit-image.its" +} +addtask compile_qcom_fitimage after do_deploy +addtask deploy_qcom_fitimage after do_compile_qcom_fitimage do_deploy From 0f47ad92db55c847a059a7db1da6a737d97f7ac6 Mon Sep 17 00:00:00 2001 From: Kavinaya S Date: Mon, 1 Dec 2025 10:51:52 +0530 Subject: [PATCH 04/12] qcom-common.inc: define variables for FIT image generation Add U-Boot and FIT-related variables required to generate Qualcomm specific fitImage and ITS files. These include UBOOT_CONFIG, default DTB configuration, mkimage options and hash algorithm settings. Signed-off-by: Kavinaya S --- conf/machine/include/qcom-common.inc | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/conf/machine/include/qcom-common.inc b/conf/machine/include/qcom-common.inc index 11708cc53..18ab1726c 100644 --- a/conf/machine/include/qcom-common.inc +++ b/conf/machine/include/qcom-common.inc @@ -46,3 +46,16 @@ EFI_PROVIDER = "systemd-boot" # Unified Kernel Image (UKI) name EFI_LINUX_IMG ?= "linux-${MACHINE}.efi" + +# Variables to generate ITS file +UBOOT_CONFIG ??= "qcom" +UBOOT_CONFIG[qcom] ?= "qcom_defconfig" + +# Pass additional options to mkimage command +UBOOT_MKIMAGE_EXTRA_OPTS = "-E -B 0x0001000" + +# Set default configuration +FIT_CONF_DEFAULT_DTB = "1" + +# Set hash algorithm +FIT_HASH_ALG = "" From 329f784dad49c765424fffbe8a7320be9e8ce9bb Mon Sep 17 00:00:00 2001 From: Kavinaya S Date: Fri, 14 Nov 2025 11:48:38 +0530 Subject: [PATCH 05/12] linux-qcom-dtbbin.bbclass: support multi-dtb.vfat generation in FIT format Update linux-qcom-dtbbin.bbclass to include dtb-fit-image.bbclass and generate multi-dtb.vfat containing qclinux_fit.img alongside combined-dtb.dtb. Signed-off-by: Kavinaya S --- classes/linux-qcom-dtbbin.bbclass | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/classes/linux-qcom-dtbbin.bbclass b/classes/linux-qcom-dtbbin.bbclass index e90064d0f..5183905d5 100644 --- a/classes/linux-qcom-dtbbin.bbclass +++ b/classes/linux-qcom-dtbbin.bbclass @@ -4,8 +4,10 @@ # SPDX-License-Identifier: BSD-3-Clause-Clear # +inherit dtb-fit-image + DTBBIN_DEPLOYDIR = "${WORKDIR}/qcom_dtbbin_deploy-${PN}" -DTBBIN_SIZE ?= "4096" +DTBBIN_SIZE ?= "65536" do_qcom_dtbbin_deploy[depends] += "dosfstools-native:do_populate_sysroot mtools-native:do_populate_sysroot" do_qcom_dtbbin_deploy[cleandirs] = "${DTBBIN_DEPLOYDIR}" @@ -21,8 +23,13 @@ do_qcom_dtbbin_deploy() { mcopy -i "${DTBBIN_DEPLOYDIR}/dtb-${dtb_base_name}-image.vfat" -vsmpQ ${DTBBIN_DEPLOYDIR}/$dtb_base_name/* ::/ rm -rf ${DTBBIN_DEPLOYDIR}/$dtb_base_name done + # Generate qclinux_fit.img along side combined-dtb.dtb + if [ -f "${DEPLOY_DIR_IMAGE}/fitImage" ]; then + mkfs.vfat -S ${QCOM_VFAT_SECTOR_SIZE} -C ${DTBBIN_DEPLOYDIR}/multi-dtb.vfat ${DTBBIN_SIZE} + mcopy -i "${DTBBIN_DEPLOYDIR}/multi-dtb.vfat" -vsmpQ ${DEPLOY_DIR_IMAGE}/fitImage ::/qclinux_fit.img + fi } -addtask qcom_dtbbin_deploy after do_populate_sysroot do_packagedata before do_deploy +addtask qcom_dtbbin_deploy after do_populate_sysroot do_packagedata do_deploy do_deploy_qcom_fitimage before do_build # Setup sstate, see deploy.bbclass SSTATETASKS += "do_qcom_dtbbin_deploy" From cec628efcc32d3736f63323c9b7311b9e2ed031e Mon Sep 17 00:00:00 2001 From: Kavinaya S Date: Fri, 14 Nov 2025 11:23:16 +0530 Subject: [PATCH 06/12] iq-8275-evk.conf: add compatible string for monaco-evk.dtb Set compatible string as "qcom,qcs8275-iot" for monaco-evk.dtb to ensure proper configuration when generating FIT images. Signed-off-by: Kavinaya S --- conf/machine/iq-8275-evk.conf | 2 ++ 1 file changed, 2 insertions(+) diff --git a/conf/machine/iq-8275-evk.conf b/conf/machine/iq-8275-evk.conf index f86a134c6..59ead4662 100644 --- a/conf/machine/iq-8275-evk.conf +++ b/conf/machine/iq-8275-evk.conf @@ -28,3 +28,5 @@ QCOM_BOOT_FILES_SUBDIR = "qcs8300" QCOM_PARTITION_FILES_SUBDIR ?= "partitions/iq-8275-evk/ufs" QCOM_BOOT_FIRMWARE = "firmware-qcom-boot-qcs8300" + +FIT_DTB_COMPATIBLE[monaco-evk] = "qcom,qcs8275-iot" From 51fca9f7d00daab8b7ca0cf76c07c0a10e5d0020 Mon Sep 17 00:00:00 2001 From: Kavinaya S Date: Fri, 14 Nov 2025 11:26:52 +0530 Subject: [PATCH 07/12] iq-9075-evk.conf: add compatible string for lemans-evk.dtb Set compatible strings as "qcom,qcs9075-iot" and "qcom,qcs9075v2-iot" for lemans-evk.dtb to ensure proper configuration when generating FIT images. Signed-off-by: Kavinaya S --- conf/machine/iq-9075-evk.conf | 2 ++ 1 file changed, 2 insertions(+) diff --git a/conf/machine/iq-9075-evk.conf b/conf/machine/iq-9075-evk.conf index 6ffc530ae..9acfab5ff 100644 --- a/conf/machine/iq-9075-evk.conf +++ b/conf/machine/iq-9075-evk.conf @@ -28,3 +28,5 @@ QCOM_BOOT_FILES_SUBDIR = "qcs9100" QCOM_PARTITION_FILES_SUBDIR ?= "partitions/iq-9075-evk/ufs" QCOM_BOOT_FIRMWARE = "firmware-qcom-boot-qcs9100" + +FIT_DTB_COMPATIBLE[lemans-evk] = "qcom,qcs9075-iot qcom,qcs9075v2-iot" From 0a2a69331ff3aaf621f362940cbe129ac1c330a0 Mon Sep 17 00:00:00 2001 From: Kavinaya S Date: Fri, 14 Nov 2025 11:28:34 +0530 Subject: [PATCH 08/12] qcm6490-idp.conf: add compatible string for qcm6490-idp.dtb Set compatible string as "qcom,qcm6490-idp" for qcm6490-idp.dtb to ensure proper configuration when generating FIT images. Signed-off-by: Kavinaya S --- conf/machine/qcm6490-idp.conf | 2 ++ 1 file changed, 2 insertions(+) diff --git a/conf/machine/qcm6490-idp.conf b/conf/machine/qcm6490-idp.conf index 66fbd066c..2156fee47 100644 --- a/conf/machine/qcm6490-idp.conf +++ b/conf/machine/qcm6490-idp.conf @@ -22,3 +22,5 @@ QCOM_BOOT_FILES_SUBDIR = "qcm6490" QCOM_BOOT_FIRMWARE = "firmware-qcom-boot-qcs6490" QCOM_PARTITION_FILES_SUBDIR ?= "partitions/qcm6490-idp/ufs" + +FIT_DTB_COMPATIBLE[qcm6490-idp] = "qcom,qcm6490-idp" From 5c141cb5423dadac52355dbab81e2a22710b1143 Mon Sep 17 00:00:00 2001 From: Kavinaya S Date: Fri, 14 Nov 2025 11:30:20 +0530 Subject: [PATCH 09/12] qcs615-adp-air.conf: add compatible string for qcs615-ride.dtb Set compatible strings as "qcom,qcs615-adp" and "qcom,qcs615v1.1-adp" for qcs615-ride.dtb to ensure proper configuration when generating FIT images. Signed-off-by: Kavinaya S --- conf/machine/qcs615-adp-air.conf | 2 ++ 1 file changed, 2 insertions(+) diff --git a/conf/machine/qcs615-adp-air.conf b/conf/machine/qcs615-adp-air.conf index 97c00aa6e..2c1d56c10 100644 --- a/conf/machine/qcs615-adp-air.conf +++ b/conf/machine/qcs615-adp-air.conf @@ -21,3 +21,5 @@ MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += " \ QCOM_CDT_FILE = "cdt_adp_air_sa6155p" QCOM_BOOT_FILES_SUBDIR = "qcs615" QCOM_PARTITION_FILES_SUBDIR ?= "partitions/qcs615-adp-air/ufs" + +FIT_DTB_COMPATIBLE[qcs615-ride] = "qcom,qcs615-adp qcom,qcs615v1.1-adp" From 1c25851ac8c2844b2fedf2ded355f6488806a001 Mon Sep 17 00:00:00 2001 From: Kavinaya S Date: Fri, 14 Nov 2025 11:32:44 +0530 Subject: [PATCH 10/12] qcs8300-ride-sx.conf: add compatible string for qcs8300-ride.dtb Set compatible string as "qcom,qcs8300-adp" for qcs8300-ride.dtb to ensure proper configuration when generating FIT images. Signed-off-by: Kavinaya S --- conf/machine/qcs8300-ride-sx.conf | 2 ++ 1 file changed, 2 insertions(+) diff --git a/conf/machine/qcs8300-ride-sx.conf b/conf/machine/qcs8300-ride-sx.conf index 3a3bffbbc..e2021789d 100644 --- a/conf/machine/qcs8300-ride-sx.conf +++ b/conf/machine/qcs8300-ride-sx.conf @@ -27,3 +27,5 @@ QCOM_BOOT_FILES_SUBDIR = "qcs8300" QCOM_PARTITION_FILES_SUBDIR ?= "partitions/qcs8300-ride-sx/ufs" QCOM_BOOT_FIRMWARE = "firmware-qcom-boot-qcs8300" + +FIT_DTB_COMPATIBLE[qcs8300-ride] = "qcom,qcs8300-adp" From 9b80f00103960b8ac4985ab69c81cc23adafc258 Mon Sep 17 00:00:00 2001 From: Kavinaya S Date: Mon, 1 Dec 2025 15:15:18 +0530 Subject: [PATCH 11/12] qcs9100-ride-sx.conf: add compatible string for supported dtbs Set compatible strings for supported ride/ride-r3 dtbs to ensure proper configuration when generating FIT images. Signed-off-by: Kavinaya S --- conf/machine/qcs9100-ride-sx.conf | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/conf/machine/qcs9100-ride-sx.conf b/conf/machine/qcs9100-ride-sx.conf index e99fbe0bc..1c8ff7fb3 100644 --- a/conf/machine/qcs9100-ride-sx.conf +++ b/conf/machine/qcs9100-ride-sx.conf @@ -33,3 +33,8 @@ QCOM_BOOT_FILES_SUBDIR = "qcs9100" QCOM_PARTITION_FILES_SUBDIR ?= "partitions/qcs9100-ride-sx/ufs" QCOM_BOOT_FIRMWARE = "firmware-qcom-boot-qcs9100" + +FIT_DTB_COMPATIBLE[qcs9100-ride] = "qcom,qcs9100-qam qcom,qcs9100v2-qam" +FIT_DTB_COMPATIBLE[qcs9100-ride-r3] = "qcom,qcs9100-qamr2 qcom,qcs9100v2-qamr2" +FIT_DTB_COMPATIBLE[sa8775p-ride] = "qcom,sa8775p-qam qcom,sa8775pv2-qam" +FIT_DTB_COMPATIBLE[sa8775p-ride-r3] = "qcom,sa8775p-qamr2 qcom,sa8775pv2-qamr2" From db43c5ed737dec6986878d3e05d85dc7cba998ec Mon Sep 17 00:00:00 2001 From: Kavinaya S Date: Mon, 1 Dec 2025 10:55:35 +0530 Subject: [PATCH 12/12] rb3gen2-core-kit.conf : add compatible string for supported dtbs Set compatible strings for supported rb3gen2 dtbs to ensure proper configuration when generating FIT images. Signed-off-by: Kavinaya S --- conf/machine/rb3gen2-core-kit.conf | 3 +++ 1 file changed, 3 insertions(+) diff --git a/conf/machine/rb3gen2-core-kit.conf b/conf/machine/rb3gen2-core-kit.conf index d15cb8bd5..96fa34298 100644 --- a/conf/machine/rb3gen2-core-kit.conf +++ b/conf/machine/rb3gen2-core-kit.conf @@ -28,3 +28,6 @@ QCOM_BOOT_FILES_SUBDIR = "qcm6490" QCOM_PARTITION_FILES_SUBDIR ?= "partitions/qcs6490-rb3gen2/ufs" QCOM_BOOT_FIRMWARE = "firmware-qcom-boot-qcs6490" + +FIT_DTB_COMPATIBLE[qcs6490-rb3gen2-vision-mezzanine] = "qcom,qcs6490-iot-subtype2" +FIT_DTB_COMPATIBLE[qcs6490-rb3gen2] = "qcom,qcs6490-iot"