Re: [PATCH v1] part: efi: use BOOT_PART_TYPE symbol

Heinrich Schuchardt via U-Boot <[email protected]> Fri, 31 Jul 2026 13:08:23 +0200
Newsgroups gmane.comp.boot-loaders.u-boot
Message-ID <[email protected]>
On 7/30/26 03:39, Denis Mukhin via U-Boot wrote:
> From: Denis Mukhin <[email protected]>
> 
> Use existing BOOT_PART_TYPE symbol instead of open-coded "U-Boot".
> 
> Signed-off-by: Denis Mukhin <[email protected]>
> ---
>   disk/part_efi.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/disk/part_efi.c b/disk/part_efi.c
> index d8b17ec2e91a..1efd2ea113f0 100644
> --- a/disk/part_efi.c
> +++ b/disk/part_efi.c
> @@ -304,7 +304,7 @@ static int __maybe_unused part_get_info_efi(struct blk_desc *desc, int part,
>   
>   	snprintf((char *)info->name, sizeof(info->name), "%s",
>   		 print_efiname(&gpt_pte));
> -	strcpy((char *)info->type, "U-Boot");
> +	strcpy((char *)info->type, BOOT_PART_TYPE);

Thank you for looking into the value of this field which unfortunately 
is not well described in include/part.h. It is used in print_gpt_info() 
to print a user readable description of the partition type.

=> gpt read host 0
Partition 1:
Start 1MiB, size 62MiB
Block size 512, name Linux filesystem
Type U-Boot, bootable 0
UUID d3f19932-f3fb-408a-81dc-fadb4438ed5a
Type GUID c12a7328-f81f-11d2-ba4b-00a0c93ec93b

The constant BOOT_PART_TYPE is unrelated to the field type. It is used 
to define a linker generated list.

The value "U-Boot" itself looks wrong:

For a Mac partition we would expect values like "Apple_HFS", "Apple_Driver".

For an Amiga partition we would see for example "DOS\0", "PDS\0", 
"SFS\0", "LNX\0", "MAC\0", "MDS\0".

For a GPT partition we should have a string representing the partition 
type depending on the partition type GUID.

If CONFIG_PARTITION_TYPE_GUID=y and CONFIG_LIB_UUID=y, we can use 
uuid_guid_get_str() to get the correct value, how about:

diff --git a/disk/part_efi.c b/disk/part_efi.c
index d8b17ec2e91..1385bdae577 100644
--- a/disk/part_efi.c
+++ b/disk/part_efi.c
@@ -304,7 +304,7 @@ static int __maybe_unused part_get_info_efi(struct 
blk_desc *desc, int part,

         snprintf((char *)info->name, sizeof(info->name), "%s",
                  print_efiname(&gpt_pte));
-       strcpy((char *)info->type, "U-Boot");
+       strcpy((char *)info->type, "gpt");
         info->bootable = get_bootable(&gpt_pte);
         info->type_flags = gpt_pte.attributes.fields.type_guid_specific;
         if (CONFIG_IS_ENABLED(PARTITION_UUIDS)) {
@@ -316,6 +316,8 @@ static int __maybe_unused part_get_info_efi(struct 
blk_desc *desc, int part,
                 uuid_bin_to_str(gpt_pte.partition_type_guid.b,
                                 (char *)disk_partition_type_guid(info),
                                 UUID_STR_FORMAT_GUID);
+               snprintf((char *)info->type, sizeof(info->type), "%pUs",
+                        gpt_pte.partition_type_guid.b);
         }

         log_debug("start 0x" LBAF ", size 0x" LBAF ", name %s\n", 
info->start,

test/py/tests/test_gpt.py might need to be adjusted too.

Best regards

Heinrich

>   	info->bootable = get_bootable(&gpt_pte);
>   	info->type_flags = gpt_pte.attributes.fields.type_guid_specific;
>   	if (CONFIG_IS_ENABLED(PARTITION_UUIDS)) {