[PATCH 2/2] Add IOMMU to other host test targets

Alyssa Ross
2022-09-22T07:57:16Z

This will make it possible to test passthrough in all test targets
where it makes sense, rather than just host/rootfs.

I think we should consider in future having a single wrapper script
that runs QEMU with all the flags necessary to support Spectrum's
hardware requirements, because this is only going to get more
difficult to maintain once we need to support multiple CPU
architectures.

Reported-by: Vadim Likholetov <vadim.likholetov@unikie.com>
Signed-off-by: Alyssa Ross <hi@alyssa.is>
---
host/initramfs/Makefile | 2 ++
img/combined/run-vm.nix | 3 ++-
img/live/Makefile | 2 ++
3 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/host/initramfs/Makefile b/host/initramfs/Makefile
index 596b15e..602b5b3 100644
--- a/host/initramfs/Makefile
+++ b/host/initramfs/Makefile
@@ -69,7 +69,9 @@ run: build/initramfs build/rootfs.verity.roothash build/live.img
-initrd build/initramfs \
-append "ro console=ttyS0 ext=vda intel_iommu=on roothash=$$(< build/rootfs.verity.roothash)" \
-cpu host \
+ -machine q35,kernel-irqchip=split \
-display gtk,gl=on \
+ -device intel-iommu,intremap=on \
-device virtio-vga-gl \
-device qemu-xhci \
-device usb-storage,drive=drive1,removable=true \
diff --git a/img/combined/run-vm.nix b/img/combined/run-vm.nix
index 40eacc4..047bc3f 100644
--- a/img/combined/run-vm.nix
+++ b/img/combined/run-vm.nix
@@ -13,8 +13,9 @@ writeShellScript "run-spectrum-installer-vm.sh" ''
truncate -s 10G "$img"
exec 3<>"$img"
rm -f "$img"
- exec qemu-kvm -cpu host -m 4G -machine q35 -snapshot \
+ exec qemu-kvm -cpu host -m 4G -machine q35,kernel-irqchip=split -snapshot \
-display gtk,gl=on \
+ -device intel-iommu,intremap=on \
-device virtio-vga-gl \
-device qemu-xhci \
-device usb-storage,drive=drive1,removable=true \
diff --git a/img/live/Makefile b/img/live/Makefile
index f13dd26..5942251 100644
--- a/img/live/Makefile
+++ b/img/live/Makefile
@@ -61,7 +61,9 @@ clean:
run: build/live.img
$(QEMU_KVM) -m 4G \
-cpu host \
+ -machine q35,kernel-irqchip=split \
-display gtk,gl=on \
+ -device intel-iommu,intremap=on \
-device virtio-vga-gl \
-device qemu-xhci \
-device usb-storage,drive=drive1,removable=true \
--
2.37.1