Skip to content

Commit d781acb

Browse files
[doc] PMP instruction fetch check clarified
Clarify that instruction fetch bus should not contain devices that experience side-effects due to reads.
1 parent 0c233f5 commit d781acb

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

doc/03_reference/pmp.rst

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,13 @@ When PMPEnable is zero, the PMP module is not instantiated and all PMP registers
2121
PMP Integration
2222
---------------
2323

24-
Addresses from the instruction fetch unit and load-store unit are passed to the PMP module for checking, and the output of the PMP check is used to gate the external request.
24+
Addresses from the instruction fetch unit and load-store unit are passed to the PMP module for checking.
25+
The output of PMP check is used to gate the external request of the load-store unit.
26+
This is because both writes and reads can have side-effects on MMIO devices connected to the data memory bus.
27+
The request coming from the instruction fetch unit are not gated by the PMP check, so integrators must choose carefully what to connect to the instruction fetch bus.
28+
Specifically, no devices that experience side-effects due to reading should be available on this bus.
29+
In general, connecting memories to the instruction fetch bus should be safe.
30+
2531
To maintain consistency with external errors, the instruction fetch unit and load-store unit progress with their request as if it was granted externally.
2632
The PMP error is registered and consumed by the core when the data would have been consumed.
2733

0 commit comments

Comments
 (0)