On Tue, Nov 01, 2011 at 04:49:08PM +0800, Wen Congyang wrote: > At 11/01/2011 04:44 PM, Michael S. Tsirkin Write: > > On Tue, Nov 01, 2011 at 09:27:25AM +0800, Wen Congyang wrote: > >> Hi, Michael S. Tsirkin > >> > >> At 09/26/2011 03:08 PM, Michael S. Tsirkin Write: > >>> On Mon, Sep 26, 2011 at 02:18:15PM +0800, Wen Congyang wrote: > >>>> Hi, Michael S. Tsirkin > >>>> > >>>> At 07/04/2011 05:43 PM, Michael S. Tsirkin Write: > >>>>> This adds support for a standard pci to pci bridge, > >>>>> enabling support for more than 32 PCI devices in the system. > >>>>> To use, specify the device id as a 'bus' option. > >>>>> Example: > >>>>> -device pci-bridge,id=bridge1 \ > >>>>> -netdev user,id=u \ > >>>>> -device ne2k_pci,id=net2,bus=bridge1,netdev=u > >>>>> > >>>>> TODO: device hotplug support. > >>>> > >>>> Do you have any plan to implement this? > >>> > >>> I think this will be needed before merging the bridge code. > >> > >> What will you plan to support? > >> > >> 1. all PCI-to-PCI bridge is not hotpluggable. > >> host bridge > >> | > >> --------------------- > >> | | > >> bridge bridge <= *not* hotpluggable > >> | | > >> ----------- ------------ > >> | | | | > >> slot slot slot slot <= hotplug here > >> > >> > >> 2. PCI-to-PCI bridge is hotpluggable. > >> bridge > >> | > >> ------------------- > >> | | > >> bridge on slot bridge on slot <= hot-plug here > >> | | > >> ------- ------- > >> | | | | > >> slot slot slot slot <= hot-plug here
It seems easier to start with a non hotpluggable bridge. I'm still trying to understand how is bridge hotplug supposed to work under ACPI, which wants all devices described in a static page. > >>> > >>>> I read the qemu's code, and find that qemu uses PIIX4_PM to support > >>>> pci device hot plugging on PCI bus 0. How to support it on the other > >>>> bus? Add PIIX4_PM to each PCI bus or implement a new power management? > >>>> > >>>> Thanks > >>>> Wen Congyang > >>> > >>> There are many valid options. One is shpc interface. > >>> I started looking into this but got preempted by other > >>> tasks. Hope to get back to this at some point. > >> > >> Some old OS does not support shpc. So I think it's better to use ACPI to > >> do it. Yes, but ACPI can drive SHPC. > >> Currently, we get which device is removed or inserted by reading the I/O > >> port > >> 0xae00(length: 8 bytes), and _EJ0 method uses I/O port 0xae08(length: 4 > >> bytes). > >> How do we determine this I/O address? Is there any spec to describe it? I don't think so. > >> Thanks > >> Wen Congyang > > > > Can we discuss these questions on the mailing list? > > No problem. > I have cced qemu mailing list. > > Thanks > Wen Congyang