ZYNQ启动


参考:Ug585

一、BootRom

硬件复位(PS_POR_B)结束后,采集boot strap pins并且配置一些参数。,然后PS执行BootRom代码。(BootRom:片上ROM,用来启动系统)
non-POR复位也会执行BootRom,但不会采集strap pins。
non-POR包括PS_SRST_B和一些内部的复位
BootRom代码是APU里运行的第一个软件代码,BootRom中的代码不可修改
BootRom在CPU0中执行,CPU1执行wait-for-event

第一个启动的软件是BootRom代码,然后是FSBL/用户代码,最后是系统代码。BootRom的主要任务是配置系统、将启动镜像FSBL/用户代码拷贝到OCM中。

FSBL:第一启动阶段引导程序,裸机应用程序想要加载到DDR中是靠FSBL引导的

如果BootRom文件头是无效的,那么它会继续查找其它的文件头,在其范围里直到查找到了一个正确的文件头。文件头查找支持QSPI、NAND、NOR,而SD卡仅支持查找一次文件头。
Bootrom头文件包含一打参数来指导bootrom运行流程,例如可以选择安全模式,即加密状态下的一个参数。头文件包含了镜像参数的长度,这个长度定义了FSBL/用户代码加载到OCM中运行的长度,该长度被限制在192KB.

二、启动镜像

PS的主启动器件可以包含一个或多个启动镜像
启动镜像由BootRom文件头和FSBL组成
如果包含了PL的程序,启动器件也可包含比特流和嵌入式操作系统
PS的主启动模式:
在主启动模式下,从flash存储器中启动系统,BootRom会配置PS来访问启动器件。

在加密模式下,总是由CPU将启动镜像拷贝到OCM中。然后,发送到AES/HMAC单元进行解密和认证。BootRom完成后,解密的启动镜像会被写回到OCM
在非加密模式下,BootRom文件头可以指示PS直接在非易失性存储器里执行(即不把它们拷贝到OCM中)。(也可以拷贝到OCM中运行)

JTAG可以访问ARM的DAP控制器和PL的TAP控制器
在JTAG启动模式下,BootRom代码配置最小系统并使能JTAG接口。然后,系统会进入空闲状态来等待DAP控制器重启CPU0.级联的JTAG模式会环回DAP和TAP控制器,这是最常规的JTAG模式。

三、ZYNQ启动过程

启动过程

PS:

  • 所有寄存器复位,硬件读取MIO模式引脚(固定的几个MIO)
  • JTAG、DDR等处于一个除能的状态
  • 根据模式引脚的设置判断是否使能PLL,若PLL处于旁路状态,则进入下一个状态;否则,使能PLL
  • Bootrom执行:对ZYNQ芯片做一些最基本的外设初始化、从一些非易失性存储器中将FSBL读到OCM。读取成功则进入下一个阶段,失败则锁定。
  • FSBL对DDR等更多外设初始化,继续从启动镜像里读取比特流或裸机应用程序。 运行操作系统、裸机

PL:

  • 上电状态
  • 初始化状态:在安全模式下PL此时必须要上电完成
  • 配置、使能状态:FSBL应用程序是可以清除、配置应用程序或使能PL的逻辑

在PS参考时钟的45个时钟周期内,硬件会采集7个启动模式引脚

FPGA bit文件:定义PL的行为
软件ELF文件:运行在PS中的程序

ZYNQ无法只固化PL的程序,固化PL的程序必须加入PS
ZYNQ中,PL可以看作是PS的一个外设,需要由PS来配置PL
PL的配置通过PCAP进行,PS启动运行之后,PL可以在任意时刻被配置

启动模式引脚

在这里插入图片描述

模式引脚MIO[8:2]:

前四个引脚定义启动模式
第五个引脚定义是否使用PLL
第六、七个引脚定义上电过程中bank0和bank1的电压

流程总结

在这里插入图片描述

  1. ZYNQ的启动由片上的bootrom开始,bootrom的代码会首先在片外的非易失性存储器中寻找一个头文件(头文件里定义了一些启动信息,用于配置bootrom的运行)。
  2. Bootrom执行之后,到了FSBL阶段(由设计者所创建)

FSBL工作内容总结:
初始化PS
如果提供了bit文件,则配置PL
加载裸机应用程序到DDR中,或者加载SSBL
开始执行裸机应用程序或SSBL

重建一个ZYNQ的启动镜像需执行以下文件:
3. Bootrom头文件:控制bootrom设置(如就地执行、加密、FSBL偏移量、镜像文件大小等)
4. FSBL
5. PL配置文件,即bit文件
6. 运行在PS上的软件应用程序

启动镜像=bootrom头文件(软件自动生成,bootrom用)+FSBL/用户代码ELF文件+PL的bit流(可选)+系统/应用程序ELF文件(可选)。

  • 22
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hi小瑞同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值