[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: [PATCH 3/4] content: Introduce driver/device auxiliary notifications for MMIO
This includes the additions to the corresponding device and driver conformances. Signed-off-by: Usama Arif <usama.arif@bytedance.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Nikos Dragazis <ndragazis@arrikto.com> --- content.tex | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/content.tex b/content.tex index 5430324..0fc50c4 100644 --- a/content.tex +++ b/content.tex @@ -2002,6 +2002,9 @@ \subsection{MMIO Device Register Layout}\label{sec:Virtio Transport Options / Vi in at least one of the active virtual queues. \item [Configuration Change Notification] - bit 1 - the interrupt was asserted because the configuration of the device has changed. + \item [Device-specific Driver Auxiliary Notification] - bit 2 - the interrupt was + asserted because a device-specific event occurred to notify the driver. See + \ref{sec:Basic Facilities of a Virtio Device / Notifications}. \end{description} } \hline @@ -2074,6 +2077,16 @@ \subsection{MMIO Device Register Layout}\label{sec:Virtio Transport Options / Vi apply to the queue selected by writing to \field{QueueSel}. } \hline + \mmioreg{DeviceAuxiliaryNotification}{Device Auxiliary Notifier}{0xd0}{W}{ + Writing a value to this register triggers a + notification to the device. The value written to this register is + interpreted as a device auxiliary notification index. The mapping of device auxiliary notifications to + device auxiliary notification indices is device-specific. One possible mapping would be + to use the integers 0 to N-1 as the device auxiliary notification indices for a total of + N device auxiliary notifications. The total number of device auxiliary notifications exposed by the device is + also device-specific. + } + \hline \mmioreg{ConfigGeneration}{Configuration atomicity value}{0x0fc}{R}{ Reading from this register returns a value describing a version of the device-specific configuration space (see \field{Config}). The driver can then access the configuration space and, when finished, read \field{ConfigGeneration} again. @@ -2109,6 +2122,9 @@ \subsection{MMIO Device Register Layout}\label{sec:Virtio Transport Options / Vi The device MUST NOT access virtual queue contents when \field{QueueReady} is zero (0x0). +The device MUST ignore device auxiliary notifications for invalid device auxiliary notification +indices. + If VIRTIO_F_RING_RESET has been negotiated, the device MUST present a 0 in \field{QueueReady} after the driver has reset the virtqueue via \field{QueueReset}. @@ -2191,6 +2207,8 @@ \subsubsection{Device Initialization}\label{sec:Virtio Transport Options / Virti Drivers not expecting shared memory MUST NOT use the shared memory registers. +Drivers not expecting device auxiliary notifications MUST NOT use the device auxiliary notification register. + Further initialization MUST follow the procedure described in \ref{sec:General Initialization And Device Operation / Device Initialization}~\nameref{sec:General Initialization And Device Operation / Device Initialization}. @@ -2244,8 +2262,9 @@ \subsubsection{Notifications From The Device}\label{sec:Virtio Transport Options The memory mapped virtio device is using a single, dedicated interrupt signal, which is asserted when at least one of the bits described in the description of \field{InterruptStatus} -is set. This is how the device sends a used buffer notification -or a configuration change notification to the device. +is set. This is how the device sends a +used buffer/configuration change/device-specific notification to the +device. \drivernormative{\paragraph}{Notifications From The Device}{Virtio Transport Options / Virtio Over MMIO / MMIO-specific Initialization And Device Operation / Notifications From The Device} After receiving an interrupt, the driver MUST read -- 2.25.1
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]