From: Rasmus Villemoes Date: Mon, 10 Nov 2025 20:54:11 +0000 (+0100) Subject: cmd/part.c: implement "part name" subcommand X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=30890051ab23a0293f6404c9a49e86f33e45df66;p=thirdparty%2Fu-boot.git cmd/part.c: implement "part name" subcommand This is a natural buddy to the existing "part number", allowing one to get the partition name for a given partition number. Acked-by: Quentin Schulz Signed-off-by: Rasmus Villemoes Acked-by: Quentin Schuloz Tested-by: Anshul Dalal --- diff --git a/cmd/part.c b/cmd/part.c index db7bc5819c0..975a0a08a99 100644 --- a/cmd/part.c +++ b/cmd/part.c @@ -25,7 +25,8 @@ enum cmd_part_info { CMD_PART_INFO_START = 0, CMD_PART_INFO_SIZE, - CMD_PART_INFO_NUMBER + CMD_PART_INFO_NUMBER, + CMD_PART_INFO_NAME, }; static int do_part_uuid(int argc, char *const argv[]) @@ -154,6 +155,9 @@ static int do_part_info(int argc, char *const argv[], enum cmd_part_info param) case CMD_PART_INFO_NUMBER: snprintf(buf, sizeof(buf), "0x%x", part); break; + case CMD_PART_INFO_NAME: + snprintf(buf, sizeof(buf), "%s", info.name); + break; default: printf("** Unknown cmd_part_info value: %d\n", param); return 1; @@ -182,6 +186,11 @@ static int do_part_number(int argc, char *const argv[]) return do_part_info(argc, argv, CMD_PART_INFO_NUMBER); } +static int do_part_name(int argc, char *const argv[]) +{ + return do_part_info(argc, argv, CMD_PART_INFO_NAME); +} + static int do_part_set(int argc, char *const argv[]) { const char *devname, *partstr, *typestr; @@ -273,6 +282,8 @@ static int do_part(struct cmd_tbl *cmdtp, int flag, int argc, return do_part_size(argc - 2, argv + 2); else if (!strcmp(argv[1], "number")) return do_part_number(argc - 2, argv + 2); + else if (!strcmp(argv[1], "name")) + return do_part_name(argc - 2, argv + 2); else if (!strcmp(argv[1], "types")) return do_part_types(argc - 2, argv + 2); else if (!strcmp(argv[1], "set")) @@ -305,6 +316,9 @@ U_BOOT_CMD( "part number \n" " - set environment variable to the partition number using the partition name\n" " part must be specified as partition name\n" + "part name \n" + " - set environment variable to the partition name using the partition number\n" + " part must be specified as partition number\n" #ifdef CONFIG_PARTITION_TYPE_GUID "part type :\n" " - print partition type\n" diff --git a/doc/usage/cmd/part.rst b/doc/usage/cmd/part.rst index 72f5d8b8de7..299f2ac15c5 100644 --- a/doc/usage/cmd/part.rst +++ b/doc/usage/cmd/part.rst @@ -16,6 +16,7 @@ Synopsis part start part size part number + part name part set part type : [varname] part types @@ -86,6 +87,18 @@ part must be specified as partition name. varname a variable to store the current partition number value into +The 'part name' command sets an environment variable to the partition name using the partition number, +part must be specified as partition number. + + interface + interface for accessing the block device (mmc, sata, scsi, usb, ....) + dev + device number + part + partition number + varname + a variable to store the current partition name into + The 'part set' command sets the type of a partition. This is useful when autodetection fails or does not do the correct thing: