This README file contains information on running Yocto on QEMU while emulating a Zynq-based machine. QEMU emulation features Feature Support Notes UP yes SMP yes TTC yes UART yes both UARTs usable, ttyPS0 is on second UART just like on the ZC702 board PL330 yes SLCR yes GPIO yes 0-7 output connected to 54-61 input DEVCFG yes EMAC yes Two interfaces emulated, one supported in BSP 88E1116R yes Ethernet PHY (Marvell); on board SDHCI yes Two interfaces emulated QSPI no Only linear mode emulated SPI yes S25FL064K yes SPI flash, 8MB NAND yes NAND02GR3B yes NAND flash, 256MB NOR yes 28F128J3A yes NOR flash, 16MB I2C yes two interfaces emulated, no devices attached USB yes host only CAN no Building Build the qemu-native target. The meta-zynq layer is configured to build a QEMU version from Xilinx that emulates the devices mentioned before. Booting The QEMU version built does not integrate with the runqemu script. Use the following command line from the build directory: tmp/sysroots/i686-linux/usr/bin/qemu-system-arm -m 512 \ -M xilinx-zynq-a9 \ -serial /dev/null -serial vc -monitor stdio \ -kernel tmp/deploy/images/uImage-zynq.bin \ -kern-dtb tmp/deploy/images/uImage-zynq-qemu_sd.dtb \ -sd tmp/deploy/images/core-image-zynq-zynq.ext3 -sd /dev/null This assumes that you have built the core-image-zynq and linux-yocto targets. The two -sd parameters are both needed. You can replace the first one with a copy of the root image file or you can decompress the core-image-minimal-zynq.ext2.bz2 and use that instead. You can also replace the second one with an image file for extra space, it will appear as /dev/mmcblk1 in Linux. You can activate the first serial port too (it will appear as /dev/ttyPS1) or switch one of the serial ports to stdio and the monitor to a virtual console. Read the QEMU documentation for more details. Storage Apart from the SDHCI emulated interfaces discussed previously, flash devices are emulated on the SPI, NAND and NOR interfaces. The device tree is configured with 4MB partitions on each device, but you can modify it to create more partitions or delete them and use the entire device. All flash emulators can use a file to store the data. Create a 16MB file for NOR, 8MB file for SPI and a 276824064 bytes file for NAND. The NAND file should be initially filled with 0xFF, otherwise the bad block management in the kernel will think the flash pages are bad. Pass the following options to qemu: -pflash -mtdblock -mtdblock If you don't want a SPI file but do want a NAND file, use /dev/null for SPI because the NAND emulator uses the second mtdblock file. If you don't want a NOR file, just don't use the pflash option.