Commit 2041523
authored
[TB] Add smoke_test_fc_filter_rule_write_zer_id for fuse_ctrl_filter coverage (#1056)
* Add smoke_test_fc_filter_rule_write_zer_id for fuse_ctrl_filter coverage
Add a new integration test targeting four uncovered paths in the
fuse_ctrl_filter FSM (FUSE_ADDR_AXI_WR_ST and FUSE_CMD_AXI_ADDR_ST states):
Scenario 1 - trigger_table_check in FUSE_ADDR_AXI_WR_ST:
Writing DIRECT_ACCESS_ADDRESS twice in succession causes the FSM to
see trigger_table_check while already in FUSE_ADDR_AXI_WR_ST, exercising
the re-latch-and-loop-back path to FUSE_ADDR_AXI_ADDR_ST.
Issuing a DaiWrite from the MCU user to a secret partition address
(SECRET_MANUF_PARTITION). The MCU user is not in the access_control_table
for the secret range [0x48,0xF0], so wr_req_allowed evaluates to false
and the filter asserts discard_fuse_write.
Writing WDATA_0 and WDATA_1 with MCU user, then switching to Caliptra
core user for ADDRESS and CMD. The command is authorized (Caliptra core
matches entry[0]), but the latched data IDs (MCU) differ from the
address/command IDs (Caliptra core), making all_same_id false. The
filter discards the write.
Writing DIRECT_ACCESS_ADDRESS with MCU user, then switching to Caliptra
core user for the DaiZeroize CMD. A non-secret partition (SW_MANUF_PARTITION
at 0xF8) is targeted so the FIPS zeroization check passes, and the command
is authorized, but addr_and_cmd_same_id is false because the address writer
differs from the command writer. The filter discards the zeroize.
* removed hard-coded line numbers
* added new fc cov test to the regression list
* Cover the false-branch of line 172 in mci_lcc_st_trans.sv where │ │
│ │ lcc_volatile_raw_unlock_success_i is HIGH but state_error is also HIGH, │ │
│ │ keeping the FSM in TRANSLATOR_NON_DEBUG instead of transitioning to │ │
│ │ TRANSLATOR_UNPROV_DEBUG. This is a security-critical guard that prevents │ │
│ │ debug unlock when a fatal state error is active. │ │
│ │ │ │
│ │ Changes: │ │
│ │ - Add CMD_MCI_FORCE_STATE_ERROR/CMD_MCI_RELEASE_STATE_ERROR BFM commands │ │
│ │ to caliptra_ss_tb_cmd_list.svh, caliptra_ss_lib.h, and │ │
│ │ fc_lcc_tb_services.sv (force/release state_error on │ │
│ │ MCI_PATH.LCC_state_translator) │ │
│ │ - Add caliptra_ss_lcc_volatile_unlock_with_state_error test that boots │ │
│ │ to RAW, forces state_error, performs volatile raw unlock, and verifies │ │
│ │ the MCI translator stays locked │ │
│ │ - Fix UnProvSIGNAL_with_Volatile_Decoding_A assertion to disable when │ │
│ │ state_error is active (the assertion incorrectly fired when state_error │ │
│ │ legitimately blocks the volatile unlock promotion) │ │
│ │ - Register test in master test list and regenerate regression YAMLs │ │
* removed the hard-coded line number
* removed assertion change on RTL
* MICROSOFT AUTOMATED PIPELINE: Stamp 'user/ekarabulut/fc-filter-write-zeroize-id-coverage' with updated timestamp and hash after successful run
* updated assertion label
* MICROSOFT AUTOMATED PIPELINE: Stamp 'user/ekarabulut/fc-filter-write-zeroize-id-coverage' with updated timestamp and hash after successful run1 parent 305d71f commit 2041523
13 files changed
Lines changed: 521 additions & 2 deletions
File tree
- .github/workflow_metadata
- src/integration
- stimulus
- testsuites
- test_suites
- caliptra_ss_lcc_volatile_unlock_with_state_error
- libs/caliptra_ss_lib
- smoke_test_fc_filter_rule_write_zer_id
- testbench
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
Lines changed: 2 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
101 | 101 | | |
102 | 102 | | |
103 | 103 | | |
| 104 | + | |
| 105 | + | |
Lines changed: 2 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
108 | 108 | | |
109 | 109 | | |
110 | 110 | | |
| 111 | + | |
| 112 | + | |
Lines changed: 2 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
128 | 128 | | |
129 | 129 | | |
130 | 130 | | |
| 131 | + | |
| 132 | + | |
Lines changed: 117 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
Lines changed: 7 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
Lines changed: 2 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
64 | 64 | | |
65 | 65 | | |
66 | 66 | | |
| 67 | + | |
| 68 | + | |
67 | 69 | | |
68 | 70 | | |
69 | 71 | | |
| |||
0 commit comments