[PATCH] Revert "lmb: Reinstate access to memory above ram_top"

Peter Robinson pbrobinson at gmail.com
Fri May 29 18:29:38 CEST 2026


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 <pbrobinson at gmail.com>
---
 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



More information about the U-Boot mailing list