Xilinx Zynq 板(xilinx-zynq-a9)

Zynq 7000 系列基于 AMD SoC 架构。这些产品在单个器件中集成了功能丰富的双核或单核 Arm Cortex-A9 MPCore 处理系统(PS)以及 AMD 可编程逻辑(PL)。

该 SoC 的文档为 Zynq 7000 技术参考手册。

QEMU 的 xilinx-zynq-a9 板支持以下设备:

  • Arm Cortex-A9 MPCore CPU

    • Cortex-A9 CPU

    • GIC v1 中断控制器

    • 通用定时器

    • 看门狗定时器

  • OCM 256KB

  • SMC SRAM 64MB

  • Zynq SLCR

  • 两个 SPI

  • QSPI

  • UART

  • 两个 TTC

  • 两个千兆以太网控制器

  • 两个 SD 控制器

  • XADC

  • Arm PrimeCell DMA 控制器

  • DDR 内存

  • 两个 USB 2.0

运行 Buildroot ZC702 镜像

Buildroot 提供了 ZC702 defconfig。撰写本文时测试了 Buildroot 2026.05 发布版。在 Buildroot 源代码树中执行:

$ make zynq_zc702_defconfig
$ make

生成的文件位于 output/images/。以下示例使用:

  • u-boot.bin

  • uImage

  • sdcard.img

QEMU 的 SD 卡模型要求镜像大小为二的幂。请复制 Buildroot SD 镜像并调整副本大小,不要修改原始输出:

$ cp output/images/sdcard.img sdcard-qemu.img
$ qemu-img resize -f raw sdcard-qemu.img 128M

要通过 Buildroot 生成的 U-Boot 镜像启动,请使用通用加载器设备将原始 u-boot.bin 放到其链接地址,并从该地址启动 CPU。zynq_zc702_defconfig U-Boot 镜像是 U-Boot proper,而不是 Zynq 启动 ROM 镜像,其链接地址为 0x04000000:

$ qemu-system-arm -M xilinx-zynq-a9 -m 1G \
    -machine boot-mode=sd \
    -display none -serial null -serial mon:stdio \
    -device loader,file=output/images/u-boot.bin,addr=0x04000000,cpu-num=0 \
    -drive file=sdcard-qemu.img,if=sd,format=raw

也支持直接启动生成的 Buildroot Linux 镜像。Zynq ZC702 DTB 由 Buildroot 生成,位于 output/images/zynq-zc702.dtb。内核镜像以 uImage 格式生成:

$ qemu-system-arm -M xilinx-zynq-a9 -m 1G \
    -display none -serial null -serial mon:stdio \
    -kernel output/images/uImage \
    -dtb output/images/zynq-zc702.dtb \
    -append "console=ttyPS0,115200 root=/dev/mmcblk0p2 rw rootwait" \
    -drive file=sdcard-qemu.img,if=sd,format=raw

要配置启动模式,在命令行中提供:

-machine boot-mode=qspi

支持的值为 jtag、sd、qspi 和 nor。