OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

virtio-comment message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Re: [tab] Re: [virtio-comment] TAB Comments on Virtual I/O Device (VIRTIO) Version 1.0


Patrick Durusau <patrick@durusau.net> writes:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Michael,
>
> Just a thought, the legacy devices conform to some prior
> specification. Yes?
>
> So it really isn't that transitional devices, which include legacy
> plus the new standard conform only to the new standard but they do
> conform to the new standard plus one or more old ones.
>
> One way to organize that in terms of conformance:
>
> 1) Non-Transition devices (here enumerate the requirements for a
> non-transitional device and what happens if I do something optional,
> what does someone on the other end have to accept?)

Well, all that should be nailed down in the rest of the content.  It
says what drivers must do *and* what devices must do.  This language has
been repeatedly tightened during the 1.0 drafting process (and
especially from recent feedback), so hopefully it's fairly robust now.

> 2) Transitional devices - conform to all of #1, no reason to repeat,
> and MAY conform to one or more legacy standards (include as normative
> references) so you don't have to risk being at variance with the prior
> work by repetition. Then your legacy material become
> non-normative/informative, for the readers convenience and you
> normatively cite the prior standards, to say: Go see the original if
> you want to do X.
>
> Include rules in the normative text about what happens when
> non-transitional and transitional devices meet.
>
> That may (or may not be) closer to what you originally intended in
> making legacy material non-normative. That will allow old standards to
> stand for themselves. A lot safer than way than trying to restate them.

OK, how about simply this:

diff --git a/conformance.tex b/conformance.tex
index 0e8b321..e2dadb9 100644
--- a/conformance.tex
+++ b/conformance.tex
@@ -6,3 +6,46 @@
 An implementation conforms to this specification if it satisfies
 all of the MUST or REQUIRED level requirements defined within
 this specification.
+
+An implementation MAY choose to implement support for legacy drivers
+or devices, by conforming to \hyperref[intro:Virtio PCI Draft]{[Virtio PCI Draft]}.
+The sections named "Legacy Interfaces" are non-normative, but should
+be helpful for those wishing to support legacy drivers or devices:
+\begin{itemize}
+\item Section \ref{sec:Basic Facilities of a Virtio Device / Feature Bits / Legacy Interface: A Note on transitions from earlier drafts}
+\item Section \ref{sec:Basic Facilities of a Virtio Device / Device Configuration Space / Legacy Interface: A Note on Configuration Space endian-ness}
+\item Section \ref{sec:Basic Facilities of a Virtio Device / Device Configuration Space / Legacy Interface: Device Configuration Space}
+\item Section \ref{sec:Basic Facilities of a Virtio Device / Virtqueues / Legacy Interfaces: A Note on Virtqueue Layout}
+\item Section \ref{sec:Basic Facilities of a Virtio Device / Virtqueues / Legacy Interfaces: A Note on Virtqueue Endianness}
+\item Section \ref{sec:Basic Facilities of a Virtio Device / Virtqueues / Message Framing / Legacy Interface: Message Framing}
+\item Section \ref{sec:General Initialization And Device Operation / Device Initialization / Legacy Interface: Device Initialization}
+\item Section \ref{sec:Virtio Transport Options / Virtio Over PCI Bus / PCI Device Discovery / Legacy Interfaces: A Note on PCI Device Discovery}
+\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{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}
+\item Section \ref{sec:Virtio Transport Options / Virtio over channel I/O / Device Operation / Host->Guest Notification / Legacy Interfaces: A Note on Host->Guest Notification}
+\item Section \ref{sec:Virtio Transport Options / Virtio over channel I/O / Device Initialization / Setting Up Indicators / Legacy Interfaces: A Note on Setting Up Indicators}
+\item Section \ref{sec:Device Types / Network Device / Feature bits / Legacy Interface: Feature bits}
+\item Section \ref{sec:Device Types / Network Device / Device configuration layout / Legacy Interface: Device configuration layout}
+\item Section \ref{sec:Device Types / Network Device / Device Operation / Legacy Interface: Device Operation}
+\item Section \ref{sec:Device Types / Network Device / Device Operation / Control Virtqueue / Setting MAC Address Filtering / Legacy Interface: Setting MAC Address Filtering}
+\item Section \ref{sec:Device Types / Network Device / Device Operation / Control Virtqueue / VLAN Filtering / Legacy Interface: VLAN Filtering}
+\item Section \ref{sec:Device Types / Network Device / Device Operation / Control Virtqueue / Automatic receive steering in multiqueue mode / Legacy Interface: Automatic receive steering in multiqueue mode}
+\item Section \ref{sec:Device Types / Network Device / Device Operation / Control Virtqueue / Offloads State Configuration / Setting Offloads State / Legacy Interface: Setting Offloads State}
+\item Section \ref{sec:Device Types / Block Device / Feature bits / Legacy Interface: Feature bits}
+\item Section \ref{sec:Device Types / Block Device / Feature bits / Device configuration layout / Legacy Interface: Device configuration layout}
+\item Section \ref{sec:Device Types / Block Device / Device Initialization / Legacy Interface: Device Initialization}
+\item Section \ref{sec:Device Types / Block Device / Device Operation / Legacy Interface: Device Operation}
+\item Section \ref{sec:Device Types / Console Device / Device configuration layout / Legacy Interface: Device configuration layout}
+\item Section \ref{sec:Device Types / Console Device / Device Operation / Legacy Interface: Device Operation}
+\item Section \ref{sec:Device Types / Memory Balloon Device / Device configuration layout / Legacy Interface: Device configuration layout}
+\item Section \ref{sec:Device Types / Memory Balloon Device / Device Operation / Memory Statistics / Legacy Interface: Memory Statistics}
+\item Section \ref{sec:Device Types / SCSI Host Device / Device configuration layout / Legacy Interface: Device configuration layout}
+\item Section \ref{sec:Device Types / SCSI Host Device / Device Operation / Device Operation: Request Queues / Legacy Interface: Device Operation: Request Queues}
+\item Section \ref{sec:Device Types / SCSI Host Device / Device Operation / Device Operation: controlq / Legacy Interface: Device Operation: controlq}
+\item Section \ref{sec:Device Types / SCSI Host Device / Device Operation / Device Operation: eventq / Legacy Interface: Device Operation: eventq}
+\item Section \ref{sec:Reserved Feature Bits / Legacy Interface: Reserved Feature Bits}
+\end{itemize}
diff --git a/content.tex b/content.tex
index a47ce6c..0e6c963 100644
--- a/content.tex
+++ b/content.tex
@@ -1288,6 +1288,20 @@ As a prerequisite to device initialization, the driver scans the
 PCI capability list, detecting virtio configuration layout using Virtio
 Structure PCI capabilities.
 
+\paragraph{Non-transitional Device With Legacy Driver}\label{sec:Virtio Transport Options / Virtio Over PCI Bus / PCI-specific Initialization And Device Operation / Device Initialization / Non-transitional Device With Legacy Driver}
+
+Non-transitional devices, on a platform where a legacy driver for
+a legacy device with the same ID might have previously existed,
+MUST 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}
+
 \subparagraph{Legacy Interface: A Note on Device Layout Detection}\label{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}
 
 Legacy drivers skipped the Device Layout Detection step, assuming legacy
@@ -1310,18 +1324,6 @@ Capabilities on the capability list.
 If these are not present, driver should assume a legacy device,
 and fail gracefully.
 
-Non-transitional devices, on a platform where a legacy driver for
-a legacy device with the same ID might have previously existed,
-MUST 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}
-
 \paragraph{MSI-X Vector Configuration}\label{sec:Virtio Transport Options / Virtio Over PCI Bus / PCI-specific Initialization And Device Operation / Device Initialization / MSI-X Vector Configuration}
 
 When MSI-X capability is present and enabled in the device
diff --git a/introduction.tex b/introduction.tex
index a1b4239..f0b6aee 100644
--- a/introduction.tex
+++ b/introduction.tex
@@ -51,6 +51,9 @@ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "S
 	PCI Express Specifications
 	\newline\url{http://www.pcisig.com/specifications/pciexpress/},
 	PCI-SIG\\
+	\phantomsection\label{intro:Virtio PCI Draft}\textbf{[Virtio PCI Draft]} &
+	Virtio PCI Draft Specification
+	\newline\url{http://ozlabs.org/~rusty/virtio-spec/virtio-0.9.5.pdf}\\
 \end{longtable}
 
 \section{Structure Specifications}



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]