本文基于zynq芯片,利用SDK软件合成fsbl文件、pl端的bit镜像、u-boot镜像、内核uImage、设备树和ramdisk根文件系统镜像为BOOT.bin文件的过程。利用PL提供的hdf文件,在打开Xilinx的SDK(建议使用SDK2017.2版本)软件中生成fsbl文件,生成fsbl文件的流程本节不做介绍,请参考前述章节描述。SDK合成待烧录的BOOT.bin镜像,需要准备如下表所示的文件的,然后利用SDK的Create Image Boot工具进行合成。
表 1 SDK合成ZYNQ的BOOT.bin文件列表
顺序 | 文件名 | 文件说明 | 偏移地址 | 备注 |
1 | zynq_fsbl.elf | fsbl文件 | / | |
2 | Top.bit | PL端bit文件 | / | 若如pl,可以不添加 |
3 | u-boot.elf | Uboot镜像 | / | |
4 | uImage | 内核镜像 | 0x520000 | |
5 | devicetree.dtb | 设备树镜像 | 0x920000 | |
6 | ramdisk.img.gz.uboot | 文件系统镜像 | 0x930000 |
1.SDK进行Create Image Boot界面,创建Image Boot,流程如下所述:

2.在Image Boot界面设置芯片架构,Bif文件和输出BIN文件名。

3.添加zynq_fsbl.elf文件。
、

4.添加FPGA的bit文件project_top.bit。注意:如有PL的project_top.bit文件,执行该步骤;若无PL的project_top.bit文件,跳过该步骤到下一步。

5.添加u-boot.elf。

6.添加uImage内核镜像文件。

7.添加devicetree.dtb设备树镜像文件。

8.添加ramdisk.img.gz.uboot根文件系统镜像文件。

9.生成BOOT.bin。

注意事项:
1、以上流程中uImage内核镜像、devicetree.dtb设备树镜像和ramdisk.img.gz.uboot根文件系统镜像的偏移需要根据具体对NorFlash空间分配进行配置,不同的要求,偏移地址可能存在不同;
2、以上在SDK 2017.2的版本上合成使用,亲测在2017.2的版本下载到自定义板卡是可行的,使用其他版本下载可能存在差异。