ARM架构SOC运行Linux的典型启动流程
对于运行linux的ARM架构的SOC来说,典型的启动流程应该从上电开始。通常经过:上电复位、Boot模式选择、Boot ROM加载、Boot Flash加载、Bootloader加载、Linux内核加载、Linux内核启动、用户空间初始化、用户空间运行。
一、上电复位
当 SOC上电时,复位电路工作,硬件会执行一系列初始化操作,并将处理器复位到初始状态。
二、Boot模式选择
在启动过程中,SOC会根据boot引脚或boot配置寄存器的状态选择合适的 boot 模式。不同的 boot 模式决定了从哪个设备(如SD/EMMC、 NAND Flash、 QSPI Flash等)加载引导加载程序和内核。
三、Boot ROM加载
在 ARM 架构的 SOC中,Boot ROM 是一个固化在 SOC 内部的只读存储器。它是在 SOC上电后最早执行的固化代码(该代码SOC出厂自带,开发者不可更改),负责基本的硬件初始化和引导加载程序的启动。
四、Boot Flash加载
Boot Flash 是一种非易失性存储器,通常用于存储引导加载程序和内核镜像。Boot ROM 会根据 boot 模式的选择从 Boot Flash 中加载Bootloader程序的镜像文件。
五、Bootloader加载
Bootloader程序是一个位于 Boot Flash 中的软件程序,负责系统的进一步初始化和启动。Boot ROM 会将控制权转交给Bootloader程序,并执行Bootl