1 /******************************************************************************
3 * Copyright (C) 2014 Xilinx, Inc. All rights reserved.
5 * Permission is hereby granted, free of charge, to any person obtaining a copy
6 * of this software and associated documentation files (the "Software"), to deal
7 * in the Software without restriction, including without limitation the rights
8 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 * copies of the Software, and to permit persons to whom the Software is
10 * furnished to do so, subject to the following conditions:
12 * The above copyright notice and this permission notice shall be included in
13 * all copies or substantial portions of the Software.
15 * Use of the Software is limited solely to applications:
16 * (a) running on a Xilinx device, or
17 * (b) that interact with a Xilinx device through a bus or interconnect.
19 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
22 * XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
23 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
24 * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
27 * Except as contained in this notice, the name of the Xilinx shall not be used
28 * in advertising or otherwise to promote the sale, use or other dealings in
29 * this Software without prior written authorization from Xilinx.
31 ******************************************************************************/
32 /*****************************************************************************/
36 * This file contains the initial vector table for the Cortex A53 processor
37 * Currently NEON registers are not saved on stack if interrupt is taken.
38 * It will be implemented.
41 * MODIFICATION HISTORY:
43 * Ver Who Date Changes
44 * ----- ------- -------- ---------------------------------------------------
45 * 5.00 pkp 5/21/14 Initial version
52 ******************************************************************************/
64 .globl SErrorInterrupt
65 .globl SynchronousInterrupt
70 .section .vectors, "a"
74 .set VBAR, _vector_table
78 b SynchronousInterruptHandler
87 b SErrorInterruptHandler
90 SynchronousInterruptHandler:
91 stp X0,X1, [sp,#-0x10]!
92 stp X2,X3, [sp,#-0x10]!
93 stp X4,X5, [sp,#-0x10]!
94 stp X6,X7, [sp,#-0x10]!
95 stp X8,X9, [sp,#-0x10]!
96 stp X10,X11, [sp,#-0x10]!
97 stp X12,X13, [sp,#-0x10]!
98 stp X14,X15, [sp,#-0x10]!
99 stp X16,X17, [sp,#-0x10]!
100 stp X18,X19, [sp,#-0x10]!
101 stp X29,X30, [sp,#-0x10]!
103 bl SynchronousInterrupt
105 ldp X29,X30, [sp], #0x10
106 ldp X18,X19, [sp], #0x10
107 ldp X16,X17, [sp], #0x10
108 ldp X14,X15, [sp], #0x10
109 ldp X12,X13, [sp], #0x10
110 ldp X10,X11, [sp], #0x10
111 ldp X8,X9, [sp], #0x10
112 ldp X6,X7, [sp], #0x10
113 ldp X4,X5, [sp], #0x10
114 ldp X2,X3, [sp], #0x10
115 ldp X0,X1, [sp], #0x10
120 stp X0,X1, [sp,#-0x10]!
121 stp X2,X3, [sp,#-0x10]!
122 stp X4,X5, [sp,#-0x10]!
123 stp X6,X7, [sp,#-0x10]!
124 stp X8,X9, [sp,#-0x10]!
125 stp X10,X11, [sp,#-0x10]!
126 stp X12,X13, [sp,#-0x10]!
127 stp X14,X15, [sp,#-0x10]!
128 stp X16,X17, [sp,#-0x10]!
129 stp X18,X19, [sp,#-0x10]!
130 stp X29,X30, [sp,#-0x10]!
134 ldp X29,X30, [sp], #0x10
135 ldp X18,X19, [sp], #0x10
136 ldp X16,X17, [sp], #0x10
137 ldp X14,X15, [sp], #0x10
138 ldp X12,X13, [sp], #0x10
139 ldp X10,X11, [sp], #0x10
140 ldp X8,X9, [sp], #0x10
141 ldp X6,X7, [sp], #0x10
142 ldp X4,X5, [sp], #0x10
143 ldp X2,X3, [sp], #0x10
144 ldp X0,X1, [sp], #0x10
150 stp X0,X1, [sp,#-0x10]!
151 stp X2,X3, [sp,#-0x10]!
152 stp X4,X5, [sp,#-0x10]!
153 stp X6,X7, [sp,#-0x10]!
154 stp X8,X9, [sp,#-0x10]!
155 stp X10,X11, [sp,#-0x10]!
156 stp X12,X13, [sp,#-0x10]!
157 stp X14,X15, [sp,#-0x10]!
158 stp X16,X17, [sp,#-0x10]!
159 stp X18,X19, [sp,#-0x10]!
160 stp X29,X30, [sp,#-0x10]!
164 ldp X29,X30, [sp], #0x10
165 ldp X18,X19, [sp], #0x10
166 ldp X16,X17, [sp], #0x10
167 ldp X14,X15, [sp], #0x10
168 ldp X12,X13, [sp], #0x10
169 ldp X10,X11, [sp], #0x10
170 ldp X8,X9, [sp], #0x10
171 ldp X6,X7, [sp], #0x10
172 ldp X4,X5, [sp], #0x10
173 ldp X2,X3, [sp], #0x10
174 ldp X0,X1, [sp], #0x10
178 SErrorInterruptHandler:
180 stp X0,X1, [sp,#-0x10]!
181 stp X2,X3, [sp,#-0x10]!
182 stp X4,X5, [sp,#-0x10]!
183 stp X6,X7, [sp,#-0x10]!
184 stp X8,X9, [sp,#-0x10]!
185 stp X10,X11, [sp,#-0x10]!
186 stp X12,X13, [sp,#-0x10]!
187 stp X14,X15, [sp,#-0x10]!
188 stp X16,X17, [sp,#-0x10]!
189 stp X18,X19, [sp,#-0x10]!
190 stp X29,X30, [sp,#-0x10]!
194 ldp X29,X30, [sp], #0x10
195 ldp X18,X19, [sp], #0x10
196 ldp X16,X17, [sp], #0x10
197 ldp X14,X15, [sp], #0x10
198 ldp X12,X13, [sp], #0x10
199 ldp X10,X11, [sp], #0x10
200 ldp X8,X9, [sp], #0x10
201 ldp X6,X7, [sp], #0x10
202 ldp X4,X5, [sp], #0x10
203 ldp X2,X3, [sp], #0x10
204 ldp X0,X1, [sp], #0x10