void lmb_dump_all(void);
void lmb_dump_all_force(void);
+void lmb_arch_add_memory(void);
+
struct lmb *lmb_get(void);
int lmb_push(struct lmb *store);
void lmb_pop(struct lmb *store);
SPL. This will require a malloc() implementation for defining
the data structures needed for maintaining the LMB memory map.
+config LMB_ARCH_MEM_MAP
+ bool "Add an architecture specific memory map"
+ depends on LMB
+ help
+ Some architectures have special or unique aspects which need
+ consideration when adding memory ranges to the list of available
+ memory map. Enable this config in such scenarios which allow
+ architectures and boards to define their own memory map.
+
+config SPL_LMB_ARCH_MEM_MAP
+ bool "Add an architecture specific memory map"
+ depends on SPL_LMB
+ help
+ Some architectures have special or unique scenarios which need
+ consideration when adding memory ranges to the list of available
+ memory map. Enable this config in such scenarios which allow
+ architectures and boards to define their own memory map.
+
config PHANDLE_CHECK_SEQ
bool "Enable phandle check while getting sequence number"
help
u64 ram_top = gd->ram_top;
struct bd_info *bd = gd->bd;
+ if (CONFIG_IS_ENABLED(LMB_ARCH_MEM_MAP))
+ return lmb_arch_add_memory();
+
/* Assume a 4GB ram_top if not defined */
if (!ram_top)
ram_top = 0x100000000ULL;