summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormstsirkin <mstsirkin@0c8fb4dd-22a2-4bb5-bc14-6c75a5f43652>2014-03-02 21:36:29 +0000
committermstsirkin <mstsirkin@0c8fb4dd-22a2-4bb5-bc14-6c75a5f43652>2014-03-02 21:36:29 +0000
commitdf9e9d2cfeafc4ef98d1216df2160232c25e6124 (patch)
tree6ee588dd5bfbff89745bc9e7dcf35368b7dfdefb
parent6b0a5448622bce092fc94e15d5c9d53142cf75a5 (diff)
non-transitional devices with legacy drivers
Change accepted on VIRTIO TC Meeting, 3 December 2013 weaken hacky requirements helpful for graceful failure for non transitional PCI devices from MUST to SHOULD. It's nice to have but it's not like it makes things work, and you can avoid trouble simply by using the most recent drivers. also move them out to a separate section Signed-off-by: Michael S. Tsirkin <mst@redhat.com> git-svn-id: https://tools.oasis-open.org/version-control/svn/virtio@301 0c8fb4dd-22a2-4bb5-bc14-6c75a5f43652
-rw-r--r--content.tex27
1 files changed, 24 insertions, 3 deletions
diff --git a/content.tex b/content.tex
index c91dd69..cb0d648 100644
--- a/content.tex
+++ b/content.tex
@@ -962,7 +962,10 @@ The Subsystem Vendor ID SHOULD reflect
the PCI Vendor ID of the environment (it's currently only used
for informational purposes by the driver).
-Non-transitional devices MUST have a Revision ID of 1 or higher.
+Non-transitional devices SHOULD have a Revision ID of 1 or higher.
+
+This is to reduce the chance of a legacy driver attempting
+to drive the device.
\drivernormative{\subsubsection}{PCI Device Discovery}{Virtio Transport Options / Virtio Over PCI Bus / PCI Device Discovery}
All drivers MUST match devices with any Revision ID, this
@@ -971,8 +974,9 @@ is to allow devices to be versioned without breaking drivers.
Drivers MUST match any Revision ID value.
\subsubsection{Legacy Interfaces: A Note on PCI Device Discovery}\label{sec:Virtio Transport Options / Virtio Over PCI Bus / PCI Device Discovery / Legacy Interfaces: A Note on PCI Device Discovery}
-Transitional devices MUST have a Revision ID of 0 to match
-legacy drivers.
+Transitional devices MUST have a Revision ID of 0.
+
+This is to match legacy drivers.
\subsection{PCI Device Layout}\label{sec:Virtio Transport Options / Virtio Over PCI Bus / PCI Device Layout}
@@ -1508,6 +1512,23 @@ see \ref{sec:Basic Facilities of a Virtio Device / Device
Configuration Space / Legacy Interface: Device Configuration
Space}~\nameref{sec:Basic Facilities of a Virtio Device / Device Configuration Space / Legacy Interface: Device Configuration Space} for workarounds.
+\subsubsection{Non-transitional Device With Legacy Driver: A Note
+on PCI Device Layout}\label{sec:Virtio Transport Options / Virtio
+Over PCI Bus / PCI Device Layout / Non-transitional Device With
+Legacy Driver: A Note on PCI Device Layout}
+
+Non-transitional devices, on a platform where a legacy driver for
+a legacy device with the same ID might have previously existed,
+SHOULD take the following steps to fail gracefully when a legacy
+driver attempts to drive them:
+
+\begin{enumerate}
+\item Present an I/O BAR in BAR0, and
+\item Respond to a single-byte zero write to offset 18
+ (corresponding to Device Status register in the legacy layout)
+ of BAR0 by presenting zeroes on every BAR and ignoring writes.
+\end{enumerate}
+
\subsection{PCI-specific Initialization And Device Operation}\label{sec:Virtio Transport Options / Virtio Over PCI Bus / PCI-specific Initialization And Device Operation}
\subsubsection{Device Initialization}\label{sec:Virtio Transport Options / Virtio Over PCI Bus / PCI-specific Initialization And Device Operation / Device Initialization}