summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--content.tex23
1 files changed, 20 insertions, 3 deletions
diff --git a/content.tex b/content.tex
index 222b78e..e57ebc5 100644
--- a/content.tex
+++ b/content.tex
@@ -95,10 +95,10 @@ Feature bits are allocated as follows:
\begin{description}
\item[0 to 23] Feature bits for the specific device type
-\item[24 to 32] Feature bits reserved for extensions to the queue and
+\item[24 to 33] Feature bits reserved for extensions to the queue and
feature negotiation mechanisms
-\item[33 and above] Feature bits reserved for future extensions.
+\item[34 and above] Feature bits reserved for future extensions.
\end{description}
\begin{note}
@@ -5813,7 +5813,7 @@ descriptor for the \field{sense_len}, \field{residual},
\chapter{Reserved Feature Bits}\label{sec:Reserved Feature Bits}
-Currently there are three device-independent feature bits defined:
+Currently these device-independent feature bits defined:
\begin{description}
\item[VIRTIO_F_RING_INDIRECT_DESC (28)] Negotiating this feature indicates
@@ -5825,6 +5825,12 @@ Currently there are three device-independent feature bits defined:
\item[VIRTIO_F_VERSION_1(32)] This indicates compliance with this
specification, giving a simple way to detect legacy devices or drivers.
+
+ \item[VIRTIO_F_IOMMU_PLATFORM(33)] This feature indicates that the device is
+ behind an IOMMU that translates bus addresses from the device into physical
+ addresses in memory. If this feature bit is set to 0, then the device emits
+ physical addresses which are not translated further, even though an IOMMU
+ may be present.
\end{description}
\drivernormative{\section}{Reserved Feature Bits}{Reserved Feature Bits}
@@ -5832,11 +5838,22 @@ Currently there are three device-independent feature bits defined:
A driver MUST accept VIRTIO_F_VERSION_1 if it is offered. A driver
MAY fail to operate further if VIRTIO_F_VERSION_1 is not offered.
+A driver SHOULD accept VIRTIO_F_IOMMU_PLATFORM if it is offered, and it MUST
+then either disable the IOMMU or configure the IOMMU to translate bus addresses
+passed to the device into physical addresses in memory. If
+VIRTIO_F_IOMMU_PLATFORM is not offered, then a driver MUST pass only physical
+addresses to the device.
+
\devicenormative{\section}{Reserved Feature Bits}{Reserved Feature Bits}
A device MUST offer VIRTIO_F_VERSION_1. A device MAY fail to operate further
if VIRTIO_F_VERSION_1 is not accepted.
+A device SHOULD offer VIRTIO_F_IOMMU_PLATFORM if it is behind an IOMMU that
+translates bus addresses from the device into physical addresses in memory.
+A device MAY fail to operate further if VIRTIO_F_IOMMU_PLATFORM is not
+accepted.
+
\section{Legacy Interface: Reserved Feature Bits}\label{sec:Reserved Feature Bits / Legacy Interface: Reserved Feature Bits}
Transitional devices MAY offer the following: