[U-Boot] [PATCH 2/2] ARM: increase lmb stack space reservation to 4KB

Rob Herring robherring2 at gmail.com
Thu Jun 28 15:54:11 CEST 2012


From: Rob Herring <rob.herring at calxeda.com>

The bootm initrd image copy to ram can collide with the stack in cases
where the print buffer size is large (i.e. 1K). The result is intermittent
initrd decompression errors depending on the initrd size MOD 4KB since
the initrd start address is 4KB aligned.

Cc: Albert ARIBAUD <albert.u.boot at aribaud.net>
Signed-off-by: Rob Herring <rob.herring at calxeda.com>
---
 arch/arm/lib/bootm.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/arm/lib/bootm.c b/arch/arm/lib/bootm.c
index 599547d..999f201 100644
--- a/arch/arm/lib/bootm.c
+++ b/arch/arm/lib/bootm.c
@@ -69,8 +69,8 @@ void arch_lmb_reserve(struct lmb *lmb)
 	sp = get_sp();
 	debug("## Current stack ends at 0x%08lx ", sp);
 
-	/* adjust sp by 1K to be safe */
-	sp -= 1024;
+	/* adjust sp by 4K to be safe */
+	sp -= 4096;
 	lmb_reserve(lmb, sp,
 		    gd->bd->bi_dram[0].start + gd->bd->bi_dram[0].size - sp);
 }
-- 
1.7.9.5



More information about the U-Boot mailing list