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);