From 22a65749936e31419a0a7f0e6f350549868a8f89 Mon Sep 17 00:00:00 2001
From: Andrew Waterman <andrew@sifive.com>
Date: Sun, 11 Feb 2024 23:18:13 -0800
Subject: [PATCH] Svpbmt allows additional PMA overrides

---
 src/priv-preface.adoc | 1 +
 src/supervisor.adoc   | 7 ++++++-
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/priv-preface.adoc b/src/priv-preface.adoc
index 107133333..61b80313c 100644
--- a/src/priv-preface.adoc
+++ b/src/priv-preface.adoc
@@ -68,6 +68,7 @@ in `menvcfg` and `henvcfg`.
 * Clarified that, for a given exception cause, `__x__tval` might sometimes
 be set to a nonzero value but sometimes not.
 * Clarified exception behavior of unimplemented or inaccessible CSRs.
+* Clarified that Svpbmt allows implementations to override additional PMAs.
 
 [.big]*_Preface to Version 20211203_*
 
diff --git a/src/supervisor.adoc b/src/supervisor.adoc
index 85f0ec28a..1c7189b75 100644
--- a/src/supervisor.adoc
+++ b/src/supervisor.adoc
@@ -1837,7 +1837,7 @@ associated memory pages. The encoding for the PBMT bits is captured in
 The Svpbmt extension depends on Sv39.
 
 [[pbmt]]
-.Encodings for PBMT field in Sv39, Sv48, and Sv57 PTEs.  Attributes not mentioned are inherited from PMA associated with the physical address.
+.Encodings for PBMT field in Sv39, Sv48, and Sv57 PTEs.
 [%autowidth,float="center",align="center",cols="^,^,<",options="header"]
 |===
 |Mode |Value |Requested Memory Attributes
@@ -1855,6 +1855,11 @@ Non-cacheable, non-idempotent, strongly-ordered (I/O ordering), I/O +
 _Reserved for future standard use_
 |===
 
+Implementations might override additional PMAs not explicitly listed in
+<<pbmt>>.
+For example, a misaligned memory access to a page with PBMT=IO might raise an
+exception, even if the same access would have succeeded for PBMT=PMA.
+
 [NOTE]
 ====
 Future extensions may provide more and/or finer-grained control over