[PATCH v3 2/2] cmd/part.c: implement "part name" subcommand
Anshul Dalal
anshuld at ti.com
Tue Nov 11 06:25:49 CET 2025
On Tue Nov 11, 2025 at 2:24 AM IST, Rasmus Villemoes wrote:
> 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 <quentin.schulz at cherry.de>
> Signed-off-by: Rasmus Villemoes <ravi at prevas.dk>
> ---
> cmd/part.c | 16 +++++++++++++++-
> doc/usage/cmd/part.rst | 13 +++++++++++++
> 2 files changed, 28 insertions(+), 1 deletion(-)
>
> 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 <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"
> + "part name <interface> <dev> <part> <varname>\n"
Nit: Shouldn't this be part name <interface> <dev> <part> [varname]
instead?
> + " - 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 <interface> <dev>:<part>\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 <interface> <dev> <part> <varname>
> part size <interface> <dev> <part> <varname>
> part number <interface> <dev> <part> <varname>
> + part name <interface> <dev> <part> <varname>
Same here.
Regards,
Anshul
> part set <interface> <dev> <part> <type>
> part type <interface> <dev>:<part> [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:
>
More information about the U-Boot
mailing list