Hi folks,
I'm still looking for a sane way to handle multifunction pci devices,
specifically a EHCI USB controller with UHCI companion controllers.
Here comes a small (incomplete[1]) two patch series to make the issue
more clear. The first patch adds a function which creates all devices
with the properties set as needed. The second patch adds a '-usb2'
switch to windup this in a user-friendly way.
Adding a -usb2 switch sucks though. I'd prefer to have some way to
create such devices via -device, but without asking the user to create
all functions individually on the command line, i.e. have something
along the lines of ...
qemu -device ich9-usb,slot=08
... instead of ...
qemu \
-device ich9-usb-ehci1,addr=08.7,multifunction=on,id=ehci \
-device
ich9-usb-uhci1,addr=08.0,multifunction=on,masterbus=ehci.0,firstport=0 \
-device
ich9-usb-uhci2,addr=08.1,multifunction=on,masterbus=ehci.0,firstport=2 \
-device
ich9-usb-uhci3,addr=08.2,multifunction=on,masterbus=ehci.0,firstport=4
Suggestions?
cheers,
Gerd
[1] full series @ http://www.kraxel.org/cgit/qemu/log/?h=usb.18
Gerd Hoffmann (2):
usb: add ich9_ehci_with_companion_init()
usb: windup ich9_ehci_with_companion_init via -usb2 switch.
hw/pc_piix.c | 14 ++++++++++----
hw/usb-ehci.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
hw/usb.h | 3 +++
qemu-options.hx | 13 +++++++++++--
vl.c | 3 +++
5 files changed, 76 insertions(+), 6 deletions(-)