详解ZYNQ启动的过程

zynq启动是由arm引导fpga,以及用户程序的加载。
预配置阶段
pre-configuration stage
1. 通过上电复位(por),将pmu(平台管理单元/platform management unit)从复位状态唤醒,提供如下操作:
复位低压域lpd寄存器
复位全电源域fpd寄存器
复位pmu的ram
复位pmu处理器的tlb内存
检查lpd、aux、专用io等区域电压
复位csu、lpd、fpd的内存区
2.执行pmu rom中的预启动代码,以执行复位操作(包括配置安全单元csu)复位),该阶段结束的标志是csu复位的释放。 预启动代码进行的初始化操作:
初始化ps sysmon单元和启动所需要的pll
清除pmu ram 和 csu ram区域
验证pll锁
利用ps sysmon验证lpd、aux、i/o的范围
清除低压域(lpd)和全电源域(fpd)
配置阶段
configuration stage
csu复位后,初始化oc-ram,将fbsl加载到oc-ram(on-chip ram),csu加载pmu用户固件(pmu fw:firmware)到pmu ram,若没有则不加载。
在zynq上运行程序的时候,boot rom直接固化在硬件中,开发者无法修改。fsbl(first stage boot loader)是第一阶段的加载程序,经过这个阶段,后面系统才能够运行裸奔程序或者是引导操作系统的u-boot。用户可以选择用cortex-a53制作启动的fsbl文件,也可以选择用cortex-r5来制作启动的fsbl文件。
处理器开始执行fsbl代码。fsbl(first-stage boot loader)的作用如下:
1.初始化ps端配置,如:mio、pll、ddr、qspi、sd等。
2.加载pl端程序,即:加载bitstream
3.搬运用户程序到ddr,并跳转执行。
pcap(处理器配置访问端口processor configuration access port)用于从ps配置pl。pcap是在正常操作条件下用于配置pl的唯一接口。在调试过程中,可以使用jtag接口来配置pl。ps通过secure-stream switch连接到pcap。可以使用csu dma或aes路径将比特流数据发送到pl。
fsbl使用pcap接口为pl配置比特流,步骤如下:
1.初始化pcap接口。
2.通过pcap写入比特流(bitstream)。
3.等待pl完成状态。
后配置阶段
post-configuration stage
fbsl执行后,csu rom代码进入post-configuration阶段,负责起系统干预响应,提供硬件支持。pmu仍然需要运行,用于后续改变系统的电源状态(上电、睡眠、唤醒等等)。这个阶段会启动ssbl,就是linux的bootloader,开始引导启动linux系统。


数字生活逐渐走向数字疗法
物联网的网络和安全问题,该如何解决
l6561典型应用pfc电路
降低PCB设计中噪声与电磁干扰24条
自制简易触摸开关
详解ZYNQ启动的过程
2020年,百度智能云活跃客户数增长65%
CAD中如何控制图形的打印线宽?
华立源:26650电池“主攻”电动自行车
物联网的到来,对网络的发展意味着什么呢?
这20种测试,有多少无人车能经受住考验?
Docker容器退出码是什么意思?导致该退出码的动作是什么
LN4303半桥驱动器概述、用途及特点
移动通信网络中PLMN是个啥?如何进行分类的?
美国多半数5G网络将支持FWA业务?
Type-C接口音频转接器:实现边听边充的便捷体验
物联网下蓝牙5.0的未来商业发展趋势
行业 | 艾默生收购Zedi,争夺云端SCADA市场
三星新专利曝光 屏幕可以延伸并折叠到背后
关于综合能源场景应用而需要考虑的一些事项