#@TYPE: Machine
#@NAME: qemu-zynq7
#@DESCRIPTION: Zynq QEMU machine support ('xilinx-zynq-a9' model)

require conf/machine/include/soc-zynq.inc
require conf/machine/include/machine-xilinx-default.inc
require conf/machine/include/machine-xilinx-qemu.inc

MACHINE_FEATURES = "ext2 vfat"

SERIAL_CONSOLES ?= "115200;ttyPS0"

MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "device-tree"

HDF_MACHINE = "zc702-zynq7"

# Use the networking setup from qemuarm
MACHINEOVERRIDES_prepend_pn-init-ifupdown = "qemuall:"
FILESOVERRIDES_append_pn-init-ifupdown = ":qemuarm"

QB_MEM = "-m 1024"
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"

# 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 \
	"
