Zynq7000
启动流程介绍
打了半天。。。一不小心碰到鼠标后退键,啥都木了。。。再来吧
一开始呢,我以为
Zynq7000
是一个加上了双核
A9
处理器的
FPGA
芯片。但是看了资料后,才发现,其
实不是这么回事
Zynq7000
就如同他的名字一样,
Zynq-7000 Extensible Processing Platform
,是一个可扩展处理平台,
简单说就是有个
FPGA
做外设的
A9
双核处理器。
所以,它的启动流程自然也和
FPGA
完全不同,而与传统的
ARM
处理器类似。
Zynq7000
支持从多种设备启动,包括
Jtag, NAND, parallel NOR, Serial NOR (Quad-SPI),
以及
SD
卡。按手册说明除了
Jtag
之外的启动方式均支持安全启动,使用
AES
、
SHA256
加密后的启动代码
(不过在勘误里说到,当前硅片版本的无法正常使用
secure configuration
功能,所以俺就不介绍它鸟)
还是按照时间顺序来介绍下具体流程吧
1.
在器件上电运行后,处理器自动开始
Stage-0 Boot
,也就是执行片内
BootROM
中的代码
2.BootROM
会初始化
CPU
和一些外设,以便读取下一个启动阶段所需的程序代码,
FSBL
(
First Stage
Bootloader
)。
不过这又有一个问题了
----
之前说到,
Zynq
支持多种启动设备,
BootROM
怎么知道从哪个启动设备里去
加载
FSBL
?这就得靠几个特殊的
MIO
引脚来选择了,具体见下图