lmb: make LMB memory map persistent and global
The current LMB API's for allocating and reserving memory use a per-caller based memory view. Memory allocated by a caller can then be overwritten by another caller. Make these allocations and reservations persistent using the alloced list data structure. Two alloced lists are declared -- one for the available(free) memory, and one for the used memory. Once full, the list can then be extended at runtime. [sjg: Use a stack to store pointer of lmb struct when running lmb tests] Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org> Signed-off-by: Simon Glass <sjg@chromium.org> [sjg: Optimise the logic to add a region in lmb_add_region_flags()]
This commit is contained in:
@@ -162,10 +162,8 @@ static int bdinfo_print_all(struct bd_info *bd)
|
||||
bdinfo_print_num_l("multi_dtb_fit", (ulong)gd->multi_dtb_fit);
|
||||
#endif
|
||||
if (IS_ENABLED(CONFIG_LMB) && gd->fdt_blob) {
|
||||
struct lmb lmb;
|
||||
|
||||
lmb_init_and_reserve(&lmb, gd->bd, (void *)gd->fdt_blob);
|
||||
lmb_dump_all_force(&lmb);
|
||||
lmb_init_and_reserve(gd->bd, (void *)gd->fdt_blob);
|
||||
lmb_dump_all_force();
|
||||
if (IS_ENABLED(CONFIG_OF_REAL))
|
||||
printf("devicetree = %s\n", fdtdec_get_srcname());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user