From b178d8049a6a113b51139958eaa2788d39551d5a Mon Sep 17 00:00:00 2001 From: Ishna Jain Date: Thu, 3 Sep 2026 02:26:14 +0530 Subject: [PATCH 1/6] firmware-qcom-boot-qcs615: upgrade 00137 -> 00140 The QCS615 boot firmware needs the latest 00140 release to pick up the platform fixes included after 00137. Upgrade the recipe to fetch the new archive and checksum. Known fixes: feat: update BOOT and TZ firmware feat: add removable-media boot flow support fix: update platform access-control policy Assisted-by: OpenAI Codex:gpt-5 Signed-off-by: Ishna Jain (cherry picked from commit 95341b033f42717509563d7df20e304d2ee7c4c0) --- recipes-bsp/firmware-boot/firmware-qcom-boot-qcs615_00137.bb | 3 --- recipes-bsp/firmware-boot/firmware-qcom-boot-qcs615_00140.bb | 3 +++ 2 files changed, 3 insertions(+), 3 deletions(-) delete mode 100644 recipes-bsp/firmware-boot/firmware-qcom-boot-qcs615_00137.bb create mode 100644 recipes-bsp/firmware-boot/firmware-qcom-boot-qcs615_00140.bb diff --git a/recipes-bsp/firmware-boot/firmware-qcom-boot-qcs615_00137.bb b/recipes-bsp/firmware-boot/firmware-qcom-boot-qcs615_00137.bb deleted file mode 100644 index fdbac7115..000000000 --- a/recipes-bsp/firmware-boot/firmware-qcom-boot-qcs615_00137.bb +++ /dev/null @@ -1,3 +0,0 @@ -require firmware-qcom-boot-qcs615.inc - -SRC_URI[bootbinaries.sha256sum] = "a7db0177218ce14cf52d514d3f9413f905b83004a4318b279cbbf73242676fd3" diff --git a/recipes-bsp/firmware-boot/firmware-qcom-boot-qcs615_00140.bb b/recipes-bsp/firmware-boot/firmware-qcom-boot-qcs615_00140.bb new file mode 100644 index 000000000..8fe6b9fc2 --- /dev/null +++ b/recipes-bsp/firmware-boot/firmware-qcom-boot-qcs615_00140.bb @@ -0,0 +1,3 @@ +require firmware-qcom-boot-qcs615.inc + +SRC_URI[bootbinaries.sha256sum] = "f27bf162caa0dd6e80d0ba3e86b4afecb8fc4cfa9ad1578174d89a2f7ec46d3a" From 0657e9f354da7e714892b51758c85c823a329d29 Mon Sep 17 00:00:00 2001 From: Ishna Jain Date: Mon, 7 Sep 2026 15:24:41 +0530 Subject: [PATCH 2/6] firmware-boot: support split boot binary archives Boot firmware recipes have historically installed files from one release archive. Some platforms now ship an additional archive for standalone firmware binaries. The companion archive is packaged separately from the main boot firmware bundle. Add support for deploying files from more than one archive while keeping the main archive as the default source directory. Recipes that still provide a single archive continue to work unchanged because missing companion archive directories are skipped during deploy. Assisted-by: OpenAI Codex:gpt-5 Signed-off-by: Ishna Jain (cherry picked from commit 205af6477603f441df9f04cd0bcf3214465293dc) --- .../firmware-qcom-boot-common.inc | 32 ++++++++++++------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/recipes-bsp/firmware-boot/firmware-qcom-boot-common.inc b/recipes-bsp/firmware-boot/firmware-qcom-boot-common.inc index 180da3b55..e3387bbe9 100644 --- a/recipes-bsp/firmware-boot/firmware-qcom-boot-common.inc +++ b/recipes-bsp/firmware-boot/firmware-qcom-boot-common.inc @@ -1,6 +1,13 @@ # Install NHLOS boot binaries in DEPLOY_DIR S = "${UNPACKDIR}/${BOOTBINARIES}" +BOOTBINARIES_IMMUTABLE ?= "${BOOTBINARIES}_immutable" + +# Some firmware releases split boot files across the main archive and an +# immutable companion archive. Deploy the recipe's source directory first, so +# recipes that override S to a subdirectory keep their existing layout, then +# deploy the optional immutable archive when it exists. +QCOM_BOOT_BINARY_DIRS ?= "${S} ${UNPACKDIR}/${BOOTBINARIES_IMMUTABLE}" QCOM_BOOT_IMG_SUBDIR ?= "" @@ -13,17 +20,20 @@ inherit deploy do_deploy() { install -d ${DEPLOYDIR}/${QCOM_BOOT_IMG_SUBDIR} - find "${S}" -maxdepth 1 -name 'gpt_*.bin' -delete - find "${S}" -maxdepth 1 -name 'zeros_*.bin' -delete - find "${S}" -maxdepth 1 -name '*.bin' -exec install -m 0644 {} ${DEPLOYDIR}/${QCOM_BOOT_IMG_SUBDIR} \; - find "${S}" -maxdepth 1 -name '*.elf' -exec install -m 0644 {} ${DEPLOYDIR}/${QCOM_BOOT_IMG_SUBDIR} \; - find "${S}" -maxdepth 1 -name '*.fv' -exec install -m 0644 {} ${DEPLOYDIR}/${QCOM_BOOT_IMG_SUBDIR} \; - find "${S}" -maxdepth 1 -name '*.lzma' -exec install -m 0644 {} ${DEPLOYDIR}/${QCOM_BOOT_IMG_SUBDIR} \; - find "${S}" -maxdepth 1 -name '*.mbn' -exec install -m 0644 {} ${DEPLOYDIR}/${QCOM_BOOT_IMG_SUBDIR} \; - find "${S}" -maxdepth 1 -name '*.melf' -exec install -m 0644 {} ${DEPLOYDIR}/${QCOM_BOOT_IMG_SUBDIR} \; - find "${S}" -maxdepth 1 -name 'qsahara_*.xml' -exec install -m 0644 {} ${DEPLOYDIR}/${QCOM_BOOT_IMG_SUBDIR} \; - find "${S}" -maxdepth 1 -name '*.xz' -exec install -m 0644 {} ${DEPLOYDIR}/${QCOM_BOOT_IMG_SUBDIR} \; - + for bootdir in ${QCOM_BOOT_BINARY_DIRS}; do + [ -d "${bootdir}" ] || continue + + find "${bootdir}" -maxdepth 1 -name 'gpt_*.bin' -delete + find "${bootdir}" -maxdepth 1 -name 'zeros_*.bin' -delete + find "${bootdir}" -maxdepth 1 -name '*.bin' -exec install -m 0644 {} ${DEPLOYDIR}/${QCOM_BOOT_IMG_SUBDIR} \; + find "${bootdir}" -maxdepth 1 -name '*.elf' -exec install -m 0644 {} ${DEPLOYDIR}/${QCOM_BOOT_IMG_SUBDIR} \; + find "${bootdir}" -maxdepth 1 -name '*.fv' -exec install -m 0644 {} ${DEPLOYDIR}/${QCOM_BOOT_IMG_SUBDIR} \; + find "${bootdir}" -maxdepth 1 -name '*.lzma' -exec install -m 0644 {} ${DEPLOYDIR}/${QCOM_BOOT_IMG_SUBDIR} \; + find "${bootdir}" -maxdepth 1 -name '*.mbn' -exec install -m 0644 {} ${DEPLOYDIR}/${QCOM_BOOT_IMG_SUBDIR} \; + find "${bootdir}" -maxdepth 1 -name '*.melf' -exec install -m 0644 {} ${DEPLOYDIR}/${QCOM_BOOT_IMG_SUBDIR} \; + find "${bootdir}" -maxdepth 1 -name 'qsahara_*.xml' -exec install -m 0644 {} ${DEPLOYDIR}/${QCOM_BOOT_IMG_SUBDIR} \; + find "${bootdir}" -maxdepth 1 -name '*.xz' -exec install -m 0644 {} ${DEPLOYDIR}/${QCOM_BOOT_IMG_SUBDIR} \; + done } addtask deploy before do_build after do_install From cd038d4d602efdbde5f72c6fa65fc90adcbce73a Mon Sep 17 00:00:00 2001 From: Ishna Jain Date: Mon, 7 Sep 2026 15:24:54 +0530 Subject: [PATCH 3/6] firmware-qcom-boot-qcs9100: upgrade 00137 -> 00140 The QCS9100 boot firmware needs the latest 00140 release to pick up the platform fixes included after 00137. Upgrade the recipe to fetch the new main archive and the immutable companion archive. Known fixes: feat: update BOOT, TZ, and SAIL firmware feat: add auxiliary firmware test support feat: add prog_snagboot_ddr.elf and xbl_config_spl.elf fix: improve charger, display, SPMI, and boot overlay handling Assisted-by: OpenAI Codex:gpt-5 Signed-off-by: Ishna Jain (cherry picked from commit 9216724ce7774af83624ce0d3caa37bfe1be0293) --- recipes-bsp/firmware-boot/firmware-qcom-boot-qcs9100.inc | 1 + recipes-bsp/firmware-boot/firmware-qcom-boot-qcs9100_00137.bb | 3 --- recipes-bsp/firmware-boot/firmware-qcom-boot-qcs9100_00140.bb | 4 ++++ 3 files changed, 5 insertions(+), 3 deletions(-) delete mode 100644 recipes-bsp/firmware-boot/firmware-qcom-boot-qcs9100_00137.bb create mode 100644 recipes-bsp/firmware-boot/firmware-qcom-boot-qcs9100_00140.bb diff --git a/recipes-bsp/firmware-boot/firmware-qcom-boot-qcs9100.inc b/recipes-bsp/firmware-boot/firmware-qcom-boot-qcs9100.inc index 9efbc744a..9262a41f6 100644 --- a/recipes-bsp/firmware-boot/firmware-qcom-boot-qcs9100.inc +++ b/recipes-bsp/firmware-boot/firmware-qcom-boot-qcs9100.inc @@ -7,6 +7,7 @@ BOOTBINARIES = "QCS9100_bootbinaries" SRC_URI = " \ https://${FW_ARTIFACTORY}/${PV}/${BOOTBINARIES}_${PV}.zip;name=bootbinaries \ + https://${FW_ARTIFACTORY}/${PV}/${BOOTBINARIES_IMMUTABLE}_${PV}.zip;name=bootbinaries-immutable \ " QCOM_BOOT_IMG_SUBDIR = "qcs9100" diff --git a/recipes-bsp/firmware-boot/firmware-qcom-boot-qcs9100_00137.bb b/recipes-bsp/firmware-boot/firmware-qcom-boot-qcs9100_00137.bb deleted file mode 100644 index ea2332300..000000000 --- a/recipes-bsp/firmware-boot/firmware-qcom-boot-qcs9100_00137.bb +++ /dev/null @@ -1,3 +0,0 @@ -require firmware-qcom-boot-qcs9100.inc - -SRC_URI[bootbinaries.sha256sum] = "6150c43a55ec95a9e11e288df1a1670a7dc75981485de93376969cb573c9a3c5" diff --git a/recipes-bsp/firmware-boot/firmware-qcom-boot-qcs9100_00140.bb b/recipes-bsp/firmware-boot/firmware-qcom-boot-qcs9100_00140.bb new file mode 100644 index 000000000..04fc5588a --- /dev/null +++ b/recipes-bsp/firmware-boot/firmware-qcom-boot-qcs9100_00140.bb @@ -0,0 +1,4 @@ +require firmware-qcom-boot-qcs9100.inc + +SRC_URI[bootbinaries.sha256sum] = "8c3f95c0f87305cf0ed88152a9d3bddd30c1757392fe1cc005203a7f2a60dcd3" +SRC_URI[bootbinaries-immutable.sha256sum] = "6b1427b865121966061671d4a1743a87935f5c6132d67bf09d3f3b79b9cd15b4" From 5ec0a67f0f3078ecc1a860cdce303ec968e1578f Mon Sep 17 00:00:00 2001 From: Ishna Jain Date: Thu, 3 Sep 2026 02:28:41 +0530 Subject: [PATCH 4/6] firmware-qcom-boot-qcs8300: upgrade 00137 -> 00140 The QCS8300 boot firmware needs the latest 00140 release to pick up the platform fixes included after 00137. Upgrade the recipe to fetch the new main archive and the immutable companion archive. Known fixes: feat: update BOOT, TZ, and SAIL firmware feat: refresh auxiliary firmware test support fix: improve auxiliary firmware fault logging Assisted-by: OpenAI Codex:gpt-5 Signed-off-by: Ishna Jain (cherry picked from commit c509238c669beb65d5d74ed09f9e559ec8297b30) --- recipes-bsp/firmware-boot/firmware-qcom-boot-qcs8300.inc | 1 + recipes-bsp/firmware-boot/firmware-qcom-boot-qcs8300_00137.bb | 3 --- recipes-bsp/firmware-boot/firmware-qcom-boot-qcs8300_00140.bb | 4 ++++ 3 files changed, 5 insertions(+), 3 deletions(-) delete mode 100644 recipes-bsp/firmware-boot/firmware-qcom-boot-qcs8300_00137.bb create mode 100644 recipes-bsp/firmware-boot/firmware-qcom-boot-qcs8300_00140.bb diff --git a/recipes-bsp/firmware-boot/firmware-qcom-boot-qcs8300.inc b/recipes-bsp/firmware-boot/firmware-qcom-boot-qcs8300.inc index e81ce04ce..3cdc07c36 100644 --- a/recipes-bsp/firmware-boot/firmware-qcom-boot-qcs8300.inc +++ b/recipes-bsp/firmware-boot/firmware-qcom-boot-qcs8300.inc @@ -7,6 +7,7 @@ BOOTBINARIES = "QCS8300_bootbinaries" SRC_URI = " \ https://${FW_ARTIFACTORY}/${PV}/${BOOTBINARIES}_${PV}.zip;name=bootbinaries \ + https://${FW_ARTIFACTORY}/${PV}/${BOOTBINARIES_IMMUTABLE}_${PV}.zip;name=bootbinaries-immutable \ " QCOM_BOOT_IMG_SUBDIR = "qcs8300" diff --git a/recipes-bsp/firmware-boot/firmware-qcom-boot-qcs8300_00137.bb b/recipes-bsp/firmware-boot/firmware-qcom-boot-qcs8300_00137.bb deleted file mode 100644 index 78fe66e75..000000000 --- a/recipes-bsp/firmware-boot/firmware-qcom-boot-qcs8300_00137.bb +++ /dev/null @@ -1,3 +0,0 @@ -require firmware-qcom-boot-qcs8300.inc - -SRC_URI[bootbinaries.sha256sum] = "54c2b7634807a78dc77f3371004a63ab510b46ae1fc92dbfdc72de1b6d18459e" diff --git a/recipes-bsp/firmware-boot/firmware-qcom-boot-qcs8300_00140.bb b/recipes-bsp/firmware-boot/firmware-qcom-boot-qcs8300_00140.bb new file mode 100644 index 000000000..e64477cb7 --- /dev/null +++ b/recipes-bsp/firmware-boot/firmware-qcom-boot-qcs8300_00140.bb @@ -0,0 +1,4 @@ +require firmware-qcom-boot-qcs8300.inc + +SRC_URI[bootbinaries.sha256sum] = "5c17689bdee8793f58e68ebc077e2508555a4ccce601a3c2dc8c68f6267931d3" +SRC_URI[bootbinaries-immutable.sha256sum] = "f6ddfaa62f19e9a6d944c7f01d1aa5a7dee05f3cb66d9b20970b3834b15ee61e" From a7d56386bdc16f826179a408d8a5a90b3cb7501b Mon Sep 17 00:00:00 2001 From: Ishna Jain Date: Thu, 3 Sep 2026 02:28:49 +0530 Subject: [PATCH 5/6] firmware-qcom-boot-qcs6490: upgrade 00137 -> 00140 The QCM6490 boot firmware needs the latest 00140 release to pick up the platform fixes included after 00137. Upgrade the recipe to fetch the new main archive and the immutable companion archive. Known fixes: feat: update BOOT and TZ firmware feat: add removable-media boot flow support feat: update platform memory-map configuration fix: update platform firmware service lookup Assisted-by: OpenAI Codex:gpt-5 Signed-off-by: Ishna Jain (cherry picked from commit 3df1beb14d1b8bfcf7ff3c02a846912d5b1672ea) --- recipes-bsp/firmware-boot/firmware-qcom-boot-qcs6490.inc | 1 + recipes-bsp/firmware-boot/firmware-qcom-boot-qcs6490_00137.bb | 3 --- recipes-bsp/firmware-boot/firmware-qcom-boot-qcs6490_00140.bb | 4 ++++ 3 files changed, 5 insertions(+), 3 deletions(-) delete mode 100644 recipes-bsp/firmware-boot/firmware-qcom-boot-qcs6490_00137.bb create mode 100644 recipes-bsp/firmware-boot/firmware-qcom-boot-qcs6490_00140.bb diff --git a/recipes-bsp/firmware-boot/firmware-qcom-boot-qcs6490.inc b/recipes-bsp/firmware-boot/firmware-qcom-boot-qcs6490.inc index a4b1b7b5d..13d15fd1c 100644 --- a/recipes-bsp/firmware-boot/firmware-qcom-boot-qcs6490.inc +++ b/recipes-bsp/firmware-boot/firmware-qcom-boot-qcs6490.inc @@ -7,6 +7,7 @@ BOOTBINARIES = "QCM6490_bootbinaries" SRC_URI = " \ https://${FW_ARTIFACTORY}/${PV}/${BOOTBINARIES}_${PV}.zip;name=bootbinaries \ + https://${FW_ARTIFACTORY}/${PV}/${BOOTBINARIES_IMMUTABLE}_${PV}.zip;name=bootbinaries-immutable \ " QCOM_BOOT_IMG_SUBDIR = "qcm6490" diff --git a/recipes-bsp/firmware-boot/firmware-qcom-boot-qcs6490_00137.bb b/recipes-bsp/firmware-boot/firmware-qcom-boot-qcs6490_00137.bb deleted file mode 100644 index d05d7a9ef..000000000 --- a/recipes-bsp/firmware-boot/firmware-qcom-boot-qcs6490_00137.bb +++ /dev/null @@ -1,3 +0,0 @@ -require firmware-qcom-boot-qcs6490.inc - -SRC_URI[bootbinaries.sha256sum] = "24315170167192c63e4969d85d4b20b2bd9311f6b2a72220af571d2ebaa51e2a" diff --git a/recipes-bsp/firmware-boot/firmware-qcom-boot-qcs6490_00140.bb b/recipes-bsp/firmware-boot/firmware-qcom-boot-qcs6490_00140.bb new file mode 100644 index 000000000..43fa768e9 --- /dev/null +++ b/recipes-bsp/firmware-boot/firmware-qcom-boot-qcs6490_00140.bb @@ -0,0 +1,4 @@ +require firmware-qcom-boot-qcs6490.inc + +SRC_URI[bootbinaries.sha256sum] = "48f5a141cd8fa620a1869a5b8a0c2b4ec9db5f7bf06d03c84a1b5a4a33a4a135" +SRC_URI[bootbinaries-immutable.sha256sum] = "91425b049945911f1c11a4652fb1f1c3309e174e650b55d0790f5cad61803bea" From ab7e5fe45b0a621232fd450877bdd59ad806fd6e Mon Sep 17 00:00:00 2001 From: Ishna Jain Date: Mon, 7 Sep 2026 10:50:14 +0530 Subject: [PATCH 6/6] firmware-qcom-boot-iq-x7181: upgrade 00019 -> 00023 The IQ-X7181 boot firmware needs the latest 00023 release to use the updated archive layout. Upgrade the recipe to fetch the new main archive and immutable companion archive. The new archive no longer stores boot files below a spinor source subdirectory, so use the default source directory while keeping the existing deploy destination for IQ-X7181 boot files. Known fixes: feat: update platform data, cert metadata, and memory reservations feat: add PCIe Gen5, fastboot menu, and trial boot support feat: add secure virt, protected-VM, storage, and aperture updates fix: improve watchdog reset, PCIe handoff, and storage detection fix: improve display, suspend/resume, crash-dump, and interrupt handling security: integrate EDK2, boot storage, and processor errata fixes Assisted-by: OpenAI Codex:gpt-5 Signed-off-by: Ishna Jain (cherry picked from commit 995d530b4ec085d3d1cf78790ff9ac2ba3c062ad) --- recipes-bsp/firmware-boot/firmware-qcom-boot-iq-x7181.inc | 3 +-- .../firmware-boot/firmware-qcom-boot-iq-x7181_00019.bb | 3 --- .../firmware-boot/firmware-qcom-boot-iq-x7181_00023.bb | 4 ++++ 3 files changed, 5 insertions(+), 5 deletions(-) delete mode 100644 recipes-bsp/firmware-boot/firmware-qcom-boot-iq-x7181_00019.bb create mode 100644 recipes-bsp/firmware-boot/firmware-qcom-boot-iq-x7181_00023.bb diff --git a/recipes-bsp/firmware-boot/firmware-qcom-boot-iq-x7181.inc b/recipes-bsp/firmware-boot/firmware-qcom-boot-iq-x7181.inc index a57b7bbcd..a5c2d95cf 100644 --- a/recipes-bsp/firmware-boot/firmware-qcom-boot-iq-x7181.inc +++ b/recipes-bsp/firmware-boot/firmware-qcom-boot-iq-x7181.inc @@ -7,10 +7,9 @@ include firmware-qcom-boot-common.inc FW_ARTIFACTORY = "softwarecenter.qualcomm.com/nexus/generic/product/chip/tech-package/Hamoa_bootbinaries.1.0/hamoa_bootbinaries.1.0-test-device-public/" BOOTBINARIES = "HAMOA_bootbinaries" -S = "${UNPACKDIR}/${BOOTBINARIES}/spinor" - SRC_URI = " \ https://${FW_ARTIFACTORY}/${PV}/HAMOA_bootbinaries_${PV}.zip;name=bootbinaries \ + https://${FW_ARTIFACTORY}/${PV}/HAMOA_bootbinaries_immutable_${PV}.zip;name=bootbinaries-immutable \ https://${FW_ARTIFACTORY}/${PV}/LICENSE.txt;downloadfilename=LICENSE.${BPN};name=license \ " SRC_URI[license.sha256sum] = "3ad8f1fd82f2918c858cec2d0887b7df6f71a06416beecfdb3efe7d62874d863" diff --git a/recipes-bsp/firmware-boot/firmware-qcom-boot-iq-x7181_00019.bb b/recipes-bsp/firmware-boot/firmware-qcom-boot-iq-x7181_00019.bb deleted file mode 100644 index 8bbf8f39b..000000000 --- a/recipes-bsp/firmware-boot/firmware-qcom-boot-iq-x7181_00019.bb +++ /dev/null @@ -1,3 +0,0 @@ -require firmware-qcom-boot-iq-x7181.inc - -SRC_URI[bootbinaries.sha256sum] = "b26be9d7254fecae3732f20f98e519f3efc154efcb7e2e12888b321cfeb25a33" diff --git a/recipes-bsp/firmware-boot/firmware-qcom-boot-iq-x7181_00023.bb b/recipes-bsp/firmware-boot/firmware-qcom-boot-iq-x7181_00023.bb new file mode 100644 index 000000000..c996b5c9c --- /dev/null +++ b/recipes-bsp/firmware-boot/firmware-qcom-boot-iq-x7181_00023.bb @@ -0,0 +1,4 @@ +require firmware-qcom-boot-iq-x7181.inc + +SRC_URI[bootbinaries.sha256sum] = "38bb3cfb8b4c810a5476d2d6613f40e758ee070759035b553992047a68c7bdd5" +SRC_URI[bootbinaries-immutable.sha256sum] = "389a4a0ff56daf2811d790d2062f97a9b2dfcb32a2c82dfaf324ff7801d98a03"