Zynq 7000 系列中成功执行BootROM的条件

Zynq 7000设备的启动需要正确的电压序列和I/O引脚控制。BootROM的流程由复位类型、启动模式引脚设置以及启动映像来控制。BootROM对所选启动设备的引脚连接有特定的要求。
Zynq 7000 SoC设备具有电源、时钟和复位要求,这些要求必须得到满足,才能成功执行BootROM。

1 电源要求

PS和PL的BootROM电源要求如表6-1所示。
在启动过程中,Zynq 7000的PS(处理系统)和PL(可编程逻辑)部分都需要特定的电源配置。BootROM的启动要求PS和PL的电源都正确配置,以确保系统能够正常启动。此外,对于时钟信号和复位操作也有严格的要求,这些都必须在启动过程中得到满足。
在这里插入图片描述
在BootROM执行的早期阶段,BootROM会检查PL是否已上电。如果PL没有上电,BootROM将继续执行。如果PL已上电,BootROM将启动清理周期(清理操作可能包括内存清理、寄存器设置、硬件初始化等,这些步骤对于确保系统的稳定性和可靠性至关重要)。BootROM会等待最多90秒让清理过程完成。如果在这段时间内清理没有完成,那么会发生安全锁定。

如果BootROM需要PL,它会等待最多90秒让PL上电。如果PL在这个时间范围内没有上电,那么系统将关闭,不会提供错误代码。

PL掉电序列包括停止使用PS和PL之间的所有信号、禁用电压电平移位器以及关闭PL的电源。

2 时钟与PLL

PS_CLK参考时钟被路由到设备的多个部分,包括三个PS时钟PLL。PS_CLK的频率会影响设备的启动时间。PLL会将PS_CLK倍频,为各种系统时钟模块生成高频时钟。在需要时,PLL可以被旁路,以便将PS_CLK频率直接传递到系统时钟模块。

如果PLL被启用,那么在启用PLL之前,PS_CLK必须稳定,并且在整个过程中都必须保持稳定。时钟频率必须在数据表指定的操作范围内。

如果PLL被旁路,PS_CLK可以以尽可能慢的速度切换,直至其额定输入频率。这可以用于单步启动过程、用软件控制时钟,或在低时钟频率下操作系统。在低时钟频率下操作系统可能会排除使用设备中的一些模块(例如,USB ULPI时钟的频率必须低于CPU_1x时钟)。

注意:在BootROM执行期间,所有速度等级规格的最大频率为500 MHz。

3 复位操作

3.1 系统复位

有两种类型的系统复位:POR和非POR。

POR复位会重置整个系统,包括所有寄存器。除了eFuse和BBRAM之外,所有状态都会丢失。

非POR复位会被记录在slcr.REBOOT_STATUS寄存器中。非POR复位也会导致BootROM执行,但BootROM会保留关于前一个启动的安全级别的知识,存储在devcfg.CTRL [SEC_EN]位中。

非POR复位的来源包括PS_SRST_B引脚和内部系统复位。

3.2 外部复位信号引脚

有两个外部复位引脚,PS_POR_B和PS_SRST_B:

PS_POR_B
唯一用于采样引导模式引脚捆绑电阻的复位。对于上电序列,PS_POR_B输入必须保持低电平,直到VCCPINT、VCCPAUX和VCCO_MIO0达到其最小工作电平,以确保PS eFUSE的完整性。

对于掉电序列,在VCCPINT达到0.80V之前,必须满足以下四个条件中的至少一个(条件必须保持为真,直到VCCPINT降至0.40V,以确保PS eFUSE的完整性):
①PS_POR_B输入被置为低电平,
②PS_CLK输入的参考时钟被禁用,
③VCCPAUX低于0.70V,
④VCCO_MIO0低于0.90V。

在最后一个PL电源开始上升时,PS_POR_B不得取消断言。在此窗口期间断言PS_POR_B可能导致锁定事件。

PS_SRST_B
用于强制系统复位。它可以被绑定或拉高,并且在PS电源上升期间可以保持高电平。PS_SRST_B复位是非POR复位。

在BootROM从POR复位执行时,不得断言PS_SRST_B信号,否则会发生锁定事件,阻止BootROM完成系统启动过程。要从这种类型的锁定中恢复,必须断言PS_POR_B复位。Boot ROM完成执行并移交给FSBL/用户应用程序所需的时间取决于多个因素。有关如何确定特定用户配置的启动时间的详细信息,请参阅“启动时间参考”。

3.3复位信号时序

启动设备所需的复位时序如图6-4所示。如果在BootROM执行期间断言PS_SRST_B,则会发生系统锁定,而不会生成错误代码。
在这里插入图片描述
3.4 内部复位

内部复位都是非POR复位。包括

• 软件控制复位:向slcr.PSS_RST_CTRL [SOFT_RST]写入1。

• 看门狗定时器:AWDT0、AWDT1和SWDT控制器。

• JTAG接口和调试。

4 引导模式引脚设置

有7个引导模式捆绑引脚,它们使用MIO引脚[8:2]在板上进行硬件编程。这些引脚在PS_POR_B去断言后不久由硬件采样,并将它们的值写入软件可读寄存器以供BootROM和用户软件使用。

板上的硬件必须将每个捆绑引脚MIO[8:2]连接到20kΩ的上拉或下拉电阻。模式引脚的编码如表6-4所示。上拉电阻表示逻辑1,下拉电阻表示逻辑0。
在这里插入图片描述
五个引脚BOOT_MODE[4:0]用于选择引导模式、JTAG链配置以及是否旁路PLL。这些引脚采样的值被写入slcr.BOOT_MODE的[BOOT_MODE]和[PLL_BYPASS]位字段。

另外两个引脚VMODE[1:0]用于选择两个MIO电压组的电压信号电平。这些引脚采样的值被写入slcr.GPIOB_DRVR_BIAS_CTRL的[RB_VCFG]和[LB_VCFG]位字段。VMODE设置由BootROM用于最初设置MIO_PIN_{53:00}寄存器以选择所选的I/O信号标准。VMODE[0]控制MIO引脚15:0,而VMODE[1]控制MIO引脚53:16。上拉使BootROM选择LVCMOS18。下拉选择LVCMOS33,它与LVCMOS25兼容。

FSBL/用户代码可以更改JTAG链、PLL和MIO引脚的I/O电压标准的初始引导模式设置,这些设置基于单个MIO引脚。

5 启动设备的I/O引脚连接

有些引脚连接是所有启动模式都必需的,而其他连接则取决于启动模式引脚捆绑和BootROM Header信息。在BootROM执行完毕后,用户代码可以根据需要重新配置I/O引脚连接。

对于所有启动配置,以下连接是必要的:
①PS电源供应
②PS_POR_B、PS_SRST_B和PS_CLK_B

对于特定的启动设备,MIO连接如下:
①Quad-SPI(自动检测1、2、4或8位接口)
②SD存储卡(SDIO 0,MIO引脚40-47)
③NAND(自动检测8或16位接口)
④NOR(CS 0)
⑤JTAG(PLJTAG接口),通常用于级联模式

这些连接确保了启动设备与处理器之间的正确通信和数据传输。例如,Quad-SPI接口用于高速读写和擦除数据,而SD存储卡接口则用于与SD卡进行数据交换。NAND和NOR接口分别用于连接不同类型的闪存芯片。JTAG接口则用于调试和编程。

在设计和配置这些连接时,需要仔细考虑引脚的功能和特性,以确保系统的稳定性和性能。同时,也需要注意不同启动模式可能需要不同的引脚连接配置,因此在实际应用中需要根据具体需求进行选择和调整。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/829654.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

conda 与 pip 工具笔记

前言 conda与pip是Python开发中常用的两种工具,conda本质是环境、包管理工具,pip是包管理工具,两者的功能有一定的重叠。本文主要记录开发工作中与两者相关的使用说明与注意事项。 推荐用conda创建隔离的虚拟环境,用pip进行包安…

每日OJ题_DFS回溯剪枝⑦_力扣77. 组合

目录 力扣77. 组合 解析代码 力扣77. 组合 77. 组合 难度 中等 给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按 任何顺序 返回答案。 示例 1: 输入:n 4, k 2 输出: [[2,4],[3,4],[2,3],[1,…

要搭建基于Python、Django和Oracle的框架怎么搭

要搭建基于Python、Django和Oracle的框架,你需要遵循以下步骤: 安装Python: 首先,确保你的计算机上已经安装了Python。你可以从Python的官方网站下载并安装适合你操作系统的Python版本。 安装Django: 在命令行中执行p…

OpenGL读取纹理数据

读取纹理数据 glReadPixels float *buff new float[TEXTURE_WIDTH * TEXTURE_HEIGHT* COLOR_CHANNELS]; glReadPixels(0, 0, TEXTURE_WIDTH , TEXTURE_HEIGHT, GL_RGB, GL_FLOAT, buff);glGetTexImage float *buff new float[TEXTURE_WIDTH * TEXTURE_HEIGHT* COLOR_CHANN…

Oracle集群-常用查询及操作(工作日常整理)

1.Oracle集群状态 select * from gv$instance; 示例结果: 2.Oracle集群-增大表空间 常见问题: 导入时或使用时,提示无法extend table ,增加表空间即可 常用操作: 1)查询表空间 select * from dba_tablespaces; --…

数据结构——二叉树的顺序存储(堆)(C++实现)

数据结构——二叉树的顺序存储(堆)(C实现) 二叉树可以顺序存储的前提堆的定义堆的分类大根堆小根堆 整体结构把握两种调整算法向上调整算法递归版本 非递归版本向下调整算法非递归版本 向上调整算法和向下调整算法的比较 我们接着…

owasp top 10 越权漏洞·

指的是用户权限不明晰。 垂直越权:低权限用户,在无任何身份校验的情况下,能够使用高权 限(不属于自己)模块(功能),或访问高权限拥有的数据; 水平越权:指相同…

用C++实现单例模式

单例模式(Singleton Pattern)是一种常用的软件设计模式,它保证一个类在整个应用程序中仅有一个实例,并提供一个全局访问点来获取这个实例。这种模式常用于那些需要频繁创建且消耗资源较多的对象,或者需要控制对共享资源…

华为MRS服务使用记录

背景:公司的业务需求是使用华为的这一套成品来进行开发,使用中发现,这个产品跟原生的Hadoop的那一套的使用,还是有很大的区别的,现记录一下,避免以后忘了 一、原始代码的下载 下载地址:MRS样例…

UVa12313 A Tiny Raytracer

UVa12313 A Tiny Raytracer 题目链接题意分析AC 代码 题目链接 UVA - 12313 A Tiny Raytracer 题意 给出 《训练指南》题意翻译 本题的任务是实现一个小型光线追踪渲染器。场景由若干三角形网格(triangle mesh)组成,有且仅有一个点光源&…

lua编译器和lua解释器、lua虚拟机的区别

一、区别总结 lua编译器: 将lua源代码编译成字节码,提高代码加载速度 lua解释器:逐条执行编译器生成的字节码,并将其转换为虚拟机可以执行的指令。 lua虚拟机:提供了执行指令所需要的环境 二、lua编译器 Lua编译器的主…

R语言高级数据管理

一&#xff0c;数学函数 绝对值函数abs(x) sqrt(x) 开平方根 不小于某个数的最小整数ceiling(x) 不大于某个数的最大整数floor(x) 四舍五入round(x) sin(x) cos(x) log(x) 二&#xff0c;统计函数 求平均值 > x<-c(2,3,4,5,6,7,8,9,10) > mean(x) 求和 &g…

RustGUI学习(iced)之小部件(二):如何使用滑动条部件

前言 本专栏是学习Rust的GUI库iced的合集&#xff0c;将介绍iced涉及的各个小部件分别介绍&#xff0c;最后会汇总为一个总的程序。 iced是RustGUI中比较强大的一个&#xff0c;目前处于发展中&#xff08;即版本可能会改变&#xff09;&#xff0c;本专栏基于版本0.12.1. 概述…

抓包理解协议

用的Wireshark 抓包 1.抓包网卡选择 - WLAN 无线网卡&#xff0c;其他是本地虚拟机的网卡 这里分别是开始捕获、停止捕获、重新捕获、网卡选择&#xff0c;下面是可以过滤选择 过滤tcp包 3次握手&#xff1a; source是源地址&#xff0c; destination是目标地址&#xff0c;in…

QT文件上传带进度条实例(含源码)

一、Qt上传知识点 QNetworkAccessManager QNetworkAccessManager 是 Qt 中用于执行网络操作的类,它提供了一种方便的方式来发送网络请求并处理响应。以下是关于 QNetworkAccessManager 的一些重要知识点: 发送网络请求:QNetworkAccessManager 可以通过不同的方法发送网络请…

Linux: Netlink 简介

文章目录 1. 前言2. Netlink 范例3. Netlink 简析3.1 Netlink 协议簇注册3.2 创建 用户空间 Netlink 套接字3.3 用户空间 Netlink 套接字 的 绑定3.4 向 内核空间 Netlink 套接字 发消息3.5 从 内核空间 Netlink 套接字 读消息3.5.1 内核空间 Netlink 套接字 向 用户空间 Netli…

CSS3(响应式布局)

#过渡# 属性连写&#xff1a; transition: width 2s linear 1s; //前一个时间用于表示过渡效果持续时间&#xff0c;后一个时间用于表示过渡效果的延迟。 #转换# #2D转换# 和 #3D转换# 注意&#xff1a;其中angle对应单位为&#xff1a;deg #圆角# #边框# …

使用Docker部署Jupyter Notebook并结合花生壳的内网穿透实现远程访问(详文)

一、前言 本文主要介绍如何利用宝塔面板中的Docker 3.9.3管理器,使用Docker本地部署Jupyter Notebook,并结合花生壳内网穿透工具实现任意浏览器公网远程访问Jupyter登录界面。 安装完成后在宝塔面板中图例 Jupyter Notebook是一个交互式笔记本,支持运行40多种编程语言。…

会声会影2024破解电脑版下载附带永久免费激活码

会声会影2024是一款功能强大的视频编辑软件&#xff0c;它凭借直观易用的界面、全面的编辑工具以及丰富的特效和转场效果&#xff0c;受到了广大视频编辑爱好者和专业人士的喜爱。以下是对会声会影2024的详细介绍&#xff1a; 会声会影最新一键安装包下载如下&#xff1a; ht…

sqlserver在执行维护计划备份时报错,重新设置维护任务,也同样出错,另一计划的异地备份又正常。

出错提示&#xff1a;已以用户 NT Service\SQLSERVERAGENT 的身份执行。 最大值(1)&#xff0c;因此导致失败。当错误数达到 MaximumErrorCount 中指定的数目时将发生这种情况。请更改 MaximumErrorCount 或纠正这些错误。 警告结束 DTExec: 已返回包执行 DTSER_FAILURE (1)。…