A copy of EPMP control register state for debugging purposes. More...
#include <sw/device/lib/runtime/epmp.h>
Data Fields | |
uint8_t | pmpcfg [kEpmpNumRegions] |
PMP configuration values (pmp0cfg - pmp15cfg). More... | |
uintptr_t | pmpaddr [kEpmpNumRegions] |
PMP address registers (pmpaddr0 - pmpaddr15). More... | |
uint64_t | mseccfg |
Machine Security Configuration register (mseccfg). More... | |
A copy of EPMP control register state for debugging purposes.
uint64_t epmp_debug_state::mseccfg |
Machine Security Configuration register (mseccfg).
+—...—+---—+---—+---—+ | 0 | RLB | MMWP | MML | +—...—+---—+---—+---—+ 63 3 2 1 0
Key:
RLB = Rule Locking Bypass MMWP = Machine Mode Whitelist Policy MML = Machine Mode Lockdown
See the PMP Enhancements specification for more details.
uintptr_t epmp_debug_state::pmpaddr[kEpmpNumRegions] |
uint8_t epmp_debug_state::pmpcfg[kEpmpNumRegions] |
PMP configuration values (pmp0cfg - pmp15cfg).
These configuration values are stored in registers pmpcfg0 - pmpcfg3.
Each 8-bit configuration value is encoded as follows:
Layout:
+—+----—+----—+—+—+—+ | L | 0 | A | X | W | R | +—+----—+----—+—+—+—+ 8 7 6 5 4 3 2 1 0
Key:
L = Locked A = Address-matching Mode (OFF=0, TOR=1, NA4=2, NAPOT=3) X = Executable W = Writeable R = Readable
Note: the interpretation of these configuration bits depends on whether Machine Mode Lockdown (mseccfg.MML) is enabled or not. See the PMP Enhancements specification for more details.