Zynq 7000 PS Arguments for QEMU - 2023.1 English

Vitis Unified Software Platform Documentation: Application Acceleration Development (UG1393)

Document ID
UG1393
Release Date
2023-07-17
Version
2023.1 English

Zynq 7000 PS(a9) is emulated by qemu-system-aarch64 QEMU binary. Most common command line switches of PS are captured in qemu_args.txt.

Tip: You can add comments to the pmc_args.txt, qemu_args.txt, and pmu_args.txt files using the '#' symbol at the start of the line.
Table 1. Zynq 7000 Options for qemu_args.txt
Switch Name Value Description Source of the Config How to Extract the Info
-M arm-generic-fdt-7series Indicates the QEMU machine to create. arm-generic-fdt-7series tells QEMU to parse dtb for machine generation, passes by -hw-dtb user.dtb. Static Hard coded for Zynq 7000 devices
-serial -serial /dev/null -serial mon:stdio Redirect the serial port to specified char dev (i.e., stdio, tcp port, file, etc.) Based on the UART configuration of the Zynq IP.

Zynq 7000 has two UARTs.

When enabling UART0:
CONFIG.PCW_UART0_PERIPHERAL_ENABLE = 1 
CONFIG.PCW_UART1_PERIPHERAL_ENABLE = 0 or 1

Then specify: -serial mon:stdio

When enabling only UART1:
CONFIG.PCW_UART1_PERIPHERAL_ENABLE = 1

Then specify: -serial null -serial mon:stdio

-device loader,addr=0xf8000008,data=0xDF0D,data-len=4 -device loader,addr=0xf8000140,data=0x00500801,data-len=4 -device loader,addr=0xf800012c,data=0x1ed044d,data-len=4 -device loader,addr=0xf8000108,data=0x0001e008,data-len=4 -device loader,addr=0xF800025C,data=0x00000005,data-len=4 -device loader,addr=0xF8000240,data=0x00000000,data-len=4 Register writes to SLCR block, to set PLL and CLK_CTRL regs (required for Linux). Static Hard coded for Zynq 7000 devices
-boot mode=5 Boot mode 5 is for SD boot. v++ -p  
-kernel <u-boot.elf> Guest software to load during boot up. Static <u-boot.elf> is replaced with the absolute path of u-boot.elf from the target platform
-machine linux=on Make QEMU itself a loader of the Linux image. Static Hard coded for Zynq 7000 devices