|
@@ -2,58 +2,58 @@
|
|
|
|
|
|
use core::arch::asm;
|
|
|
use log::error;
|
|
|
-use psci::system_off;
|
|
|
+use smccc::{psci::system_off, Hvc};
|
|
|
|
|
|
#[no_mangle]
|
|
|
extern "C" fn sync_exception_current(_elr: u64, _spsr: u64) {
|
|
|
error!("sync_exception_current");
|
|
|
print_esr();
|
|
|
- system_off().unwrap();
|
|
|
+ system_off::<Hvc>().unwrap();
|
|
|
}
|
|
|
|
|
|
#[no_mangle]
|
|
|
extern "C" fn irq_current(_elr: u64, _spsr: u64) {
|
|
|
error!("irq_current");
|
|
|
- system_off().unwrap();
|
|
|
+ system_off::<Hvc>().unwrap();
|
|
|
}
|
|
|
|
|
|
#[no_mangle]
|
|
|
extern "C" fn fiq_current(_elr: u64, _spsr: u64) {
|
|
|
error!("fiq_current");
|
|
|
- system_off().unwrap();
|
|
|
+ system_off::<Hvc>().unwrap();
|
|
|
}
|
|
|
|
|
|
#[no_mangle]
|
|
|
extern "C" fn serr_current(_elr: u64, _spsr: u64) {
|
|
|
error!("serr_current");
|
|
|
print_esr();
|
|
|
- system_off().unwrap();
|
|
|
+ system_off::<Hvc>().unwrap();
|
|
|
}
|
|
|
|
|
|
#[no_mangle]
|
|
|
extern "C" fn sync_lower(_elr: u64, _spsr: u64) {
|
|
|
error!("sync_lower");
|
|
|
print_esr();
|
|
|
- system_off().unwrap();
|
|
|
+ system_off::<Hvc>().unwrap();
|
|
|
}
|
|
|
|
|
|
#[no_mangle]
|
|
|
extern "C" fn irq_lower(_elr: u64, _spsr: u64) {
|
|
|
error!("irq_lower");
|
|
|
- system_off().unwrap();
|
|
|
+ system_off::<Hvc>().unwrap();
|
|
|
}
|
|
|
|
|
|
#[no_mangle]
|
|
|
extern "C" fn fiq_lower(_elr: u64, _spsr: u64) {
|
|
|
error!("fiq_lower");
|
|
|
- system_off().unwrap();
|
|
|
+ system_off::<Hvc>().unwrap();
|
|
|
}
|
|
|
|
|
|
#[no_mangle]
|
|
|
extern "C" fn serr_lower(_elr: u64, _spsr: u64) {
|
|
|
error!("serr_lower");
|
|
|
print_esr();
|
|
|
- system_off().unwrap();
|
|
|
+ system_off::<Hvc>().unwrap();
|
|
|
}
|
|
|
|
|
|
#[inline]
|