sep_reset_ctrl

Sequence software resets for Key Manager and crypto accelerators through isolation.

Each bit in the SW_RESET_N register drives a sep_isolate_rst_seq FSM that requests isolation of that domain's AXI paths, waits for them to drain, and then asserts the domain's sequenced reset. An engine domain isolates its host path and its KM path; the KM domain isolates the KM paths to every engine and to eFuse; the TRNG domain isolates the entropy-source, CSRNG and EDN paths. Each sequenced reset is ANDed with the SEP reset, then the synchronized JTAG IC_RESET override for KM, OTBN, AES, HMAC, KMAC, ABR, or the internal TRNG complex selects its value, and in test mode scan_rst_ni replaces the result. SW_RESET_N bits: 0 km_sw_rst_n, 1 otbn_sw_rst_n, 2 aes_sw_rst_n, 3 hmac_sw_rst_n, 4 kmac_sw_rst_n, 5 trng_sw_rst_n, 6 abr_sw_rst_n; write 1 to release from reset, 0 to hold. KM resets to 0 (held in reset) and the others to 1. The register block and the AXI converter are reset by the SEP reset; the FSMs and synchronizers by rst_ni. Register map: hw/sys/sep/regs/blocks/sep_reset_ctrl/sep_reset_ctrl.rdl.

Ports

Table 1. Ports
NameDirectionTypeDescription
clk_iinputlogicSystem clock.
rst_niinputlogicActive-low reset of the isolation FSMs and the JTAG override synchronizers.
wdt_rst_niinputlogicAggregated WDT resets from SMC and SEP, active-low; resets only the CPU.
jtag_sep_reset_ctrl_iinputsep_pkg::jtag_sep_reset_ctrl_tJTAG IC_RESET override and value bits in the TCK domain. The per-IP bits pass through 2-flop synchronizers into clk_i; the SEP reset override acts asynchronously ahead of the SEP reset synchronizer.
sep_intermediate_reset_niinputlogicActive-low SEP reset before the JTAG override, released by sep_efuse_wrapper once fuse sensing is done.
sep_reset_nooutputlogicActive-low SEP reset after the JTAG override, asserted asynchronously and released synchronously to clk_i through a 2-flop synchronizer; scan_rst_ni in test mode.
sep_reset_ctrl_axi_req_iinputsep_pkg::sep_32_64_6_12_axi_req_tAXI4 slave (full AXI from top-level SEP local xbar). An internal axi_to_axi_lite converter feeds the AXI-Lite reg block.
sep_reset_ctrl_axi_resp_ooutputsep_pkg::sep_32_64_6_12_axi_resp_tFull AXI response to the SEP local xbar.
test_en_iinputlogicDFT test-enable (scan-enable).
scan_rst_niinputlogicDFT scan reset, active-low; replaces the SEP reset synchronizer output and every reset output while test_en_i is high.
sep_cpu_reset_nooutputlogicActive-low CPU reset: the SEP reset ANDed with wdt_rst_ni, or scan_rst_ni in test mode.
sep_crypto_isolate_req_ooutputsep_pkg::sep_crypto_isolate_tPer-path isolation request to sep_crypto's AXI interconnect, active-high. A KM path is requested when either its engine or the KM domain is being reset.
sep_crypto_isolated_iinputsep_pkg::sep_crypto_isolate_tPer-path isolation acknowledge from sep_crypto's AXI interconnect, same layout as sep_crypto_isolate_req_o.
sep_crypto_gated_rst_nooutputsep_pkg::sep_sw_rst_tIsolation-sequenced resets to sep_crypto, active-low, one per SW_RESET_N domain; also asserted by the SEP reset and forced by the JTAG overrides.