On Fri, Jan 11, 2019 at 11:42:00AM +0000, Dr. David Alan Gilbert (git) wrote:
> diff --git a/content.tex b/content.tex
> index 776162a..e2435ff 100644
> --- a/content.tex
> +++ b/content.tex
> @@ -1641,6 +1641,33 @@ All register values are organized as Little Endian.
> selected by writing to \field{QueueSel}.
> }
> \hline
> + \mmioreg{SHMSel}{Shared memory region select}{0x0b0}{W}{%
> + Writing to this register selects the shared memory region \ref{sec:Basic Facilities of a Virtio Device / Shared Memory Regions}
> + following operations on \field{SHMId}, \field{SHMLenLow}, \field{SHMLenHigh},
> + \field{SHMBaseLow} and \field{SHMBaseHigh} apply to. The index
> + number of the first region is zero (0x0); note that it is a
> + simple index that does not correspond to the \field{id}.
Why use a separate virtio-mmio index instead of the shared memory ID?
The driver would map those IDs it knows about, so I'm not sure if
enumerating them via a separate index is useful. Plus using the ID lets
you drop one register from the interface.