[U-Boot] [PATCH] ARM1136: Align stack to 8 bytes
Vitaly Kuzmichev
vkuzmichev at mvista.com
Tue Jun 15 12:52:22 CEST 2010
The ARM ABI requires that the stack be aligned to 8 bytes as it is noted
in Procedure Call Standard for the ARM Architecture:
http://infocenter.arm.com/help/topic/com.arm.doc.ihi0042d/index.html
Unaligned SP also causes the problem with variable-length arrays
allocation when VLA address becomes less than stack pointer during
aligning of this address, so the further 'push' into the stack
overwrites first 4 bytes of VLA.
Signed-off-by: Vitaly Kuzmichev <vkuzmichev at mvista.com>
Signed-off-by: George G. Davis <gdavis at mvista.com>
---
arch/arm/cpu/arm1136/start.S | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/arch/arm/cpu/arm1136/start.S b/arch/arm/cpu/arm1136/start.S
index 957f438..d0c5717 100644
--- a/arch/arm/cpu/arm1136/start.S
+++ b/arch/arm/cpu/arm1136/start.S
@@ -185,6 +185,7 @@ stack_setup:
#endif
sub sp, r0, #12 /* leave 3 words for abort-stack */
#endif /* CONFIG_PRELOADER */
+ bic sp, sp, #7 /* 8-byte alignment */
clear_bss:
ldr r0, _bss_start /* find start of bss segment */
--
1.6.2.3.127.gb136
More information about the U-Boot
mailing list