Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion platforms/glymur-crd/spinor/partitions.conf
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,6 @@
--partition --name=XBL_RAMDUMP --size=512KB --type-guid=0382F197-E41F-4E84-B18B-0B564AEAD875
--partition --name=TZAPPS --size=768KB --type-guid=14D11C40-2A3D-4F97-882D-103A1EC09333
--partition --name=MULTIIMGQTI --size=32KB --type-guid=846C6F05-EB46-4C0A-A1A3-3648EF3F9D0E
--partition --name=SYSFW_VERSION --size=4KB --type-guid=3C44F88B-1878-4C29-B122-EE78766442A7
--partition --name=dtb_a --size=4096KB --type-guid=2A1A52FC-AA0B-401C-A808-5EA0F91068F8
--partition --name=APDP_BACKUP --size=64KB --type-guid=110F198D-8174-4193-9AF1-5DA94CDC59C9
--partition --name=XBL_SC_BACKUP --size=2520KB --type-guid=7A3DF1A3-A31A-454D-BD78-DF259ED486BE --filename=xbl_s.melf
Expand Down
3 changes: 0 additions & 3 deletions platforms/iq-8275-evk/emmc/partitions.conf
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,6 @@
--partition --name=tz_a --size=4000KB --type-guid=A053AA7F-40B8-4B1C-BA08-2F68AC71A4F4 --filename=tz.mbn
--partition --name=hyp_a --size=65536KB --type-guid=E1A6A689-0C8D-4CC6-B4E8-55A4320FBD8A --filename=hypvm.mbn
--partition --name=TZAPPS --size=320KB --type-guid=14D11C40-2A3D-4F97-882D-103A1EC09333
--partition --name=mdtpsecapp_a --size=4096KB --type-guid=EA02D680-8712-4552-A3BE-E6087829C1E6
--partition --name=mdtp_a --size=32768KB --type-guid=3878408A-E263-4B67-B878-6340B35B11E3
--partition --name=keymaster_a --size=512KB --type-guid=A11D2A7C-D82A-4C2F-8A01-1805240E6626
--partition --name=devcfg_a --size=128KB --type-guid=F65D4B16-343D-4E25-AAFC-BE99B6556A6D --filename=devcfg_iot.mbn
--partition --name=qupfw_a --size=128KB --type-guid=21D1219F-2ED1-4AB4-930A-41A16AE75F7F
Expand All @@ -63,7 +61,6 @@
--partition --name=multiimgoem_a --size=32KB --type-guid=E126A436-757E-42D0-8D19-0F362F7A62B8 --filename=multi_image.mbn
--partition --name=multiimgqti_a --size=32KB --type-guid=846C6F05-EB46-4C0A-A1A3-3648EF3F9D0E --filename=multi_image_qti.mbn
--partition --name=imagefv_a --size=1024KB --type-guid=17911177-C9E6-4372-933C-804B678E666F --filename=imagefv.elf
--partition --name=usb4fw_a --size=61KB --type-guid=3FA03C7A-9FDC-498B-A2A8-DE11EE339790
--partition --name=devinfo --size=4KB --type-guid=65ADDCF4-0C5C-4D9A-AC2D-D90B5CBFCD03
--partition --name=dip --size=1024KB --type-guid=4114B077-005D-4E12-AC8C-B493BDA684FB
--partition --name=spunvm --size=8192KB --type-guid=E42E2B4C-33B0-429B-B1EF-D341C547022C
Expand Down
3 changes: 0 additions & 3 deletions platforms/iq-9075-evk/emmc/partitions.conf
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,6 @@
--partition --name=tz_a --size=4000KB --type-guid=A053AA7F-40B8-4B1C-BA08-2F68AC71A4F4 --filename=tz.mbn
--partition --name=hyp_a --size=65536KB --type-guid=E1A6A689-0C8D-4CC6-B4E8-55A4320FBD8A --filename=hypvm.mbn
--partition --name=TZAPPS --size=320KB --type-guid=14D11C40-2A3D-4F97-882D-103A1EC09333
--partition --name=mdtpsecapp_a --size=4096KB --type-guid=EA02D680-8712-4552-A3BE-E6087829C1E6
--partition --name=mdtp_a --size=32768KB --type-guid=3878408A-E263-4B67-B878-6340B35B11E3
--partition --name=keymaster_a --size=512KB --type-guid=A11D2A7C-D82A-4C2F-8A01-1805240E6626
--partition --name=devcfg_a --size=128KB --type-guid=F65D4B16-343D-4E25-AAFC-BE99B6556A6D --filename=devcfg_iot.mbn
--partition --name=qupfw_a --size=128KB --type-guid=21D1219F-2ED1-4AB4-930A-41A16AE75F7F
Expand All @@ -63,7 +61,6 @@
--partition --name=multiimgoem_a --size=32KB --type-guid=E126A436-757E-42D0-8D19-0F362F7A62B8 --filename=multi_image.mbn
--partition --name=multiimgqti_a --size=32KB --type-guid=846C6F05-EB46-4C0A-A1A3-3648EF3F9D0E --filename=multi_image_qti.mbn
--partition --name=imagefv_a --size=1024KB --type-guid=17911177-C9E6-4372-933C-804B678E666F --filename=imagefv.elf
--partition --name=usb4fw_a --size=61KB --type-guid=3FA03C7A-9FDC-498B-A2A8-DE11EE339790
--partition --name=devinfo --size=4KB --type-guid=65ADDCF4-0C5C-4D9A-AC2D-D90B5CBFCD03
--partition --name=dip --size=1024KB --type-guid=4114B077-005D-4E12-AC8C-B493BDA684FB
--partition --name=spunvm --size=8192KB --type-guid=E42E2B4C-33B0-429B-B1EF-D341C547022C
Expand Down
2 changes: 1 addition & 1 deletion platforms/iq-x7181-evk/spinor/partitions.conf
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,6 @@
--partition --name=dtb_a --size=4096KB --type-guid=2A1A52FC-AA0B-401C-A808-5EA0F91068F8 --filename=dtb.bin
--partition --name=dtb_b --size=4096KB --type-guid=A166F11A-2B39-4FAA-B7E7-F8AA080D0587 --filename=dtb.bin
--partition --name=uefi_dtb_a --size=64KB --type-guid=C84D3B5E-EF34-4FA4-8118-30EAE18D3FA6 --filename=uefi_dtbs.xz
--partition --name=uefi_dtb_a --size=64KB --type-guid=5F7D760A-3EF5-4AA5-B915-69A4ECAAE662 --filename=uefi_dtbs.xz
--partition --name=uefi_dtb_b --size=64KB --type-guid=5F7D760A-3EF5-4AA5-B915-69A4ECAAE662 --filename=uefi_dtbs.xz
--partition --name=uefisecapp_a --size=220KB --type-guid=BE8A7E08-1B7A-4CAE-993A-D5B7FB55B3C2 --filename=uefi_sec.mbn
--partition --name=uefisecapp_b --size=220KB --type-guid=538CBDBA-D4A4-4438-A466-D7B356FAC165 --filename=uefi_sec.mbn
3 changes: 0 additions & 3 deletions platforms/qcs8275-monza/emmc/partitions.conf
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,6 @@
--partition --name=tz_a --size=4000KB --type-guid=A053AA7F-40B8-4B1C-BA08-2F68AC71A4F4 --filename=tz.mbn
--partition --name=hyp_a --size=65536KB --type-guid=E1A6A689-0C8D-4CC6-B4E8-55A4320FBD8A --filename=hypvm.mbn
--partition --name=TZAPPS --size=320KB --type-guid=14D11C40-2A3D-4F97-882D-103A1EC09333
--partition --name=mdtpsecapp_a --size=4096KB --type-guid=EA02D680-8712-4552-A3BE-E6087829C1E6
--partition --name=mdtp_a --size=32768KB --type-guid=3878408A-E263-4B67-B878-6340B35B11E3
--partition --name=keymaster_a --size=512KB --type-guid=A11D2A7C-D82A-4C2F-8A01-1805240E6626
--partition --name=devcfg_a --size=128KB --type-guid=F65D4B16-343D-4E25-AAFC-BE99B6556A6D --filename=devcfg_iot.mbn
--partition --name=qupfw_a --size=128KB --type-guid=21D1219F-2ED1-4AB4-930A-41A16AE75F7F
Expand All @@ -63,7 +61,6 @@
--partition --name=multiimgoem_a --size=32KB --type-guid=E126A436-757E-42D0-8D19-0F362F7A62B8 --filename=multi_image.mbn
--partition --name=multiimgqti_a --size=32KB --type-guid=846C6F05-EB46-4C0A-A1A3-3648EF3F9D0E --filename=multi_image_qti.mbn
--partition --name=imagefv_a --size=1024KB --type-guid=17911177-C9E6-4372-933C-804B678E666F --filename=imagefv.elf
--partition --name=usb4fw_a --size=61KB --type-guid=3FA03C7A-9FDC-498B-A2A8-DE11EE339790
--partition --name=devinfo --size=4KB --type-guid=65ADDCF4-0C5C-4D9A-AC2D-D90B5CBFCD03
--partition --name=dip --size=1024KB --type-guid=4114B077-005D-4E12-AC8C-B493BDA684FB
--partition --name=spunvm --size=8192KB --type-guid=E42E2B4C-33B0-429B-B1EF-D341C547022C
Expand Down
39 changes: 39 additions & 0 deletions qcom_ptool/ptool.py
Original file line number Diff line number Diff line change
Expand Up @@ -2259,6 +2259,44 @@ def ParseXML(XMLFile):
PrintBanner("MBR type discovered in XML file, Output will be MBR")


def ValidatePartitions():
"""Validate the partition layout:

- duplicate --name entries are checked per-LUN (two partitions
sharing a name on one LUN cannot be addressed unambiguously);
- A/B slot pairing is checked across all LUNs, since some boot
firmware (e.g. xbl_a on LUN1, xbl_b on LUN2) is split across
separate boot LUNs by design.
"""
errors = []
bases_a: set[str] = set()
bases_b: set[str] = set()

for lun, parts in PhyPartition.items():
labels = [p["label"] for p in parts]

seen: dict[str, int] = {}
for idx, label in enumerate(labels):
if label in seen:
errors.append(
f"lun={lun}: duplicate partition name '{label}' "
f"(positions {seen[label]} and {idx})"
)
else:
seen[label] = idx

bases_a.update(label[:-2] for label in labels if label.endswith("_a"))
bases_b.update(label[:-2] for label in labels if label.endswith("_b"))

for base in sorted(bases_a - bases_b):
errors.append(f"'{base}_a' present but '{base}_b' missing")
for base in sorted(bases_b - bases_a):
errors.append(f"'{base}_b' present but '{base}_a' missing")

if errors:
PrintBigError("Partition validation failed:\n " + "\n ".join(errors))


# PrintPartitionCollection( PhyPartition[0] )
def PrintPartitionCollection(PartitionCollection):

Expand Down Expand Up @@ -3524,6 +3562,7 @@ def find_file(filename, search_paths):
random.seed(_seed)

ParseXML(XMLFile) # parses XMLFile, discovers if GPT or MBR
ValidatePartitions() # reject configs that would produce an invalid GPT

PrintBanner("OutputToCreate ===> '%s'" % OutputToCreate)

Expand Down
Loading
Loading