[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