[source]

Module ibex_pmp

DmBaseAddrDmAddrMaskPMPGranularityPMPNumChanPMPNumRegionscsr_pmp_cfg_iibex_pkg::pmp_cfg_tcsr_pmp_addr_i[33:0]logiccsr_pmp_mseccfg_iibex_pkg::pmp_mseccfg_tdebug_mode_ilogicpriv_mode_iibex_pkg::priv_lvl_epmp_req_addr_i[33:0]logicpmp_req_type_iibex_pkg::pmp_req_epmp_req_err_ologic

Block Diagram of ibex_pmp

Parameters

Name

Default

Description

DmBaseAddr

32'h1A110000

DmAddrMask

32'h00000FFF

PMPGranularity

0

Granularity of NAPOT access, 0 = No restriction, 1 = 8 byte, 2 = 16 byte, 3 = 32 byte, etc.

PMPNumChan

2

Number of access channels (e.g. i-side + d-side)

PMPNumRegions

4

Number of implemented regions

Ports

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

wire ibex_pkg::pmp_mseccfg_t

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:
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:
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:
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])