summaryrefslogtreecommitdiffstats
path: root/arch/arm/lib
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2015-04-03 09:14:38 -0400
committerTom Rini <trini@konsulko.com>2015-04-03 09:14:38 -0400
commit692e5c4e7eb267f3d8f3a8c9d2348eff6f5f21e2 (patch)
treee47f18f7dd1507e91a46fcd6f550914ad3774f5a /arch/arm/lib
parent8a5c9ca4d0b8aa13a1bb321494d24f656a9a7d72 (diff)
parent76a30fedd44428c7108084266389c9b4ba5678c8 (diff)
downloadtalos-obmc-uboot-692e5c4e7eb267f3d8f3a8c9d2348eff6f5f21e2.tar.gz
talos-obmc-uboot-692e5c4e7eb267f3d8f3a8c9d2348eff6f5f21e2.zip
Merge branch 'master' of git://git.denx.de/u-boot-tegra
Conflicts: board/armltd/vexpress64/vexpress64.c Signed-off-by: Tom Rini <trini@konsulko.com>
Diffstat (limited to 'arch/arm/lib')
-rw-r--r--arch/arm/lib/crt0_64.S13
1 files changed, 11 insertions, 2 deletions
diff --git a/arch/arm/lib/crt0_64.S b/arch/arm/lib/crt0_64.S
index 77563967e5..1654011432 100644
--- a/arch/arm/lib/crt0_64.S
+++ b/arch/arm/lib/crt0_64.S
@@ -62,9 +62,18 @@ ENTRY(_main)
* Set up initial C runtime environment and call board_init_f(0).
*/
ldr x0, =(CONFIG_SYS_INIT_SP_ADDR)
- sub x0, x0, #GD_SIZE /* allocate one GD above SP */
+ sub x18, x0, #GD_SIZE /* allocate one GD above SP */
+ bic x18, x18, #0x7 /* 8-byte alignment for GD */
+zero_gd:
+ sub x0, x0, #0x8
+ str xzr, [x0]
+ cmp x0, x18
+ b.gt zero_gd
+#if defined(CONFIG_SYS_MALLOC_F_LEN)
+ sub x0, x18, #CONFIG_SYS_MALLOC_F_LEN
+ str x0, [x18, #GD_MALLOC_BASE]
+#endif
bic sp, x0, #0xf /* 16-byte alignment for ABI compliance */
- mov x18, sp /* GD is above SP */
mov x0, #0
bl board_init_f
OpenPOWER on IntegriCloud