mirror of
https://github.com/libvirt/libvirt.git
synced 2025-02-25 18:55:26 -06:00
Add PCI VPD Capability Documentation
Describes the format of the newly added VPD capability and gives and example for a real-world device. Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Signed-off-by: Dmitrii Shcherbakov <dmitrii.shcherbakov@canonical.com>
This commit is contained in:
committed by
Daniel P. Berrangé
parent
3954378d06
commit
fab3513bf0
@@ -185,6 +185,75 @@
|
||||
</capability>
|
||||
</device></pre>
|
||||
|
||||
<h3><a id="VPDCap">VPD capability</a></h3>
|
||||
<p>
|
||||
A device that exposes a PCI/PCIe VPD capability will include a nested
|
||||
capability <code>vpd</code> which presents data stored in the Vital Product
|
||||
Data (VPD). VPD provides a device name and a number of other standard-defined
|
||||
read-only fields (change level, manufacture id, part number, serial number) and
|
||||
vendor-specific read-only fields. Additionally, if a device supports it,
|
||||
read-write fields (asset tag, vendor-specific fields or system fields) may
|
||||
also be present. The VPD capability is optional for PCI/PCIe devices and the
|
||||
set of exposed fields may vary depending on a device. The XML format follows
|
||||
the binary format described in "I.3. VPD Definitions" in PCI Local Bus (2.2+)
|
||||
and the identical format in PCIe 4.0+. At the time of writing, the support for
|
||||
exposing this capability is only present on Linux-based systems (kernel version
|
||||
v2.6.26 is the first one to expose VPD via sysfs which Libvirt relies on).
|
||||
Reading the VPD contents requires root privileges, therefore,
|
||||
<code>virsh nodedev-dumpxml</code> must be executed accordingly.
|
||||
A description of the XML format for the <code>vpd</code> capability can
|
||||
be found <a href="formatnode.html#VPDCap">here</a>.
|
||||
</p>
|
||||
<p>
|
||||
The following example shows a VPD representation for a device that exposes the
|
||||
VPD capability with read-only and read-write fields. Among other things,
|
||||
the VPD of this particular device includes a unique board serial number.
|
||||
</p>
|
||||
<pre>
|
||||
<device>
|
||||
<name>pci_0000_42_00_0</name>
|
||||
<capability type='pci'>
|
||||
<class>0x020000</class>
|
||||
<domain>0</domain>
|
||||
<bus>66</bus>
|
||||
<slot>0</slot>
|
||||
<function>0</function>
|
||||
<product id='0xa2d6'>MT42822 BlueField-2 integrated ConnectX-6 Dx network controller</product>
|
||||
<vendor id='0x15b3'>Mellanox Technologies</vendor>
|
||||
<capability type='virt_functions' maxCount='16'/>
|
||||
<capability type='vpd'>
|
||||
<name>BlueField-2 DPU 25GbE Dual-Port SFP56, Crypto Enabled, 16GB on-board DDR, 1GbE OOB management, Tall Bracket</name>
|
||||
<fields access='readonly'>
|
||||
<change_level>B1</change_level>
|
||||
<manufacture_id>foobar</manufacture_id>
|
||||
<part_number>MBF2H332A-AEEOT</part_number>
|
||||
<serial_number>MT2113X00000</serial_number>
|
||||
<vendor_field index='0'>PCIeGen4 x8</vendor_field>
|
||||
<vendor_field index='2'>MBF2H332A-AEEOT</vendor_field>
|
||||
<vendor_field index='3'>3c53d07eec484d8aab34dabd24fe575aa</vendor_field>
|
||||
<vendor_field index='A'>MLX:MN=MLNX:CSKU=V2:UUID=V3:PCI=V0:MODL=BF2H332A</vendor_field>
|
||||
</fields>
|
||||
<fields access='readwrite'>
|
||||
<asset_tag>fooasset</asset_tag>
|
||||
<vendor_field index='0'>vendorfield0</vendor_field>
|
||||
<vendor_field index='2'>vendorfield2</vendor_field>
|
||||
<vendor_field index='A'>vendorfieldA</vendor_field>
|
||||
<system_field index='B'>systemfieldB</system_field>
|
||||
<system_field index='0'>systemfield0</system_field>
|
||||
</fields>
|
||||
</capability>
|
||||
<iommuGroup number='65'>
|
||||
<address domain='0x0000' bus='0x42' slot='0x00' function='0x0'/>
|
||||
</iommuGroup>
|
||||
<numa node='0'/>
|
||||
<pci-express>
|
||||
<link validity='cap' port='0' speed='16' width='8'/>
|
||||
<link validity='sta' speed='8' width='8'/>
|
||||
</pci-express>
|
||||
</capability>
|
||||
</device>
|
||||
</pre>
|
||||
|
||||
<h2><a id="MDEV">Mediated devices (MDEVs)</a></h2>
|
||||
<p>
|
||||
Mediated devices (<span class="since">Since 3.2.0</span>) are software
|
||||
|
||||
Reference in New Issue
Block a user