Skip to content

Commit 5acaca7

Browse files
[fuse_ctrl, tests] Add zeroization smoke test to nightly regression
Signed-off-by: Andrea Caforio <andrea.caforio@lowrisc.org>
1 parent 3ef0a9b commit 5acaca7

20 files changed

+41
-13
lines changed

src/fuse_ctrl/config/fuse_ctrl.vf

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
+incdir+${CALIPTRA_SS_ROOT}/third_party/caliptra-rtl/src/caliptra_prim_generic/rtl
1212
+incdir+${CALIPTRA_SS_ROOT}/src/ast/rtl
1313
+incdir+${CALIPTRA_SS_ROOT}/src/pwrmgr/rtl
14+
+incdir+${CALIPTRA_SS_ROOT}/src/integration/testbench
1415
+incdir+${CALIPTRA_SS_ROOT}/src/fuse_ctrl/rtl
1516
+incdir+${CALIPTRA_SS_ROOT}/src/libs/rtl
1617
+incdir+${CALIPTRA_SS_ROOT}/src/fuse_ctrl/coverage
@@ -180,6 +181,7 @@ ${CALIPTRA_SS_ROOT}/src/tlul/rtl/tlul_sram_byte.sv
180181
${CALIPTRA_SS_ROOT}/src/ast/rtl/ast_pkg.sv
181182
${CALIPTRA_SS_ROOT}/src/pwrmgr/rtl/pwrmgr_reg_pkg.sv
182183
${CALIPTRA_SS_ROOT}/src/pwrmgr/rtl/pwrmgr_pkg.sv
184+
${CALIPTRA_SS_ROOT}/src/integration/testbench/prim_generic_otp_pkg.sv
183185
${CALIPTRA_SS_ROOT}/src/fuse_ctrl/rtl/otp_ctrl_reg_pkg.sv
184186
${CALIPTRA_SS_ROOT}/src/fuse_ctrl/rtl/otp_ctrl_pkg.sv
185187
${CALIPTRA_SS_ROOT}/src/fuse_ctrl/rtl/otp_ctrl_part_pkg.sv

src/fuse_ctrl/config/fuse_ctrl_pkg.vf

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
+incdir+${CALIPTRA_SS_ROOT}/third_party/caliptra-rtl/src/edn/rtl
88
+incdir+${CALIPTRA_SS_ROOT}/third_party/caliptra-rtl/src/caliptra_prim_generic/rtl
99
+incdir+${CALIPTRA_SS_ROOT}/src/ast/rtl
10+
+incdir+${CALIPTRA_SS_ROOT}/src/integration/testbench
1011
+incdir+${CALIPTRA_SS_ROOT}/src/fuse_ctrl/rtl
1112
${CALIPTRA_SS_ROOT}/third_party/caliptra-rtl/src/integration/rtl/config_defines.svh
1213
${CALIPTRA_SS_ROOT}/third_party/caliptra-rtl/src/libs/rtl/caliptra_sva.svh
@@ -108,6 +109,7 @@ ${CALIPTRA_SS_ROOT}/third_party/caliptra-rtl/src/caliptra_prim/rtl/caliptra_prim
108109
${CALIPTRA_SS_ROOT}/third_party/caliptra-rtl/src/caliptra_prim/rtl/caliptra_prim_fifo_async_simple.sv
109110
${CALIPTRA_SS_ROOT}/third_party/caliptra-rtl/src/caliptra_prim/rtl/caliptra_prim_gf_mult.sv
110111
${CALIPTRA_SS_ROOT}/src/ast/rtl/ast_pkg.sv
112+
${CALIPTRA_SS_ROOT}/src/integration/testbench/prim_generic_otp_pkg.sv
111113
${CALIPTRA_SS_ROOT}/src/fuse_ctrl/rtl/otp_ctrl_reg_pkg.sv
112114
${CALIPTRA_SS_ROOT}/src/fuse_ctrl/rtl/otp_ctrl_pkg.sv
113115
${CALIPTRA_SS_ROOT}/src/fuse_ctrl/rtl/otp_ctrl_part_pkg.sv

src/fuse_ctrl/rtl/otp_ctrl.sv

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1157,7 +1157,8 @@ end
11571157
.otp_rvalid_i ( part_otp_rvalid[k] ),
11581158
.otp_rdata_i ( part_otp_rdata ),
11591159
.otp_err_i ( part_otp_err ),
1160-
.zer_trig_i ( part_zer_trigs[k] )
1160+
.zer_trig_i ( part_zer_trigs[k] ),
1161+
.zer_o ( part_is_zer[k] )
11611162
);
11621163

11631164
// Tie off unused connections.

src/fuse_ctrl/rtl/otp_ctrl_dai.sv

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -51,14 +51,14 @@ module otp_ctrl_dai
5151
output logic [NumDaiWords-1:0][31:0] dai_rdata_o,
5252
// OTP interface
5353
output logic otp_req_o,
54-
output prim_generic_otp_pkg::cmd_e otp_cmd_o,
54+
output prim_generic_otp_pkg::cmd_e otp_cmd_o,
5555
output logic [OtpSizeWidth-1:0] otp_size_o,
5656
output logic [OtpIfWidth-1:0] otp_wdata_o,
5757
output logic [OtpAddrWidth-1:0] otp_addr_o,
5858
input otp_gnt_i,
5959
input otp_rvalid_i,
6060
input [ScrmblBlockWidth-1:0] otp_rdata_i,
61-
input prim_generic_otp_pkg::err_e otp_err_i,
61+
input prim_generic_otp_pkg::err_e otp_err_i,
6262
// Scrambling mutex request
6363
output logic scrmbl_mtx_req_o,
6464
input scrmbl_mtx_gnt_i,
@@ -73,7 +73,7 @@ module otp_ctrl_dai
7373
input logic [ScrmblBlockWidth-1:0] scrmbl_data_i,
7474
// Zeroization trigger indicators for each partition.
7575
// The first successful zeroization request will set the
76-
// corresponding bit in the array.
76+
// corresponding MuBi in the array.
7777
output mubi8_t [NumPart-1:0] zer_trigs_o,
7878
input mubi8_t [NumPart-1:0] zer_i
7979
);
@@ -724,7 +724,7 @@ module otp_ctrl_dai
724724
ZerSt: begin
725725
dai_prog_idle_o = 1'b0;
726726
if (// Fuses in a partition can only be zeroized if the partition
727-
// is parametrized so.
727+
// is parametrized to allow it.
728728
PartInfo[part_idx].zeroizable &&
729729
// Check that the address is not out-of-bounds.
730730
part_sel_valid &&
@@ -814,7 +814,7 @@ module otp_ctrl_dai
814814
error_d = FsmStateError;
815815
end
816816
end
817-
// Unconditionally jump into the termainl error state when a zeroization
817+
// Unconditionally jump into the terminal error state when a zeroization
818818
// indicator takes on an invalid value.
819819
for (int k = 0; k < NumPart; k++) begin
820820
if (mubi8_test_invalid(zer_trigs_o[k]) || mubi16_test_invalid(is_zeroized)) begin

src/fuse_ctrl/rtl/otp_ctrl_lci.sv

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,14 @@ module otp_ctrl_lci
4444
output logic lci_prog_idle_o,
4545
// OTP interface
4646
output logic otp_req_o,
47-
output prim_generic_otp_pkg::cmd_e otp_cmd_o,
47+
output prim_generic_otp_pkg::cmd_e otp_cmd_o,
4848
output logic [OtpSizeWidth-1:0] otp_size_o,
4949
output logic [OtpIfWidth-1:0] otp_wdata_o,
5050
output logic [OtpAddrWidth-1:0] otp_addr_o,
5151
input otp_gnt_i,
5252
input otp_rvalid_i,
5353
input [ScrmblBlockWidth-1:0] otp_rdata_i,
54-
input prim_generic_otp_pkg::err_e otp_err_i
54+
input prim_generic_otp_pkg::err_e otp_err_i
5555
);
5656

5757
////////////////////////

src/fuse_ctrl/rtl/otp_ctrl_part_buf.sv

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ module otp_ctrl_part_buf
5353
output logic [Info.size*8-1:0] data_o,
5454
// OTP interface
5555
output logic otp_req_o,
56-
output prim_generic_otp_pkg::cmd_e otp_cmd_o,
56+
output prim_generic_otp_pkg::cmd_e otp_cmd_o,
5757
output logic [OtpSizeWidth-1:0] otp_size_o,
5858
output logic [OtpIfWidth-1:0] otp_wdata_o,
5959
output logic [OtpAddrWidth-1:0] otp_addr_o,
@@ -306,7 +306,7 @@ module otp_ctrl_part_buf
306306
end
307307
end
308308
///////////////////////////////////////////////////////////////////
309-
// Read out of the digest. Wait here until the OTP request
309+
// Read out the digest. Wait here until the OTP request
310310
// has been granted. The digest is read in raw (without ECC check)
311311
// and only serves to check whether the partition is in the
312312
// zeroization state. The buffered digest is then read out during

src/fuse_ctrl/rtl/otp_ctrl_part_unbuf.sv

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ module otp_ctrl_part_unbuf
5656
input otp_gnt_i,
5757
input otp_rvalid_i,
5858
input [ScrmblBlockWidth-1:0] otp_rdata_i,
59-
input prim_generic_otp_pkg::err_e otp_err_i,
59+
input prim_generic_otp_pkg::err_e otp_err_i,
6060
input mubi8_t zer_trig_i,
6161
output mubi8_t zer_o
6262
);
@@ -242,7 +242,7 @@ module otp_ctrl_part_unbuf
242242

243243
unique case (state_q)
244244
///////////////////////////////////////////////////////////////////
245-
// State right after reset. Wait here until we get a an
245+
// State right after reset. Wait here until we get an
246246
// initialization request.
247247
ResetSt: begin
248248
if (init_req_i) begin

src/integration/asserts/config/ss_asserts.vf

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
+incdir+${CALIPTRA_SS_ROOT}/third_party/caliptra-rtl/src/edn/rtl
88
+incdir+${CALIPTRA_SS_ROOT}/third_party/caliptra-rtl/src/caliptra_prim_generic/rtl
99
+incdir+${CALIPTRA_SS_ROOT}/src/ast/rtl
10+
+incdir+${CALIPTRA_SS_ROOT}/src/integration/testbench
1011
+incdir+${CALIPTRA_SS_ROOT}/src/fuse_ctrl/rtl
1112
+incdir+${CALIPTRA_SS_ROOT}/third_party/caliptra-rtl/src/keyvault/rtl
1213
+incdir+${CALIPTRA_SS_ROOT}/third_party/caliptra-rtl/src/doe/rtl
@@ -164,6 +165,7 @@ ${CALIPTRA_SS_ROOT}/third_party/caliptra-rtl/src/caliptra_prim/rtl/caliptra_prim
164165
${CALIPTRA_SS_ROOT}/third_party/caliptra-rtl/src/caliptra_prim/rtl/caliptra_prim_fifo_async_simple.sv
165166
${CALIPTRA_SS_ROOT}/third_party/caliptra-rtl/src/caliptra_prim/rtl/caliptra_prim_gf_mult.sv
166167
${CALIPTRA_SS_ROOT}/src/ast/rtl/ast_pkg.sv
168+
${CALIPTRA_SS_ROOT}/src/integration/testbench/prim_generic_otp_pkg.sv
167169
${CALIPTRA_SS_ROOT}/src/fuse_ctrl/rtl/otp_ctrl_reg_pkg.sv
168170
${CALIPTRA_SS_ROOT}/src/fuse_ctrl/rtl/otp_ctrl_pkg.sv
169171
${CALIPTRA_SS_ROOT}/src/fuse_ctrl/rtl/otp_ctrl_part_pkg.sv

src/integration/config/caliptra_ss_top.vf

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
+incdir+${CALIPTRA_SS_ROOT}/third_party/caliptra-rtl/src/lc_ctrl/rtl
1414
+incdir+${CALIPTRA_SS_ROOT}/third_party/caliptra-rtl/src/caliptra_prim_generic/rtl
1515
+incdir+${CALIPTRA_SS_ROOT}/src/ast/rtl
16+
+incdir+${CALIPTRA_SS_ROOT}/src/integration/testbench
1617
+incdir+${CALIPTRA_SS_ROOT}/src/fuse_ctrl/rtl
1718
+incdir+${CALIPTRA_SS_ROOT}/third_party/caliptra-rtl/src/axi/rtl
1819
+incdir+${CALIPTRA_SS_ROOT}/src/axi2tlul/rtl
@@ -226,6 +227,7 @@ ${CALIPTRA_SS_ROOT}/third_party/caliptra-rtl/src/caliptra_prim/rtl/caliptra_prim
226227
${CALIPTRA_SS_ROOT}/third_party/caliptra-rtl/src/caliptra_prim/rtl/caliptra_prim_fifo_async_simple.sv
227228
${CALIPTRA_SS_ROOT}/third_party/caliptra-rtl/src/caliptra_prim/rtl/caliptra_prim_gf_mult.sv
228229
${CALIPTRA_SS_ROOT}/src/ast/rtl/ast_pkg.sv
230+
${CALIPTRA_SS_ROOT}/src/integration/testbench/prim_generic_otp_pkg.sv
229231
${CALIPTRA_SS_ROOT}/src/fuse_ctrl/rtl/otp_ctrl_reg_pkg.sv
230232
${CALIPTRA_SS_ROOT}/src/fuse_ctrl/rtl/otp_ctrl_pkg.sv
231233
${CALIPTRA_SS_ROOT}/src/fuse_ctrl/rtl/otp_ctrl_part_pkg.sv

src/integration/config/caliptra_ss_top_tb.vf

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
+incdir+${CALIPTRA_SS_ROOT}/third_party/caliptra-rtl/src/edn/rtl
88
+incdir+${CALIPTRA_SS_ROOT}/third_party/caliptra-rtl/src/caliptra_prim_generic/rtl
99
+incdir+${CALIPTRA_SS_ROOT}/src/ast/rtl
10+
+incdir+${CALIPTRA_SS_ROOT}/src/integration/testbench
1011
+incdir+${CALIPTRA_SS_ROOT}/src/fuse_ctrl/rtl
1112
+incdir+${CALIPTRA_SS_ROOT}/third_party/caliptra-rtl/src/keyvault/rtl
1213
+incdir+${CALIPTRA_SS_ROOT}/third_party/caliptra-rtl/src/doe/rtl
@@ -105,7 +106,6 @@
105106
+incdir+${AVERY_I3C}/testbench
106107
+incdir+${CALIPTRA_SS_ROOT}/src/mci/coverage
107108
+incdir+${CALIPTRA_SS_ROOT}/src/integration/coverage
108-
+incdir+${CALIPTRA_SS_ROOT}/src/integration/testbench
109109
+incdir+${CALIPTRA_SS_ROOT}/src/integration/testbench/sv_tests/ai3c
110110
+incdir+${CALIPTRA_SS_ROOT}/src/integration/testbench/sv_tests/mci
111111
+incdir+${CALIPTRA_SS_ROOT}/src/integration/testbench/sv_tests/common
@@ -209,6 +209,7 @@ ${CALIPTRA_SS_ROOT}/third_party/caliptra-rtl/src/caliptra_prim/rtl/caliptra_prim
209209
${CALIPTRA_SS_ROOT}/third_party/caliptra-rtl/src/caliptra_prim/rtl/caliptra_prim_fifo_async_simple.sv
210210
${CALIPTRA_SS_ROOT}/third_party/caliptra-rtl/src/caliptra_prim/rtl/caliptra_prim_gf_mult.sv
211211
${CALIPTRA_SS_ROOT}/src/ast/rtl/ast_pkg.sv
212+
${CALIPTRA_SS_ROOT}/src/integration/testbench/prim_generic_otp_pkg.sv
212213
${CALIPTRA_SS_ROOT}/src/fuse_ctrl/rtl/otp_ctrl_reg_pkg.sv
213214
${CALIPTRA_SS_ROOT}/src/fuse_ctrl/rtl/otp_ctrl_pkg.sv
214215
${CALIPTRA_SS_ROOT}/src/fuse_ctrl/rtl/otp_ctrl_part_pkg.sv

0 commit comments

Comments
 (0)