]> git.proxmox.com Git - mirror_edk2.git/blame - ArmPlatformPkg/PrePeiCore/AArch64/Exception.S
EmulatorPkg: Support a second GOP window
[mirror_edk2.git] / ArmPlatformPkg / PrePeiCore / AArch64 / Exception.S
CommitLineData
1bc83266 1#\r
eaa84fd5 2# Copyright (c) 2011-2014, ARM Limited. All rights reserved.\r
1bc83266 3#\r
f4dfad05 4# SPDX-License-Identifier: BSD-2-Clause-Patent\r
1bc83266
HL
5#\r
6#\r
7\r
d855b261 8#include <Chipset/AArch64.h>\r
1bc83266
HL
9#include <AsmMacroIoLibV8.h>\r
10#include <Base.h>\r
11#include <AutoGen.h>\r
12\r
13.text\r
1bc83266
HL
14\r
15//============================================================\r
16//Default Exception Handlers\r
17//============================================================\r
18\r
1bc83266
HL
19#define TO_HANDLER \\r
20 EL1_OR_EL2(x1) \\r
211: mrs x1, elr_el1 /* EL1 Exception Link Register */ ;\\r
22 b 3f ;\\r
232: mrs x1, elr_el2 /* EL2 Exception Link Register */ ;\\r
243: bl ASM_PFX(PeiCommonExceptionEntry) ;\r
25\r
26\r
27//\r
28// Default Exception handlers: There is no plan to return from any of these exceptions.\r
29// No context saving at all.\r
30//\r
31\r
d855b261
MR
32VECTOR_BASE(PeiVectorTable)\r
33\r
34VECTOR_ENTRY(PeiVectorTable, ARM_VECTOR_CUR_SP0_SYNC)\r
1bc83266
HL
35_DefaultSyncExceptHandler_t:\r
36 mov x0, #EXCEPT_AARCH64_SYNCHRONOUS_EXCEPTIONS\r
37 TO_HANDLER\r
38\r
d855b261 39VECTOR_ENTRY(PeiVectorTable, ARM_VECTOR_CUR_SP0_IRQ)\r
1bc83266
HL
40_DefaultIrq_t:\r
41 mov x0, #EXCEPT_AARCH64_IRQ\r
42 TO_HANDLER\r
43\r
d855b261 44VECTOR_ENTRY(PeiVectorTable, ARM_VECTOR_CUR_SP0_FIQ)\r
1bc83266
HL
45_DefaultFiq_t:\r
46 mov x0, #EXCEPT_AARCH64_FIQ\r
47 TO_HANDLER\r
48\r
d855b261 49VECTOR_ENTRY(PeiVectorTable, ARM_VECTOR_CUR_SP0_SERR)\r
1bc83266
HL
50_DefaultSError_t:\r
51 mov x0, #EXCEPT_AARCH64_SERROR\r
52 TO_HANDLER\r
53\r
d855b261 54VECTOR_ENTRY(PeiVectorTable, ARM_VECTOR_CUR_SPx_SYNC)\r
1bc83266
HL
55_DefaultSyncExceptHandler_h:\r
56 mov x0, #EXCEPT_AARCH64_SYNCHRONOUS_EXCEPTIONS\r
57 TO_HANDLER\r
58\r
d855b261 59VECTOR_ENTRY(PeiVectorTable, ARM_VECTOR_CUR_SPx_IRQ)\r
1bc83266
HL
60_DefaultIrq_h:\r
61 mov x0, #EXCEPT_AARCH64_IRQ\r
62 TO_HANDLER\r
63\r
d855b261 64VECTOR_ENTRY(PeiVectorTable, ARM_VECTOR_CUR_SPx_FIQ)\r
1bc83266
HL
65_DefaultFiq_h:\r
66 mov x0, #EXCEPT_AARCH64_FIQ\r
67 TO_HANDLER\r
68\r
d855b261 69VECTOR_ENTRY(PeiVectorTable, ARM_VECTOR_CUR_SPx_SERR)\r
1bc83266
HL
70_DefaultSError_h:\r
71 mov x0, #EXCEPT_AARCH64_SERROR\r
72 TO_HANDLER\r
d855b261 73\r
83886d74
AB
74VECTOR_ENTRY(PeiVectorTable, ARM_VECTOR_LOW_A64_SYNC)\r
75_DefaultSyncExceptHandler_LowerA64:\r
76 mov x0, #EXCEPT_AARCH64_SYNCHRONOUS_EXCEPTIONS\r
77 TO_HANDLER\r
78\r
79VECTOR_ENTRY(PeiVectorTable, ARM_VECTOR_LOW_A64_IRQ)\r
80_DefaultIrq_LowerA64:\r
81 mov x0, #EXCEPT_AARCH64_IRQ\r
82 TO_HANDLER\r
83\r
84VECTOR_ENTRY(PeiVectorTable, ARM_VECTOR_LOW_A64_FIQ)\r
85_DefaultFiq_LowerA64:\r
86 mov x0, #EXCEPT_AARCH64_FIQ\r
87 TO_HANDLER\r
88\r
89VECTOR_ENTRY(PeiVectorTable, ARM_VECTOR_LOW_A64_SERR)\r
90_DefaultSError_LowerA64:\r
91 mov x0, #EXCEPT_AARCH64_SERROR\r
92 TO_HANDLER\r
93\r
94VECTOR_ENTRY(PeiVectorTable, ARM_VECTOR_LOW_A32_SYNC)\r
95_DefaultSyncExceptHandler_LowerA32:\r
96 mov x0, #EXCEPT_AARCH64_SYNCHRONOUS_EXCEPTIONS\r
97 TO_HANDLER\r
98\r
99VECTOR_ENTRY(PeiVectorTable, ARM_VECTOR_LOW_A32_IRQ)\r
100_DefaultIrq_LowerA32:\r
101 mov x0, #EXCEPT_AARCH64_IRQ\r
102 TO_HANDLER\r
103\r
104VECTOR_ENTRY(PeiVectorTable, ARM_VECTOR_LOW_A32_FIQ)\r
105_DefaultFiq_LowerA32:\r
106 mov x0, #EXCEPT_AARCH64_FIQ\r
107 TO_HANDLER\r
108\r
109VECTOR_ENTRY(PeiVectorTable, ARM_VECTOR_LOW_A32_SERR)\r
110_DefaultSError_LowerA32:\r
111 mov x0, #EXCEPT_AARCH64_SERROR\r
112 TO_HANDLER\r
113\r
d855b261 114VECTOR_END(PeiVectorTable)\r