[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