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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Regular U-boot recently added this patch,

  http://git.denx.de/?p=u-boot.git;a=commitdiff;h=8003c361deec3ee651451662efd05352f1abdd40

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:
 stack_setup:
 	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 */
 
 clear_bss:
 	ldr	r0, _bss_start		/* find start of bss segment        */
-- 
1.6.0.4




[Index of Archives]     [Linux Embedded]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux