Xilinx Zynq board (xilinx-zynq-a9)
The Zynq 7000 family is based on the AMD SoC architecture. These products integrate a feature-rich dual or single-core Arm Cortex-A9 MPCore based processing system (PS) and AMD programmable logic (PL) in a single device.
The SoC is documented in the Zynq 7000 Technical Reference manual.
The QEMU xilinx-zynq-a9 board supports the following devices:
Arm Cortex-A9 MPCore CPU
Cortex-A9 CPUs
GIC v1 interrupt controller
Generic timer
Watchdog timer
OCM 256KB
SMC SRAM 64MB
Zynq SLCR
SPI x2
QSPI
UART
TTC x2
Gigabit Ethernet Controller x2
SD Controller x2
XADC
Arm PrimeCell DMA Controller
DDR Memory
USB 2.0 x2
Running Buildroot ZC702 Images
Buildroot has a ZC702 defconfig. Buildroot 2026.05 release is tested at the time of writing. From the Buildroot source tree:
$ make zynq_zc702_defconfig
$ make
The generated files are in output/images/. The examples below use:
u-boot.bin
uImage
sdcard.img
QEMU’s SD card model requires a power-of-two image size. Work on a copy of the Buildroot SD image and resize the copy, not the original output:
$ cp output/images/sdcard.img sdcard-qemu.img
$ qemu-img resize -f raw sdcard-qemu.img 128M
To boot through the U-Boot image generated by Buildroot, use the generic
loader device to place the raw u-boot.bin at the address it was linked
for and start the CPU there. The zynq_zc702_defconfig U-Boot image is
U-Boot proper, not a Zynq boot ROM image, and is linked at 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
Direct Linux boot of the generated Buildroot image is also supported. The Zynq
ZC702 DTB is generated by Buildroot and is located in
output/images/zynq-zc702.dtb. The kernel image is generated as a 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
For configuring the boot-mode provide the following on the command line:
-machine boot-mode=qspi
Supported values are jtag, sd, qspi and nor.