下图描述了BootROM读取FSBL到OCM中的流程:ARM上电后执行BootROM,发现有合法镜像(BOOT.BIN)后判断是否要在FLASH中执行(利用XIP技术就不用把代码读到RAM中了,NOR FLASH支持),若没有合法镜像则到下一个32K的偏移处寻找镜像。如果不XIP,则将FSBL载入到OCM中执行,因为此时OCM是不能使用DDR的,之后开始执行F
二、ZYNQ启动流程 1.阶段0:stage-0 Boot(BootRom) 这个阶段主要运行芯片内部固化的bootrom程序,这个bootrom主要是识别启动模式是spi,sd car,nand flash还是nor flash还是emmc,到底 是哪一种? 依据启动模式,设置响应的外设,引脚,时钟; 将FABL从启动介质中搬移到OCM片上Memory中; 跳转到FSBL处执行,将控制权交给FSB...
0x30地址记录了fsbl代码在BOOT.BIN文件中的位置偏移量,0x34记录了fsbl代码的长度,0x38记录了fsbl代码在SRAM中的加载地址,BootROM代码解析到这些信息之后,就会从FSBL代码的位置偏移量去读取0x34地址中记录的大小,然后把它拷贝到FSBL代码的加载地址中。最后跳转到0x3C地址中记录的FSBL的运行地址中去启动FSBL。 简述通过...
ZYNQ的启动配置分多级进行的。配置至少需要两步,但通常按如下三个阶段进行:阶段:该阶段简称为BootROM,控制着整个芯片的初始化过程。放在BootROM中的代码是固化的,不可修改的,处理器核在上电或者热启动时自动执行这部分代码。阶段1:该阶段的启动加载器(FSBL)也可以由用户代码控制。阶段2:这阶段通常可以是...
下图是一个简单的FSBL流程图: 3、第二阶段启动流程:Second Stage Bootloader 第二阶段引导加载程序是可选的,并由用户设计,一般是在跑系统的情况下使用,比如 linux 系统的u-boot(用petalinux 工具制作 linux 系统 ) 二、制作FSBL第一阶段的启动代码 1、新建一个名为 fsbl 的 APP,特别注意硬件平台选择我们自己配置...
为了在一个 Zynq-7000 AP 设备上启动 Linux,在引导用的介质上需要有这四个文件: 1. BOOT.BIN 2. zImage 3. devicetree.dtb 4. ramdisk8M.image.gz 这些文件中的第一个 (BOOT.BIN)是 Zynq 引导程序的映像文件。它实际上是两个必不可少的文件,FSBL 和 SSBL 的可执行可链接格式 (.elf)文件,以及一个...
ZYNQ启动分为两个阶段 第一阶段是 BOOT ROM(ZYNQ厂家固化代码) 第二阶段是 FSBL (First Stage Bootloader)SDK工具来制作。 经过以上两个阶段,PL端配置程序及应用程序才开始运行。 1.1 第一阶段 (BOOT ROM) 上电后,Zynq7000 SOC 会首先执行片内 Boot ROM 代码,Boot ROM 代码读取 Boot mode 寄存器来判断是哪...
ZYNQ的启动流程如下: 在器件上电运行后,处理器自动开始Stage-0 Boot,也就是执行片内BootROM中的代码。 BootROM会初始化CPU和一些外设,以便读取下一个启动阶段所需的程序代码。将选定设备的头192Kbyte内容,也就是FSBL(First Stage Bootloader),复制到OCM(On Chip Memory)中,并将控制器交给FSBL。
下图是一个简单的FSBL流程图: 12.5、第二阶段启动流程:Second Stage Bootloader 第二阶段引导加载程序是可选的,并由用户设计。 Zynq-7000 AP SoC BootROM加载程序需要引导映像头,它加载单个分区,通常是FSBL。引导映像的其余部分由FSBL加载和处理。 xilinx提供了一个名为Bootgen的实用程序(用来创建一个适合ROM或Fash...
Stage-1 执行FSBL(first boot loader)代码,用户可修改。如果是裸机程序也可以不需要这个阶段直接跳到下一阶段。 Stage-2 执行用户裸机程序或者操作系统的启动引导程序SSBL(second boot loader) 关于BootROM:位于Zynq片内,功能是初始化L1 cache和基本的总线系统,以及从指定的外部存储器加载Stage-1的FSBL代码到片内存储...