|
From: | Gerd Hoffmann |
Subject: | Re: [Qemu-devel] qdev and compound devices |
Date: | Thu, 23 Jun 2011 16:55:16 +0200 |
User-agent: | Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.17) Gecko/20110419 Red Hat/3.1.10-1.el6_0 Thunderbird/3.1.10 |
On 06/23/11 15:01, Hans de Goede wrote:
Hi all, I've been working on adding support to the usb-ehci code to have an uhci companion controller. This is actually working quite well, and the code is pretty nice too, see: http://cgit.freedesktop.org/~jwrdegoede/qemu/log/?h=usbredir Note the last commit likely needs to be split into 2, and that tree contains some other stuff too. Anyways to add support for a companion controller the logical thing to do would be to do: s->companion = pci_create_simple(bus, companion_devfn, "usb-ehci-uhci-companion"); From the qdev initfn for usb-ehci, this works if I create the usb-ehci instance from pc_init1() from hw/pc_piix.c . But for some reason it does not work if I simple add: "-device usb-ehci, multifunction=on" to the qemu cmdline. The device gets created, but no ioports / interrupts get assigned, and it does not show up in lspci in the guest.
Basically we'll want be able to create a multifunction device like this: address@hidden ~]# lspci -s1d00:1d.0 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #1 (rev 03) 00:1d.1 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #2 (rev 03) 00:1d.2 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #3 (rev 03) 00:1d.7 USB Controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #1 (rev 03)
Ideally via "-device ich9-ehci-uhci,addr=1d" or simliar. Asking the user to create the four subdevices manually, with properties set correctly to wind up the usb port relations is kida insane ...
Ideas how to do that best? cheers, Gerd
[Prev in Thread] | Current Thread | [Next in Thread] |