嵌入式Linux OS启动流程
一、硬件上电
二、一级启动:bootROM
Boot ROM是厂商都无法进行更改,固化在芯片内部的ROM;
作用:
确定用于启动的设备;
从启动的设备的位置搬移一小段代码(4k/8k/16k)到RAM中运行,即SPL;
三、二级启动:SPL+uboot
1.SPL: Secondary Program Loader:
作用:
初始化DDR;
从启动的设备搬移第二段代码到RAM中,加载uboot;
(有些SoC是将bootloader复制到RAM后,再进行DDR初始化;)
2.uboot: Universal boot loader:
U-Boot从启动设备上面读取、分析环境变量获得kernel和rootfs存储位置,以及所需的kernel command line;
自动检测系统RAM和eMMC/Nand Flash容量和参数;
设置以太网口MAC地址,并配置好硬件准备加载Linux kernel;
加载Linux kernel到RAM,至此系统控制权则转移到kernel来处理;