[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: [PATCH 07/11] content: Introduce Doorbell register for MMIO
Signed-off-by: Nikos Dragazis <ndragazis@arrikto.com> --- content.tex | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/content.tex b/content.tex index 628265e..d6fc17e 100644 --- a/content.tex +++ b/content.tex @@ -1884,6 +1884,18 @@ \subsection{MMIO Device Register Layout}\label{sec:Virtio Transport Options / Vi \field{SHMSel} is unused) results in a base address of 0xffffffffffffffff. } + \hline + \mmioreg{Doorbell}{Doorbell Notifier}{0xc0}{W}{ + Writing a value to this register + \ref{sec:Basic Facilities of a Virtio device / Doorbells} triggers a + notification to the device. The value written to this register is + interpreted as a doorbell index and the corresponding notification + concerns this specific doorbell. The mapping of doorbells to + doorbell indices is device-specific. One possible mapping would be + to use the integers 0 to N-1 as the doorbell indices for a total of + N doorbells. The total number of doorbells 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}). @@ -1920,6 +1932,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 doorbell notifications for invalid doorbell +indices. + \drivernormative{\subsubsection}{MMIO Device Register Layout}{Virtio Transport Options / Virtio Over MMIO / MMIO Device Register Layout} The driver MUST NOT access memory locations not described in the table \ref{tab:Virtio Trasport Options / Virtio Over MMIO / MMIO Device Register Layout} @@ -1977,6 +1992,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 doorbells MUST NOT use the doorbell 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}. -- 2.17.1
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]