2 * A lowlevel_init function that sets up the stack to call a C function to
3 * perform further init.
6 * Texas Instruments, <www.ti.com>
9 * Aneesh V <aneesh@ti.com>
11 * SPDX-License-Identifier: GPL-2.0+
14 #include <asm-offsets.h>
16 #include <linux/linkage.h>
20 * Setup a temporary stack. Global data is not available yet.
22 #if defined(CONFIG_SPL_BUILD) && defined(CONFIG_SPL_STACK)
23 ldr sp, =CONFIG_SPL_STACK
25 ldr sp, =CONFIG_SYS_INIT_SP_ADDR
27 bic sp, sp, #7 /* 8-byte alignment for ABI compliance */
32 * Set up global data for boards that still need it. This will be
35 #ifdef CONFIG_SPL_BUILD
44 * Save the old lr(passed in ip) and the current lr to stack
49 * Call the very early init function. This should do only the
50 * absolute bare minimum to get started. It should not:
55 * - try to start a console
57 * For boards with SPL this should be empty since SPL can do all of
58 * this init in the SPL board_init_f() function which is called
59 * immediately after this.
63 ENDPROC(lowlevel_init)