'gpt setenv' sets a series of gpt_partition_* environment variables describing a partition, but does not expose the GPT partition entry's attributes field.
Set a new gpt_partition_attrs variable holding the full 64-bit attributes value as a hexadecimal string, when CONFIG_PARTITION_ATTR is enabled. Signed-off-by: Sumit Singh Dhami <[email protected]> --- cmd/gpt.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/cmd/gpt.c b/cmd/gpt.c index f610c7aa6b5..7c6bf15ac49 100644 --- a/cmd/gpt.c +++ b/cmd/gpt.c @@ -765,7 +765,8 @@ static int gpt_enumerate(struct blk_desc *desc) * gpt_setenv_part_variables() - setup partition environmental variables * * Setup the gpt_partition_name, gpt_partition_entry, gpt_partition_addr - * and gpt_partition_size, gpt_partition_bootable environment variables. + * and gpt_partition_size, gpt_partition_bootable and gpt_partition_attrs + * environment variables. * * @pinfo: pointer to disk partition * @i: partition entry @@ -796,6 +797,16 @@ static int gpt_setenv_part_variables(struct disk_partition *pinfo, int i) if (ret) goto fail; + if (CONFIG_IS_ENABLED(PARTITION_ATTR)) { + char attrs_str[19]; /* "0x" + 16 hex digits + NUL */ + + snprintf(attrs_str, sizeof(attrs_str), "0x%016llx", + disk_partition_gpt_attr(pinfo)); + ret = env_set("gpt_partition_attrs", attrs_str); + if (ret) + goto fail; + } + return 0; fail: @@ -1218,7 +1229,7 @@ U_BOOT_CMD(gpt, CONFIG_SYS_MAXARGS, 1, do_gpt, " - setup environment variables for partition $name:\n" " gpt_partition_addr, gpt_partition_size,\n" " gpt_partition_name, gpt_partition_entry,\n" - " gpt_partition_bootable\n" + " gpt_partition_bootable, gpt_partition_attrs\n" " gpt enumerate mmc 0\n" " - store list of partitions to gpt_partition_list environment variable\n" " gpt guid <interface> <dev>\n" -- 2.55.0
