Module ibex_pmp
Block Diagram of ibex_pmp
Name |
Default |
Description |
---|---|---|
DmBaseAddr |
32'h1A110000 |
|
DmAddrMask |
32'h00000FFF |
|
PMPGranularity |
0 |
|
PMPNumChan |
2 |
Number of access channels (e.g. i-side + d-side) |
PMPNumRegions |
4 |
Number of implemented regions |
Name |
Type |
Direction |
Description |
---|---|---|---|
csr_pmp_cfg_i |
wire pmp_cfg_t |
input |
Interface to CSRs |
csr_pmp_addr_i |
wire logic [33 : 0] |
input |
|
csr_pmp_mseccfg_i |
input |
||
debug_mode_i |
wire logic |
input |
|
priv_mode_i |
wire priv_lvl_e |
input |
|
pmp_req_addr_i |
wire logic [33 : 0] |
input |
Access checking channels |
pmp_req_type_i |
wire pmp_req_e |
input |
|
pmp_req_err_o |
var logic |
output |
Functions
- mml_perm_check(ibex_pkg::pmp_cfg_t region_csr_pmp_cfg, ibex_pkg::pmp_req_e pmp_req_type, ibex_pkg::priv_lvl_e priv_mode, logic permission_check)
Compute permissions checks that apply when MSECCFG.MML is set. Added for Smepmp support.
- Parameters:
region_csr_pmp_cfg (ibex_pkg::pmp_cfg_t)
pmp_req_type (ibex_pkg::pmp_req_e)
priv_mode (ibex_pkg::priv_lvl_e)
permission_check (logic)
- orig_perm_check(logic pmp_cfg_lock, ibex_pkg::priv_lvl_e priv_mode, logic permission_check)
Compute permissions checks that apply when MSECCFG.MML is unset. This is the original PMP behaviour before Smepmp was added.
- Parameters:
pmp_cfg_lock (logic)
priv_mode (ibex_pkg::priv_lvl_e)
permission_check (logic)
- perm_check_wrapper(logic csr_pmp_mseccfg_mml, ibex_pkg::pmp_cfg_t region_csr_pmp_cfg, ibex_pkg::pmp_req_e pmp_req_type, ibex_pkg::priv_lvl_e priv_mode, logic permission_check)
A wrapper function in which it is decided which form of permission check function gets called
- Parameters:
csr_pmp_mseccfg_mml (logic)
region_csr_pmp_cfg (ibex_pkg::pmp_cfg_t)
pmp_req_type (ibex_pkg::pmp_req_e)
priv_mode (ibex_pkg::priv_lvl_e)
permission_check (logic)
- access_fault_check(logic csr_pmp_mseccfg_mmwp, logic csr_pmp_mseccfg_mml, ibex_pkg::pmp_req_e pmp_req_type, logic[PMPNumRegions-1:0] match_all, ibex_pkg::priv_lvl_e priv_mode, logic[PMPNumRegions-1:0] final_perm_check)
Access fault determination / prioritization
- Parameters:
csr_pmp_mseccfg_mmwp (logic)
csr_pmp_mseccfg_mml (logic)
pmp_req_type (ibex_pkg::pmp_req_e)
match_all (logic[PMPNumRegions-1:0])
priv_mode (ibex_pkg::priv_lvl_e)
final_perm_check (logic[PMPNumRegions-1:0])
Granularity of NAPOT access, 0 = No restriction, 1 = 8 byte, 2 = 16 byte, 3 = 32 byte, etc.