qemu-zynq7: Add qemu wiring for zc706 machine
Enable qemuboot for qemu-zynq7 machine using qemu-xilinx provider
@@ -12,13 +12,34 @@ SERIAL_CONSOLE = "115200 ttyPS0"
MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "device-tree"
+HDF_MACHINE = "zc702-zynq7"
+
# Use the networking setup from qemuarm
FILESOVERRIDES_append_pn-init-ifupdown = ":qemuarm"
-# This machine is a targeting a QEMU model, runqemu setup:
-IMAGE_CLASSES += "qemuboot"
+IMAGE_CLASSES += "qemuboot-xilinx"
+
QB_MEM = "-m 1024"
-QB_MACHINE = "-machine xilinx-zynq-a9"
-QB_OPT_APPEND = "-nographic -serial null -serial mon:stdio"
-QB_NETWORK_DEVICE = "-net nic,netdev=net0,macaddr=@MAC@"
+QB_NETWORK_DEVICE = "-net nic,netdev=eth0 -netdev user,id=eth0,tftp=/tftpboot -net nic"
+QB_DEFAULT_KERNEL_qemuboot-xilinx = "zImage"
+
+QB_SYSTEM_NAME ?= "${@qemu_target_binary(d)}"
+QB_DEFAULT_FSTYPE = "cpio.gz.u-boot"
+QB_DTB = "system.dtb"
+QB_ROOTFS_OPT_qemuboot-xilinx = " -drive if=sd,index=1,file=@ROOTFS@,format=raw"
+
+# Xilinx's fork of QEMU has much better results, so let's default to that
+# Use qemu-xilinx instead of mainline
+PREFERRED_PROVIDER_qemu-helper-native = "qemu-xilinx-helper-native"
+# Replicate BootROM like behaviour, having loaded SPL and PMU(ROM+FW)
+QB_OPT_APPEND = " \
+ -nographic -serial null -serial mon:stdio \
+ -initrd ${DEPLOY_DIR_IMAGE}/petalinux-image-minimal-qemu-zynq7.cpio.gz.u-boot \
+ -gdb tcp::9000 \
+ -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=0xF8000910,data=0xF,data-len=0x4 \
+ "
