sep_dma_wrap

Bridge AXI register and host ports onto the secure_dma TileLink UL core.

Register path: 64-bit AXI is downsized to 32 bits, rebased by subtracting SEP_TOP_SECURE_DMA_BASE_ADDR, converted to AXI-Lite and then to TL-UL. Master path: TL-UL is converted to AXI-Lite, then to AXI with AxCACHE 0 and AxPROT 3'b001 (privileged, secure, data), upsized to 64 bits, and passed through a window remap that rewrites addresses in [sep_local_base_addr_i, sep_local_base_addr_i + 0x3000_0000) to 0x1000_0000 plus the offset. The CTN and system interfaces and the RACL policies are tied off.

dma_alert_o aggregates the fatal alert pulse with integ_fail of all channels.

dma_reg_bus_err_o and dma_host_intg_err_o stick until dma_err_clr_i; a fault arriving in the same cycle as the clear still latches. They are not cleared by a CPU-only reset (sep_cpu_reset_n is a subset of this block's rst_ni), so firmware must treat an assertion at boot as possibly stale.

Parameters

Table 1. Parameters
NameTypeDefaultDescription
REG_ADDR_WIDTHint unsigned32Width of SECURE_DMA_REG_MAP_BASE_ADDR only; unused otherwise.
SECURE_DMA_REG_MAP_BASE_ADDRbit [REG_ADDR_WIDTH-1:0]32'h20000000Unused; the register path rebases with SEP_TOP_SECURE_DMA_BASE_ADDR instead.
ALERT_ASYNC_ONlogic [secure_dma_reg_pkg::NumAlerts-1:0]{secure_dma_reg_pkg::NumAlerts{1'b1}}Per-alert async-on configuration of the secure_dma senders; the local receivers are synchronous.
ALERT_SKEW_CYCLESint unsigned1Alert skew cycle count.
ENABLE_DATA_INTG_GENbit1'b1Generate TL-UL integrity in secure_dma, command and data integrity on the register bridge, and response and data integrity on the host bridge.
ENABLE_RSP_DATA_INTG_CHECKbit1'b1Check response data integrity in secure_dma and command integrity of its host requests in the host bridge.
TL_USER_RSVDlogic [tlul_pkg::RSVD_WIDTH-1:0]'0Reserved TL user bits.
SYS_RACL_ROLEtop_racl_pkg::racl_role_t'0System RACL role.
OT_AGENT_IDint unsigned0OpenTitan agent ID.
ENABLE_RACLbit1'b0Enable RACL checks.
RACL_ERROR_RSPbitENABLE_RACLReturn error responses on RACL fail.
RACL_POLICY_SEL_VECtop_racl_pkg::racl_policy_sel_t'{secure_dma_reg_pkg::NumRegs{0}}Per-register RACL policy select.

Ports

Table 2. Ports
NameDirectionTypeDescription
clk_iinputlogicSystem clock.
rst_niinputlogicActive-low reset.
test_en_iinputlogicDFT test-enable (scan-enable).
lsio_trigger_iinputsecure_dma_pkg::lsio_trigger_tPeripheral handshake signalling that data is ready for the DMA to transfer.
intr_dma_done_ooutputlogicSecure DMA transfer-done interrupt.
intr_dma_chunk_done_ooutputlogicSecure DMA chunk-done interrupt.
intr_dma_error_ooutputlogicSecure DMA error interrupt.
dma_alert_ooutputlogicOR of the alert pulses and integrity failures of the local receivers for every secure_dma alert.
dma_reg_bus_err_ooutputlogicRegister-path fault, set when the register bridge receives a TL-UL error response. Held until dma_err_clr_i, and firmware must treat an assertion at boot as possibly stale rather than a fresh fault.
dma_host_intg_err_ooutputlogicDMA-master-path fault from the TL-UL to AXI-Lite bridge: a non-OKAY AXI response or a failed TL-UL command-integrity check.
dma_err_clr_iinputlogicSingle-cycle clear for dma_reg_bus_err_o and dma_host_intg_err_o, pulsed by DMA_BUS_ERR_CLEAR in sep.
reg_req_iinputsep_pkg::sep_32_64_6_12_axi_req_t64-bit AXI register request to the secure_dma CSRs, with absolute addresses.
reg_resp_ooutputsep_pkg::sep_32_64_6_12_axi_resp_t64-bit AXI register response from the secure_dma CSRs.
dma_req_ooutputsep_pkg::sep_32_64_3_12_axi_req_t64-bit AXI DMA master request, after the local alias remap.
dma_resp_iinputsep_pkg::sep_32_64_3_12_axi_resp_t64-bit AXI DMA master response.
sep_local_base_addr_iinputlogic [31:0]Base of the SEP local alias window; DMA master addresses within 0x3000_0000 above it are remapped to 0x1000_0000 plus the offset.