设为首页收藏本站
查看: 13026|回复: 0

Z-Turn Board U-Boot启动流程

[复制链接]

231

主题

64

回帖

2145

积分

管理员

积分
2145
玉米糊 发表于 2015-6-4 17:59:18 | 显示全部楼层 |阅读模式
Z-Turn Board使用Xilinx的Zynq 7000系列芯片,即Zynq-7000 Extensible Processing Platform,是一个可扩展处理平台,简单说就是有个FPGA做外设的A9双核处理器

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

Zynq7000支持多种设备启动,包括Jtag、NAND、parallel NOR、Serial NOR (Quad-SPI)以及SD卡。按手册说明除了Jtag之外的启动方式均支持安全启动,使用AES、SHA256加密后的启动代码 (不过在勘误里说到,当前硅片版本的无法正常使用secure configuration功能,所以俺就不介绍它鸟)

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

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

2、BootROM会初始化CPU和一些外设,以便读取下一个启动阶段所需的程序代码:FSBL(First Stage Bootloader)。
不过这又有一个问题了,之前说到,Zynq支持多种启动设备,BootROM怎么知道从哪个启动设备里去加载FSBL?这就得靠几个特殊的MIO引脚来选择了,具体见下图。
bootmod.jpg
BootROM会去读取MIO[2..8],从而确定启动设备,将选定设备的头192Kbyte内容,也就是FSBL,复制到OCM中,并将控制器交给FSBL。

3、FSBL启动时可以使用整块256Kb的OCM,当FSBL开始运行后,器件就正式由咱自己控制了。Xilinx提供了一份FSBL代码,如果没什么特殊要求,可以直接使用。 按照手册说明,FSBL应该完成以下几件事。
  • 使用XPS提供的代码,继续初始化PS(ARM)。
  • 将bitstream写入PL(配置FPGA),不过这一步也可以以后再做。
  • 将接下来启动用的Second Stage Bootloader(SSBL,一般就是U-Boot一类的东西),或者裸奔程序,复制到内存中
  • 跳到SSBL运行去

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


回复

使用道具 举报

您需要登录后才可以回帖 登录

本版积分规则

Archiver|手机版|小黑屋|米尔科技论坛   

GMT+8, 2024-4-27 11:38 , Processed in 0.059293 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表