This requirement applies to any system which *did* have legacy drivers. Signed-off-by: Rusty Russell <> --- content.tex
26 ++++++++++++++
------------
1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/content.tex b/content.tex index 511fda1..e6ebd1d 100644 --- a/content.tex +++ b/content.tex @@ -1295,6 +1295,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: + +egin{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 @@ -1317,18 +1331,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: - -egin{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 -- 1.8.3.2