blob: 585b8fbe46a8696a4bab3ed640a938c6781ce23b [file] [log] [blame]
set(EMU_PLATFORM qemu)
set(QEMU_binary_suffix x86_64)
# QEMU, in Jailhouse's case, is not emulating Zephyr's hardware
# directly, but the root cell/system, with a mount point reaching
# the kernel itself available
set(QEMU_KERNEL_OPTION ";")
if(NOT CONFIG_REBOOT)
set(REBOOT_FLAG -no-reboot)
endif()
if (NOT DEFINED JAILHOUSE_QEMU_IMG_FILE)
message(FATAL_ERROR "You have to provide a valid qcow2 QEMU image to be a Jailhouse root cell (variable JAILHOUSE_QEMU_IMG_FILE)!")
endif()
set(QEMU_CPU_TYPE_${ARCH} kvm64,-kvm_pv_eoi,-kvm_steal_time,-kvm_asyncpf,-kvmclock,+vmx,+x2apic,+arat)
set(QEMU_FLAGS_${ARCH}
-machine q35,kernel_irqchip=split
${REBOOT_FLAG}
-m 1G
-enable-kvm
-smp 4
-device intel-iommu,intremap=on,x-buggy-eim=on
-cpu ${QEMU_CPU_TYPE_${ARCH}}
-drive file=${JAILHOUSE_QEMU_IMG_FILE},format=qcow2,id=disk,if=none
-device ide-hd,drive=disk
-netdev user,id=net
-device e1000e,addr=2.0,netdev=net
-device intel-hda,addr=1b.0
-device hda-duplex
-fsdev local,path=./zephyr,security_model=passthrough,id=vfs
-device virtio-9p-pci,addr=1f.7,mount_tag=host,fsdev=vfs
)
# TODO: Support debug
# set(DEBUG_SCRIPT qemu.sh)
# debugserver: QEMU_EXTRA_FLAGS += -s -S
# debugserver: qemu