1.1 启动过程
设备配置包含用于初始化和配置 PS 和 PL 的所有方法及过程。在软件的控制下,PS 内
的 DevC 提供用于初始化和配置 PS 和 PL 的手段及方法。在 Zynq-7000 SoC/Zynq UltraScale+
MPSoC 内提供两个主要模块用于控制配置过程。
1. BootROM。静态存储模块。当上电复位和暖复位后,由 APU(双核 A9—Zynq-7000;
四核 A53—MPSoC)执行它。
2. 设备配置单元(Device Configuration Unit,DevC):用于控制 JTAG 调试访问和提
供链接到 AES、HMAC 和 PCAP 模块的接口,用于实现 SoC 内 PL 的配置及数据
的解密。
在 PS 的控制下,可以实现安全或非安全的配置所有 PS 和 PL。通过 SOC 提供的 JTAG
接口,用户可以在外部主机的控制下对 SOC 进行配置。与 Xilinx 其他 FPGA 器件不同的是,
SOC 并不支持先开始 PL 控制配置的过程。
对 Zynq-7000 SoC 和 Zynq UltraScale+ MPSoC 的配置过程通常要求 3 个阶段。
1. 阶段 0:该阶段也成为 BootROM。该阶段控制初始化设备的启动。BootROM 是上
电复位或暖复位后,处理器所执行的用户不可修改的代码,该代码已经固化到器件
内的 BootROM 中。
2. 阶段 1:在该阶段,通过执行第一级启动引导程序(First Stage Boot Loader,FSBL)。
但是,它是可以是任意用户控制的代码。
3. 阶段 2:在该阶段,通常执行用户自己编写的软件程序。但是,也可以是第二级的
启动引导程序(Second Stage Boot Loader,SSBL)。该阶段完全在用户的控制下实
现的,如 Linux 的 u-boot。
在阶段2里面是可以添加很多文件,如ZYNQ UltraScale+ MPSoC可以添加PMU,PL.bit,
ATF,R5.elf,a53.elf,u-boot.elf 等,总是是按照用户需求进行添加。
1.2 启动模式配置引脚
1.2.1 Zynq-7000 SoC
启动模式如表 1.1 所示。
表 1.1 BOOT_MODE 与 MIO 引脚关系
JTAG 方式
vmode[1] vmode[0] B_M[4] B_M[2] B_M[1] B_M[0] B_M[3]
MIO[8] MIO[7] MIO[6] MIO[5] MIO[4] MIO[3] MIO[2]
级联 JTAG __ __ 0
独立 JTAG 1
启动设备
JATG __ 0 0 0 0
NOR 0 0 1 __
NAND 0 1 0
保留 0 1 1
Quad_SPI 1 0 0
1