aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Hauser <31252952+jhauser-us@users.noreply.github.com>2021-07-18 09:20:12 -0700
committerGitHub <noreply@github.com>2021-07-18 09:20:12 -0700
commit375457526068414a2ffb5dd3235d3a06db585f90 (patch)
tree8f5f8939f3415ea7381c49eaefd9aba9626153cc
parent03624345e03e9a7e4bb2af1faf41b0c4e66da1e2 (diff)
downloadriscv-isa-manual-375457526068414a2ffb5dd3235d3a06db585f90.zip
riscv-isa-manual-375457526068414a2ffb5dd3235d3a06db585f90.tar.gz
riscv-isa-manual-375457526068414a2ffb5dd3235d3a06db585f90.tar.bz2
mstatus/hstatus GVA bit may be set for breakpoint traps
-rw-r--r--src/hypervisor.tex8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/hypervisor.tex b/src/hypervisor.tex
index f836232..2f946f2 100644
--- a/src/hypervisor.tex
+++ b/src/hypervisor.tex
@@ -322,7 +322,7 @@ HS-mode and U-mode.
Field GVA (Guest Virtual Address) is written by the implementation
whenever a trap is taken into HS-mode.
-For any trap (address misaligned,
+For any trap (breakpoint, address misaligned,
access fault, page fault, or guest-page fault) that writes
a guest virtual address to {\tt stval}, GVA is set to~1.
For any other trap into HS-mode, GVA is set to~0.
@@ -332,6 +332,10 @@ For memory access traps, GVA is redundant with field SPV (the two bits are set
the same) except when the explicit memory access of an HLV, HLVX, or HSV
instruction causes a fault.
In that case, SPV=0 but GVA=1.
+
+If an instruction address misaligned or breakpoint trap writes zero to
+{\tt stval} instead of the faulting virtual address, then GVA=0 even if
+SPV=1.
\end{commentary}
The VSBE bit is a \warl\ field that controls the endianness of explicit
@@ -2006,7 +2010,7 @@ virtualization mode V is set to MPV, unless MPP=3, in which case V remains 0.
Field GVA (Guest Virtual Address) is written by the implementation
whenever a trap is taken into M-mode.
-For any trap (address misaligned,
+For any trap (breakpoint, address misaligned,
access fault, page fault, or guest-page fault) that writes
a guest virtual address to {\tt mtval}, GVA is set to~1.
For any other trap into M-mode, GVA is set to~0.