diff --git a/Configuration/QEMUConstant.swift b/Configuration/QEMUConstant.swift index 97d73ae8b..448b300dd 100644 --- a/Configuration/QEMUConstant.swift +++ b/Configuration/QEMUConstant.swift @@ -478,9 +478,24 @@ extension QEMUTarget { } } + var hasUsbSharingSupport: Bool { + switch self.rawValue { + case let x where x.hasPrefix("raspi"): return false + default: return true + } + } + var hasAgentSupport: Bool { switch self.rawValue { case "isapc": return false + case let x where x.hasPrefix("raspi"): return false + default: return true + } + } + + var hasUefiSupport: Bool { + switch self.rawValue { + case let x where x.hasPrefix("raspi"): return false default: return true } } @@ -491,6 +506,29 @@ extension QEMUTarget { default: return true } } + + var hasHypervisorSupport: Bool { + switch self.rawValue { + case let x where x.hasPrefix("raspi"): return false + default: return true + } + } + + var hasBuiltinFramebuffer: Bool { + switch self.rawValue { + case let x where x.hasPrefix("raspi"): return true + default: return false + } + } + + var fixedMemorySize: Int? { + switch self.rawValue { + case "raspi0", "raspi1ap", "raspi3ap": return 512 + case "raspi2b", "raspi3b": return 1024 + case "raspi4b": return 2048 + default: return nil + } + } } #if WITH_QEMU_TCI diff --git a/Configuration/UTMQemuConfiguration+Arguments.swift b/Configuration/UTMQemuConfiguration+Arguments.swift index a42c51a7d..f16fbed58 100644 --- a/Configuration/UTMQemuConfiguration+Arguments.swift +++ b/Configuration/UTMQemuConfiguration+Arguments.swift @@ -264,6 +264,8 @@ import Virtualization // for getting network interfaces "vgamem_mb=\(vgaRamSize)" } f() + } else if system.target.hasBuiltinFramebuffer { + // Use the board's built-in framebuffer (no arguments) } else { for display in displays { if !shouldSkipDisplay(display) { @@ -951,36 +953,38 @@ import Virtualization // for getting network interfaces f("usb-kbd,bus=usb-bus.0") } #if WITH_USB - let maxDevices = input.maximumUsbShare - let buses = (maxDevices + 2) / 3 - if input.usbBusSupport == .usb3_0 { - var controller = "qemu-xhci" - if isPcCompatible { - controller = "nec-usb-xhci" - } - for i in 0..