uboot下ARMV8 lowlevel_init

来源:互联网 发布:网络棋牌推广违法吗 编辑:程序博客网 时间:2024/05/21 15:41
lowlevel_init:

#include <asm-offsets.h>#include <config.h>#include <linux/linkage.h>

ENTRY(lowlevel_init) /*  * Setup a temporary stack. Global data is not available yet.  */#if defined(CONFIG_SPL_BUILD) && defined(CONFIG_SPL_STACK) ldr w0, =CONFIG_SPL_STACK#else ldr w0, =CONFIG_SYS_INIT_SP_ADDR#endif bic sp, x0, #0xf /* 16-byte alignment for ABI compliance */

 /*  * Save the old LR(passed in x29) and the current LR to stack  */ stp x29, x30, [sp, #-16]!

 /*  * Call the very early init function. This should do only the  * absolute bare minimum to get started. It should not:  *  * - set up DRAM  * - use global_data  * - clear BSS  * - try to start a console  *  * For boards with SPL this should be empty since SPL can do all of  * this init in the SPL board_init_f() function which is called  * immediately after this.  */ bl s_init ldp x29, x30, [sp] retENDPROC(lowlevel_init)

0 0