General QEMU Information

See the QEMU Wiki Page for more information on using QEMU.

Supported Zynq Devices

Below is a list of Zynq devices that Xilinx's QEMU supports:
  • 2 Cortex-A9s
  • DDR (Max 2GB)
  • OCM (256MB)
  • PFlash
  • Zynq SLCR (Mostly dummy implementation)
  • A9 MPCore
    • GIC
  • USB
  • UART
  • TTC
  • SDHCI
  • PL330 (DMA)
  • SMC (PL353) NAND
  • Ethernet
  • Xilinx DevCFG Interface
  • SPI
  • QSPI
    • N25Q128
  • I2C
    • N25Q128
    • AT24C08

Running a Zynq Linux Kernel Image In QEMU

Below is an example of booting a Linux image on a Zynq machine. The Linux kernel should start booting and a shell prompt should be displayed. Control A-X will exit QEMU.
$ ./aarch64-softmmu/qemu-system-aarch64 \
    -M arm-generic-fdt-7series -machine linux=on \
    -serial /dev/null -serial mon:stdio -display none \
    -kernel <path>/uImage -dtb <path>/devicetree.dtb --initrd <path>/uramdisk.image.gz
Example images can be found in the Zynq release tarball available at: http://www.wiki.xilinx.com/Zynq+Releases
Look for the ZC702, ZC706 or Zedboard images.

Both Zynq ARM Cortex A9 processors are running in Linux under QEMU. The following command shows both processor details.
zynq> cat /proc/cpuinfo

Below is an example of booting a Linux ELF image on a Zynq machine. The Linux kernel should start booting and a shell prompt should be displayed. Control A-X will exit QEMU.
$ ./aarch64-softmmu/qemu-system-aarch64 \
    -M arm-generic-fdt-7series -machine linux=on \
    -serial /dev/null -serial mon:stdio -display none \
    -kernel <path>/image.elf -dtb <path>/system.dtb
Complete Linux ELF images and device trees can be built by PetaLinux.

Both Zynq ARM Cortex A9 processors are running in Linux under QEMU. The following command shows both processor details.
zynq> cat /proc/cpuinfo