From 93305b1005120ad28d61ab4c207d8523593160bc Mon Sep 17 00:00:00 2001 From: Ricardo Salveti Date: Fri, 14 Nov 2025 10:55:09 -0300 Subject: [PATCH 1/6] gen_partition.py: add spinor as a valid disk type Add 'spinor' as a valid disk type, following the same process for partition generation as used with emmc and nvme (single_disk_xml). Signed-off-by: Ricardo Salveti --- gen_partition.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gen_partition.py b/gen_partition.py index cbbf7b7..1a84a75 100755 --- a/gen_partition.py +++ b/gen_partition.py @@ -207,7 +207,7 @@ def generate_multi_lun_xml (disk_params, partition_entries_dict, output_xml): def generate_partition_xml (disk_entry, partition_entries_dict, output_xml): parse_disk_entry(disk_entry) print("Generating %s XML %s" %(disk_params["type"].upper(), output_xml)) - if disk_params["type"] in ("emmc", "nvme"): + if disk_params["type"] in ("emmc", "nvme", "spinor"): generate_single_disk_xml(disk_params, partition_entries_dict, output_xml) elif disk_params["type"] == "ufs": generate_multi_lun_xml(disk_params, partition_entries_dict, output_xml) From 58309fa911208bb617ab6ae98b3b01ae1295e696 Mon Sep 17 00:00:00 2001 From: Ricardo Salveti Date: Wed, 12 Nov 2025 19:45:59 -0300 Subject: [PATCH 2/6] gen_partition: set default GROW_LAST_PARTITION_TO_FILL_DISK to false The parameter --grow-last-partition does not accept any argument and it supposed to be used to set GROW_LAST_PARTITION_TO_FILL_DISK to true, but since GROW_LAST_PARTITION_TO_FILL_DISK is already true by default, there is no current way to set it to false. Since all current machines are using --grow-last-partition at their partitions.conf definition, switch GROW_LAST_PARTITION_TO_FILL_DISK default to false. Signed-off-by: Ricardo Salveti --- gen_partition.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gen_partition.py b/gen_partition.py index 1a84a75..5508e78 100755 --- a/gen_partition.py +++ b/gen_partition.py @@ -45,7 +45,7 @@ def usage(): "size": "", "SECTOR_SIZE_IN_BYTES": "512", "WRITE_PROTECT_BOUNDARY_IN_KB": "65536", - "GROW_LAST_PARTITION_TO_FILL_DISK": "true", + "GROW_LAST_PARTITION_TO_FILL_DISK": "false", "ALIGN_PARTITIONS_TO_PERFORMANCE_BOUNDARY": "true", "PERFORMANCE_BOUNDARY_IN_KB": "4" }) From 1cabcae0ca316f38eb11df03f3d9426a3b5ae516 Mon Sep 17 00:00:00 2001 From: Ricardo Salveti Date: Tue, 11 Nov 2025 21:48:27 -0300 Subject: [PATCH 3/6] tests: check-missing-files: sort list of known files Cosmetic changes only. Signed-off-by: Ricardo Salveti --- tests/integration/check-missing-files | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/tests/integration/check-missing-files b/tests/integration/check-missing-files index ea58f1b..675bb6d 100755 --- a/tests/integration/check-missing-files +++ b/tests/integration/check-missing-files @@ -29,6 +29,8 @@ for xml in "$@"; do fi ;; # known files that will be provided by the OS or boot binaries + DISK) ;; + XblRamdump.elf) ;; abl.elf) ;; abl2esp-v7.elf) ;; aop.mbn) ;; @@ -40,12 +42,11 @@ for xml in "$@"; do cpucp.elf) ;; cpucp_dtbs.elf) ;; dcd.mbn) ;; - devcfg_iot.mbn) ;; devcfg.mbn) ;; + devcfg_iot.mbn) ;; devcfg_rfcomm.mbn) ;; - efi.bin) ;; - DISK) ;; dtb.bin) ;; + efi.bin) ;; emmc_appsboot.mbn) ;; featenabler.mbn) ;; fs_image_linux.tar.gz.mbn.img) ;; @@ -57,8 +58,8 @@ for xml in "$@"; do keymint.mbn) ;; km4.mbn) ;; logfs_ufs_8mb.bin) ;; - multi_image_qti.mbn) ;; multi_image.mbn) ;; + multi_image_qti.mbn) ;; pdp.elf) ;; pdp_cdb.elf) ;; pmic.elf) ;; @@ -80,14 +81,13 @@ for xml in "$@"; do storsec.mbn) ;; tools.fv) ;; tz.mbn) ;; - uefi_sec.mbn) ;; uefi.elf) ;; + uefi_sec.mbn) ;; + xbl.elf) ;; xbl_config.elf) ;; xbl_feature_config.elf) ;; - xbl.elf) ;; - XblRamdump.elf) ;; - xbl_s_devprg_ns.melf) ;; xbl_s.melf) ;; + xbl_s_devprg_ns.melf) ;; *) echo "Unknown ${file} referenced in ${xml}" >&2 errors=1 From ba64a147c993d70756951f430ee5cd4815e5c2cc Mon Sep 17 00:00:00 2001 From: Ricardo Salveti Date: Wed, 12 Nov 2025 20:02:35 -0300 Subject: [PATCH 4/6] tests: check-missing-files: add files used by iq-x7181-evk Add additional files which are used by iq-x7181-evk spinor boot firmware files. Signed-off-by: Ricardo Salveti --- tests/integration/check-missing-files | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests/integration/check-missing-files b/tests/integration/check-missing-files index 675bb6d..3777098 100755 --- a/tests/integration/check-missing-files +++ b/tests/integration/check-missing-files @@ -31,8 +31,11 @@ for xml in "$@"; do # known files that will be provided by the OS or boot binaries DISK) ;; XblRamdump.elf) ;; + XblRamdump.xz) ;; abl.elf) ;; abl2esp-v7.elf) ;; + adsp_dtbs.elf) ;; + adsp_lite.lzma) ;; aop.mbn) ;; aop_devcfg.mbn) ;; boot.img) ;; @@ -45,6 +48,7 @@ for xml in "$@"; do devcfg.mbn) ;; devcfg_iot.mbn) ;; devcfg_rfcomm.mbn) ;; + devcfg_windows_hyp.mbn) ;; dtb.bin) ;; efi.bin) ;; emmc_appsboot.mbn) ;; @@ -81,6 +85,7 @@ for xml in "$@"; do storsec.mbn) ;; tools.fv) ;; tz.mbn) ;; + tzapps.bin) ;; uefi.elf) ;; uefi_sec.mbn) ;; xbl.elf) ;; From e4e0a515494de21c90e6ec0c7726c139926e5d08 Mon Sep 17 00:00:00 2001 From: Ricardo Salveti Date: Wed, 12 Nov 2025 19:44:44 -0300 Subject: [PATCH 5/6] platforms: add partitions for iq-x7181-evk spinor Based on https://softwarecenter.qualcomm.com/nexus/generic/software/chip/ubuntu_qualcomm_iot-spf-1-0/ubuntu-qualcomm-iot-spf-1-0_test_device_public/r1.0_00001.0/hamoa_iot-ubun-1-0/HAMOA_bootbinaries.zip but with WLAN_FW and WLAN_FW_BACKUP removed, as they are not used. Signed-off-by: Ricardo Salveti --- platforms/iq-x7181-evk/spinor/partitions.conf | 110 ++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 platforms/iq-x7181-evk/spinor/partitions.conf diff --git a/platforms/iq-x7181-evk/spinor/partitions.conf b/platforms/iq-x7181-evk/spinor/partitions.conf new file mode 100644 index 0000000..7c8a31e --- /dev/null +++ b/platforms/iq-x7181-evk/spinor/partitions.conf @@ -0,0 +1,110 @@ +# Copyright (c) 2025 Qualcomm Innovation Center, Inc. All rights reserved. +# SPDX-License-Identifier: BSD-3-Clause-Clear + +# select disk type emmc | nand | nvme | spinor | ufs Mandatory +# disk size in bytes Mandatory +# options if not explicitly provide + +--disk --type=spinor --size=67108864 --write-protect-boundary=0 --sector-size-in-bytes=4096 + +# per partition entry +# mandatory options: +# --lun (mandatory for UFS, emmc no need this) +# --name +# --size in bytes +# --type-guid +# optional options: (defaults used if not provided) +# --attributes 1000000000000004 +# --filename "" +# --readonly true +# --sparse false + +# This is physical partition 0 +--partition --name=SD_MGR --size=528KB --type-guid=5E463172-D0AC-4DD4-91B8-CD3EE1281579 +--partition --name=VarStore --size=728KB --type-guid=165BD6BC-9250-4AC8-95A7-A93F4A440066 +--partition --name=QWESLS --size=128KB --type-guid=47C348C2-0162-4A2B-835C-09438DB4258E +--partition --name=QWESLS_HMAC --size=4KB --type-guid=C1AA9678-A187-4FC4-A04E-EAFA96CA007E +--partition --name=QWESLS_BACKUP --size=128KB --type-guid=D20C0A20-D1F3-42EB-B871-F6B89F02057C +--partition --name=QWESLS_BACKUP_HMAC --size=4KB --type-guid=206E91D6-C375-4A82-8234-FD5FF6F46AA5 +--partition --name=cdt --size=4KB --type-guid=A19F205F-CCD8-4B6D-8F1E-2D9BC24CFFB1 --filename=cdt.bin +--partition --name=DPP --size=320KB --type-guid=F97B8793-3ABF-4719-896B-7C3E9B85E104 +--partition --name=DPP_HMAC --size=4KB --type-guid=EA672D1E-D692-476D-B58C-049F7552F166 +--partition --name=DPP_BACKUP --size=320KB --type-guid=BBB2113E-27EF-47BD-9DF1-E6082380A928 +--partition --name=DPP_BACKUP_HMAC --size=4KB --type-guid=AF97B2E7-B593-4FEE-A752-1D9257FE4111 +--partition --name=SSD --size=8KB --type-guid=2C86E742-745E-4FDD-BFD8-B6A7AC638772 +--partition --name=SSD_HMAC --size=4KB --type-guid=C958B529-DEF9-4FDD-AB17-8C73669C89ED +--partition --name=SSD_BACKUP --size=8KB --type-guid=AD8BB1AC-598A-4B71-A9AE-78AB515D2DCC +--partition --name=SSD_BACKUP_HMAC --size=4KB --type-guid=525600C9-9B85-4F1A-8842-648C7797B33B +--partition --name=SMBIOS --size=16KB --type-guid=04A856B8-84C1-4075-8391-9A994235E5F0 +--partition --name=SMBIOS_HMAC --size=4KB --type-guid=F0D69946-3FAE-4A1A-8BDE-80BCD9F257A4 +--partition --name=SMBIOS_BACKUP --size=16KB --type-guid=72D243D7-D540-48FA-AAB8-03D6E05CA358 +--partition --name=SMBIOS_BACKUP_HMAC --size=4KB --type-guid=582A7680-0F07-40C5-B308-67F1B94B96DB +--partition --name=ddr --size=80KB --type-guid=20A0C19C-286A-42FA-9CE7-F64C3226A794 +--partition --name=ddr_HMAC --size=4KB --type-guid=FFCD927B-74E1-4597-A863-D9AC803DF191 +--partition --name=ddr_BACKUP --size=80KB --type-guid=CB198EDD-9EBD-48A1-9BB6-BB3194BF2E51 +--partition --name=ddr_BACKUP_HMAC --size=4KB --type-guid=5CC13258-DE5A-479A-8ECA-6B349294A5E9 +--partition --name=limits --size=4KB --type-guid=10A0C19C-516A-5444-5CE3-664C3226A794 +--partition --name=limits_HMAC --size=4KB --type-guid=D9307477-9E76-44C2-9BFB-27151CB08C39 +--partition --name=limits_BACKUP --size=4KB --type-guid=C8C25968-A2CD-4DC4-9E17-07FC0F0D99DA +--partition --name=limits_BACKUP_HMAC --size=4KB --type-guid=36E332BE-BE07-4190-AB98-75CAB2815179 +--partition --name=SYSFW_VERSION --size=4KB --type-guid=3C44F88B-1878-4C29-B122-EE78766442A7 +--partition --name=SYSFW_VERSION_HMAC --size=4KB --type-guid=DD7B74CE-A009-45CB-8A95-41863216B447 +--partition --name=SYSFW_VERSION_BACKUP --size=4KB --type-guid=A94B037C-EBD2-477F-8BD2-3AF4A30FEDE7 +--partition --name=SYSFW_VERSION_BACKUP_HMAC --size=4KB --type-guid=DE7930E6-FFA1-44EB-9F81-D896974FC2D2 +--partition --name=SPU_NVM --size=280KB --type-guid=E42E2B4C-33B0-429B-B1EF-D341C547022C +--partition --name=Resiliency_Log --size=16KB --type-guid=3BB99F72-E524-4128-A815-7194CC190A3D +--partition --name=xbl_sc_test_mode --size=4KB --type-guid=91FDD2B9-8ED3-4176-BC42-260F2E34D04A +--partition --name=xbl_sc_logs --size=80KB --type-guid=F7EECB66-781A-439A-8955-70E12ED4A7A0 +--partition --name=recoveryinfo --size=4KB --type-guid=7374B391-291C-49FA-ABC2-0463AB5F713F --filename=zeros_1sector.bin +--partition --name=trial_boot_info --size=4KB --type-guid=5334F9BA-02CE-4609-9081-2EC39DCD6AC6 --filename=zeros_1sector.bin +--partition --name=resilience_driver --size=8KB --type-guid=4A2864F7-CB02-49F2-BA75-485E49C00966 +--partition --name=RecoveryGPT --size=48KB --type-guid=452E8C3B-B67F-4C66-80D9-AD457F74CB0A +--partition --name=SECDATA --size=28KB --type-guid=76CFC7EF-039D-4E2C-B81E-4DD8C2CB2A93 +--partition --name=ddr_debug --size=1528KB --type-guid=2D58205E-BA35-4BF9-B6C1-C6FDC80A373B +--partition --name=APDP --size=64KB --type-guid=E6E98DA2-E22A-4D12-AB33-169E7DEAA507 +--partition --name=PLAT --size=512KB --type-guid=543C031A-4CB6-4897-BFFE-4B485768A8AD +--partition --name=XBL_SC --size=2300KB --type-guid=DEA0BA2C-CBDD-4805-B4F9-F428251C3E98 --filename=xbl_s.melf +--partition --name=XBL_RAMDUMP --size=1212KB --type-guid=0382F197-E41F-4E84-B18B-0B564AEAD875 --filename=XblRamdump.xz +--partition --name=XBL_CONFIG --size=400KB --type-guid=5A325AE4-4276-B66D-0ADD-3494DF27706A --filename=xbl_config.elf +--partition --name=UEFI --size=7956KB --type-guid=400FFDCD-22E0-47E7-9A23-F16ED9382388 --filename=uefi.elf +--partition --name=AOP --size=340KB --type-guid=D69E90A5-4CAB-0071-F6DF-AB977F141A7F --filename=aop.mbn +--partition --name=AOP_CONFIG --size=64KB --type-guid=3D12F234-C882-4B46-A20C-17D52C8FC03D --filename=aop_devcfg.mbn +--partition --name=TZ --size=6016KB --type-guid=A053AA7F-40B8-4B1C-BA08-2F68AC71A4F4 --filename=tz.mbn +--partition --name=DEVCFG --size=96KB --type-guid=F65D4B16-343D-4E25-AAFC-BE99B6556A6D --filename=devcfg_windows_hyp.mbn +--partition --name=HYP --size=2436KB --type-guid=E1A6A689-0C8D-4CC6-B4E8-55A4320FBD8A --filename=hypvm.mbn +--partition --name=QUP --size=96KB --type-guid=21D1219F-2ED1-4AB4-930A-41A16AE75F7F --filename=qupv3fw.elf +--partition --name=TZAPPS --size=768KB --type-guid=14D11C40-2A3D-4F97-882D-103A1EC09333 --filename=tzapps.bin +--partition --name=MULTIIMGQTI --size=32KB --type-guid=846C6F05-EB46-4C0A-A1A3-3648EF3F9D0E +--partition --name=MULTIIMGOEM --size=32KB --type-guid=E126A436-757E-42D0-8D19-0F362F7A62B8 --filename=multi_image.mbn +--partition --name=SPU_PROD --size=1908KB --type-guid=4D1D5B78-53A2-4956-B095-AE3E8DB22762 +--partition --name=CPUCP --size=952KB --type-guid=1E8615BD-6D8C-41AD-B3EA-50E8BF40E43F --filename=cpucp.elf +--partition --name=CPUCP_DTB --size=48KB --type-guid=6C6018BC-4FBE-40C5-B148-4BCB1DB23748 --filename=cpucp_dtbs.elf +--partition --name=SHRM --size=128KB --type-guid=CB74CA22-2F0D-4B82-A1D6-C4213F348D73 --filename=shrm.elf +--partition --name=ADSP_UEFI --size=2048KB --type-guid=F8DEAFAD-B9E5-4873-8C80-68B6B72699C7 --filename=adsp_lite.lzma +--partition --name=ADSP_UEFI_DTB --size=96KB --type-guid=7A0BB5BE-5451-4000-83DB-CC10E0C18401 --filename=adsp_dtbs.elf +--partition --name=ImageFv --size=136KB --type-guid=17911177-C9E6-4372-933C-804B678E666F --filename=imagefv.elf +--partition --name=APDP_BACKUP --size=64KB --type-guid=110F198D-8174-4193-9AF1-5DA94CDC59C9 +--partition --name=PLAT_BACKUP --size=512KB --type-guid=6ECF80A9-6722-4F5F-B291-EA0D7730D54B +--partition --name=XBL_SC_BACKUP --size=2300KB --type-guid=7A3DF1A3-A31A-454D-BD78-DF259ED486BE --filename=xbl_s.melf +--partition --name=XBL_RAMDUMP_BACKUP --size=1212KB --type-guid=FF608BF6-AEDF-4084-BEC5-C92AB4E4534D --filename=XblRamdump.xz +--partition --name=XBL_CONFIG_BACKUP --size=400KB --type-guid=F462E0EA-A20E-4B10-867A-2D4455366548 --filename=xbl_config.elf +--partition --name=UEFI_BACKUP --size=7956KB --type-guid=9F234B5B-0EFB-4313-8E4C-0AF1F605536B --filename=uefi.elf +--partition --name=AOP_BACKUP --size=340KB --type-guid=B8B27C4C-4B5B-8AB2-502F-A792B590A896 --filename=aop.mbn +--partition --name=AOP_CONFIG_BACKUP --size=64KB --type-guid=77036CD4-03D5-42BB-8ED1-37E5A88BAA34 --filename=aop_devcfg.mbn +--partition --name=TZ_BACKUP --size=6016KB --type-guid=C832EA16-8B0D-4398-A67B-EBB30EF98E7E --filename=tz.mbn +--partition --name=DEVCFG_BACKUP --size=96KB --type-guid=169534E7-7809-4240-9763-0BA5DC37B5FF --filename=devcfg_windows_hyp.mbn +--partition --name=HYP_BACKUP --size=2436KB --type-guid=CB45ECA0-504E-42BB-91BA-C9B3236F6A6E --filename=hypvm.mbn +--partition --name=QUP_BACKUP --size=96KB --type-guid=04BA8D53-5091-4958-9CA1-0FE0941D2CBC --filename=qupv3fw.elf +--partition --name=TZAPPS_BACKUP --size=768KB --type-guid=BE3719E5-48A7-4ABC-B494-304864D02148 --filename=tzapps.bin +--partition --name=MULTIIMGQTI_BACKUP --size=32KB --type-guid=D30C8B21-DDD9-45B6-8DE0-3165D34395C9 +--partition --name=MULTIIMGOEM_BACKUP --size=32KB --type-guid=3E3E3ECD-C512-4F95-9144-6063826A8970 --filename=multi_image.mbn +--partition --name=SPU_PROD_BACKUP --size=1908KB --type-guid=C759F596-F8FE-4A1A-851E-5BF0F291793E +--partition --name=CPUCP_BACKUP --size=952KB --type-guid=6C1111FB-5354-41DE-AC17-5B6E542BE836 --filename=cpucp.elf +--partition --name=CPUCP_DTB_BACKUP --size=48KB --type-guid=57213A2B-39DE-4184-97DE-645D37913E4E --filename=cpucp_dtbs.elf +--partition --name=SHRM_BACKUP --size=128KB --type-guid=39FD6C00-49EB-6BD1-6899-2FB849DD4F75 --filename=shrm.elf +--partition --name=ADSP_UEFI_BACKUP --size=2048KB --type-guid=28A84947-CE19-4A5E-802B-2D72F50D6AD8 --filename=adsp_lite.lzma +--partition --name=ADSP_UEFI_DTB_BACKUP --size=96KB --type-guid=34F255BA-35C4-4477-845F-1B7801210141 --filename=adsp_dtbs.elf +--partition --name=ImageFv_BACKUP --size=136KB --type-guid=920CFC3D-7285-4A47-9C1C-4A87590E0687 --filename=imagefv.elf +--partition --name=QC_RESERVED --size=64KB --type-guid=5A62D5E4-2E26-4560-95DA-E86CDC7CC0D4 +--partition --name=QC_RESERVED_BACKUP --size=64KB --type-guid=8CF0B012-6EF8-44D9-ADF6-3892140979DA +--partition --name=OEM_RESERVED --size=2048KB --type-guid=A9CE4DC1-9004-49A2-A8C7-A4C060B35D8E From fdbacf06f49f22a2e8fd10aa08bcc7e51ea3fe25 Mon Sep 17 00:00:00 2001 From: Ricardo Salveti Date: Mon, 10 Nov 2025 21:38:41 -0300 Subject: [PATCH 6/6] platforms: add partitions for iq-x7181-evk nvme NVME partition definition can be aligned with SystemReady, which implies only ESP + rootfs. Boot firmware is provided via spinor. Signed-off-by: Ricardo Salveti --- platforms/iq-x7181-evk/nvme/partitions.conf | 24 +++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 platforms/iq-x7181-evk/nvme/partitions.conf diff --git a/platforms/iq-x7181-evk/nvme/partitions.conf b/platforms/iq-x7181-evk/nvme/partitions.conf new file mode 100644 index 0000000..9afa1e2 --- /dev/null +++ b/platforms/iq-x7181-evk/nvme/partitions.conf @@ -0,0 +1,24 @@ +# Copyright (c) 2025 Qualcomm Innovation Center, Inc. All rights reserved. +# SPDX-License-Identifier: BSD-3-Clause-Clear + +# select disk type emmc | nand | nvme | ufs Mandatory +# disk size in bytes Mandatory +# options if not explicitly provide + +--disk --type=nvme --size=68719476736 --write-protect-boundary=65536 --sector-size-in-bytes=512 --grow-last-partition + +# per partition entry +# mandatory options: +# --lun (mandatory for UFS, emmc no need this) +# --name +# --size in bytes +# --type-guid +# optional options: (defaults used if not provided) +# --attributes 1000000000000004 +# --filename "" +# --readonly true +# --sparse false + +# This is physical partition 0 +--partition --name=efi --size=524288KB --type-guid=C12A7328-F81F-11D2-BA4B-00A0C93EC93B --filename=efi.bin +--partition --name=rootfs --size=33554432KB --type-guid=B921B045-1DF0-41C3-AF44-4C6F280D3FAE --filename=rootfs.img