]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
cmd: gpt: Preserve bootable flag
authorJoshua Watt <jpewhacker@gmail.com>
Thu, 31 Aug 2023 16:51:40 +0000 (10:51 -0600)
committerTom Rini <trini@konsulko.com>
Mon, 11 Sep 2023 20:27:49 +0000 (16:27 -0400)
Sets the bootable flag when constructing the partition string from the
current partition configuration. This ensures that when the partitions
are written back (for example, when renaming a partition), the flag is
preserved.

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
cmd/gpt.c
test/py/tests/test_gpt.py

index 9cc7293438870df5aabf333b6a4d3d6f41afe3e0..d5256035c3a75762a82bd12fb2fde1e55b0f20d9 100644 (file)
--- a/cmd/gpt.c
+++ b/cmd/gpt.c
@@ -176,6 +176,7 @@ static int calc_parts_list_len(int numparts)
 #ifdef CONFIG_PARTITION_TYPE_GUID
        partlistlen += numparts * (strlen("type=,") + UUID_STR_LEN + 1);
 #endif
+       partlistlen += numparts * strlen("bootable,");
        partlistlen += numparts * (strlen("uuid=;") + UUID_STR_LEN + 1);
        /* for the terminating null */
        partlistlen++;
@@ -316,6 +317,8 @@ static int create_gpt_partitions_list(int numparts, const char *guid,
                strcat(partitions_list, ",uuid=");
                strncat(partitions_list, curr->gpt_part_info.uuid,
                        UUID_STR_LEN + 1);
+               if (curr->gpt_part_info.bootable & PART_BOOTABLE)
+                       strcat(partitions_list, ",bootable");
                strcat(partitions_list, ";");
        }
        return 0;
index 93007dee9a101289f23034772435d3ec957ebaec..b4c03bc3a2d2078da6479d8e382d2ca1694b5bba 100644 (file)
@@ -143,6 +143,7 @@ def test_gpt_read_var(state_disk_image, u_boot_console):
             "size": "0x100000",
             "type": "0fc63daf-8483-4772-8e79-3d69d8477de4",
             "uuid": "33194895-67f6-4561-8457-6fdeed4f50a3",
+            "bootable": True,
         },
         {
             "name": "part2",