qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] pci: add standard bridge device


From: Wen Congyang
Subject: Re: [Qemu-devel] [PATCH] pci: add standard bridge device
Date: Wed, 02 Nov 2011 09:00:19 +0800
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.9) Gecko/20100413 Fedora/3.0.4-2.fc13 Thunderbird/3.0.4

At 11/01/2011 07:48 PM, Michael S. Tsirkin Write:
> 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.

We can load ACPI SSDT dynamically. But I do not know whether guest OS
supports it.

> 
>>>>>
>>>>>> 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.

Yes. But if we implement SHPC, we should also to implement ACPI.

> 
>>>> 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.

If we support hotplug behind PCI-to-PCI bridge, there are more than 32 slots 
that can
be hotpluggable. How do we know which device is remove or inserted? The I/O 
region 0xae00
(length: 8bytes) only supports 32 slots.

Thanks
Wen Congyang

> 
>>>> Thanks
>>>> Wen Congyang
>>>
>>> Can we discuss these questions on the mailing list?
>>
>> No problem.
>> I have cced qemu mailing list.
>>
>> Thanks
>> Wen Congyang
> 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]