Merge https://gitlab.denx.de/u-boot/custodians/u-boot-x86
[oweals/u-boot.git] / arch / arm / lib / vectors_m.S
1 /* SPDX-License-Identifier: GPL-2.0+ */
2 /*
3  * (C) Copyright 2015
4  * Kamil Lulko, <kamil.lulko@gmail.com>
5  */
6
7 #include <config.h>
8 #include <asm/assembler.h>
9 #include <linux/linkage.h>
10
11 .type __hard_fault_entry, %function
12 __hard_fault_entry:
13         mov     r0, sp  @ pass auto-saved registers as argument
14         b       do_hard_fault
15
16 .type __mm_fault_entry, %function
17 __mm_fault_entry:
18         mov     r0, sp  @ pass auto-saved registers as argument
19         b       do_mm_fault
20
21 .type __bus_fault_entry, %function
22 __bus_fault_entry:
23         mov     r0, sp  @ pass auto-saved registers as argument
24         b       do_bus_fault
25
26 .type __usage_fault_entry, %function
27 __usage_fault_entry:
28         mov     r0, sp  @ pass auto-saved registers as argument
29         b       do_usage_fault
30
31 .type __invalid_entry, %function
32 __invalid_entry:
33         mov     r0, sp  @ pass auto-saved registers as argument
34         b       do_invalid_entry
35
36    .section  .vectors
37 ENTRY(_start)
38         .long   CONFIG_SYS_INIT_SP_ADDR         @ 0 - Reset stack pointer
39         .long   reset                           @ 1 - Reset
40         .long   __invalid_entry                 @ 2 - NMI
41         .long   __hard_fault_entry              @ 3 - HardFault
42         .long   __mm_fault_entry                @ 4 - MemManage
43         .long   __bus_fault_entry               @ 5 - BusFault
44         .long   __usage_fault_entry             @ 6 - UsageFault
45         .long   __invalid_entry                 @ 7 - Reserved
46         .long   __invalid_entry                 @ 8 - Reserved
47         .long   __invalid_entry                 @ 9 - Reserved
48         .long   __invalid_entry                 @ 10 - Reserved
49         .long   __invalid_entry                 @ 11 - SVCall
50         .long   __invalid_entry                 @ 12 - Debug Monitor
51         .long   __invalid_entry                 @ 13 - Reserved
52         .long   __invalid_entry                 @ 14 - PendSV
53         .long   __invalid_entry                 @ 15 - SysTick
54         .rept   255 - 16
55         .long   __invalid_entry                 @ 16..255 - External Interrupts
56         .endr