lmb: allow for boards to specify memory map

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.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
This commit is contained in:
Sughosh Ganu 2024-10-15 21:07:11 +05:30 committed by Tom Rini
parent 695dbd5fae
commit 497da0c5ce
3 changed files with 23 additions and 0 deletions

View file

@ -168,6 +168,8 @@ long lmb_free(phys_addr_t base, phys_size_t size);
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);

View file

@ -1119,6 +1119,24 @@ config SPL_LMB
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

View file

@ -326,6 +326,9 @@ void lmb_add_memory(void)
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;