diff --git a/libboard_zc706/src/abort.rs b/libboard_zc706/src/abort.rs index f3c16d0b..3d6592fc 100644 --- a/libboard_zc706/src/abort.rs +++ b/libboard_zc706/src/abort.rs @@ -1,10 +1,12 @@ -use libboard_zynq::{println, stdio}; +use libboard_zynq::{println, slcr, stdio}; #[no_mangle] pub unsafe extern "C" fn PrefetchAbort() { stdio::drop_uart(); println!("PrefetchAbort"); + + slcr::RegisterBlock::unlocked(|slcr| slcr.soft_reset()); loop {} } @@ -13,5 +15,7 @@ pub unsafe extern "C" fn DataAbort() { stdio::drop_uart(); println!("DataAbort"); + + slcr::RegisterBlock::unlocked(|slcr| slcr.soft_reset()); loop {} }