零配置初始化流程就一直过不去_ZYNQ UltraScale+ MPSoc FPGA自学笔记-启动加载配置...

零配置初始化流程就一直过不去_ZYNQ UltraScale+ MPSoc FPGA自学笔记-启动加载配置..._第1张图片

前言

听说最近秋天的第一杯奶茶挺火的,我得赶紧奋发图强写点东西,好赚点赏钱给妹子买奶茶,各位大佬出手大方点,我怕秋天过去了妹子还没喝上奶茶!

言归正传,ZYNQ UltraScale+ MPSoc的配置过程还是挺复杂的,决定写一篇文章来讲一讲,当然我也是初学,如有错讹请轻轻打左脸。

一、配置过程

Zynq® UltraScale+™ MPSoC 同时有PS端和PL端,PS又有两种不同的多核处理器可以运行底层代码或者操作系统及其应用,同时还有CSU和PMU等可编程单元,所以整个加载过程还比较复杂的。

Zynq® UltraScale+™ MPSoC 支持从不同器件启动,例如, QSPI 闪存、 SD 卡、 USB 设备固件升级 (DFU) 主机和NAND 闪存设备等。启动流程由PMU和CSU)进行管理和执行。

先做一下名词解释:

PMU: platform management unit, 平台管理单元

CSU: configuration security unit, 配置安全性单元

接下来,我们对MPSoc的启动过程进行解释。

1.1 三个启动阶段

启动过程包括三个功能阶段。Pre-configuration,Configuration和Post-configuration。需要说明的是,据我的理解,这三个阶段的划分是根据CSU的行为来界定的。

•预配置阶段(Pre-configuration)

预配置阶段CSU尚未启动,由PMU完全控制,但是执行的是PUM ROM里面代码,ROM里面的代码是固化的,用户无法修改,所以我们无法干预这一阶段的任何行为。

PMU处理所有复位和唤醒过程。上电复位用于复位CSU和PMU,因为它们负责调试,系统和软件复位。还有其他复位方法,例如SRST和SLCR。

初次启动期间将执行下列步骤:

• 通过上电复位 (POR) 将 PMU 从复位状态唤醒。

• PMU 执行来自 PMU ROM 的代码。

• PMU 初始化 SYSMON 和启动所需的 PLL、清空低功耗域和全功耗域, 并释放 CSU 复位。

这阶段结束的标志是CSU复位的释放。

•配置阶段(Configuration)

在配置阶段CSU开始工作,BootROM(CSU ROM代码的一部分)解释boot header以配置系统,并将PS的FSBL(first-stage boot loader)

代码加载到片内RAM(on-chip RAM, OCM)中(无论是在安全还是非安全启动模式)。系统根据BOOT Header的内容选择在CPU(Cortex-A53)还是RPU(Cortex-R5)上执行。负责初始化必要的时钟、内存和外设,加载Bit文件和用户代码等。

你可能感兴趣的:(零配置初始化流程就一直过不去)