summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSughosh Ganu <sughosh.ganu@linaro.org>2024-08-26 17:29:40 +0530
committerTom Rini <trini@konsulko.com>2024-09-03 14:08:51 -0600
commitf8ffc6f3cc4c6a760458255f5b344f86ee833bef (patch)
treed7e21bcdd2ba45fd31f0795689358c03407a907f
parent8242f14a3e6f03e903006eaffff49dea88112578 (diff)
lmb: add logic to print lmb flag strings
Instead of printing the LMB flags as numerical values, print them as strings. This makes it easier to understand what flags are associated with the lmb region. Also make corresponding changes to the bdinfo command's test code. Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org> Reviewed-by: Simon Glass <sjg@chromium.org>
-rw-r--r--lib/lmb.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/lib/lmb.c b/lib/lmb.c
index 9f1bb5ec7de..3ed570fb29b 100644
--- a/lib/lmb.c
+++ b/lib/lmb.c
@@ -27,6 +27,19 @@ DECLARE_GLOBAL_DATA_PTR;
static struct lmb lmb;
+static void lmb_print_region_flags(enum lmb_flags flags)
+{
+ u64 bitpos;
+ const char *flag_str[] = { "none", "no-map", "no-overwrite" };
+
+ do {
+ bitpos = flags ? fls(flags) - 1 : 0;
+ printf("%s", flag_str[bitpos]);
+ flags &= ~(1ull << bitpos);
+ puts(flags ? ", " : "\n");
+ } while (flags);
+}
+
static void lmb_dump_region(struct alist *lmb_rgn_lst, char *name)
{
struct lmb_region *rgn = lmb_rgn_lst->data;
@@ -42,8 +55,9 @@ static void lmb_dump_region(struct alist *lmb_rgn_lst, char *name)
end = base + size - 1;
flags = rgn[i].flags;
- printf(" %s[%d]\t[0x%llx-0x%llx], 0x%08llx bytes flags: %x\n",
- name, i, base, end, size, flags);
+ printf(" %s[%d]\t[0x%llx-0x%llx], 0x%08llx bytes flags: ",
+ name, i, base, end, size);
+ lmb_print_region_flags(flags);
}
}