41 lines
1.2 KiB
CMake
41 lines
1.2 KiB
CMake
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(BOARD_DEBUG_RUNNER qemu)
|
|
# debugserver: QEMU_EXTRA_FLAGS += -s -S
|
|
# debugserver: qemu
|