xref: /openbmc/u-boot/arch/arm/lib/vectors_m.S (revision da4cfa6b)
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
37ENTRY(_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
57