From 4b16e66164ce40e2f1279408210c339fa69da9c8 Mon Sep 17 00:00:00 2001 From: bjorn3 <17426603+bjorn3@users.noreply.github.com> Date: Sat, 13 Sep 2025 18:49:40 +0200 Subject: [PATCH] Set arm64 exception handler before entering the rust world --- src/arch/aarch64/interrupt/mod.rs | 14 -------------- src/arch/aarch64/start.rs | 6 ++++-- 2 files changed, 4 insertions(+), 16 deletions(-) diff --git a/src/arch/aarch64/interrupt/mod.rs b/src/arch/aarch64/interrupt/mod.rs index ab9f93c78c..13d7b8ff6d 100644 --- a/src/arch/aarch64/interrupt/mod.rs +++ b/src/arch/aarch64/interrupt/mod.rs @@ -47,17 +47,3 @@ pub unsafe fn halt() { asm!("wfi"); } } - -#[inline(always)] -pub unsafe fn init() { - unsafe { - // Setup interrupt handlers - asm!( - " - ldr {tmp}, =exception_vector_base - msr vbar_el1, {tmp} - ", - tmp = out(reg) _, - ); - } -} diff --git a/src/arch/aarch64/start.rs b/src/arch/aarch64/start.rs index a4f71cdb0d..eec8770794 100644 --- a/src/arch/aarch64/start.rs +++ b/src/arch/aarch64/start.rs @@ -45,6 +45,10 @@ global_asm!(" mov x2, {stack_size}-16 add sp, x1, x2 + // Setup interrupt handlers + ldr x9, =exception_vector_base + msr vbar_el1, x9 + mov lr, 0 b {start} @@ -93,8 +97,6 @@ unsafe extern "C" fn start(args_ptr: *const KernelArgs) -> ! { info!("Redox OS starting..."); args.print(); - interrupt::init(); - // Initialize RMM crate::startup::memory::init(&args, None, None);