@@ -264,6 +264,8 @@ import Virtualization // for getting network interfaces
264264 " vgamem_mb= \( vgaRamSize) "
265265 }
266266 f ( )
267+ } else if system. target. hasBuiltinFramebuffer {
268+ // Use the board's built-in framebuffer (no arguments)
267269 } else {
268270 for display in displays {
269271 if !shouldSkipDisplay( display) {
@@ -451,6 +453,9 @@ import Virtualization // for getting network interfaces
451453 if isSparc {
452454 return singleCpu
453455 }
456+ if let fixedCpu = system. target. fixedCPUCount {
457+ return fixedCpu
458+ }
454459 #if arch(arm64)
455460 let hostPcorePhysicalCpu = Int ( Self . sysctlIntRead ( " hw.perflevel0.physicalcpu " ) )
456461 let hostPcoreLogicalCpu = Int ( Self . sysctlIntRead ( " hw.perflevel0.logicalcpu " ) )
@@ -951,36 +956,38 @@ import Virtualization // for getting network interfaces
951956 f ( " usb-kbd,bus=usb-bus.0 " )
952957 }
953958 #if WITH_USB
954- let maxDevices = input. maximumUsbShare
955- let buses = ( maxDevices + 2 ) / 3
956- if input. usbBusSupport == . usb3_0 {
957- var controller = " qemu-xhci "
958- if isPcCompatible {
959- controller = " nec-usb-xhci "
960- }
961- for i in 0 ..< buses {
962- f ( " -device " )
963- f ( " \( controller) ,id=usb-controller- \( i) " )
959+ if system. target. hasUsbSharingSupport {
960+ let maxDevices = input. maximumUsbShare
961+ let buses = ( maxDevices + 2 ) / 3
962+ if input. usbBusSupport == . usb3_0 {
963+ var controller = " qemu-xhci "
964+ if isPcCompatible {
965+ controller = " nec-usb-xhci "
966+ }
967+ for i in 0 ..< buses {
968+ f ( " -device " )
969+ f ( " \( controller) ,id=usb-controller- \( i) " )
970+ }
971+ } else {
972+ for i in 0 ..< buses {
973+ f ( " -device " )
974+ f ( " ich9-usb-ehci1,id=usb-controller- \( i) " )
975+ f ( " -device " )
976+ f ( " ich9-usb-uhci1,masterbus=usb-controller- \( i) .0,firstport=0,multifunction=on " )
977+ f ( " -device " )
978+ f ( " ich9-usb-uhci2,masterbus=usb-controller- \( i) .0,firstport=2,multifunction=on " )
979+ f ( " -device " )
980+ f ( " ich9-usb-uhci3,masterbus=usb-controller- \( i) .0,firstport=4,multifunction=on " )
981+ }
964982 }
965- } else {
966- for i in 0 ..< buses {
967- f ( " -device " )
968- f ( " ich9-usb-ehci1,id=usb-controller- \( i) " )
969- f ( " -device " )
970- f ( " ich9-usb-uhci1,masterbus=usb-controller- \( i) .0,firstport=0,multifunction=on " )
971- f ( " -device " )
972- f ( " ich9-usb-uhci2,masterbus=usb-controller- \( i) .0,firstport=2,multifunction=on " )
983+ // set up usb forwarding
984+ for i in 0 ..< maxDevices {
985+ f ( " -chardev " )
986+ f ( " spicevmc,name=usbredir,id=usbredirchardev \( i) " )
973987 f ( " -device " )
974- f ( " ich9- usb-uhci3,masterbus= usb-controller-\( i) .0,firstport=4,multifunction=on " )
988+ f ( " usb-redir,chardev=usbredirchardev \( i ) ,id=usbredirdev \( i ) ,bus= usb-controller-\( i/ 3 ) .0 " )
975989 }
976990 }
977- // set up usb forwarding
978- for i in 0 ..< maxDevices {
979- f ( " -chardev " )
980- f ( " spicevmc,name=usbredir,id=usbredirchardev \( i) " )
981- f ( " -device " )
982- f ( " usb-redir,chardev=usbredirchardev \( i) ,id=usbredirdev \( i) ,bus=usb-controller- \( i/ 3 ) .0 " )
983- }
984991 #endif
985992 }
986993
0 commit comments