当一个Linux 系统上电或重启时发生的第一件事情,是处理器要执行在某个预
定的位置上的代码。(固化代码,存于内部ROM中?)对于桌面计算机,这个位置是位于主板上的闪存中的,这部分
闪存里的是基本输入/ 输出系统(Basic Input/Output System,BIOS)。因为现代
的PC 提供了如此多种多样的启动设备,BIOS 要做的第一件事情是判断从哪个设备
来启动[1]。
一旦决定了启动设备,FSBL 会被加载到RAM 并由处理器执行。FSBL 是一片非常
小的代码——小于512 字节,也就是单个扇区—— 它唯一的作用就是把第二阶段
引导装载程序(Second-StageBootloader,SSBL)装入RAM。
在启动过程中,SSBL 这个阶段是要呈现一个引导菜单的
引导在SSBL阶段进行?因为SSBL阶段程序比较大,没办法在内部RAM运行,所以在内部RAM进行的只有FSBL?
Zynq芯片的引导经历一系列的阶段,起点是上电时初始化的引导ROM。芯片的
引导模式配置引脚的值决定了引导模式[5]。引导模式定义了FSBL 要从哪个接口装
载——JTAG、NAND Flash、NORFlash、QSPI Flash 还是SD 卡[2]。一旦引导模式
被确定了,引导ROM 会读入引导头和给定的配置参数,验证了这个FSBL 映