Skip to content

Commit d406e92

Browse files
virtio-msg: convert device discovery to normative
Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
1 parent c802cf2 commit d406e92

1 file changed

Lines changed: 13 additions & 14 deletions

File tree

transport-msg.tex

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -477,23 +477,22 @@ \subsection{Device Discovery}\label{sec:Virtio Transport Options / Virtio Over M
477477
hypervisor/firmware interfaces. The following informative text describes
478478
typical flows; the normative obligations follow.
479479

480-
Bus implementations MAY discover their devices in various ways:
480+
Bus implementations discover their devices through a mix of platform data,
481+
hypervisor-provided enumeration, or message-based queries such as
482+
\busref{GET_DEVICES}. This specification defines \busref{GET_DEVICES} for
483+
environments that prefer message-driven enumeration, but it does not require
484+
its use when equivalent information is already known out-of-band.
485+
486+
\busnormative{\paragraph}{Device Discovery (Bus)}{Virtio Transport Options / Virtio Over Messages / Device Discovery / Bus}
481487
\begin{itemize}
482-
\item By parsing platform data such as a device tree or ACPI tables,
483-
\item By receiving enumeration data from a hypervisor or firmware,
484-
\item By using \busref{GET_DEVICES} messages
485-
to query which device numbers are present on this bus instance.
488+
\item A bus implementation MUST ensure that every device number it exposes to the driver has been
489+
validated via either platform data or a successful query such as \busref{GET_DEVICES}.
490+
\item Once a device number is deemed present, the bus implementation SHOULD invoke \msgref{GET_DEVICE_INFO}
491+
so it can register the device with the host OS and allow the appropriate virtio driver to bind.
492+
\item If a bus implementation provides an alternative enumeration mechanism (e.g., ACPI, device tree),
493+
it MAY omit \busref{GET_DEVICES} provided the alternative delivers equivalent information to the driver.
486494
\end{itemize}
487495

488-
This specification \emph{defines} \busref{GET_DEVICES} for implementations that
489-
wish to carry out discovery entirely via messages, but it does \textbf{not}
490-
mandate use of this approach. A bus implementation MAY skip
491-
\busref{GET_DEVICES} altogether if it already knows which devices exist (e.g.,
492-
via a device tree). In any case, once a bus has established the presence of a
493-
device, it SHOULD call \msgref{GET_DEVICE_INFO} to retrieve the device ID
494-
and vendor ID. The bus can then register the device with the host OS
495-
so the appropriate virtio driver probe routine is invoked.
496-
497496
\subsection{Device Initialization}
498497
\label{sec:Virtio Transport Options / Virtio Over Messages / Device Initialization}
499498

0 commit comments

Comments
 (0)