On 10/17/16 16:18, Andrea Bolognani wrote:
> On Thu, 2016-10-13 at 17:05 +0300, Marcel Apfelbaum wrote:
>>> +PCI EXPRESS GUIDELINES
>>> +1. Introduction
>>> +The doc proposes best practices on how to use PCI Express/PCI device
>>> +in PCI Express based machines and explains the reasoning behind them.
>>> +2. Device placement strategy
>>> +QEMU does not have a clear socket-device matching mechanism
>>> +and allows any PCI/PCI Express device to be plugged into any PCI/PCI
>>> Express slot.
>>> +Plugging a PCI device into a PCI Express slot might not always work and
>>> +is weird anyway since it cannot be done for "bare metal".
>>> +Plugging a PCI Express device into a PCI slot will hide the Extended
>>> +Configuration Space thus is also not recommended.
>>> +The recommendation is to separate the PCI Express and PCI hierarchies.
>>> +PCI Express devices should be plugged only into PCI Express Root Ports and
>>> +PCI Express Downstream ports.
>>> +2.1 Root Bus (pcie.0)
>>> +Place only the following kinds of devices directly on the Root Complex:
>>> + (1) Devices with dedicated, specific functionality (network card,
>>> + graphics card, IDE controller, etc); place only legacy PCI devices
>>> + the Root Complex. These will be considered Integrated Endpoints.
>>> + Note: Integrated devices are not hot-pluggable.
> s/Integrated devices/Integrated Endpoints/ (which I assume
> is a Spec-Originated Term) in the last sentence, to be
> consistent with the one right before it.
> I'm also not sure what you mean by devices with "dedicated,
> specific functionality", and unfortunately the examples don't
> seem to be helping me.
That language is from me (I suggested it earlier). It means devices that
you want to use for some actual task, rather than just to build your PCI
(Express) hierarchy with them. "Leaf nodes" or whatever. "Everything