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]
ret
ENDPROC(lowlevel_init)
uboot下ARMV8 lowlevel_init
原创sunlei0625 ©著作权
文章标签 #include sed #if 文章分类 JavaScript 前端开发
-
2015.10uboot移植笔记 (四、低级初始化lowlevel_init续)
想不到一篇既然写不完lowlevel_init,有点失算,只要是要把时钟系统介绍好,涉及到很多知识,如果想好好了解时钟系统的话,可以直接去看数据手册,不过总感觉我拿到的数据手册应该少了一些东西,就是寄存器有点不全。反正影响也不大,接下来继续分析lowlevel_init。...
lowlevel_init 内存ddr初始化 uboot重定位 uboot移植 uboot2015移植 -
armv8 架构手册 armv8-a
是时候好好总结下自己走过的路。
armv8 架构手册 -
ARMv8内存相关
Linux内存管理(二):ARMv8 地址转换 ...
v8 linux内存管理 JAVA