[keymgr] rebase modifications for alert testing
Signed-off-by: Timothy Chen <timothytim@google.com>
diff --git a/hw/ip/keymgr/rtl/keymgr.sv b/hw/ip/keymgr/rtl/keymgr.sv
index 4816a32..14b9ddf 100644
--- a/hw/ip/keymgr/rtl/keymgr.sv
+++ b/hw/ip/keymgr/rtl/keymgr.sv
@@ -405,23 +405,28 @@
end
end
+ logic fault_alert_test;
+ assign fault_alert_test = reg2hw.alert_test.fault_err.q & reg2hw.alert_test.fault_err.qe;
prim_alert_sender #(
.AsyncOn(AlertAsyncOn)
) u_fault_alert (
.clk_i,
.rst_ni,
- .alert_req_i(fault_err_req_q),
+ .alert_req_i(fault_err_req_q | fault_alert_test),
.alert_ack_o(fault_err_ack),
.alert_rx_i(alert_rx_i[0]),
.alert_tx_o(alert_tx_o[0])
);
+ logic op_err_alert_test;
+ assign op_err_alert_test = reg2hw.alert_test.operation_err.q &
+ reg2hw.alert_test.operation_err.qe;
prim_alert_sender #(
.AsyncOn(AlertAsyncOn)
) u_op_err_alert (
.clk_i,
.rst_ni,
- .alert_req_i(op_err_req_q | (reg2hw.alert_test.q & reg2hw.alert_test.qe)),
+ .alert_req_i(op_err_req_q | op_err_alert_test),
.alert_ack_o(op_err_ack),
.alert_rx_i(alert_rx_i[1]),
.alert_tx_o(alert_tx_o[1])
diff --git a/hw/ip/keymgr/rtl/keymgr_reg_pkg.sv b/hw/ip/keymgr/rtl/keymgr_reg_pkg.sv
index 919b2e5..1a1ab22 100644
--- a/hw/ip/keymgr/rtl/keymgr_reg_pkg.sv
+++ b/hw/ip/keymgr/rtl/keymgr_reg_pkg.sv
@@ -46,8 +46,14 @@
} keymgr_reg2hw_intr_test_reg_t;
typedef struct packed {
- logic q;
- logic qe;
+ struct packed {
+ logic q;
+ logic qe;
+ } fault_err;
+ struct packed {
+ logic q;
+ logic qe;
+ } operation_err;
} keymgr_reg2hw_alert_test_reg_t;
typedef struct packed {
@@ -179,10 +185,10 @@
// Register to internal design logic //
///////////////////////////////////////
typedef struct packed {
- keymgr_reg2hw_intr_state_reg_t intr_state; // [532:531]
- keymgr_reg2hw_intr_enable_reg_t intr_enable; // [530:529]
- keymgr_reg2hw_intr_test_reg_t intr_test; // [528:525]
- keymgr_reg2hw_alert_test_reg_t alert_test; // [524:523]
+ keymgr_reg2hw_intr_state_reg_t intr_state; // [534:533]
+ keymgr_reg2hw_intr_enable_reg_t intr_enable; // [532:531]
+ keymgr_reg2hw_intr_test_reg_t intr_test; // [530:527]
+ keymgr_reg2hw_alert_test_reg_t alert_test; // [526:523]
keymgr_reg2hw_control_reg_t control; // [522:516]
keymgr_reg2hw_rom_ext_desc_mreg_t [3:0] rom_ext_desc; // [515:388]
keymgr_reg2hw_software_binding_mreg_t [3:0] software_binding; // [387:260]
diff --git a/hw/ip/keymgr/rtl/keymgr_reg_top.sv b/hw/ip/keymgr/rtl/keymgr_reg_top.sv
index f9140e8..260d191 100644
--- a/hw/ip/keymgr/rtl/keymgr_reg_top.sv
+++ b/hw/ip/keymgr/rtl/keymgr_reg_top.sv
@@ -87,8 +87,10 @@
logic intr_test_op_done_we;
logic intr_test_err_wd;
logic intr_test_err_we;
- logic alert_test_wd;
- logic alert_test_we;
+ logic alert_test_fault_err_wd;
+ logic alert_test_fault_err_we;
+ logic alert_test_operation_err_wd;
+ logic alert_test_operation_err_we;
logic cfgen_qs;
logic cfgen_re;
logic control_init_qs;
@@ -371,16 +373,32 @@
// R[alert_test]: V(True)
+ // F[fault_err]: 0:0
prim_subreg_ext #(
.DW (1)
- ) u_alert_test (
+ ) u_alert_test_fault_err (
.re (1'b0),
- .we (alert_test_we),
- .wd (alert_test_wd),
+ .we (alert_test_fault_err_we),
+ .wd (alert_test_fault_err_wd),
.d ('0),
.qre (),
- .qe (reg2hw.alert_test.qe),
- .q (reg2hw.alert_test.q ),
+ .qe (reg2hw.alert_test.fault_err.qe),
+ .q (reg2hw.alert_test.fault_err.q ),
+ .qs ()
+ );
+
+
+ // F[operation_err]: 1:1
+ prim_subreg_ext #(
+ .DW (1)
+ ) u_alert_test_operation_err (
+ .re (1'b0),
+ .we (alert_test_operation_err_we),
+ .wd (alert_test_operation_err_wd),
+ .d ('0),
+ .qre (),
+ .qe (reg2hw.alert_test.operation_err.qe),
+ .q (reg2hw.alert_test.operation_err.q ),
.qs ()
);
@@ -1772,8 +1790,11 @@
assign intr_test_err_we = addr_hit[2] & reg_we & ~wr_err;
assign intr_test_err_wd = reg_wdata[1];
- assign alert_test_we = addr_hit[3] & reg_we & ~wr_err;
- assign alert_test_wd = reg_wdata[0];
+ assign alert_test_fault_err_we = addr_hit[3] & reg_we & ~wr_err;
+ assign alert_test_fault_err_wd = reg_wdata[0];
+
+ assign alert_test_operation_err_we = addr_hit[3] & reg_we & ~wr_err;
+ assign alert_test_operation_err_wd = reg_wdata[1];
assign cfgen_re = addr_hit[4] && reg_re;
@@ -1934,6 +1955,7 @@
addr_hit[3]: begin
reg_rdata_next[0] = '0;
+ reg_rdata_next[1] = '0;
end
addr_hit[4]: begin