'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

Reply via email to