aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Waterman <andrew@sifive.com>2024-01-29 17:47:00 -0800
committerAndrew Waterman <andrew@sifive.com>2024-01-30 15:56:14 -0800
commit7465a80f3d4ba52c015faf301a8179452f2adc96 (patch)
tree59081c23aa1dc700cfd7b6bf2a071c08ea105833
parentd88c7d1931c6a5987894013f514429b82877a027 (diff)
downloadriscv-isa-manual-7465a80f3d4ba52c015faf301a8179452f2adc96.zip
riscv-isa-manual-7465a80f3d4ba52c015faf301a8179452f2adc96.tar.gz
riscv-isa-manual-7465a80f3d4ba52c015faf301a8179452f2adc96.tar.bz2
Add menvcfg.ADUE
-rw-r--r--src/images/bytefield/menvcfgreg.adoc10
-rw-r--r--src/machine.adoc19
2 files changed, 25 insertions, 4 deletions
diff --git a/src/images/bytefield/menvcfgreg.adoc b/src/images/bytefield/menvcfgreg.adoc
index 74de88b..979634a 100644
--- a/src/images/bytefield/menvcfgreg.adoc
+++ b/src/images/bytefield/menvcfgreg.adoc
@@ -3,12 +3,13 @@
(defattrs :plain [:plain {:font-family "M+ 1p Fallback"}])
(def row-height 45)
(def row-header-fn nil)
-(def boxes-per-row 32)
-(draw-column-headers {:height 20 :font-size 18 :labels (reverse ["0" "" "1" "3" "4" "5" "6" "" "7" "" "8" "" "" "" "" "" "31" "32" "" "33" "34" "" "" "" "" "" "" "61" "" "62" "" "63"])})
+(def boxes-per-row 33)
+(draw-column-headers {:height 20 :font-size 18 :labels (reverse ["0" "" "1" "3" "4" "5" "6" "" "7" "" "8" "" "" "" "" "" "31" "32" "" "33" "34" "" "" "" "" "" "60" "" "61" "" "62" "" "63"])})
(draw-box "STCE" {:span 2})
(draw-box "PBMTE" {:span 2})
-(draw-box (text "WPRI" {:font-weight "bold"}) {:span 8})
+(draw-box "ADUE" {:span 2})
+(draw-box (text "WPRI" {:font-weight "bold"}) {:span 7})
(draw-box "PMM" {:span 3})
(draw-box (text "WPRI" {:font-weight "bold"}) {:span 7})
(draw-box "CBZE" {:span 2})
@@ -19,7 +20,8 @@
(draw-box "1" {:span 2 :borders {}})
(draw-box "1" {:span 2 :borders {}})
-(draw-box "28" {:span 8 :borders {}})
+(draw-box "1" {:span 2 :borders {}})
+(draw-box "27" {:span 7 :borders {}})
(draw-box "2" {:span 3 :borders {}})
(draw-box "24" {:span 7 :borders {}})
(draw-box "1" {:span 2 :borders {}})
diff --git a/src/machine.adoc b/src/machine.adoc
index 5f70b22..c12ebda 100644
--- a/src/machine.adoc
+++ b/src/machine.adoc
@@ -2031,6 +2031,25 @@ with respect to the altered interpretation of page-table entries' PBMT fields.
See <<hyp-mm-fences>> for additional synchronization requirements when the
hypervisor extension is implemented.
+If the Svadu extension is implemented, the ADUE bit controls whether hardware
+updating of PTE A/D bits is enabled for S-mode and G-stage address
+translations.
+When ADUE=1, hardware updating of PTE A/D bits is enabled during S-mode
+address translation, and the implementation behaves as though the Svade
+extension were not implemented for S-mode address translation.
+When the hypervisor extension is implemented, if ADUE=1, hardware updating of
+PTE A/D bits is enabled during G-stage address translation, and the
+implementation behaves as though the Svade extension were not implemented for
+G-stage address translation.
+When ADUE=0, the implementation behaves as though Svade were implemented for
+S-mode and G-stage address translation.
+If Svadu is not implemented, ADUE is read-only zero.
+Furthermore, for implementations with the hypervisor extension, `henvcfg`.ADUE
+is read-only zero if `menvcfg`.ADUE is zero.
+
+NOTE: The Svade extension requires page-fault exceptions be raised when PTE
+A/D bits need be set, hence Svade is implemented when ADUE=0.
+
The definition of the STCE field will be furnished by the forthcoming
Sstc extension. Its allocation within `menvcfg` may change prior to the
ratification of that extension.