1234567891011121314151617181920212223242526272829303132333435363738394041 |
- /*
- * 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)
|