如何为自定义 Zynq FPGA 比特流调整 buildroot
How to adapt buildroot for a custom Zynq FPGA bitstream
我将 buildroot 2017.02 用于带有 Xilinx 内核和 U-Boot 的 MicroZed 板目标。 Zynq 可编程逻辑 (PL) 比特流文件将由我使用 Vivado 自定义构建。 PL 必须与 u-boot 映像一起合并到位于目标 SD 卡上的 boot.bin 文件中。
如何配置 buildroot 将我自己的 PL 位流文件合并到 boot.bin?
注意:我想 boot.bin
文件是由 U-Boot 构建过程生成的。
U-Boot 构建过程无法生成 full-fledged boot.bin
。它只能将自己的 SPL(和一个 PMUFW,放在 ZynqMP 上)。
有几种方法可以加载比特流。一些选项,从最简单到最难:
- 将比特流存储在单独的文件或单独的闪存地址中
并让 U-Boot 使用
fpga load
命令加载它
- 将比特流存储在单独的文件中并从 Linux 加载它
(
cat bitstream.bit > /dev/xdevcfg
);但确保在 之前完成此操作
探测 FPGA 中设备的驱动程序
- 使用 https://github.com/antmicro/zynq-mkbootimage 生成
boot.bin
,
"an open source replacement of the Xilinx's bootgen application".
- 使用 Xilinx 的
bootgen
。
不过,预计将其集成到任何构建过程中都会遇到麻烦。
我将 buildroot 2017.02 用于带有 Xilinx 内核和 U-Boot 的 MicroZed 板目标。 Zynq 可编程逻辑 (PL) 比特流文件将由我使用 Vivado 自定义构建。 PL 必须与 u-boot 映像一起合并到位于目标 SD 卡上的 boot.bin 文件中。
如何配置 buildroot 将我自己的 PL 位流文件合并到 boot.bin?
注意:我想 boot.bin
文件是由 U-Boot 构建过程生成的。
U-Boot 构建过程无法生成 full-fledged boot.bin
。它只能将自己的 SPL(和一个 PMUFW,放在 ZynqMP 上)。
有几种方法可以加载比特流。一些选项,从最简单到最难:
- 将比特流存储在单独的文件或单独的闪存地址中
并让 U-Boot 使用
fpga load
命令加载它 - 将比特流存储在单独的文件中并从 Linux 加载它
(
cat bitstream.bit > /dev/xdevcfg
);但确保在 之前完成此操作 探测 FPGA 中设备的驱动程序 - 使用 https://github.com/antmicro/zynq-mkbootimage 生成
boot.bin
, "an open source replacement of the Xilinx's bootgen application". - 使用 Xilinx 的
bootgen
。 不过,预计将其集成到任何构建过程中都会遇到麻烦。