aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/hypervisor.tex5
-rw-r--r--src/machine.tex39
-rw-r--r--src/priv-intro.tex12
3 files changed, 14 insertions, 42 deletions
diff --git a/src/hypervisor.tex b/src/hypervisor.tex
index 98a54ac..2bb1372 100644
--- a/src/hypervisor.tex
+++ b/src/hypervisor.tex
@@ -496,7 +496,10 @@ virtualization modes (V=0 to V=1, or vice-versa), the implementation swaps the
defined fields of {\tt bsip} with their counterparts in {\tt sip}. The
other fields in {\tt sip} are unchanged.
-\note{AW: Need to describe how {\tt bsip}.SEIP interacts with PLIC. I think {\tt bsip}.SEIP should purely be a read-write storage bit to emulate the PLIC for VS-mode; the PLIC should not be wired into {\tt bsip}.SEIP.}
+\note{Need to describe how {\tt bsip}.SEIP interacts with PLIC. Current
+thinking is that {\tt bsip}.SEIP should purely be a read-write storage bit to
+emulate the PLIC for VS-mode; the PLIC should not be wired into {\tt
+bsip}.SEIP.}
\begin{figure*}[h!]
{\footnotesize
diff --git a/src/machine.tex b/src/machine.tex
index a22d076..ccf2ace 100644
--- a/src/machine.tex
+++ b/src/machine.tex
@@ -3,8 +3,7 @@
This chapter describes the machine-level operations available in
machine-mode (M-mode), which is the highest privilege mode in a RISC-V
-system. M-mode is the only mandatory privilege mode in a RISC-V
-hardware implementation. M-mode is used for low-level access to a
+system. M-mode is used for low-level access to a
hardware platform and is the first mode entered at reset. M-mode can
also be used to implement features that are too difficult or expensive
to implement in hardware directly. The RISC-V machine-level ISA
@@ -88,17 +87,6 @@ at a time. If zero after one shift, then the machine is RV32. If
zero after two shifts, then the machine is RV64, else RV128.
\end{commentary}
-When MXL is set to a value less than the widest supported XLEN, all
-operations must ignore source operand register bits above the
-configured XLEN, and must sign-extend results to fill the entire
-widest supported XLEN in the destination register.
-
-\begin{commentary}
-We require that operations always fill the entire underlying hardware
-registers with defined values to avoid implementation-defined
-behavior.
-\end{commentary}
-
The Extensions field encodes the presence of the standard extensions,
with a single bit per letter of the alphabet (bit 0 encodes presence
of extension ``A'' , bit 1 encodes presence of extension ``B'',
@@ -129,7 +117,7 @@ The ``X'' bit will be set if there are any non-standard extensions.
Bit & Character & Description \\
\hline
0 & A & Atomic extension \\
- 1 & B & {\em Tentatively reserved for Bit operations extension} \\
+ 1 & B & {\em Tentatively reserved for Bit-Manipulation extension} \\
2 & C & Compressed extension \\
3 & D & Double-precision floating-point extension \\
4 & E & RV32E base ISA \\
@@ -196,8 +184,6 @@ If an instruction that would write {\tt misa} increases IALIGN, and
the subsequent instruction's address is not IALIGN-bit aligned, the
write to {\tt misa} is suppressed, leaving {\tt misa} unchanged.
-\clearpage
-
\subsection{Machine Vendor ID Register {\tt mvendorid}}
The {\tt mvendorid} CSR is a 32-bit read-only register providing
@@ -603,13 +589,6 @@ supported in systems running Unix-like operating systems to support
user-level trap handling.
\end{commentary}
-\begin{commentary}
-Fields that were previously allocated for H-mode support in {\tt
- mstatus} have now been reserved as \wpri\ fields. To reduce
-backwards incompatibility with existing implementations, we did not
-compact the register after removing these fields.
-\end{commentary}
-
\subsection{Base ISA Control in {\tt mstatus} Register}
\label{xlen-control}
@@ -637,8 +616,11 @@ Whenever XLEN in any mode is set to a value less than the widest
supported XLEN, all operations must ignore source operand register
bits above the configured XLEN, and must sign-extend results to fill
the entire widest supported XLEN in the destination register.
-
\begin{commentary}
+We require that operations always fill the entire underlying hardware
+registers with defined values to avoid implementation-defined
+behavior.
+
To reduce hardware complexity, the architecture imposes no checks that
lower-privilege modes have XLEN settings less than or equal to the
next-higher privilege mode. In practice, such settings would almost
@@ -741,7 +723,7 @@ operation is permitted in S-mode. TSR is hard-wired to 0 when S-mode is not
supported.
\begin{commentary}
-Trapping SRET is necessary to emulate the Augmented Virtualization mechanism
+Trapping SRET is necessary to emulate the hypervisor extension
(see Chapter~\ref{hypervisor}) on implementations that do not provide it.
\end{commentary}
@@ -1717,10 +1699,9 @@ read-only shadows of {\tt mcycle}, {\tt minstret}, and {\tt mhpmcounter{\em
n}}, respectively. The {\tt time} CSR is a read-only shadow of the
memory-mapped {\tt mtime} register.
\begin{commentary}
-Implementations can convert reads of the {\tt time} CSR into loads to
-the memory-mapped {\tt mtime} register, or hard-wire the TM bit in
-{\tt mcounteren} to 0
-and emulate this functionality in M-mode software.
+Implementations can convert reads of the {\tt time} CSR into loads to the
+memory-mapped {\tt mtime} register, or emulate this functionality in M-mode
+software.
\end{commentary}
\subsection{Machine Counter-Inhibit CSR ({\tt mcountinhibit})}
diff --git a/src/priv-intro.tex b/src/priv-intro.tex
index 723b9b4..7787f69 100644
--- a/src/priv-intro.tex
+++ b/src/priv-intro.tex
@@ -142,18 +142,6 @@ manage secure execution environments on RISC-V. User-mode (U-mode)
and supervisor-mode (S-mode) are intended for conventional application
and operating system usage respectively.
-\begin{commentary}
-The previous Hypervisor mode (H-mode) designed to support Type-1
-hypervisors has been removed and the encoding space reserved as we are
-focusing on hypervisor support via an extended S mode suitable for
-both Type-1 and Type-2 hypervisors as described in
-Chapter~\ref{hypervisor}. The encoding space for H is reserved for
-future use and to avoid backwards incompatible changes in bit
-positions in various status registers. The bit positions might be
-reused in the future for different Type-1 hypervisor support or
-possibly additional secure execution modes.
-\end{commentary}
-
Each privilege level has a core set of privileged ISA extensions with optional
extensions and variants. For example, machine-mode supports an optional
standard extension for memory protection. Also, supervisor mode can be