[libvirt PATCH v7 4/5] Add PCI VPD Capability Documentation
Daniel P. Berrangé
berrange at redhat.com
Wed Oct 20 16:12:01 UTC 2021
On Wed, Oct 20, 2021 at 11:30:34AM +0300, Dmitrii Shcherbakov wrote:
> Describes the format of the newly added VPD capability and gives and
> example for a real-world device.
>
> Signed-off-by: Dmitrii Shcherbakov <dmitrii.shcherbakov at canonical.com>
> ---
> docs/drvnodedev.html.in | 69 +++++++++++++++++++++++++++++++++++++++++
> docs/formatnode.html.in | 63 ++++++++++++++++++++++++++++++++++++-
> 2 files changed, 131 insertions(+), 1 deletion(-)
> diff --git a/docs/formatnode.html.in b/docs/formatnode.html.in
> index 3b3c3105d4..fb2f356396 100644
> --- a/docs/formatnode.html.in
> +++ b/docs/formatnode.html.in
> @@ -162,7 +162,13 @@
> This device is capable of creating mediated devices.
> The sub-elements are summarized in
> <a href="#MDEVTypesCap">mdev_types capability</a>.
> - </dd>
> + </dd>
> + <dt><code><a id="VPDCapPCI">vpd</a></code></dt>
> + <dd>
> + This device exposes a VPD PCI/PCIe capability.
> + The sub-elements are summarized in
> + <a href="#VPDCap">vpd capability</a>.
> + </dd>
> </dl>
> </dd>
>
> @@ -592,5 +598,60 @@
> </device>
> </pre>
>
> + <h3><a id="VPDCap">vpd capability</a></h3>
> +
> + <p>
> + <a href="#VPDCapPCI">PCI</a> devices can expose a VPD capability which
> + is optional per PCI Local Bus 2.2+ and PCIe 4.0+ specifications. If
> + the VPD capability is present, then the parent <code>capability</code>
> + element with the <code>vpd</code> type will contain a <code>name</code>
> + element (containing a manufacturer-provided device name) and optionally
> + one or two <code>fields</code> elements with an <code>access</code>
> + attribute set to <code>readonly</code> or <code>readwrite</code>.
> + </p>
> + <p>
> + The read-only <code>fields</code> element may contain the following elements:
> + <dl>
> + <dt><code>change_level</code></dt>
> + <dd>An engineering change level for this add-in card.</dd>
> + <dt><code>manufacture_id</code></dt>
> + <dd>An extension to the Vendor ID (or Subsystem Vendor ID) in the
> + Configuration Space header which allows vendors the flexibility to identify
> + an additional level of detail pertaining to the sourcing of a PCI device.</dd>
> + <dt><code>part_number</code></dt>
> + <dd>An extension to the Device ID (or Subsystem ID) in the Configuration
> + Space header specifying a part number of an add-in card.</dd>
> + <dt><code>serial_number</code></dt>
> + <dd>A unique add-in card Serial Number.</dd>
> + <dt><code>vendor_field</code></dt>
> + <dd>Zero or many of those elements with an <code>index</code> attribute
> + (since-character upper-case ASCII alphanumeric indexes). Contents will vary
> + depending on a vendor.</dd>
> + </dl>
> + All fields are optional and are not guaranteed to be present for a generic PCI device.
> + </p>
> + <p>
> + The read-write <code>fields</code> element may contain the following elements:
> + <dl>
> + <dt><code>asset_tag</code></dt>
> + <dd>A system asset identifier provided by the system owner.</dd>
> + <dt><code>vendor_field</code></dt>
> + <dd>Zero or many of those elements with an <code>index</code> attribute
> + (since-character upper-case ASCII alphanumeric indexes). Contents will vary depending
> + on a vendor.</dd>
> + <dt><code>system_field</code></dt>
> + <dd>Zero or many of those elements with an <code>index</code> attribute (since-character
> + upper-case ASCII alphanumeric indexes, except for letter 'A'). May store system-specific
> + data related to a PCI device.</dd>
> + </dl>
> + All fields are optional and are not guaranteed to be present for a generic PCI device.
> + Read-write fields are not possible to alter via Libvirt at the time of writing but their
> + content is refreshed on each invocation in case this is done by means external to Libvirt.
> + </p>
> + <p>
> + The device name and all fields may contain only the following characters:
> + <code>[0-9a-zA-F -_,.:;=]</code>.
> + The device name may be as large as 65535 bytes while fields are limited with 255 bytes.
> + </p>
This chunk of text is accidentally after the "Example" heading.
Regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
More information about the libvir-list
mailing list