Laine Stump <laine(a)redhat.com> writes:
On 12/15/2016 05:12 AM, Marcel Apfelbaum wrote:
> On 12/14/2016 10:10 PM, Laine Stump wrote:
>> On 12/14/2016 12:17 PM, Marcel Apfelbaum wrote:
>>> Be aware that 1 slot doesn't necessarily refer to only one device,
>>> we can have a multi-function device.
>>
>> Is that a fixed thing? I mean, is it always possible to use all 8
>> functions of a slot (assuming no hotplug of course)?
>>
>
> Yes, you simply add to the function 0 on command line: with -device
> ...,multifunction=on.
Yes, I know how the commandline works. my question is whether *all*
PCI controllers in existence have 8 usable functions per slot, or if
that might be another thing that is different from one controller to
the next (and thus would have to be reported in these query
responses).
Quote from PCI Express Base Specification Revision 3.0: "Each non-ARI
Device may contain up to eight Functions. Each ARI Device may contain
up to 256 Functions."
The address format is defined by the PCI spec: bus number is 8 bits,
device number is 5, function number is 3.
However, a device may be an ARI device (ARI = Alternative Routing-ID
Interpretation), and then the device number bits are instead used for a
wider function number. As far as I know, this is PCIe-only. See PCI
Express Base Specification Revision 3.0, 6.13. Alternative Routing-ID
Interpretation (ARI).