Merge "test_rom: correct the CHERIoT ROM size to really be 48K"
diff --git a/WORKSPACE b/WORKSPACE
index 756c1f7..bda0921 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -158,8 +158,8 @@
http_file(
name = "hyperdebug_firmware",
- sha256 = "e9c93d2935b9b6a571b547f20fe6177c48a909535d87533b7a0c64fb049bd643",
- urls = ["https://storage.googleapis.com/aoa-recovery-test-images/hyperdebug_v2.0.20491-956ccf530.bin"],
+ urls = ["https://github.com/lowRISC/hyperdebug-firmware/releases/download/20240621_01/hyperdebug-firmware.tar.gz"],
+ sha256 = "649a8cd6d183bc3fb286ea5895c752cfec3aa29b9990f44bb9e7621c0414c7de",
)
# kelvin verilog dependencies
diff --git a/sw/device/tests/kelvin/fpga_tests/kelvin_test_smc.c b/sw/device/tests/kelvin/fpga_tests/kelvin_test_smc.c
index 197f259..2c8cf63 100644
--- a/sw/device/tests/kelvin/fpga_tests/kelvin_test_smc.c
+++ b/sw/device/tests/kelvin/fpga_tests/kelvin_test_smc.c
@@ -68,6 +68,11 @@
mmio_region_t base_addr =
mmio_region_from_addr(TOP_MATCHA_ML_TOP_CORE_BASE_ADDR);
// Reset and halt Kelvin
+ // NB: Kelvin needs a few cycles in reset with a clock,
+ // so set the reset bit and the gate in two transactions.
+ mmio_region_write32(
+ base_addr, ML_TOP_CTRL_REG_OFFSET,
+ ML_TOP_CTRL_REG_RESVAL);
mmio_region_write32(
base_addr, ML_TOP_CTRL_REG_OFFSET,
ML_TOP_CTRL_REG_RESVAL | (1 << ML_TOP_CTRL_FREEZE_BIT));