博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Zynq -- 启动过程
阅读量:4329 次
发布时间:2019-06-06

本文共 916 字,大约阅读时间需要 3 分钟。

Zynq7000就如同他的名字一样,Zynq-7000 Extensible Processing Platform,是一个可扩展处理平台,简单说就是有个FPGA做外设的A9双核处理器。

所以,它的启动流程自然也和FPGA完全不同,而与传统的ARM处理器类似。
Zynq7000支持从多种设备启动,包括Jtag, NAND, parallel NOR, Serial NOR (Quad-SPI), 以及SD卡。按手册说明除了Jtag之外的启动方式均支持安全启动,使用AES、SHA256加密后的启动代码
还是按照时间顺序来介绍下具体流程吧
1.在器件上电运行后,处理器自动开始Stage-0 Boot,也就是执行片内BootROM中的代码
2.BootROM会初始化CPU和一些外设,以便读取下一个启动阶段所需的程序代码,FSBL(First Stage Bootloader)。
不过这又有一个问题了----之前说到,Zynq支持多种启动设备,BootROM怎么知道从哪个启动设备里去加载FSBL?这就得靠几个特殊的MIO引脚来选择了,具体见下图
BootROM会去读取MIO[2..8],从而确定启动设备,将选定设备的头192Kbyte内容,也就是FSBL,复制到OCM中,并将控制器交给FSBL,。
3,FSBL启动时可以使用整块256Kb的OCM,当FSBL开始运行后,器件就正式由咱自己控制了。Xilinx提供了一份FSBL代码,如果没什么特殊要求,可以直接使用。
按照手册说明,FSBL应该完成以下几件事。
1). 使用XPS提供的代码,继续初始化PS
2). 将bitstream写入PL(配置FPGA),不过这一步也可以以后再做
3). 将接下来启动用的Second Stage Bootloader(SSBL,一般就是U-Boot一类的东西),或者裸奔程序,复制到内存中
4). 跳到SSBL运行去
4,接下来的步骤就没啥特别了,Uboot开始运行,初始化好Linux启动环境,然后开始运行Linux系统。

转载于:https://www.cnblogs.com/lizhi0755/p/3300881.html

你可能感兴趣的文章
mvc3.0 中dropdownlist的使用
查看>>
ranch 源码分析(三)
查看>>
Ip获取请求ip
查看>>
面试题 字符串去除空格
查看>>
SQL Server 性能优化3 该指数(Index)保养
查看>>
Bombing HDU, 4022(QQ糖的消法)
查看>>
玩转Web之servlet(三)---一张图看懂B/S架构
查看>>
字节流案例——复制文件
查看>>
题解报告:hdu 1863 畅通工程
查看>>
爬淘宝的商品信息 (上)
查看>>
BNUOJ 2345 Muddy Fields
查看>>
SQLServer数据类型优先级对性能的影响 (转)
查看>>
为什么三层交换机无法替代路由器?
查看>>
智课雅思词汇---十八、前缀peri是什么意思
查看>>
钓鱼比赛
查看>>
HDU 2457 DNA repair(AC自动机 + DP)题解
查看>>
以文件流的方式读取本地文件
查看>>
jinja2.exceptions.TemplateNotFound: home/index.html
查看>>
HTML的盒子模型(border和css的3种布局)
查看>>
codesmith注册
查看>>