efuse_token_processing
Hash the RMA tokens and the security-disable token written through the MMR window and compare them against the RMA digests in the shadow map and against SEP_SEC_DISABLE_TOKEN.
Drives triple-redundant digest compares and publishes rma_sip/chiplet_token_match and security_disable_o. The RMA compares wait for fuse_sense_done_i; the security-disable compare does not. shadow_regs_o withholds the shadow map until sensing completes or security disable is set.
Encodings:
- SEP_SEC_DISABLE_TOKEN is the rev-cell default of the expected security-disable digest.
- TOKEN_MATCH_CODE is the success encoding.
- LcStateInvalid encodes an invalid lifecycle value.
Status outputs:
- token_match_fault_o flags redundancy disagreement.
- sec_disable_token_o exports the security-disable token written through the MMR window.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
SEP_SEC_DISABLE_TOKEN | bit [255:0] | 256'b0 | Expected SHA-256 digest of the security-disable token, built from rev cells so a metal-only ECO can change it. |
TOKEN_MATCH_CODE | logic [5:0] | 6'b010101 | Comparator match code that asserts security disable; must equal the comparator's fixed 6'b010101 match code. |
LcStateWidth | int unsigned | efuse_pkg::LcStateRawWidth | Lifecycle-state field width. |
LcStateInvalid | logic [2*LcStateWidth-1:0] | (2*LcStateWidth)'({{LcStateWidth{1'b0}}, {LcStateWidth{1'b1}}}) | Differentially encoded lifecycle state driven on shadow_regs_o while the map is withheld. |
Ports
| Name | Direction | Type | Description |
|---|---|---|---|
clk_i | input | logic | System clock. |
rst_ni | input | logic | Active-low reset: asynchronous for the MMR registers, synchronous for the match and fault flops; the token words are not reset. |
test_en_i | input | logic | DFT test enable; freezes the retained token digests. |
fuse_sense_done_i | input | logic | Shadow loading from the fuses complete; enables the RMA token compares and releases shadow_regs_o. |
apb_req_i | input | efuse_apb_req_t | APB request for the MMR window: token words, start bits, match status, and fault status; only paddr[6:0] is decoded. |
apb_resp_o | output | efuse_apb_resp_t | APB response from the MMR window. |
rma_sip_token_match_q_o | output | logic[5:0] | Registered RMA SiP token comparator code; equals TOKEN_MATCH_CODE on a match. |
rma_chiplet_token_match_q_o | output | logic[5:0] | Registered RMA chiplet token comparator code; equals TOKEN_MATCH_CODE on a match. |
sec_disable_token_o | output | logic [7:0][31:0] | Security-disable token as written through the MMR, for test access. |
security_disable_o | output | logic | High when the security-disable token digest matches and the rev-cell feature enable is set; combinational from the comparator. |
token_match_fault_o | output | logic | Comparator redundancy fault on any token; sticky until reset. |
shadow_regs_i | input | efuse_map_t | Shadow eFuse map; supplies the expected RMA token digests. |
shadow_regs_o | output | efuse_map_t | Shadow eFuse map once fuse sensing completes or security disable is active; zero with an invalid lifecycle state before then. |