]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
lmb: add logic to print lmb flag strings
authorSughosh Ganu <sughosh.ganu@linaro.org>
Mon, 26 Aug 2024 11:59:40 +0000 (17:29 +0530)
committerTom Rini <trini@konsulko.com>
Tue, 3 Sep 2024 20:08:51 +0000 (14:08 -0600)
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>
lib/lmb.c

index 9f1bb5ec7dea131eb880507a9169ca351823aa03..3ed570fb29b11c78eca2d2ed4b3653c334fa2baf 100644 (file)
--- 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);
        }
 }