Add qemu 2.4.0
[kvmfornfv.git] / qemu / roms / u-boot / arch / arm / cpu / armv7 / lowlevel_init.S
diff --git a/qemu/roms/u-boot/arch/arm/cpu/armv7/lowlevel_init.S b/qemu/roms/u-boot/arch/arm/cpu/armv7/lowlevel_init.S
new file mode 100644 (file)
index 0000000..f1aea05
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * A lowlevel_init function that sets up the stack to call a C function to
+ * perform further init.
+ *
+ * (C) Copyright 2010
+ * Texas Instruments, <www.ti.com>
+ *
+ * Author :
+ *     Aneesh V        <aneesh@ti.com>
+ *
+ * SPDX-License-Identifier:    GPL-2.0+
+ */
+
+#include <asm-offsets.h>
+#include <config.h>
+#include <linux/linkage.h>
+
+ENTRY(lowlevel_init)
+       /*
+        * Setup a temporary stack
+        */
+       ldr     sp, =CONFIG_SYS_INIT_SP_ADDR
+       bic     sp, sp, #7 /* 8-byte alignment for ABI compliance */
+#ifdef CONFIG_SPL_BUILD
+       ldr     r9, =gdata
+#else
+       sub     sp, sp, #GD_SIZE
+       bic     sp, sp, #7
+       mov     r9, sp
+#endif
+       /*
+        * Save the old lr(passed in ip) and the current lr to stack
+        */
+       push    {ip, lr}
+
+       /*
+        * go setup pll, mux, memory
+        */
+       bl      s_init
+       pop     {ip, pc}
+ENDPROC(lowlevel_init)