5 #ifndef OPENTITAN_SW_DEVICE_SILICON_CREATOR_LIB_EPMP_STATE_H_
6 #define OPENTITAN_SW_DEVICE_SILICON_CREATOR_LIB_EPMP_STATE_H_
11 #include "sw/device/silicon_creator/lib/epmp_defs.h"
12 #include "sw/device/silicon_creator/lib/error.h"
53 typedef enum epmp_perm {
54 kEpmpPermUnlocked = 0,
56 kEpmpPermLockedNoAccess = EPMP_CFG_L,
59 kEpmpPermLockedReadOnly = EPMP_CFG_LR,
62 kEpmpPermLockedReadWrite = EPMP_CFG_LRW,
65 kEpmpPermLockedReadExecute = EPMP_CFG_LRX,
68 kEpmpPermLockedReadWriteExecute = EPMP_CFG_LRWX,
71 kEpmpPermReadOnly = EPMP_CFG_R,
74 kEpmpPermReadWrite = EPMP_CFG_R | EPMP_CFG_W,
77 kEpmpPermReadExecute = EPMP_CFG_R | EPMP_CFG_X,
80 kEpmpPermReadWriteExecute = EPMP_CFG_R | EPMP_CFG_W | EPMP_CFG_X,
88 typedef enum epmp_mode {
89 kEpmpModeOff = EPMP_CFG_A_OFF,
90 kEpmpModeTor = EPMP_CFG_A_TOR,
91 kEpmpModeNa4 = EPMP_CFG_A_NA4,
92 kEpmpModeNapot = EPMP_CFG_A_NAPOT,
182 inline void epmp_state_configure_tor(uint32_t entry,
epmp_region_t region,
205 inline void epmp_state_configure_na4(uint32_t entry,
epmp_region_t region,
225 inline void epmp_state_configure_napot(uint32_t entry,
epmp_region_t region,
228 uint32_t len = (region.end - region.start - 1) >> 3;
245 rom_error_t epmp_state_check(
void);