[PATCH] Revert "arm: bootm: Disable LMB reservation for command line and board info on arm64"

Jan Kiszka jan.kiszka at siemens.com
Thu Jul 29 09:22:02 CEST 2021


From: Jan Kiszka <jan.kiszka at siemens.com>

This reverts commit 2359fa7a87848626bcbd3399e92c657595880cd7.

While the goal is valid and there is surely unused memory in that area,
we also have a lot of crucial things still located at the top-of-memory
while running lmb_alloc_base. Such things are the page table (tlb_addr),
relocated U-Boot and the active stack. Possibly more. So this patch was
premature, we will need relocations of those things first if we want to
use the range.

Fixes booting on the IOT2050, but likely also on other boards. It got 
stuck on relocating the FDT - over the relocated U-Boot code.

Signed-off-by: Jan Kiszka <jan.kiszka at siemens.com>
---

Practically,

void arch_lmb_reserve(struct lmb *lmb)
{
	lmb_reserve(lmb, gd->relocaddr, gd->ram_top - gd->relocaddr);
}

worked as well for me - but it left the stack in danger.

 arch/arm/lib/bootm.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/arch/arm/lib/bootm.c b/arch/arm/lib/bootm.c
index 23b99a541c..f60ee3a7e6 100644
--- a/arch/arm/lib/bootm.c
+++ b/arch/arm/lib/bootm.c
@@ -43,7 +43,6 @@ DECLARE_GLOBAL_DATA_PTR;
 
 static struct tag *params;
 
-#ifndef CONFIG_ARM64
 static ulong get_sp(void)
 {
 	ulong ret;
@@ -87,7 +86,6 @@ void arch_lmb_reserve(struct lmb *lmb)
 		break;
 	}
 }
-#endif
 
 __weak void board_quiesce_devices(void)
 {
-- 
2.26.2


More information about the U-Boot mailing list