Uboot简介
由德国DENX小组开发,支持多cpu(MIPS、x86、ARM等)、多系统(linux、Vxworks、QNX)。
下载:http://sourceforge.net/projects/uboot
-
启动流程(看:Uboot启动流程)
- stage1:
-
上电初始化硬件。(start.S)
(复位代码)
a. 设置异常向量
b. 进入SVC模式,屏蔽 irq 和 frq
c. 设置控制寄存器地址(宏定义WATCHDOG寄存器、INTMSK寄存器、INTSUBMSK寄存器、CLKDIVN寄存器)
d. 关闭看门狗(在看门狗寄存器中写入 0)
e. 屏蔽中断(向寄存器写入 1)
f. 设置MPLLCON、UPLLCON、CLKDIVN
g. 关闭MMU、cache
h. 初始化RAM寄存器 -
将stage2 加载到RAM
-
设置好堆栈
-
清空bss段
-
跳转到stage2 的入口点
-
- stage2:
- 初始化本阶段用到的硬件
- 检测系统内存映像
- 将内核从flash复制到RAM
- 为内核设置启动参数
- 调用内核
- stage1:
-
命令行参数设置
setenv
saveenv
printenv -
移植修改
- 单板配置文件位置
include/configs/xxx.h <
- 单板配置文件位置