ZYNQ的启动分为两个阶段:
第一阶段:BOOT ROM(由ZYNQ厂家固化代码)
第二阶段:FSBL(First Stage Bootloader),由SDK工具来制作
1. 第一阶段(BOOT ROM)
-
上电后,ZYNQ SOC会首先执行片内BOOT ROM代码,BOOT ROM代码读取BOOT MODE寄存器来判断是哪一种启动方式(SD CARD / QSPI FLASH / JTAG);
-
确定好哪种启动方式后,BOOT ROM从相应的启动设备加载FSBL到片上内存RAM中,并将执行权交给FSBL;
2. 第二阶段(FSBL)
-
初始化CPU,初始化串口;
-
初始化PS一些控制器,如MIO/PLL/CLK/DDR;
-
禁止L1 data cache;
-
注册ARM中断向量;
-
通过BOOT MODE寄存器,判断是哪种启动方式,并初始化相应的模块。