[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: [PATCH v2 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 | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/content.tex b/content.tex index 18e7d9a..fcc6636 100644 --- a/content.tex +++ b/content.tex @@ -2053,6 +2053,8 @@ \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. \end{description} } \hline @@ -2125,6 +2127,19 @@ \subsection{MMIO Device Register Layout}\label{sec:Virtio Transport Options / Vi apply to the queue selected by writing to \field{QueueSel}. } \hline + \mmioreg{DeviceAuxNotificationIndex}{Device Auxiliary Notifier}{0xd0}{W}{ + Writing to this register selects the device auxiliary + notification index to which \field{DeviceAuxiliaryNotificationData} apply to. + The number of device auxiliary notifications and their purpose is + device-specific. + } + \mmioreg{DeviceAuxNotificationData}{Device Auxiliary Notification Data}{0xd4}{W}{ + Writing to this register notifies the device that a device auxiliary + notification has occured corresponding to the index indicated by + \field{DeviceAuxNotificationIndex}. The value written to this register has + a device-specific meaning. + } + \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. @@ -2160,6 +2175,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}. @@ -2242,6 +2260,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}. @@ -2295,8 +2315,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]