sep_system_peripherals

Integrate mailbox, filters, remap, and system CSRs on the SEP peripheral fabric.

Bridges local and SMN AXI into mailbox, system CSR, and filtered outbound/inbound paths. Publishes mailbox interrupts, remap debug, filter hit debug, NMI vector, TRNG source select, KM wipe, and DMA/peripheral bus-error clear.

Local-master requests are widened from 32 to 56 address bits, pass the 16-region alias remap and a register cut, and are decoded in priority order: the SMC aperture to sep_ext_to_smc_axi_req_o unfiltered; the SMU aperture or any address at or above 0x1_0000_0000 to the outbound filter; the AP and STEE regions through output remaps that set AxUSER to OthersSourceId, then to the outbound filter; everything else to the peripheral xbar. SMN inbound requests pass an axi_cut and the inbound filter, have SEP_GLOBAL_BASE_ADDR within SEP_REGION_SIZE rebased to 0, and enter the same xbar. The xbar serves the mailbox and system CSR windows and forwards other addresses below 0x4000_0000, truncated to 32 address bits with a 3-bit ID, on smn_inbound_to_sep_axi_req_o. Both filters block by default and check the 4-bit source ID and the non-secure bit.

Ports

Table 1. Ports
NameDirectionTypeDescription
clk_iinputlogicSystem clock.
clk_ref_iinputlogicFree-running reference clock for REFERENCE_COUNTER.
rst_niinputlogicActive-low reset.
rst_warm_niinputlogicActive-low warm reset of the warm scratch registers only.
test_en_iinputlogicDFT test-enable (scan-enable).
scan_rst_niinputlogicDFT scan reset, active-low; unused.
inbound_filter_skip_iinputlogicBypasses all inbound filter matching while high; feat_ctrl.sep_debug in sep.
outbound_filter_skip_iinputlogicBypasses all outbound filter matching while high.
sep_system_peripheral_axi_req_iinputsep_pkg::sep_axi_xbar_slv_req_tAXI request from local masters via the SEP local xbar, with 32-bit addresses.
sep_system_peripheral_axi_resp_ooutputsep_pkg::sep_axi_xbar_slv_resp_tAXI response to the SEP local xbar.
smn_inbound_axi_req_iinputsep_pkg::sep_system_peripherals_internal_axi_req_tSMN inbound AXI request with a 56-bit global address, before the inbound filter.
smn_inbound_axi_resp_ooutputsep_pkg::sep_system_peripherals_internal_axi_resp_tSMN inbound AXI response; blocked requests get the filter's error response.
smn_inbound_to_sep_axi_req_ooutputsep_pkg::sep_system_peripherals_inbound_to_sep_axi_req_tPeripheral-xbar request outside the mailbox and system CSR windows, from either initiator, with a 32-bit address and 3-bit ID, to the SEP local xbar.
smn_inbound_to_sep_axi_resp_iinputsep_pkg::sep_system_peripherals_inbound_to_sep_axi_resp_tResponse from the SEP local xbar to smn_inbound_to_sep_axi_req_o.
smn_outbound_axi_req_ooutputsep_pkg::sep_system_peripherals_outbound_axi_req_tOutbound request to the SMN after the outbound filter.
smn_outbound_axi_resp_iinputsep_pkg::sep_system_peripherals_outbound_axi_resp_tOutbound response from the SMN.
sep_ext_to_smc_axi_req_ooutputsep_pkg::sep_system_peripherals_internal_axi_req_tLocal-master request in the SMC aperture, after the alias remap; not filtered.
sep_ext_to_smc_axi_resp_iinputsep_pkg::sep_system_peripherals_internal_axi_resp_tResponse from the SMC to sep_ext_to_smc_axi_req_o.
local_masters_remap_debug_ooutputsep_pkg::remap_debug_tAlias-remap hit region indices for local-master write and read requests.
outbound_write_filter_hit_debug_ooutputlogic [$clog2(sep_pkg::OutboundFilterNumFilters)-1:0]Index of the outbound filter matched by the current write request.
outbound_read_filter_hit_debug_ooutputlogic [$clog2(sep_pkg::OutboundFilterNumFilters)-1:0]Index of the outbound filter matched by the current read request.
inbound_write_filter_hit_debug_ooutputlogic [$clog2(sep_pkg::InboundFilterNumFilters)-1:0]Index of the inbound filter matched by the current write request.
inbound_read_filter_hit_debug_ooutputlogic [$clog2(sep_pkg::InboundFilterNumFilters)-1:0]Index of the inbound filter matched by the current read request.
mailbox_inbound_interrupt_ooutputlogic [sep_pkg::NumMailboxes-1:0]Per-mailbox inbound-data interrupts.
mailbox_outbound_interrupt_ooutputlogic [sep_pkg::NumMailboxes-1:0]Per-mailbox outbound-data interrupts.
smc_fuse_sense_done_iinputlogicSMC fuse sense completion, reflected in SMC_FUSE_SENSE_STATUS; requests to the SMC hang while it is low.
sep_fuse_sense_done_iinputlogicSEP fuse sense completion, reflected in SEP_FUSE_SENSE_STATUS.
nmi_vec_ooutputlogic [31:1]SEP_NMI_VEC register value: the address the CPU jumps to on a non-maskable interrupt.
smc_global_base_addr_iinputlogic [sep_pkg::SEP_SYSTEM_PERIPHERALS_56_ADDR_WIDTH-1:0]Base of the SMC aperture in the global address map; local-master requests inside it leave on sep_ext_to_smc_axi_req_o.
smc_region_size_iinputlogic [sep_pkg::SEP_SYSTEM_PERIPHERALS_56_ADDR_WIDTH-1:0]Size in bytes of the SMC aperture at smc_global_base_addr_i.
sep_local_base_addr_ooutputlogic [sep_pkg::SEP_SYSTEM_PERIPHERALS_56_ADDR_WIDTH-1:0]SEP_LOCAL_BASE_ADDR register value: base of the SEP local alias window.
sep_global_base_addr_ooutputlogic [sep_pkg::SEP_SYSTEM_PERIPHERALS_56_ADDR_WIDTH-1:0]SEP_GLOBAL_BASE_ADDR register value: base of the SEP aperture in the global address map; inbound SMN addresses inside it are remapped to local addresses.
sep_region_size_ooutputlogic [sep_pkg::SEP_SYSTEM_PERIPHERALS_56_ADDR_WIDTH-1:0]SEP_REGION_SIZE register value, zero-extended: size of the SEP aperture in bytes.
ext_trng_src_sel_ooutputlogic [2:0]EXT_TRNG_SRC_SEL register value: bit i selects external TRNG (1) or internal DRBG (0) for stream i.
km_wipe_state_ooutputlogicKM_WIPE_CTRL.wipe_state register value; a rising edge wipes the Key Manager.
dma_reg_bus_err_iinputlogicSecure DMA register-path fault, reflected in DMA_BUS_ERR_STATUS.reg_path_err.
dma_host_intg_err_iinputlogicDMA-master-path fault, latched into DMA_BUS_ERR_STATUS.host_path_err.
dma_err_clr_ooutputlogicSingle-cycle clear pulse from DMA_BUS_ERR_CLEAR to both DMA bridge-fault latches.
periph_bus_err_iinputlogic [sep_pkg::NUM_PERIPH_BUS_ERRS-1:0]Per-block peripheral register-bridge faults, reflected in PERIPH_BUS_ERR_STATUS, in sep_pkg::periph_bus_err_e bit order.
periph_bus_err_clr_ooutputlogic [sep_pkg::NUM_PERIPH_BUS_ERRS-1:0]Per-block single-cycle clear pulses from PERIPH_BUS_ERR_CLEAR, in sep_pkg::periph_bus_err_e bit order.