summaryrefslogtreecommitdiff
path: root/cmd
diff options
context:
space:
mode:
authorDario Binacchi <[email protected]>2026-04-30 10:06:05 +0200
committerPatrice Chotard <[email protected]>2026-05-12 15:52:01 +0200
commit703f8c313dd948e28868d964f798bad34ecc1572 (patch)
treeecdf1031794a1d57ded00fbb797c0333d917d04e /cmd
parenta392450189d2434be19c194df560c8bc9335e337 (diff)
cmd: part: support lookup by UUID
The 'part' command currently allows looking up a partition only by its number or name. Extend the 'number', 'start', and 'size' subcommands to support looking up the partition via its UUID. Unlike names, UUIDs guarantee unique partition identification, avoiding ambiguity. The logic is updated to check if the provided string is a valid UUID before falling back to a name-based search. The help strings for these subcommands are updated accordingly. Signed-off-by: Dario Binacchi <[email protected]> Reviewed-by: Simon Glass <[email protected]>
Diffstat (limited to 'cmd')
-rw-r--r--cmd/part.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/cmd/part.c b/cmd/part.c
index 5e520d707f3..3191d5861fd 100644
--- a/cmd/part.c
+++ b/cmd/part.c
@@ -144,6 +144,10 @@ static int do_part_info(int argc, char *const argv[], enum cmd_part_info param)
err = part_get_info(desc, part, &info);
if (err)
return 1;
+ } else if (uuid_str_valid(argv[2])) {
+ part = part_get_info_by_uuid(desc, argv[2], &info);
+ if (part < 0)
+ return 1;
} else {
part = part_get_info_by_name(desc, argv[2], &info);
if (part < 0)
@@ -517,13 +521,13 @@ U_BOOT_CMD(
" flags can be -bootable (list only bootable partitions)\n"
"part start <interface> <dev> <part> <varname>\n"
" - set environment variable to the start of the partition (in blocks)\n"
- " part can be either partition number or partition name\n"
+ " part can be either partition number, UUID or name\n"
"part size <interface> <dev> <part> <varname>\n"
" - set environment variable to the size of the partition (in blocks)\n"
- " part can be either partition number or partition name\n"
+ " part can be either partition number, UUID or name\n"
"part number <interface> <dev> <part> <varname>\n"
- " - set environment variable to the partition number using the partition name\n"
- " part must be specified as partition name\n"
+ " - set environment variable to the partition number using the partition UUID or name\n"
+ " part must be specified as partition UUID or name\n"
"part name <interface> <dev> <part> <varname>\n"
" - set environment variable to the partition name using the partition number\n"
" part must be specified as partition number\n"