Hi Caleb, Thank you for the patch.
On mar., avril 09, 2024 at 15:55, Caleb Connolly <caleb.conno...@linaro.org> wrote: > GPT partition tables include two bytes worth of vendor defined > attributes, per partition. ChromeOS and Qualcomm both use these (with > different encoding!) to handle A/B slot switching with a retry counter. > > Expose these via the disk_partition struct so that they can be parsed by > the relevant board code. > > This will be used on Qualcomm boards to determine which slot we're > booting on so that we can flash capsule updates to the correct one. > > Signed-off-by: Caleb Connolly <caleb.conno...@linaro.org> Reviewed-by: Mattijs Korpershoek <mkorpersh...@baylibre.com> > --- > disk/part_efi.c | 1 + > include/part.h | 1 + > 2 files changed, 2 insertions(+) > > diff --git a/disk/part_efi.c b/disk/part_efi.c > index 4ce9243ef25c..d3ce4dd01dcd 100644 > --- a/disk/part_efi.c > +++ b/disk/part_efi.c > @@ -292,8 +292,9 @@ int part_get_info_efi(struct blk_desc *desc, int part, > snprintf((char *)info->name, sizeof(info->name), "%s", > print_efiname(&gpt_pte[part - 1])); > strcpy((char *)info->type, "U-Boot"); > info->bootable = get_bootable(&gpt_pte[part - 1]); > + info->type_flags = gpt_pte[part - > 1].attributes.fields.type_guid_specific; > if (CONFIG_IS_ENABLED(PARTITION_UUIDS)) { > uuid_bin_to_str(gpt_pte[part - 1].unique_partition_guid.b, > (char *)disk_partition_uuid(info), > UUID_STR_FORMAT_GUID); > diff --git a/include/part.h b/include/part.h > index 32ee40488563..afae51f1b933 100644 > --- a/include/part.h > +++ b/include/part.h > @@ -68,8 +68,9 @@ struct disk_partition { > * PART_BOOTABLE the MBR bootable flag is set > * PART_EFI_SYSTEM_PARTITION the partition is an EFI system partition > */ > int bootable; > + u16 type_flags; /* top 16 bits of GPT partition attributes > */ > #if CONFIG_IS_ENABLED(PARTITION_UUIDS) > char uuid[UUID_STR_LEN + 1]; /* filesystem UUID as string, if exists > */ > #endif > #ifdef CONFIG_PARTITION_TYPE_GUID > > -- > 2.44.0