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)) {

Reply via email to