This is following up on the discussion we had earlier on MMIO reset behavior:

https://lists.oasis-open.org/archives/virtio-dev/202107/msg00012.html

Suggesting below change to spec to make it explicit what's expected in driver. 
If this is accepted, I will follow up with a patch to Linux driver.

===

Device reset is accomplished by writing 0 to Status register. Explicitly note
that a driver needs to wait on Status register read returning 0 before assuming 
that
device reset operation is complete.

Signed-off-by: Srivatsa Vaddagiri <[email protected]>

diff --git a/content.tex b/content.tex
index 5c70a3c..7631be4 100644
--- a/content.tex
+++ b/content.tex
@@ -1985,6 +1985,10 @@ \subsubsection{Device Initialization}\label{sec:Virtio 
Transport Options / Virti
 and if its value is zero (0x0) MUST abort initialization and
 MUST NOT access any other register.

+After writing 0 to \field{Status}, the driver MUST wait for a read of
+\field{Status} to return 0 before proceeding with the remaining steps of
+initializing the device.
+
 Drivers not expecting shared memory MUST NOT use the shared
 memory registers.


---

Qualcomm Innovation Center, Inc. is submitting the attached "feedback" as a 
non-member to the virtio-dev mailing list for consideration and inclusion.

Reply via email to