Skip to content

Commit 3af67bf

Browse files
committed
WIP: Test warm reset with debug unlocked
1 parent 15071c1 commit 3af67bf

1 file changed

Lines changed: 54 additions & 0 deletions

File tree

runtime/tests/runtime_integration_tests/test_warm_reset.rs

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,60 @@ fn test_mbox_busy_during_warm_reset() {
160160
);
161161
}
162162

163+
#[test]
164+
fn test_warm_reset_with_debug_unlock() {
165+
let security_state = *SecurityState::default()
166+
.set_debug_locked(false)
167+
.set_device_lifecycle(DeviceLifecycle::Production);
168+
169+
let rom = caliptra_builder::rom_for_fw_integration_tests().unwrap();
170+
let image = caliptra_builder::build_and_sign_image(
171+
&FMC_WITH_UART,
172+
&APP_WITH_UART,
173+
ImageOptions::default(),
174+
)
175+
.unwrap();
176+
let vendor_pk_hash =
177+
bytes_to_be_words_48(&sha384(image.manifest.preamble.vendor_pub_keys.as_bytes()));
178+
let owner_pk_hash =
179+
bytes_to_be_words_48(&sha384(image.manifest.preamble.owner_pub_keys.as_bytes()));
180+
181+
let mut model = caliptra_hw_model::new(
182+
InitParams {
183+
rom: &rom,
184+
security_state,
185+
..Default::default()
186+
},
187+
BootParams {
188+
fuses: Fuses {
189+
key_manifest_pk_hash: vendor_pk_hash,
190+
owner_pk_hash,
191+
..Default::default()
192+
},
193+
fw_image: Some(&image.to_bytes().unwrap()),
194+
..Default::default()
195+
},
196+
)
197+
.unwrap();
198+
199+
// Wait for boot
200+
model.step_until(|m| m.soc_ifc().cptra_flow_status().read().ready_for_runtime());
201+
202+
// Perform warm reset
203+
model.warm_reset_flow(&Fuses {
204+
key_manifest_pk_hash: vendor_pk_hash,
205+
owner_pk_hash,
206+
..Default::default()
207+
});
208+
209+
// Wait for boot
210+
model.step_until(|m| m.soc_ifc().cptra_flow_status().read().ready_for_runtime());
211+
assert_eq!(
212+
model.soc_ifc().cptra_fw_error_non_fatal().read(),
213+
0
214+
);
215+
}
216+
163217
#[cfg(not(feature = "fpga_realtime"))]
164218
#[test]
165219
fn test_mbox_idle_during_warm_reset() {

0 commit comments

Comments
 (0)