On Fri, Oct 23, 2020 at 12:36:05PM +0100, Peter Maydell wrote: > On Fri, 23 Oct 2020 at 08:10, Gerd Hoffmann <kra...@redhat.com> wrote: > > > > Bring new microvm goodies to arm virt too. Wire up > > -machine usb=on, add sysbus-xhci in case it is enabled. > > So my question here is the usual one -- why can't we > just use a PCI USB controller ?
Well, pci seems to come with some extra resource needs (see -M pc vs. -M q35 memory footprint differences discussed some months ago). Thats why microvm started without pci support, and even now with pcie support added it is optional (and off by default). I'm wondering whenever it makes sense for arm/virt to make pcie optional too. Adding an OnOffAuto pcie switch is easy. Some places which assume pci is present need fixing (-cdrom for example blindly uses virtio-blk-pci). Looks doable without too much effort and it would effectively bring a microvm-ish machine type to the arm/virt world. So in case pcie is switchable using sysbus-xhci would bring usb support without requiring pcie support for that. With pcie being present unconditionally there isn't much of a difference between sysbus-xhci and qemu-xhci (the pci variant of the device). The only problem with machine,usb=on adding a qemu-xhci device automatically would be that we would have to pick some pci slot where we can place the device ... take care, Gerd