[coreboot] New patch to review for coreboot: 437ad0c Fix the stack setup code so we can use an arbitrary 32-bit value

Ronald G. Minnich (rminnich@gmail.com) gerrit at coreboot.org
Thu Jan 17 20:15:06 CET 2013


Ronald G. Minnich (rminnich at gmail.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/2168

-gerrit

commit 437ad0c9b33a716661c17b0493622ff2338e36ff
Author: Ronald G. Minnich <rminnich at gmail.com>
Date:   Thu Jan 17 11:14:17 2013 -0800

    Fix the stack setup code so we can use an arbitrary 32-bit value
    
    We've had obscure errors as the size of the bootblock changes.
    This fix allows us to use a 32-bit constant. Please test on
    real hardware before you ack.
    
    Change-Id: Ic3d9f4763554bd6104ae9c4ce5bbacd17b40872c
    Signed-off-by: Ronald G. Minnich <rminnich at gmail.com>
---
 src/arch/armv7/bootblock.inc | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/src/arch/armv7/bootblock.inc b/src/arch/armv7/bootblock.inc
index e1b8b19..4fe7502 100644
--- a/src/arch/armv7/bootblock.inc
+++ b/src/arch/armv7/bootblock.inc
@@ -71,7 +71,7 @@ reset:
 
 /* Set stackpointer in internal RAM to call board_init_f */
 call_bootblock:
-	ldr	sp, =(CONFIG_SYS_INIT_SP_ADDR) /* Set up stack pointer */
+	ldr	sp, .Stack /* Set up stack pointer */
 	bic	sp, sp, #7 /* 8-byte alignment for ABI compliance */
 	ldr	r0,=0x00000000
 	/*
@@ -85,3 +85,11 @@ call_bootblock:
 wait_for_interrupt:
 	wfi
 	mov	pc, lr			@ back to my caller
+
+/* we do it this way because it's a 32-bit constant and
+ * in some cases too far away to be loaded as just an offset
+ * from IP
+ */
+.align 2
+.Stack:
+	.word CONFIG_SYS_INIT_SP_ADDR



More information about the coreboot mailing list