一, ZYNQ 的启动镜像我们需要执行以下文件:
1、 Boot ROM 头文件:控制 Boot ROM 设置,比如就地执行、加密、FSBL 偏移量、镜像文件大小等;
2、 First-Stage Boot Loader;
3、 PL 配置文件,即 BIT 文件;
4、 运行在 PS 上的软件应用程序。
其中,FPGA BIT文件定义 PL 的行为。PS软件elf运行在 PS 中的程序。
在 ZYNQ 中,PS 作为主器件,PL 可以看作是 PS 的一个外设,因此需要由 PS 来配置 PL。这个配置顺序的优势是它允许对 PS 单独上电的时候,此时 PL 不上电,以减小功耗。不过也有例外,就是我们在使用JTAG 下载程序的时候,此时是使用电脑作为主机来配置 PL。
软件代码和配置 FPGA 的 BIT 文件可以存储在连接到 PS 端的配置存储器件中。PS 支持多种片外非易失性存储器(Quad SPI Flash,NAND Flash,NOR Flash 或 SD 卡)。
二,ZYNQ SoC 的启动由片上的 BootROM 开始。
片上BootROM 是ZYNQ上的一块非易失性存储器,它包含了ZYNQ所支持的配置器件的驱动,而且里面的代码是不可修改的。BootROM中代码首先会在片外的非易失性存储器中寻找一个头文件,头文件里定义了一些启动信息,用于配置BootROM的运行。这些启动信息包括是程序是否就地执行(excute in place),FSBL 的偏移地址以及是否为安全模式等。头文件的存在确保BootROM能够按照配置器件被格式化后的方式操作。BootROM 执行之后,下一个配置阶段被称为 First-Stage Boot Loader