diff --git a/Kernel/Arch/aarch64/vector_table.S b/Kernel/Arch/aarch64/vector_table.S index 80a44f3d5b..daa5f3b127 100644 --- a/Kernel/Arch/aarch64/vector_table.S +++ b/Kernel/Arch/aarch64/vector_table.S @@ -128,10 +128,10 @@ vector_table_el1: table_entry system_error_current_elsp_elx // Exceptions from Lower EL, where causing application is in AArch64 mode - unimplemented_entry - unimplemented_entry - unimplemented_entry - unimplemented_entry + table_entry synchronous_lower_el + table_entry irq_lower_el + table_entry fiq_lower_el + table_entry system_error_lower_el // Exceptions from Lower EL, where causing application is in AArch32 mode unimplemented_entry @@ -187,6 +187,30 @@ system_error_current_elsp_el0: restore_previous_context eret +synchronous_lower_el: + save_current_context + bl exception_common + restore_previous_context + eret + +irq_lower_el: + save_current_context + bl handle_interrupt + restore_previous_context + eret + +fiq_lower_el: + save_current_context + bl exception_common + restore_previous_context + eret + +system_error_lower_el: + save_current_context + bl exception_common + restore_previous_context + eret + .global restore_context_and_eret restore_context_and_eret: restore_previous_context