BootROM
此程序出厂固化在soc内部rom中,soc上电首先执行,主要作用:
- 初始化时钟、SRAM
- 根据寄存器选择启动介质
- 从启动介质搬运loader到SRAM执行
Loader
由于SRAM一般较小,所以loader体积较小,主要完成以下功能:
- 初始化DRAM
- 搬运U-Boot代码到DRAM执行
U-Boot
U-Boot启动以重定位(relocate)操作分成两个阶段
- 重定位前(board_init_f):只做必要的初始化,soc、时钟、DRAM、串口
- 重定位(relocate):将自身搬移到DRAM的末尾地址执行
- 重定位后(board_init_r):初始化需要的外设(存储、网络等),命令行系统,引导内核
Kernel
- 解析命令行参数
- initcall各类驱动初始化
- 挂载根文件系统
- 启动init进程,进入用户空间