[PATCH] arm: 8-byte align stack to avoid LDRD/STRD problems

Simon Kagstrom simon.kagstrom at netinsight.net
Thu Oct 29 04:26:27 EDT 2009

Regular U-boot recently added this patch,


and while browsing the U-boot v2 tree (the layout looks very nice
indeed!), I saw that it was leaving the stack unaligned. This caused me
a lot of problems in regular U-boot and quite a bit of headache, so it
would be nice to have it fixed in v2 as well.

This is completely untested, and if I misunderstood something about the
code so that the stack is aligned elsewhere, please ignore the patch.

Signed-off-by: Simon Kagstrom <simon.kagstrom at netinsight.net>
 arch/arm/cpu/start-arm.S |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/arch/arm/cpu/start-arm.S b/arch/arm/cpu/start-arm.S
index 408944a..9981ef0 100644
--- a/arch/arm/cpu/start-arm.S
+++ b/arch/arm/cpu/start-arm.S
@@ -231,6 +231,7 @@ copy_loop:
 	ldr	r0, _STACK_START
 	sub	sp, r0, #12		/* leave 3 words for abort-stack    */
+	bic     sp, r0, #7              /* 8-byte align stack for ABI compliance */
 	ldr	r0, _bss_start		/* find start of bss segment        */

More information about the u-boot-v2 mailing list