[bazel/test_rom] use the dif for the rstmgr in test_rom

Some of the target specific sources are to do with bootstraps but some
aren't specific anylonger so they were renamed target_test_rom_lib or
with a specific platform substituted for "target"

Signed-off-by: Drew Macrae <drewmacrae@google.com>
diff --git a/sw/device/lib/dif/BUILD b/sw/device/lib/dif/BUILD
index b989d32..87bf672 100644
--- a/sw/device/lib/dif/BUILD
+++ b/sw/device/lib/dif/BUILD
@@ -789,17 +789,21 @@
 )
 
 cc_library(
+    name = "rstmgr_intf",
+    srcs = ["autogen/dif_rstmgr_autogen.h"],
+    hdrs = ["dif_rstmgr.h"],
+    deps = [":base"],
+)
+
+cc_library(
     name = "rstmgr",
     srcs = [
         "autogen/dif_rstmgr_autogen.c",
-        "autogen/dif_rstmgr_autogen.h",
         "dif_rstmgr.c",
     ],
-    hdrs = [
-        "dif_rstmgr.h",
-    ],
     deps = [
         ":base",
+        ":rstmgr_intf",
         "//hw/top_earlgrey/ip/rstmgr/data/autogen:rstmgr_regs",
         "//sw/device/lib/base:bitfield",
         "//sw/device/lib/base:macros",
diff --git a/sw/device/lib/testing/test_rom/BUILD b/sw/device/lib/testing/test_rom/BUILD
index aaa8ab6..6046846 100644
--- a/sw/device/lib/testing/test_rom/BUILD
+++ b/sw/device/lib/testing/test_rom/BUILD
@@ -31,9 +31,9 @@
 )
 
 # TODO(#12905): Use a slightly hollowed out version of the silicon_creator bootstrap
-# implemention when building the test_rom for the english breakfast top level.
+# and other functions necessary to build the test_rom for the english breakfast top level.
 cc_library(
-    name = "english_breakfast_test_rom_bootstrap",
+    name = "english_breakfast_test_rom_lib",
     srcs = [
         "english_breakfast_fake_driver_funcs.c",
         "//sw/device/silicon_creator/lib/drivers:english_breakfast_test_rom_driver_srcs",
@@ -49,15 +49,24 @@
         "//hw/top_earlgrey/sw/autogen:top_earlgrey",
         "//sw/device/lib/base:abs_mmio",
         "//sw/device/lib/base:multibits",
+        "//sw/device/lib/dif:rstmgr_intf",
         "//sw/device/silicon_creator/lib/base:sec_mmio",
     ],
 )
 
+cc_library(
+    name = "earl_grey_test_rom_lib",
+    deps = [
+        "//sw/device/lib/dif:rstmgr",
+        "//sw/device/silicon_creator/mask_rom:bootstrap",
+    ],
+)
+
 alias(
-    name = "test_rom_bootstrap",
+    name = "target_test_rom_lib",
     actual = select({
-        "//sw/device:is_english_breakfast": ":english_breakfast_test_rom_bootstrap",
-        "//conditions:default": "//sw/device/silicon_creator/mask_rom:bootstrap",
+        "//sw/device:is_english_breakfast": ":english_breakfast_test_rom_lib",
+        "//conditions:default": ":earl_grey_test_rom_lib",
     }),
     visibility = ["//visibility:private"],
 )
@@ -106,7 +115,7 @@
     target_compatible_with = [OPENTITAN_CPU],
     deps = [
         ":chip_info",
-        ":test_rom_bootstrap",
+        ":target_test_rom_lib",
         ":test_rom_manifest",
         "//hw/ip/clkmgr/data:clkmgr_regs",
         "//hw/ip/csrng/data:csrng_regs",
diff --git a/sw/device/lib/testing/test_rom/english_breakfast_fake_driver_funcs.c b/sw/device/lib/testing/test_rom/english_breakfast_fake_driver_funcs.c
index c0871a3..80615c3 100644
--- a/sw/device/lib/testing/test_rom/english_breakfast_fake_driver_funcs.c
+++ b/sw/device/lib/testing/test_rom/english_breakfast_fake_driver_funcs.c
@@ -2,6 +2,7 @@
 // Licensed under the Apache License, Version 2.0, see LICENSE for details.
 // SPDX-License-Identifier: Apache-2.0
 
+#include "sw/device/lib/dif/dif_rstmgr.h"
 #include "sw/device/silicon_creator/lib/drivers/lifecycle.h"
 #include "sw/device/silicon_creator/lib/drivers/otp.h"
 #include "sw/device/silicon_creator/lib/drivers/rstmgr.h"
@@ -23,9 +24,19 @@
 
 uint32_t otp_read32(uint32_t address) { return kHardenedBoolTrue; }
 
-uint32_t rstmgr_reason_get(void) { return 1 << kRstmgrReasonPowerOn; }
+dif_result_t dif_rstmgr_init(mmio_region_t base_addr, dif_rstmgr_t *rstmgr) {
+  return kDifOk;
+}
 
-void rstmgr_reason_clear(uint32_t reasons) {}
+dif_result_t dif_rstmgr_reset_info_get(const dif_rstmgr_t *handle,
+                                       dif_rstmgr_reset_info_bitfield_t *info) {
+  *info = 1 << kRstmgrReasonPowerOn;
+  return kDifOk;
+}
+
+dif_result_t dif_rstmgr_reset_info_clear(const dif_rstmgr_t *handle) {
+  return kDifOk;
+}
 
 void rstmgr_reset(void) {
   while (true) {
diff --git a/sw/device/lib/testing/test_rom/test_rom.c b/sw/device/lib/testing/test_rom/test_rom.c
index 9a63e2b..33c4993 100644
--- a/sw/device/lib/testing/test_rom/test_rom.c
+++ b/sw/device/lib/testing/test_rom/test_rom.c
@@ -9,6 +9,7 @@
 #include "sw/device/lib/dif/dif_flash_ctrl.h"
 #include "sw/device/lib/dif/dif_gpio.h"
 #include "sw/device/lib/dif/dif_pinmux.h"
+#include "sw/device/lib/dif/dif_rstmgr.h"
 #include "sw/device/lib/dif/dif_uart.h"
 #include "sw/device/lib/ibex_peri.h"
 #include "sw/device/lib/runtime/hart.h"
@@ -20,7 +21,6 @@
 #include "sw/device/lib/testing/test_framework/status.h"
 #include "sw/device/lib/testing/test_rom/chip_info.h"  // Generated.
 #include "sw/device/silicon_creator/lib/drivers/retention_sram.h"
-#include "sw/device/silicon_creator/lib/drivers/rstmgr.h"
 #include "sw/device/silicon_creator/lib/manifest.h"
 #include "sw/device/silicon_creator/mask_rom/bootstrap.h"
 
@@ -47,6 +47,7 @@
 static dif_clkmgr_t clkmgr;
 static dif_flash_ctrl_state_t flash_ctrl;
 static dif_pinmux_t pinmux;
+static dif_rstmgr_t rstmgr;
 static dif_uart_t uart0;
 
 // `test_in_rom = True` tests can override this symbol to provide their own
@@ -58,6 +59,9 @@
       mmio_region_from_addr(TOP_EARLGREY_PINMUX_AON_BASE_ADDR), &pinmux));
   pinmux_testutils_init(&pinmux);
 
+  CHECK_DIF_OK(dif_rstmgr_init(
+      mmio_region_from_addr(TOP_EARLGREY_RSTMGR_AON_BASE_ADDR), &rstmgr));
+
   // Initialize the flash.
   CHECK_DIF_OK(dif_flash_ctrl_init_state(
       &flash_ctrl,
@@ -83,11 +87,12 @@
   LOG_INFO("%s", chip_info);
 
   // Skip sram_init for test_rom
-  uint32_t reset_reasons = rstmgr_reason_get();
+  dif_rstmgr_reset_info_bitfield_t reset_reasons;
+  CHECK_DIF_OK(dif_rstmgr_reset_info_get(&rstmgr, &reset_reasons));
 
   // Store the reset reason in retention RAM and clear the register.
   retention_sram_get()->reset_reasons = reset_reasons;
-  rstmgr_reason_clear(reset_reasons);
+  CHECK_DIF_OK(dif_rstmgr_reset_info_clear(&rstmgr));
 
   // Print the FPGA version-id.
   // This is guaranteed to be zero on all non-FPGA implementations.