pvmfw: Replace calls to emergency_write_str
Replace calls to `emergency_write_str` with `eprintln` macro for
consistency. `eprintln` uses `emergency_write_str` internally, so
it is still safe to use in exception handlers.
Test: atest MicrodroidTestApp
Change-Id: If9bebb4f56e22e4b4e4fef34313e0118ff71f40a
diff --git a/pvmfw/src/exceptions.rs b/pvmfw/src/exceptions.rs
index 42f4c3b..3ca4e0f 100644
--- a/pvmfw/src/exceptions.rs
+++ b/pvmfw/src/exceptions.rs
@@ -16,7 +16,7 @@
use crate::{helpers::page_4kb_of, read_sysreg};
use vmbase::console;
-use vmbase::{console::emergency_write_str, eprintln, power::reboot};
+use vmbase::{eprintln, power::reboot};
const ESR_32BIT_EXT_DABT: usize = 0x96000010;
const UART_PAGE: usize = page_4kb_of(console::BASE_ADDRESS);
@@ -27,7 +27,7 @@
let far = read_sysreg!("far_el1");
// Don't print to the UART if we're handling the exception it could raise.
if esr != ESR_32BIT_EXT_DABT || page_4kb_of(far) != UART_PAGE {
- emergency_write_str("sync_exception_current\n");
+ eprintln!("sync_exception_current");
eprintln!("esr={esr:#08x}");
}
reboot();
@@ -35,20 +35,20 @@
#[no_mangle]
extern "C" fn irq_current(_elr: u64, _spsr: u64) {
- emergency_write_str("irq_current\n");
+ eprintln!("irq_current");
reboot();
}
#[no_mangle]
extern "C" fn fiq_current(_elr: u64, _spsr: u64) {
- emergency_write_str("fiq_current\n");
+ eprintln!("fiq_current");
reboot();
}
#[no_mangle]
extern "C" fn serr_current(_elr: u64, _spsr: u64) {
let esr = read_sysreg!("esr_el1");
- emergency_write_str("serr_current\n");
+ eprintln!("serr_current");
eprintln!("esr={esr:#08x}");
reboot();
}
@@ -56,27 +56,27 @@
#[no_mangle]
extern "C" fn sync_lower(_elr: u64, _spsr: u64) {
let esr = read_sysreg!("esr_el1");
- emergency_write_str("sync_lower\n");
+ eprintln!("sync_lower");
eprintln!("esr={esr:#08x}");
reboot();
}
#[no_mangle]
extern "C" fn irq_lower(_elr: u64, _spsr: u64) {
- emergency_write_str("irq_lower\n");
+ eprintln!("irq_lower");
reboot();
}
#[no_mangle]
extern "C" fn fiq_lower(_elr: u64, _spsr: u64) {
- emergency_write_str("fiq_lower\n");
+ eprintln!("fiq_lower");
reboot();
}
#[no_mangle]
extern "C" fn serr_lower(_elr: u64, _spsr: u64) {
let esr = read_sysreg!("esr_el1");
- emergency_write_str("serr_lower\n");
+ eprintln!("serr_lower");
eprintln!("esr={esr:#08x}");
reboot();
}
diff --git a/vmbase/example/src/exceptions.rs b/vmbase/example/src/exceptions.rs
index 0e637ac..0522013 100644
--- a/vmbase/example/src/exceptions.rs
+++ b/vmbase/example/src/exceptions.rs
@@ -15,56 +15,56 @@
//! Exception handlers.
use core::arch::asm;
-use vmbase::{console::emergency_write_str, eprintln, power::reboot};
+use vmbase::{eprintln, power::reboot};
#[no_mangle]
extern "C" fn sync_exception_current(_elr: u64, _spsr: u64) {
- emergency_write_str("sync_exception_current\n");
+ eprintln!("sync_exception_current");
print_esr();
reboot();
}
#[no_mangle]
extern "C" fn irq_current(_elr: u64, _spsr: u64) {
- emergency_write_str("irq_current\n");
+ eprintln!("irq_current");
reboot();
}
#[no_mangle]
extern "C" fn fiq_current(_elr: u64, _spsr: u64) {
- emergency_write_str("fiq_current\n");
+ eprintln!("fiq_current");
reboot();
}
#[no_mangle]
extern "C" fn serr_current(_elr: u64, _spsr: u64) {
- emergency_write_str("serr_current\n");
+ eprintln!("serr_current");
print_esr();
reboot();
}
#[no_mangle]
extern "C" fn sync_lower(_elr: u64, _spsr: u64) {
- emergency_write_str("sync_lower\n");
+ eprintln!("sync_lower");
print_esr();
reboot();
}
#[no_mangle]
extern "C" fn irq_lower(_elr: u64, _spsr: u64) {
- emergency_write_str("irq_lower\n");
+ eprintln!("irq_lower");
reboot();
}
#[no_mangle]
extern "C" fn fiq_lower(_elr: u64, _spsr: u64) {
- emergency_write_str("fiq_lower\n");
+ eprintln!("fiq_lower");
reboot();
}
#[no_mangle]
extern "C" fn serr_lower(_elr: u64, _spsr: u64) {
- emergency_write_str("serr_lower\n");
+ eprintln!("serr_lower");
print_esr();
reboot();
}