[SeaBIOS] [Qemu-devel] [PATCH v3 5/5] docs: update documentation considering PCIE-PCI bridge

Marcel Apfelbaum marcel at redhat.com
Wed Aug 2 17:36:29 CEST 2017


On 02/08/2017 17:21, Marcel Apfelbaum wrote:
> On 02/08/2017 17:16, Laszlo Ersek wrote:
>> On 08/02/17 15:47, Michael S. Tsirkin wrote:
>>> On Wed, Aug 02, 2017 at 12:23:46AM +0200, Laszlo Ersek wrote:
>>>> On 08/01/17 23:39, Michael S. Tsirkin wrote:
>>>>> On Wed, Aug 02, 2017 at 12:33:12AM +0300, Alexander Bezzubikov wrote:
>>>>>> 2017-08-01 23:31 GMT+03:00 Laszlo Ersek <lersek at redhat.com>:
>>>>>>> (Whenever my comments conflict with Michael's or Marcel's, I 
>>>>>>> defer to them.)
>>>>>>>
>>>>>>> On 07/29/17 01:37, Aleksandr Bezzubikov wrote:
>>>>>>>> Signed-off-by: Aleksandr Bezzubikov <zuban32s at gmail.com>
>>>>>>>> ---
>>>>>>>>   docs/pcie.txt            |  46 ++++++++++--------
>>>>>>>>   docs/pcie_pci_bridge.txt | 121 
>>>>>>>> +++++++++++++++++++++++++++++++++++++++++++++++
>>>>>>>>   2 files changed, 147 insertions(+), 20 deletions(-)
>>>>>>>>   create mode 100644 docs/pcie_pci_bridge.txt
>>>>>>>>
>>>>>>>> diff --git a/docs/pcie.txt b/docs/pcie.txt
>>>>>>>> index 5bada24..338b50e 100644
>>>>>>>> --- a/docs/pcie.txt
>>>>>>>> +++ b/docs/pcie.txt
>>>>>>>> @@ -46,7 +46,7 @@ Place only the following kinds of devices 
>>>>>>>> directly on the Root Complex:
>>>>>>>>       (2) PCI Express Root Ports (ioh3420), for starting 
>>>>>>>> exclusively PCI Express
>>>>>>>>           hierarchies.
>>>>>>>>
>>>>>>>> -    (3) DMI-PCI Bridges (i82801b11-bridge), for starting legacy 
>>>>>>>> PCI
>>>>>>>> +    (3) PCIE-PCI Bridge (pcie-pci-bridge), for starting legacy PCI
>>>>>>>>           hierarchies.
>>>>>>>>
>>>>>>>>       (4) Extra Root Complexes (pxb-pcie), if multiple PCI 
>>>>>>>> Express Root Buses
>>>>>>>
>>>>>>> When reviewing previous patches modifying / adding this file, I
>>>>>>> requested that we spell out "PCI Express" every single time. I'd 
>>>>>>> like to
>>>>>>> see the same in this patch, if possible.
>>>>>>
>>>>>> OK, I didn't know it.
>>>>>>
>>>>>>>
>>>>>>>> @@ -55,18 +55,18 @@ Place only the following kinds of devices 
>>>>>>>> directly on the Root Complex:
>>>>>>>>      pcie.0 bus
>>>>>>>>      
>>>>>>>> ---------------------------------------------------------------------------- 
>>>>>>>>
>>>>>>>>           |                |                    
>>>>>>>> |                  |
>>>>>>>> -   -----------   ------------------   ------------------   
>>>>>>>> --------------
>>>>>>>> -   | PCI Dev |   | PCIe Root Port |   | DMI-PCI Bridge |   |  
>>>>>>>> pxb-pcie  |
>>>>>>>> -   -----------   ------------------   ------------------   
>>>>>>>> --------------
>>>>>>>> +   -----------   ------------------   -------------------   
>>>>>>>> --------------
>>>>>>>> +   | PCI Dev |   | PCIe Root Port |   | PCIE-PCI Bridge |   |  
>>>>>>>> pxb-pcie  |
>>>>>>>> +   -----------   ------------------   -------------------   
>>>>>>>> --------------
>>>>>>>>
>>>>>>>>   2.1.1 To plug a device into pcie.0 as a Root Complex 
>>>>>>>> Integrated Endpoint use:
>>>>>>>>             -device <dev>[,bus=pcie.0]
>>>>>>>>   2.1.2 To expose a new PCI Express Root Bus use:
>>>>>>>>             -device 
>>>>>>>> pxb-pcie,id=pcie.1,bus_nr=x[,numa_node=y][,addr=z]
>>>>>>>> -      Only PCI Express Root Ports and DMI-PCI bridges can be 
>>>>>>>> connected
>>>>>>>> +      Only PCI Express Root Ports, PCIE-PCI bridges and DMI-PCI 
>>>>>>>> bridges can be connected
>>>>>>>
>>>>>>> It would be nice if we could keep the flowing text wrapped to 80 
>>>>>>> chars.
>>>>>>>
>>>>>>> Also, here you add the "PCI Express-PCI" bridge to the list of 
>>>>>>> allowed
>>>>>>> controllers (and you keep DMI-PCI as permitted), but above DMI was
>>>>>>> replaced. I think these should be made consistent -- we should 
>>>>>>> make up
>>>>>>> our minds if we continue to recommend the DMI-PCI bridge or not. 
>>>>>>> If not,
>>>>>>> then we should eradicate all traces of it. If we want to keep it at
>>>>>>> least for compatibility, then it should remain as fully 
>>>>>>> documented as it
>>>>>>> is now.
>>>>>>
>>>>>> Now I'm beginning to think that we shouldn't keep the DMI-PCI bridge
>>>>>> even for compatibility and may want to use a new PCIE-PCI bridge
>>>>>> everywhere (of course, except some cases when users are
>>>>>> sure they need exactly DMI-PCI bridge for some reason)
>>>>>
>>>>> Can dmi-pci support shpc? why doesn't it? For compatibility?
>>>>
>>>> I don't know why, but the fact that it doesn't is the reason libvirt
>>>> settled on auto-creating a dmi-pci bridge and a pci-pci bridge under
>>>> that for Q35. The reasoning was (IIRC Laine's words correctly) that the
>>>> dmi-pci bridge cannot receive hotplugged devices, while the pci-pci
>>>> bridge cannot be connected to the root complex. So both were needed.
>>>>
>>>> Thanks
>>>> Laszlo
>>>
>>> OK. Is it true that dmi-pci + pci-pci under it will allow hotplug
>>> on Q35 if we just flip the bit in _OSC?
>>
>> Marcel, what say you?... :)

Good news, works with:
    -device i82801b11-bridge,id=b1
    -device pci-bridge,id=b2,bus=b1,chassis_nr=1,msi=off

Notice bridge's msi=off until the following kernel bug will be merged:
   https://www.spinics.net/lists/linux-pci/msg63052.html


Thanks,
Marcel

>>
> 
> Will test and get back to you (it may actually work)
> 
> Thanks,
> Marcel
> 




More information about the SeaBIOS mailing list