zynq中的BootROM
文章目录
- 1. BootROM简介
- 2.SD卡启动
- 3.QSPI启动
1. BootROM简介
- BootROM是固化在zynq芯片内部非易失性存储器中(zynq有256K的SRAM及128K的ROM)的一段代码,掉电不丢失。用于启动、引导FSBL代码。找到BOOT.BIN所在位置并从中提取FSBL,将FSBL代码拷贝到zynq中的256K-SRAM中运行(此时DDR还没有被初始化,这是FSBL的工作)。
- BootROM这段代码通常保存在Nor flash中,特点是芯片内执行(XIP ,eXecute In Place),这样应用程序可以直接在Flash闪存内运行,不必再把代码读到系统RAM中。
- 要完成上述功能,BootROM必须满足如下要求:
- 包括SD卡或者QSPI等存储设备的驱动程序
- 支持文件系统操作(至少支持FAT32,因为将SD卡格式化为FAT32后拷贝进BOOT.BIN的)
- 对于基于zynq的嵌入式Linux系统,BootROM引导启动FSBL,FSBL引导启动U-Boot,U-boot引导启动Linux内核。
2.SD卡启动
- 对SD卡的要求:
- 标准的SD卡设备
- 支持FAT32文件系统
- SD卡不大于32GB
- SD卡启动流程
- 1、对MIO引脚进行初始化,主要是物理特性进行配置,如功能、I/O、使能/三态/上下拉。如下图中MIO40-MIO45所示。硬件设计时必须将SD卡连接至zynq的MIO40-MIO45这几个PIN
- 2、初始化SD卡,驱动SD卡对其进行读写
- 3、读写测试
- 4、从SD卡文件系统中读取Boot.BIN文件,对BootROM(包括FSBL加载地址、大小、位置偏移)进行解析(XilinxUG585的说法,但是似乎叫Boot.bin头更合适,后面的QSPI部分也是一样)
- 5、BootROM从BOOT.BIN中拷贝FSBL代码到SRAM中,并跳转到FSBL代码的运行地址启动FSBL。这样BootROM就完成任务了,接下来由FSBL接管
- 1、对MIO引脚进行初始化,主要是物理特性进行配置,如功能、I/O、使能/三态/上下拉。如下图中MIO40-MIO45所示。硬件设计时必须将SD卡连接至zynq的MIO40-MIO45这几个PIN
3.QSPI启动
- 对QSPI的要求
- QSPI启动流程
- 1、初始化与QSPI相关的MIO引脚,见下表:
- 2、初始QSPI Flash外设,实现读写
- 3、读写测试
- 4、从QSPI中读取BOOT.BIN,对BootROM头进行解析。(BootROM代码按照一定的文件格式去从QSPI的0x0000去找BOOT.BIN文件,若没有就从0x8000,还没有就从0x10000,…,但是搜索范围不能超过前16MB的空间)
- 5、解析得到FSBL代码的大小、位置偏移及FSBL的加载地址后,从QSPI中拷贝FSBL代码到SRAM,启动之
- 1、初始化与QSPI相关的MIO引脚,见下表:
zynq中的BootROM相关推荐
- FPGA - Zynq - 加载 - BootRom
FPGA - Zynq - 加载 - BootROM 题外话 BootROM BootROM Header Definition BootROM Header Searching and Loadin ...
- zynq学习03 zynq中三种实现GPIO的方式
http://m.blog.csdn.net/article/details?id=52123465 http://blog.chinaaet.com/songhuangong/p/43084 本文介 ...
- zynq中纯Programmable Loigc编程
https://blog.csdn.net/yc461515457/article/details/41553363 没接触zynq之前,只用过FPGA,在FPGA中用verilog编程简单明了,后来 ...
- zynq中mgtx应用_【干货分享】ZYNQ常用外设设计 (上)
2. IO的电压为1.8V. 3. 默认使用的参数为:115200波特率以及其他对应参数,见图 21. Step2: 在Vivado的Block Design中配置ZYNQ7 Processing S ...
- zynq中interrupts的学习笔记(一)
本学习笔记参考UG585-Zynq-7000-TRM.pdf ch.7:Interrupts.文中有说的不够严谨或者是有错误的地方,欢迎指正! zynq中的interrupts有很多种,大体上分为三类 ...
- ZYNQ中DMA与AXI4总线-DMA简介
ZYNQ中DMA与AXI4总线 为什么在ZYNQ中DMA和AXI联系这么密切?通过上面的介绍我们知道ZYNQ中基本是以AXI总线完成相关功能的: 图4‑34 连接 PS 和 PL 的 AXI 互联和接 ...
- ZYNQ中裸机开发和Linux开发有什么区别?
ZYNQ架构特征 从高层次的角度去看,Zynq架构包含PS和PL两部分以及之间的互连线.如图2.3所示.互联遵循AXI标准,AXI标准是Arm开发的片上通信技术标准. 将PS和PL集成到一起一方面能够 ...
- Zynq中FPGA上电时序
因为ZYNQ 的PS 和PL 部分的电源有上电顺序的要求,在电路设计中,按照ZYQN 的电源要求设计,上电依次为1.0V -> 1.8V -> 1.5 V -> 3.3V -> ...
- ZYNQ中AXI-Lite,AXI4 和 AXI-Stream 三种总线特点
AXI 全称 Advanced eXtensible Interface,是 Xilinx 从 6 系列的 FPGA 开始引入的一个接口协 议,主要描述了主设备和从设备之间的数据传输方式.在 ZYNQ ...
最新文章
- running build_ext building ‘gensim.models.word2vec_inner‘ extension error: Microsoft Visua
- 如何在Git历史记录中grep(搜索)已提交的代码
- 【杂谈】您想要的docker环境来了!
- html方框中能放置图片么,html中的img标签你不知道的那些细节!
- matlab 层次聚类
- NET问答: String 和 string 到底有什么区别?
- PRML(1)--绪论(上)多项式曲线拟合、概率论
- 新一代高效Git协同模型AGit-Flow详解
- linux nginx 配置端口访问,Linux入门教程:ubuntu 16.04配置nginx服务器实现一个IP一个端口多个站点,ubuntunginxNginx 使用异步...
- 软件测试需注意的事项
- 数据转换transform练习
- 吉比特2018校招 走格子游戏
- 助教日志_沈航1.2班第一二周作业
- 单元测试测试用例覆盖率为0
- 三维切面(水平面、冠状面、矢状面)的几种操作
- [Place 30-51] IDELAYCTRL elements have been found to be associated with IODELAY_GROUP ‘CAMERALINK‘,
- 艾兰岛编辑器-UI面板
- jQuery中过滤选择器的eq,ne等于gt大于lt小于
- 《数据结构》C语言版 严蔚敏版本 学习笔记
- 研学堂|基于MCC800P运动控制卡的关节型机械手简易控制