这里继续 lowlevel_init 中的内容
这个函数是为了进行底层的一些初始化
lowlevel_init
预备环节
检查复位状态
lowlevel_init 中会对控制复位的寄存器中的值的16位和18位进行检测,判断当前处理器处于 DEEP-IDLE 还是 SLEEP 状态
对于不同的复位状态,有不同的处理方式
好比刚上电需要初始化 ddr,而从睡眠中唤醒可以直接使用 ddr
IO 恢复
关看门狗
避免看门狗在初始化的过程中复位
外部SRAM SROM初始化
供电锁存
判断运行在sram还是ddr中
/* when we already run in ram, we don't need to relocate U-Boot.
* and actually, memory controller must be configured before U-Boot
* is running in ram.
*/
ldr r0, =0xff000fff
bic r1, pc, r0 /* r0 <- current base addr of code */
ldr r2, _TEXT_BASE /* r1 <- original base addr in ram */
bic r2, r2, r0 /* r0 <- current base addr o