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