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

3ef33271b8d467521369981a2f71cfd2.png

前言

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

言归正传,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文件和用户代码等。

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值