[bazel] Add functest that uses OTP-spliced bitstream
Add a new CW310-specific functest:
//sw/device/silicon_creator/mask_rom:e2e_bootup_success_otp_dev.
This new functest uses //hw/bitstream:mask_rom_otp_dev, which is the
Mask ROM bitstream after splicing in the OTP Dev image, replacing the
OTP RMA image.
Signed-off-by: Dan McArdle <dmcardle@google.com>
diff --git a/hw/bitstream/BUILD b/hw/bitstream/BUILD
index 9e68538..16d9ee9 100644
--- a/hw/bitstream/BUILD
+++ b/hw/bitstream/BUILD
@@ -62,3 +62,12 @@
"//conditions:default": ["@bitstreams//:bitstream_mask_rom"],
}),
)
+
+# TODO(lowRISC/opentitan#13603): Use `select` once we're uploading these
+# artifacts to GCP.
+filegroup(
+ name = "mask_rom_otp_dev",
+ srcs = [
+ "//hw/bitstream/vivado:fpga_cw310_mask_rom_otp_dev",
+ ],
+)
diff --git a/sw/device/silicon_creator/mask_rom/BUILD b/sw/device/silicon_creator/mask_rom/BUILD
index 1a50157..6029f42 100644
--- a/sw/device/silicon_creator/mask_rom/BUILD
+++ b/sw/device/silicon_creator/mask_rom/BUILD
@@ -332,6 +332,27 @@
],
)
+# Same as `:e2e_bootup_success`, but the Dev OTP image is spliced into the
+# bitstream before it's sent to the CW310 FPGA.
+opentitan_functest(
+ name = "e2e_bootup_success_otp_dev",
+ srcs = ["mask_rom_test.c"],
+ cw310 = cw310_params(
+ bitstream = "//hw/bitstream:mask_rom_otp_dev",
+ exit_failure = BOOT_FAILURE_MSG,
+ exit_success = BOOT_SUCCESS_MSG,
+ # TODO(lowRISC/opentitan#13603): Remove this "manual" tag when the
+ # bitstream target can fetch pre-spliced bitstream from GCP.
+ tags = ["manual"],
+ ),
+ manifest = "//sw/device/silicon_creator/rom_ext:manifest_standard",
+ signed = True,
+ targets = ["cw310"],
+ deps = [
+ "//sw/device/lib/testing/test_framework:ottf_main",
+ ],
+)
+
opentitan_functest(
name = "e2e_bootup_no_rom_ext_signature",
srcs = ["mask_rom_test.c"],