Add device and driver conformanace section for legacy registers access
commands interface.

Fixes: https://github.com/oasis-tcs/virtio-spec/issues/167
Signed-off-by: Parav Pandit <[email protected]>

---
changelog:
v3->v4:
- moved legacy interface normative references to legacy conformance
  section
v2->v3:
- added normative lines for two additional commands
---
 conformance.tex               |  2 ++
 transport-pci-legacy-regs.tex | 33 +++++++++++++++++++++++++++++++++
 2 files changed, 35 insertions(+)

diff --git a/conformance.tex b/conformance.tex
index 01ccd69..be0bf89 100644
--- a/conformance.tex
+++ b/conformance.tex
@@ -265,6 +265,8 @@ \section{Conformance Targets}\label{sec:Conformance / 
Conformance Targets}
 \item Section \ref{sec:Virtio Transport Options / Virtio Over PCI Bus / PCI 
Device Layout / Legacy Interfaces: A Note on PCI Device Layout}
 \item Section \ref{sec:Virtio Transport Options / Virtio Over PCI Bus / 
PCI-specific Initialization And Device Operation / Device Initialization / 
Virtio Device Configuration Layout Detection / Legacy Interface: A Note on 
Device Layout Detection}
 \item Section \ref{sec:Virtio Transport Options / Virtio Over PCI Bus / 
PCI-specific Initialization And Device Operation / Device Initialization / 
Virtqueue Configuration / Legacy Interface: A Note on Virtqueue Configuration}
+\item Section \ref{par:Virtio Transport Options / Virtio Over PCI Bus / Legacy 
Interfaces Requirements: SR-IOV VFs Registers Access}
+\item Section \ref{par:Virtio Transport Options / Virtio Over PCI Bus / PCI 
Device Layout / Legacy Interfaces: Notification capability}
 \item Section \ref{sec:Virtio Transport Options / Virtio Over MMIO / Legacy 
interface}
 \item Section \ref{sec:Virtio Transport Options / Virtio over channel I/O / 
Device Initialization / Setting the Virtio Revision / Legacy Interfaces: A Note 
on Setting the Virtio Revision}
 \item Section \ref{sec:Virtio Transport Options / Virtio over channel I/O / 
Device Initialization / Configuring a Virtqueue / Legacy Interface: A Note on 
Configuring a Virtqueue}
diff --git a/transport-pci-legacy-regs.tex b/transport-pci-legacy-regs.tex
index 2a464da..ef6a33c 100644
--- a/transport-pci-legacy-regs.tex
+++ b/transport-pci-legacy-regs.tex
@@ -120,3 +120,36 @@ \subsubsection{Legacy Device Registers Read 
Command}\label{sec:Virtio Transport
        u8 registers[];
 };
 \end{lstlisting}
+
+\paragraph{Legacy Interfaces Requirements: SR-IOV VFs Legacy Registers 
Access}\label{par:Virtio Transport Options / Virtio Over PCI Bus / Legacy 
Interfaces Requirements: SR-IOV VFs Registers Access}
+
+If the PCI PF device supports legacy registers access for its group members,
+the device MUST set all corresponding bits for commands 
VIRTIO_ADMIN_CMD_LCC_REG_WRITE,
+VIRTIO_ADMIN_CMD_LCC_REG_READ, VIRTIO_ADMIN_CMD_LD_REG_WRITE,
+VIRTIO_ADMIN_CMD_LD_REG_READ in the command result of
+VIRTIO_ADMIN_CMD_LIST_QUERY in \field{device_admin_cmd_opcodes}.
+
+The device MUST encode and decode legacy device specific registers using
+little-endian format.
+
+The device MUST fail VIRTIO_ADMIN_CMD_LCC_REG_WRITE, 
VIRTIO_ADMIN_CMD_LCC_REG_READ
+commands for the invalid offset which is outside the legacy common 
configuration
+register's address range.
+
+The device MUST fail VIRTIO_ADMIN_CMD_LD_REG_WRITE, 
VIRTIO_ADMIN_CMD_LD_REG_READ
+commands for the invalid offset which is outside the legacy device specific
+register's address range.
+
+The PCI VF device SHOULD NOT expose PCI BAR 0 when it prefers to support
+legacy interface registers access.
+
+The driver MUST encode and decode legacy device specific registers using
+little-endian format.
+
+The driver SHOULD send VIRTIO_ADMIN_CMD_LCC_REG_WRITE and
+VIRTIO_ADMIN_CMD_LCC_REG_READ commands with a valid offset which is in the
+legacy common configuration registers address range.
+
+The driver SHOULD send commands VIRTIO_ADMIN_CMD_LD_REG_WRITE and
+VIRTIO_ADMIN_CMD_LD_REG_READ with a valid offset which is in the legacy
+device specific registers address range.
-- 
2.26.2


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to