lmb: add lmb_dump_region() function
Add lmb_dump_region() function, to simplify lmb_dump_all_force(). This patch is based on Linux memblock dump function. An example of bdinfo output is: ..... fdt_size = 0x000146a0 FB base = 0xfdd00000 lmb_dump_all: memory.cnt = 0x1 memory[0] [0xc0000000-0xffffffff], 0x40000000 bytes flags: 0 reserved.cnt = 0x6 reserved[0] [0x10000000-0x10045fff], 0x00046000 bytes flags: 4 reserved[1] [0x30000000-0x3003ffff], 0x00040000 bytes flags: 4 reserved[2] [0x38000000-0x3800ffff], 0x00010000 bytes flags: 4 reserved[3] [0xe8000000-0xefffffff], 0x08000000 bytes flags: 4 reserved[4] [0xfbaea344-0xfdffffff], 0x02515cbc bytes flags: 0 reserved[5] [0xfe000000-0xffffffff], 0x02000000 bytes flags: 4 arch_number = 0x00000000 TLB addr = 0xfdff0000 .... Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com> Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
e359a4a5c1
commit
358c7789af
42
lib/lmb.c
42
lib/lmb.c
@ -14,30 +14,30 @@
|
||||
|
||||
#define LMB_ALLOC_ANYWHERE 0
|
||||
|
||||
static void lmb_dump_region(struct lmb_region *rgn, char *name)
|
||||
{
|
||||
unsigned long long base, size, end;
|
||||
enum lmb_flags flags;
|
||||
int i;
|
||||
|
||||
printf(" %s.cnt = 0x%lx\n", name, rgn->cnt);
|
||||
|
||||
for (i = 0; i < rgn->cnt; i++) {
|
||||
base = rgn->region[i].base;
|
||||
size = rgn->region[i].size;
|
||||
end = base + size - 1;
|
||||
flags = rgn->region[i].flags;
|
||||
|
||||
printf(" %s[%d]\t[0x%llx-0x%llx], 0x%08llx bytes flags: %x\n",
|
||||
name, i, base, end, size, flags);
|
||||
}
|
||||
}
|
||||
|
||||
void lmb_dump_all_force(struct lmb *lmb)
|
||||
{
|
||||
unsigned long i;
|
||||
|
||||
printf("lmb_dump_all:\n");
|
||||
printf(" memory.cnt = 0x%lx\n", lmb->memory.cnt);
|
||||
for (i = 0; i < lmb->memory.cnt; i++) {
|
||||
printf(" memory.reg[0x%lx].base = 0x%llx\n", i,
|
||||
(unsigned long long)lmb->memory.region[i].base);
|
||||
printf(" .size = 0x%llx\n",
|
||||
(unsigned long long)lmb->memory.region[i].size);
|
||||
printf(" .flags = 0x%x\n",
|
||||
lmb->memory.region[i].flags);
|
||||
}
|
||||
|
||||
printf("\n reserved.cnt = 0x%lx\n", lmb->reserved.cnt);
|
||||
for (i = 0; i < lmb->reserved.cnt; i++) {
|
||||
printf(" reserved.reg[0x%lx].base = 0x%llx\n", i,
|
||||
(unsigned long long)lmb->reserved.region[i].base);
|
||||
printf(" .size = 0x%llx\n",
|
||||
(unsigned long long)lmb->reserved.region[i].size);
|
||||
printf(" .flags = 0x%x\n",
|
||||
lmb->reserved.region[i].flags);
|
||||
}
|
||||
lmb_dump_region(&lmb->memory, "memory");
|
||||
lmb_dump_region(&lmb->reserved, "reserved");
|
||||
}
|
||||
|
||||
void lmb_dump_all(struct lmb *lmb)
|
||||
|
Loading…
Reference in New Issue
Block a user