aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Waterman <andrew@sifive.com>2021-08-29 22:32:20 -0700
committerAndrew Waterman <andrew@sifive.com>2021-08-29 22:32:20 -0700
commit46a2569962d2d65a4362427163278820acb0b453 (patch)
treeb82d95fcdfa96dcf129936c6fee2c807735446f9
parentd7b5caa893ecd40d295f5ae9831a055dcd1d0b70 (diff)
downloadriscv-isa-manual-46a2569962d2d65a4362427163278820acb0b453.zip
riscv-isa-manual-46a2569962d2d65a4362427163278820acb0b453.tar.gz
riscv-isa-manual-46a2569962d2d65a4362427163278820acb0b453.tar.bz2
FIOM affects aq/rl, too
-rw-r--r--src/hypervisor.tex5
-rw-r--r--src/machine.tex6
-rw-r--r--src/supervisor.tex5
3 files changed, 16 insertions, 0 deletions
diff --git a/src/hypervisor.tex b/src/hypervisor.tex
index 872177a..70e082c 100644
--- a/src/hypervisor.tex
+++ b/src/hypervisor.tex
@@ -856,6 +856,11 @@ requirement to order main memory accesses.
Table~\ref{tab:henvcfg-FIOM} details the modified interpretation of
FENCE instruction bits PI, PO, SI, and SO when FIOM=1 and V=1.
+Similarly, when FIOM=1 and V=1,
+if an atomic instruction that accesses a region ordered as device I/O
+has its {\em aq} and/or {\em rl} bit set, then that instruction is ordered
+as though it accesses both device I/O and memory.
+
\begin{table}[h!]
\begin{center}
\begin{tabular}{|c|l|}
diff --git a/src/machine.tex b/src/machine.tex
index 4ecc7ec..ae4b5f6 100644
--- a/src/machine.tex
+++ b/src/machine.tex
@@ -2351,6 +2351,12 @@ to order main memory accesses.
Table~\ref{tab:menvcfg-FIOM} details the modified interpretation of
FENCE instruction bits PI, PO, SI, and SO for modes less privileged than M
when FIOM=1.
+
+Similarly, for modes less privileged than M when FIOM=1,
+if an atomic instruction that accesses a region ordered as device I/O
+has its {\em aq} and/or {\em rl} bit set, then that instruction is ordered
+as though it accesses both device I/O and memory.
+
If U-mode is not supported, FIOM is hardwired to zero.
\begin{table}[h!]
diff --git a/src/supervisor.tex b/src/supervisor.tex
index ace6fe2..109a69c 100644
--- a/src/supervisor.tex
+++ b/src/supervisor.tex
@@ -840,6 +840,11 @@ to order main memory accesses.
Table~\ref{tab:senvcfg-FIOM} details the modified interpretation of
FENCE instruction bits PI, PO, SI, and SO in U-mode when FIOM=1.
+Similarly, for U-mode when FIOM=1,
+if an atomic instruction that accesses a region ordered as device I/O
+has its {\em aq} and/or {\em rl} bit set, then that instruction is ordered
+as though it accesses both device I/O and memory.
+
\begin{table}[h!]
\begin{center}
\begin{tabular}{|c|l|}