aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2022-05-05 16:14:46 +0200
committerJason A. Donenfeld <Jason@zx2c4.com>2022-05-05 16:24:24 +0200
commit33c87a11109996e13a13259e0c488e590c15f760 (patch)
treedd0d91c7451403427b48d51c9c696781d51013bd
parentnetns: limit parallelism to $(nproc) tests at once (diff)
downloadwireguard-linux-compat-33c87a11109996e13a13259e0c488e590c15f760.tar.xz
wireguard-linux-compat-33c87a11109996e13a13259e0c488e590c15f760.zip
qemu: use vports on arm
Rather than having to hack up QEMU, just use the virtio serial device. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
-rw-r--r--src/tests/qemu/Makefile11
-rw-r--r--src/tests/qemu/arch/aarch64.config5
-rw-r--r--src/tests/qemu/arch/aarch64_be.config5
-rw-r--r--src/tests/qemu/arch/arm.config5
-rw-r--r--src/tests/qemu/arch/armeb.config5
5 files changed, 25 insertions, 6 deletions
diff --git a/src/tests/qemu/Makefile b/src/tests/qemu/Makefile
index 2a92e0b..23dbeb6 100644
--- a/src/tests/qemu/Makefile
+++ b/src/tests/qemu/Makefile
@@ -86,8 +86,10 @@ CROSS_COMPILE_FLAG := --build=$(CBUILD) --host=$(CHOST)
export CROSS_COMPILE=$(CBUILD)-
STRIP := $(CBUILD)-strip
endif
+QEMU_VPORT_RESULT :=
ifeq ($(ARCH),aarch64)
QEMU_ARCH := aarch64
+QEMU_VPORT_RESULT := virtio-serial-device
KERNEL_ARCH := arm64
KERNEL_BZIMAGE := $(KERNEL_PATH)/arch/arm64/boot/Image
ifeq ($(HOST_ARCH),$(ARCH))
@@ -98,6 +100,7 @@ CFLAGS += -march=armv8-a -mtune=cortex-a53
endif
else ifeq ($(ARCH),aarch64_be)
QEMU_ARCH := aarch64
+QEMU_VPORT_RESULT := virtio-serial-device
KERNEL_ARCH := arm64
KERNEL_BZIMAGE := $(KERNEL_PATH)/arch/arm64/boot/Image
ifeq ($(HOST_ARCH),$(ARCH))
@@ -108,6 +111,7 @@ CFLAGS += -march=armv8-a -mtune=cortex-a53
endif
else ifeq ($(ARCH),arm)
QEMU_ARCH := arm
+QEMU_VPORT_RESULT := virtio-serial-device
KERNEL_ARCH := arm
KERNEL_BZIMAGE := $(KERNEL_PATH)/arch/arm/boot/zImage
ifeq ($(HOST_ARCH),$(ARCH))
@@ -118,6 +122,7 @@ CFLAGS += -march=armv7-a -mtune=cortex-a15 -mabi=aapcs-linux
endif
else ifeq ($(ARCH),armeb)
QEMU_ARCH := arm
+QEMU_VPORT_RESULT := virtio-serial-device
KERNEL_ARCH := arm
KERNEL_BZIMAGE := $(KERNEL_PATH)/arch/arm/boot/zImage
ifeq ($(HOST_ARCH),$(ARCH))
@@ -217,7 +222,7 @@ KERNEL_ARCH := m68k
KERNEL_BZIMAGE := $(KERNEL_PATH)/vmlinux
KERNEL_CMDLINE := $(shell sed -n 's/CONFIG_CMDLINE=\(.*\)/\1/p' arch/m68k.config)
ifeq ($(HOST_ARCH),$(ARCH))
-QEMU_MACHINE := -cpu host,accel=kvm -machine q800 -smp 1 -append $(KERNEL_CMDLINE)
+QEMU_MACHINE := -cpu host,accel=kvm -machine q800 -append $(KERNEL_CMDLINE)
else
QEMU_MACHINE := -machine q800 -smp 1 -append $(KERNEL_CMDLINE)
endif
@@ -230,6 +235,7 @@ MUSL_CC := $(BUILD_PATH)/musl-gcc
export CC := $(MUSL_CC)
USERSPACE_DEPS := $(MUSL_CC) $(BUILD_PATH)/include/.installed $(BUILD_PATH)/include/linux/.installed
+comma := ,
build: $(KERNEL_BZIMAGE)
qemu: $(KERNEL_BZIMAGE)
rm -f $(BUILD_PATH)/result
@@ -240,7 +246,8 @@ qemu: $(KERNEL_BZIMAGE)
$(QEMU_MACHINE) \
-m $$(grep -q CONFIG_DEBUG_KMEMLEAK=y $(KERNEL_PATH)/.config && echo 1G || echo 256M) \
-serial stdio \
- -serial file:$(BUILD_PATH)/result \
+ -chardev file,path=$(BUILD_PATH)/result,id=result \
+ $(if $(QEMU_VPORT_RESULT),-device $(QEMU_VPORT_RESULT) -device virtserialport$(comma)chardev=result,-serial chardev:result) \
-no-reboot \
-monitor none \
-kernel $<
diff --git a/src/tests/qemu/arch/aarch64.config b/src/tests/qemu/arch/aarch64.config
index 3d063bb..e9ac41f 100644
--- a/src/tests/qemu/arch/aarch64.config
+++ b/src/tests/qemu/arch/aarch64.config
@@ -1,5 +1,8 @@
CONFIG_SERIAL_AMBA_PL011=y
CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
+CONFIG_VIRTIO_MENU=y
+CONFIG_VIRTIO_MMIO=y
+CONFIG_VIRTIO_CONSOLE=y
CONFIG_CMDLINE_BOOL=y
-CONFIG_CMDLINE="console=ttyAMA0 wg.success=ttyAMA1"
+CONFIG_CMDLINE="console=ttyAMA0 wg.success=vport0p1"
CONFIG_FRAME_WARN=1280
diff --git a/src/tests/qemu/arch/aarch64_be.config b/src/tests/qemu/arch/aarch64_be.config
index dbdc7e4..03609a2 100644
--- a/src/tests/qemu/arch/aarch64_be.config
+++ b/src/tests/qemu/arch/aarch64_be.config
@@ -1,6 +1,9 @@
CONFIG_CPU_BIG_ENDIAN=y
CONFIG_SERIAL_AMBA_PL011=y
CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
+CONFIG_VIRTIO_MENU=y
+CONFIG_VIRTIO_MMIO=y
+CONFIG_VIRTIO_CONSOLE=y
CONFIG_CMDLINE_BOOL=y
-CONFIG_CMDLINE="console=ttyAMA0 wg.success=ttyAMA1"
+CONFIG_CMDLINE="console=ttyAMA0 wg.success=vport0p1"
CONFIG_FRAME_WARN=1280
diff --git a/src/tests/qemu/arch/arm.config b/src/tests/qemu/arch/arm.config
index 148f499..c616124 100644
--- a/src/tests/qemu/arch/arm.config
+++ b/src/tests/qemu/arch/arm.config
@@ -4,6 +4,9 @@ CONFIG_ARCH_VIRT=y
CONFIG_THUMB2_KERNEL=n
CONFIG_SERIAL_AMBA_PL011=y
CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
+CONFIG_VIRTIO_MENU=y
+CONFIG_VIRTIO_MMIO=y
+CONFIG_VIRTIO_CONSOLE=y
CONFIG_CMDLINE_BOOL=y
-CONFIG_CMDLINE="console=ttyAMA0 wg.success=ttyAMA1"
+CONFIG_CMDLINE="console=ttyAMA0 wg.success=vport0p1"
CONFIG_FRAME_WARN=1024
diff --git a/src/tests/qemu/arch/armeb.config b/src/tests/qemu/arch/armeb.config
index bd76b07..d3a40a9 100644
--- a/src/tests/qemu/arch/armeb.config
+++ b/src/tests/qemu/arch/armeb.config
@@ -4,7 +4,10 @@ CONFIG_ARCH_VIRT=y
CONFIG_THUMB2_KERNEL=n
CONFIG_SERIAL_AMBA_PL011=y
CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
+CONFIG_VIRTIO_MENU=y
+CONFIG_VIRTIO_MMIO=y
+CONFIG_VIRTIO_CONSOLE=y
CONFIG_CMDLINE_BOOL=y
-CONFIG_CMDLINE="console=ttyAMA0 wg.success=ttyAMA1"
+CONFIG_CMDLINE="console=ttyAMA0 wg.success=vport0p1"
CONFIG_CPU_BIG_ENDIAN=y
CONFIG_FRAME_WARN=1024