This reverts commit a3075db94d49f415658bf7e961e1eae90d9abc33. This causes boot issues on Raspberry Pi 4/5 in a number of ways, the mmc needs memory < 4Gb, the mailbox needs it < 1Gb at the very least so there's some work to be done here for that platform.
Signed-off-by: Peter Robinson <[email protected]> --- lib/lmb.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/lib/lmb.c b/lib/lmb.c index 8f12c6ad8e5..e2d9fe86c14 100644 --- a/lib/lmb.c +++ b/lib/lmb.c @@ -611,6 +611,7 @@ static __maybe_unused void lmb_reserve_common_spl(void) static void lmb_add_memory(void) { int i; + phys_addr_t bank_end; phys_size_t size; u64 ram_top = gd->ram_top; struct bd_info *bd = gd->bd; @@ -624,9 +625,23 @@ static void lmb_add_memory(void) for (i = 0; i < CONFIG_NR_DRAM_BANKS; i++) { size = bd->bi_dram[i].size; + bank_end = bd->bi_dram[i].start + size; - if (size) + if (size) { lmb_add(bd->bi_dram[i].start, size); + + /* + * Reserve memory above ram_top as + * no-overwrite so that it cannot be + * allocated + */ + if (bd->bi_dram[i].start >= ram_top) + lmb_reserve(bd->bi_dram[i].start, size, + LMB_NOOVERWRITE); + else if (bank_end > ram_top) + lmb_reserve(ram_top, bank_end - ram_top, + LMB_NOOVERWRITE); + } } } -- 2.54.0

