[dif/pwrmgr] add alert test functionality

This fixes #7641.

Signed-off-by: Timothy Trippel <ttrippel@google.com>
diff --git a/sw/device/lib/dif/dif_pwrmgr.c b/sw/device/lib/dif/dif_pwrmgr.c
index d94f6a1..80b2b4f 100644
--- a/sw/device/lib/dif/dif_pwrmgr.c
+++ b/sw/device/lib/dif/dif_pwrmgr.c
@@ -594,3 +594,25 @@
                       snapshot);
   return kDifPwrmgrOk;
 }
+
+dif_pwrmgr_result_t dif_pwrmgr_alert_force(const dif_pwrmgr_t *pwrmgr,
+                                           dif_pwrmgr_alert_t alert) {
+  if (pwrmgr == NULL) {
+    return kDifPwrmgrBadArg;
+  }
+
+  bitfield_bit32_index_t index;
+  switch (alert) {
+    case kDifPwrmgrAlertFatalFault:
+      index = PWRMGR_ALERT_TEST_FATAL_FAULT_BIT;
+      break;
+    default:
+      return kDifPwrmgrBadArg;
+  }
+
+  uint32_t reg = bitfield_bit32_write(0, index, true);
+  mmio_region_write32(pwrmgr->params.base_addr, PWRMGR_ALERT_TEST_REG_OFFSET,
+                      reg);
+
+  return kDifPwrmgrOk;
+}