diff options
Diffstat (limited to 'arch/nds32')
-rw-r--r-- | arch/nds32/cpu/n1213/start.S | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/arch/nds32/cpu/n1213/start.S b/arch/nds32/cpu/n1213/start.S index 1d1fcf7..889bf8b 100644 --- a/arch/nds32/cpu/n1213/start.S +++ b/arch/nds32/cpu/n1213/start.S @@ -68,15 +68,17 @@ _start: j reset j tlb_not_present j tlb_misc j tlb_vlpt_miss - j cache_parity_error + j machine_error j debug j general_exception + j syscall j internal_interrupt ! H0I j internal_interrupt ! H1I j internal_interrupt ! H2I j internal_interrupt ! H3I j internal_interrupt ! H4I j internal_interrupt ! H5I + j software_interrupt ! S0I .balign 16 @@ -477,7 +479,7 @@ tlb_vlpt_miss: bal do_interruption .align 5 -cache_parity_error: +machine_error: SAVE_ALL move $r0, $sp ! To get the kernel stack li $r1, 5 ! Determine interruption type @@ -498,13 +500,27 @@ general_exception: bal do_interruption .align 5 -internal_interrupt: +syscall: SAVE_ALL move $r0, $sp ! To get the kernel stack li $r1, 8 ! Determine interruption type bal do_interruption .align 5 +internal_interrupt: + SAVE_ALL + move $r0, $sp ! To get the kernel stack + li $r1, 9 ! Determine interruption type + bal do_interruption + + .align 5 +software_interrupt: + SAVE_ALL + move $r0, $sp ! To get the kernel stack + li $r1, 10 ! Determine interruption type + bal do_interruption + + .align 5 /* * void reset_cpu(ulong addr); |