aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Waterman <andrew@sifive.com>2024-03-05 15:04:52 -0800
committerGitHub <noreply@github.com>2024-03-05 15:04:52 -0800
commit722fb4376f5a3176c271cb8308921c8e7f8839b6 (patch)
tree94b24db86b05535ccd35c63c2e81c2b7c9a0b24c
parent4571fc3ea35cf318a1fcd0544e1f1d661e61b264 (diff)
parent10700d0766501c9a4ce16c7cab53c908c44d5158 (diff)
downloadriscv-isa-manual-722fb4376f5a3176c271cb8308921c8e7f8839b6.zip
riscv-isa-manual-722fb4376f5a3176c271cb8308921c8e7f8839b6.tar.gz
riscv-isa-manual-722fb4376f5a3176c271cb8308921c8e7f8839b6.tar.bz2
Merge pull request #1248 from riscv/smrnmi-smdbltrpriscv-isa-release-722fb43-2024-03-05
Update Smrnmi to account for Smdbltrp extension
-rw-r--r--src/images/bytefield/mncause.edn6
-rw-r--r--src/rnmi.adoc12
2 files changed, 12 insertions, 6 deletions
diff --git a/src/images/bytefield/mncause.edn b/src/images/bytefield/mncause.edn
index 5323f24..0b56e9b 100644
--- a/src/images/bytefield/mncause.edn
+++ b/src/images/bytefield/mncause.edn
@@ -8,9 +8,9 @@
(def boxes-per-row 32)
(draw-column-headers {:height 24 :font-size 24 :labels (reverse ["0" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "MXLEN-2" "" "" "" "MXLEN-1" ""])})
-(draw-box "1" {:span 4})
-(draw-box (text "NMI Cause" {:font-size 24}) {:span 14 :text-anchor "end" :borders {:top :border-unrelated :bottom :border-unrelated :left :border-unrelated}})
+(draw-box "Interrupt" {:span 4})
+(draw-box (text "Exception Code" {:font-size 24}) {:span 14 :text-anchor "end" :borders {:top :border-unrelated :bottom :border-unrelated :left :border-unrelated}})
(draw-box (text "(WARL)" {:font-weight "bold" :font-size 24}) {:span 14 :text-anchor "start" :borders {:top :border-unrelated :right :border-unrelated :bottom :border-unrelated}})
(draw-box "1" {:span 4 :borders {}})
(draw-box "MXLEN-1" {:font-size 24 :span 28 :borders {}})
----- \ No newline at end of file
+----
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[]