The lmb_dump_all() output didn't include the RMO size, which is interesting on powerpc. The output was also a bit spacey and not well aligned, and didn't show you the end addresses.
Signed-off-by: Michael Ellerman <mich...@ellerman.id.au> --- lib/lmb.c | 42 +++++++++++++++++++++--------------------- 1 files changed, 21 insertions(+), 21 deletions(-) DaveM, if you like we could make the RMO display conditional on it being non-zero, which would hide it on sparc presumably. Old output: lmb_dump_all: memory.cnt = 0x1 memory.size = 0x80000000 memory.region[0x0].base = 0x0 .size = 0x80000000 reserved.cnt = 0x3 reserved.size = 0x80000000 reserved.region[0x0].base = 0x0 .size = 0xea2000 reserved.region[0x1].base = 0x2aa6000 .size = 0xc000 reserved.region[0x2].base = 0x76a1000 .size = 0x95f000 New output: LMB configuration: rmo_size = 0x8000000 memory.size = 0x80000000 memory.cnt = 0x1 memory[0x0] 0x0000000000000000 - 0x000000007fffffff, 0x80000000 bytes reserved.cnt = 0x3 reserved[0x0] 0x0000000000000000 - 0x0000000000ea1fff, 0xea2000 bytes reserved[0x1] 0x0000000002aa6000 - 0x0000000002ab1fff, 0xc000 bytes reserved[0x2] 0x00000000076a1000 - 0x0000000007ffffff, 0x95f000 bytes diff --git a/lib/lmb.c b/lib/lmb.c index 97e5470..e4a6482 100644 --- a/lib/lmb.c +++ b/lib/lmb.c @@ -29,33 +29,33 @@ static int __init early_lmb(char *p) } early_param("lmb", early_lmb); -void lmb_dump_all(void) +static void lmb_dump(struct lmb_region *region, char *name) { - unsigned long i; + unsigned long long base, size; + int i; + + pr_info(" %s.cnt = 0x%lx\n", name, region->cnt); + + for (i = 0; i < region->cnt; i++) { + base = region->region[i].base; + size = region->region[i].size; + + pr_info(" %s[0x%x]\t0x%016llx - 0x%016llx, 0x%llx bytes\n", + name, i, base, base + size - 1, size); + } +} +void lmb_dump_all(void) +{ if (!lmb_debug) return; - pr_info("lmb_dump_all:\n"); - pr_info(" memory.cnt = 0x%lx\n", lmb.memory.cnt); - pr_info(" memory.size = 0x%llx\n", - (unsigned long long)lmb.memory.size); - for (i=0; i < lmb.memory.cnt ;i++) { - pr_info(" memory.region[0x%lx].base = 0x%llx\n", - i, (unsigned long long)lmb.memory.region[i].base); - pr_info(" .size = 0x%llx\n", - (unsigned long long)lmb.memory.region[i].size); - } + pr_info("LMB configuration:\n"); + pr_info(" rmo_size = 0x%llx\n", (unsigned long long)lmb.rmo_size); + pr_info(" memory.size = 0x%llx\n", (unsigned long long)lmb.memory.size); - pr_info(" reserved.cnt = 0x%lx\n", lmb.reserved.cnt); - pr_info(" reserved.size = 0x%llx\n", - (unsigned long long)lmb.memory.size); - for (i=0; i < lmb.reserved.cnt ;i++) { - pr_info(" reserved.region[0x%lx].base = 0x%llx\n", - i, (unsigned long long)lmb.reserved.region[i].base); - pr_info(" .size = 0x%llx\n", - (unsigned long long)lmb.reserved.region[i].size); - } + lmb_dump(&lmb.memory, "memory"); + lmb_dump(&lmb.reserved, "reserved"); } static unsigned long lmb_addrs_overlap(u64 base1, u64 size1, u64 base2, -- 1.5.5 _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev