近期,也是学习Zynq 有一段时间了,之前接触的是Cyclone V的SOC,其引导过程属于FPGA引导HPS,程序的下载步骤也非常的繁琐;后来用了Zynq后,瞬间感觉方便了好多,下载只需一键了,哈哈!
Zynq启动是由ARM引导的FPGA的,同时也包括用户程序的加载!
为了更好理解Zynq UltraScale+ MPSoC的启动流程,我花了一星期的空余时间,查了大量的官方资料,汇总的详细的启动流程,对这方面感兴趣的可以收藏下来!
Zynq启动分为三个步骤,如下:
预配置阶段(Pre-configuration stage)
- 上电后,PMU(Platform Management Unit 平台管理单元)重置;
- 执行
PMU ROM
中的预启动代码,以执行复位操作(包括CSU(configuration security unit 配置安全单元)复位);
配置阶段(Configuration stage):
CSU复位后,初始化OC-RAM
,将FBSL加载到OC-RAM(on-chip RAM),处理器开始执行FSBL代码。
FSBL(first-stage boot loader)的作用如下:
- 初始化PS端配置,如:MIO、PLL、DDR、QSPI、SD等
- 加载PL端程序,即:bitstream
- 搬运用户程序到DDR,并跳转执行
后配置阶段(Post-configuration stage):
FBSL执行后,CSU ROM代码进入Post-configuration
阶段,负责起系统干预响应,提供硬件支持。
PMU仍然需要运行,用于后续改变系统的电源状态(上电、睡眠、唤醒等等)
详细过程如下:
PMU(Platform Management Unit 平台管理单元)主要负责主要的预处理任务,以及管理PS端的系统资源的上电、断电。
PMU(Platform Management Unit 平台管理单元)可以提供如下操作:
- 归零化低压域LPD(low power domain)寄存器
- 归零化全电源域FPD(full power domain)寄存器
- 归零化PMU的RAM
- 归零化PMU处理器的TLB内存
- 检查LPD、AUX、专用IO等区域电压
- 归零化CSU、LPD、FPD的内存区
POR (Power-on reset)上电后,初始化PMU重置;
然后执行PMU的ROM中的预处理代码(此代码用于保持初始化操作的顺序),进行初始化操作
- 初始化PS Sysmon单元和启动所需要的PLL
- 清除PMU RAM 和 CSU RAM区域
- 验证PLL 锁
- 利用PS Sysmon验证LPD、AUX、I/O的范围
- 清除低压域(LPD)和全电源域(FPD)
如果上述操作无误,最后执行CSU重置,否则生成启动错误。
CSU重置后,将执行以下操作
- 初始化OC-RAM
- 读取
boot mode
寄存器,确定启动类型 - CSU将FBSL加载到OC-RAM后执行程序
- CSU加载PMU用户固件(PMU FW:firmware)到PMU RAM后,以便执行
PMU FW(Platform Management Unit user firmware)与PMU RAM一块提供平台管理服务。
在启动之后,PMU仍然需要运行,用于后续改变系统的电源状态(上电、睡眠、唤醒等等);
CSU ROM代码进入Post-configuration
阶段,负责起系统干预响应,提供硬件支持。
加载PL BitStream
执行完CSU ROM的代码,CSU脱离对FBSL的控制;FBSL开始通过PCAP接口,使用BitStream来配置PL
加载BitStream流程
- 初始化PCAP接口
- 通过PCAP写入BitStream
- 等待PL状态位完成
额外补充一些其他关于启动引导的知识
Boot Modes
启动类型一般有:Quad-SPI、SD、NAND、eMMC、USB、PS JTAG等
黄金镜像搜索
Boot Image 搜索机制仅用在了 QSPII、NAND、SD、EMMC启动模式。
BootRom
通过去搜索有效的Boot Header
去加载和运行Boot Image
。
BootRom
通过搜索有效的字符串XLNX
,然后对Boot Header
进行校验;如果校验和有效,将剩下的Boot Header
和 Boot Image
(包括FSBL)加载到RPU和APU。
如果有一片地址的Boot Image
损坏,FSBL可以将另一处Boot Header写入CSU,来修复它。
最后再推荐一些学习Zynq UltraScale+ MPSoC会用到的内容,之前已经汇总了一些文章!
移步it之巅:PMU、PCI-E、MIO、EMIO、AXI GPIO区别
希望对大家有所帮助,同时也期待大家的关注!
补充资料:https://zhuanlan.zhihu.com/p/260163123