电子产品世界 » 论坛首页 » 企业专区 » Xilinx » Zynq7000启动流程介绍


共2条 1/1 1 跳转至

Zynq7000启动流程介绍

助工
2017-09-01 08:27:35    评分

 打了半天。。。一不小心碰到鼠标后退键,啥都木了。。。再来吧

一开始呢,我以为Zynq7000是一个加上了双核A9处理器的FPGA芯片。但是看了资料后,才发现,其实不是这么回事

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

所以,它的启动流程自然也和FPGA完全不同,而与传统的ARM处理器类似。

Zynq7000支持从多种设备启动,包括Jtag, NAND, parallel NOR, Serial NOR (Quad-SPI), 以及SD卡。按手册说明除了Jtag之外的启动方式均支持安全启动,使用AESSHA256加密后的启动代码

(不过在勘误里说到,当前硅片版本的无法正常使用secure configuration功能,所以俺就不介绍它鸟)

 

还是按照时间顺序来介绍下具体流程吧

1.在器件上电运行后,处理器自动开始Stage-0 Boot,也就是执行片内BootROM中的代码

2.BootROM会初始化CPU和一些外设,以便读取下一个启动阶段所需的程序代码,FSBLFirst Stage Bootloader)。

不过这又有一个问题了----之前说到,Zynq支持多种启动设备,BootROM怎么知道从哪个启动设备里去加载FSBL?这就得靠几个特殊的MIO引脚来选择了,具体见下图

U]1X6CP6KON{@@F6~V2~~I5.png

BootROM会去读取MIO[2..8],从而确定启动设备,将选定设备的头192Kbyte内容,也就是FSBL,复制到OCM中,并将控制器交给FSBL,。

3FSBL启动时可以使用整块256KbOCM,当FSBL开始运行后,器件就正式由咱自己控制了。Xilinx提供了一份FSBL代码,如果没什么特殊要求,可以直接使用。

按照手册说明,FSBL应该完成以下几件事。

   1). 使用XPS提供的代码,继续初始化PS

   2). bitstream写入PL(配置FPGA,不过这一步也可以以后再做

   3). 将接下来启动用的Second Stage BootloaderSSBL,一般就是U-Boot一类的东西),或者裸奔程序,复制到内存中

   4). 跳到SSBL运行去

4,接下来的步骤就没啥特别了,Uboot开始运行,初始化好Linux启动环境,然后开始运行Linux系统。

 

初步看资料的收获,如果有啥地方没说对,欢迎指正




菜鸟
2018-03-22 20:45:02    评分
2楼

卢老师?


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]