From c779e894daecacdd8944ddd00cefb0e10781bab5 Mon Sep 17 00:00:00 2001 From: David Scott Date: Wed, 13 Oct 2021 11:38:14 +0100 Subject: [PATCH] Fix `linuxkit run qemu` on macOS on Apple Silicon Signed-off-by: David Scott --- src/cmd/linuxkit/run_qemu.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/cmd/linuxkit/run_qemu.go b/src/cmd/linuxkit/run_qemu.go index f073cca0b..777ed92a4 100644 --- a/src/cmd/linuxkit/run_qemu.go +++ b/src/cmd/linuxkit/run_qemu.go @@ -445,7 +445,15 @@ func buildQemuCmdline(config QemuConfig) (QemuConfig, []string) { case "s390x": qemuArgs = append(qemuArgs, "-machine", fmt.Sprintf("s390-ccw-virtio,accel=%s", config.Accel)) case "aarch64": - qemuArgs = append(qemuArgs, "-machine", fmt.Sprintf("virt,gic_version=host,accel=%s", config.Accel)) + gic := "" + // VCPU supports less PA bits (36) than requested by the memory map (40) + highmem := "highmem=off," + if runtime.GOOS == "linux" { + // gic-version=host requires KVM, which implies Linux + gic = "gic_version=host," + highmem = "" + } + qemuArgs = append(qemuArgs, "-machine", fmt.Sprintf("virt,%s%saccel=%s", gic, highmem, config.Accel)) default: qemuArgs = append(qemuArgs, "-machine", fmt.Sprintf("q35,accel=%s", config.Accel)) }