aboutsummaryrefslogtreecommitdiff
path: root/src/rnmi.adoc
diff options
context:
space:
mode:
Diffstat (limited to 'src/rnmi.adoc')
-rw-r--r--src/rnmi.adoc12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/rnmi.adoc b/src/rnmi.adoc
index 9938917..cbd19da 100644
--- a/src/rnmi.adoc
+++ b/src/rnmi.adoc
@@ -71,9 +71,15 @@ of holding.
.Resumable NMI cause `mncause`.
include::images/bytefield/mncause.edn[]
-The `mncause` CSR holds the reason for the NMI, with bit MXLEN-1 set to
-1, and the NMI cause encoded in the least-significant bits or zero if
-NMI causes are not supported.
+The `mncause` CSR holds the reason for the NMI.
+If the reason is an interrupt, bit MXLEN-1 is set to 1, and the NMI
+cause is encoded in the least-significant bits.
+If the reason is an interrupt and NMI causes are not supported, bit MXLEN-1 is
+set to 1, and zero is written to the least-significant bits.
+If the reason is an exception within M-mode that results in a double trap as
+specified in the Smdbltrp extension, bit MXLEN-1 is set to 0 and the
+least-significant bits are set to the cause code corresponding to the
+exception that precipitated the double trap.
.Resumable NMI status register `mnstatus`.
include::images/bytefield/mnstatus.edn[]