Software APIs
Data Fields
epmp_debug_state Struct Reference

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...
 

Detailed Description

A copy of EPMP control register state for debugging purposes.

Definition at line 447 of file epmp.h.

Field Documentation

◆ mseccfg

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.

Definition at line 501 of file epmp.h.

◆ pmpaddr

uintptr_t epmp_debug_state::pmpaddr[kEpmpNumRegions]

PMP address registers (pmpaddr0 - pmpaddr15).

The way that address register values are interpreted differs depending on the address-matching mode (A) in the relevant pmpcfg register(s).

Definition at line 483 of file epmp.h.

◆ pmpcfg

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.

Definition at line 474 of file epmp.h.