summaryrefslogtreecommitdiff
path: root/cmd/part.c
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2023-01-19 09:41:54 -0500
committerTom Rini <trini@konsulko.com>2023-01-19 09:41:54 -0500
commit7aec35be4b5fa7aabc0ece03dc8825495d86a1be (patch)
tree483d9f85e8184cb91f00e3345391bff13eee580a /cmd/part.c
parent5b958dea5c678dbdb2aeb6ac3c0c8cc8dfea065c (diff)
parentace75d642fa71034b248cde30709c79e06c52d61 (diff)
Merge branch '2022-01-18-assorted-updates'
- A few TI platform fixes, compression test cleanup and zstd update, npcm7xx update, add "part type" subcommand, VBE bugfix on some platforms, cleanup EVENT related Kconfig option logic (and fix some platforms), other minor cleanups.
Diffstat (limited to 'cmd/part.c')
-rw-r--r--cmd/part.c35
1 files changed, 35 insertions, 0 deletions
diff --git a/cmd/part.c b/cmd/part.c
index 9d419c967cb..28f2b7ff9bb 100644
--- a/cmd/part.c
+++ b/cmd/part.c
@@ -182,6 +182,31 @@ static int do_part_number(int argc, char *const argv[])
return do_part_info(argc, argv, CMD_PART_INFO_NUMBER);
}
+#ifdef CONFIG_PARTITION_TYPE_GUID
+static int do_part_type(int argc, char *const argv[])
+{
+ int part;
+ struct blk_desc *dev_desc;
+ struct disk_partition info;
+
+ if (argc < 2)
+ return CMD_RET_USAGE;
+ if (argc > 3)
+ return CMD_RET_USAGE;
+
+ part = blk_get_device_part_str(argv[0], argv[1], &dev_desc, &info, 0);
+ if (part < 0)
+ return 1;
+
+ if (argc > 2)
+ env_set(argv[2], info.type_guid);
+ else
+ printf("%s\n", info.type_guid);
+
+ return 0;
+}
+#endif
+
static int do_part_types(int argc, char * const argv[])
{
struct part_driver *drv = ll_entry_start(struct part_driver,
@@ -220,6 +245,10 @@ static int do_part(struct cmd_tbl *cmdtp, int flag, int argc,
return do_part_number(argc - 2, argv + 2);
else if (!strcmp(argv[1], "types"))
return do_part_types(argc - 2, argv + 2);
+#ifdef CONFIG_PARTITION_TYPE_GUID
+ else if (!strcmp(argv[1], "type"))
+ return do_part_type(argc - 2, argv + 2);
+#endif
return CMD_RET_USAGE;
}
@@ -244,6 +273,12 @@ 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"
+#ifdef CONFIG_PARTITION_TYPE_GUID
+ "part type <interface> <dev>:<part>\n"
+ " - print partition type\n"
+#endif
+ "part type <interface> <dev>:<part> <varname>\n"
+ " - set environment variable to partition type\n"
"part types\n"
" - list supported partition table types"
);