ZYNQ开发之BootROM加载

1、概述
\quad 当完成系统复位后开始执行配置程序。CPU0执行BootROM程序,CPU1休眠等待CPU0唤醒。在执行BootROM程序时DAP和TAP JTAG控制器禁用。DDR控制器及其它外设不会被BootROM程序初始化。

\quad PL的启动和初始化序列可以与PS启动同时进行,也可以在启动之后进行。如果BootROM需要启动PL,然后在BootROM执行的早期,BootROM将写入devcfg.CTRL [PCFG_PROG_B]位,在开始执行BootROM之前一直等待devcfg.STATUS[PCFG_INIT]状态位的声明。

\quad 为了PCAP授权和镜像解码,PL端需要供电。BootROM在访问PL端资源之前设置了90s超时定时器测试PL状态。在引导过程中,PROGRAM_B设备引脚必须保持为高。在引导过程中将PROGRAM_B设备引脚保持在低位会导致设备锁定事件。

\quad 在等待PL启动阶段,写PL寄存器,清除PL配置内存,重新初始化PL配置内存,定时监测PL状态寄存器,如果在90s内完成了PL启动初始化就继续执行 BootROM程序,否则将系统锁存在安全模式(不会提供错误代码)。

2、BootROM流程图
在这里插入图片描述

3、BootROM Header搜索
\quad BootROM读取BootROM Header并且执行两次校验验证header是否正确,如果不正确就将地址增加32KB重复读取校验。BootROM Header中可包含寄存器初始化参数用于优化FSBL/User code拷贝到OCM的性能,或者路由代码到PL的解密单元中。

4、APU初始化
\quad BootROM配置APU和MIO多路复用器来支持引导过程。每个引导模式的MIO引脚状态都在表格中描述。BootROM使用CPU 0来执行ROM代码。CPU 1执行WFE(wait for enable)指令。BootROM配置MMU和其他系统资源,以满足BootROM执行的需要。

5、BootROM后APU和OCM状态
1)MMU,Icache,Dcache,L2 cache禁用
2)两个处理器处于监管状态
3)ROM代码不可访问
4)OCM内存的192KB从地址0x0000_0000开始可以被访问,OCM的高64KB从地址0Xffff_0000开始可以被访问
5)如果没有发生错误CPU0将执行引导镜像的阶段1
6)CPU1处在WFE状态直到执行地址段0xffff_fe00到0xffff_fff0的代码

6、BootROM阶段内存映射
在这里插入图片描述

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Zynq平台上,可以将Linux bit文件单独加载以实现系统的启动和运行。在这个过程中,我们需要将Bit文件加载到FPGA的可编程逻辑中,以便进行硬件加速和外设控制。 要单独加载Linux bit文件,我们需要使用Xilinx的Vivado开发环境来生成Bit文件。首先,我们需要创建一个Vivado工程,并将自定义的硬件设计与系统参考设计集成在一起。然后,我们可以使用Vivado生成Bit文件。 加载Bit文件的过程与将Bit文件集成到完整的系统中的过程不同。在这个过程中,我们不需要重新生成设备树或重新编译内核。相反,我们需要在Linux系统中使用devcfg驱动程序来将Bit文件加载到FPGA中。 首先,我们需要将Bit文件复制到Linux系统中,并将其放置在/dev/shm目录下。然后,我们可以使用devcfg驱动程序来加载Bit文件。我们可以使用devcfg的命令行接口或库函数来进行操作。 使用devcfg命令行接口,我们可以使用以下命令来加载Bit文件: ``` devcfg -i /dev/xdevcfg -f /dev/shm/bitfile.bit ``` 其中,-i参数指定devcfg设备的文件路径,-f参数指定要加载的Bit文件的路径。 通过编程接口,我们可以使用devcfg库函数来加载Bit文件。首先,我们需要打开/dev/xdevcfg设备文件,并使用ioctl系统调用来加载Bit文件。加载Bit文件后,我们可以关闭设备文件。 加载Bit文件后,FPGA会加载新的逻辑配置。此时,我们可以在Linux系统中通过设备树和驱动程序来访问新配置的硬件资源。 总的来说,Zynq平台上的Linux bit文件单独加载可以通过Vivado生成Bit文件,并使用devcfg驱动程序将其加载到FPGA中。这样,我们可以在Linux系统中访问新配置的硬件资源并实现硬件加速和外设控制。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值