1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | /* The Sparc trap table, bootloader gives us control at _start. */ |
3 | __HEAD |
4 | |
5 | .globl _start |
6 | _start: |
7 | |
8 | .globl _stext |
9 | _stext: |
10 | |
11 | .globl trapbase |
12 | trapbase: |
13 | |
14 | #ifdef CONFIG_SMP |
15 | trapbase_cpu0: |
16 | #endif |
17 | /* We get control passed to us here at t_zero. */ |
18 | t_zero: b gokernel; nop; nop; nop; |
19 | t_tflt: SRMMU_TFAULT /* Inst. Access Exception */ |
20 | t_bins: TRAP_ENTRY(0x2, bad_instruction) /* Illegal Instruction */ |
21 | t_pins: TRAP_ENTRY(0x3, priv_instruction) /* Privileged Instruction */ |
22 | t_fpd: TRAP_ENTRY(0x4, fpd_trap_handler) /* Floating Point Disabled */ |
23 | t_wovf: WINDOW_SPILL /* Window Overflow */ |
24 | t_wunf: WINDOW_FILL /* Window Underflow */ |
25 | t_mna: TRAP_ENTRY(0x7, mna_handler) /* Memory Address Not Aligned */ |
26 | t_fpe: TRAP_ENTRY(0x8, fpe_trap_handler) /* Floating Point Exception */ |
27 | t_dflt: SRMMU_DFAULT /* Data Miss Exception */ |
28 | t_tio: TRAP_ENTRY(0xa, do_tag_overflow) /* Tagged Instruction Ovrflw */ |
29 | t_wpt: TRAP_ENTRY(0xb, do_watchpoint) /* Watchpoint Detected */ |
30 | t_badc: BAD_TRAP(0xc) BAD_TRAP(0xd) BAD_TRAP(0xe) BAD_TRAP(0xf) BAD_TRAP(0x10) |
31 | t_irq1: TRAP_ENTRY_INTERRUPT(1) /* IRQ Software/SBUS Level 1 */ |
32 | t_irq2: TRAP_ENTRY_INTERRUPT(2) /* IRQ SBUS Level 2 */ |
33 | t_irq3: TRAP_ENTRY_INTERRUPT(3) /* IRQ SCSI/DMA/SBUS Level 3 */ |
34 | t_irq4: TRAP_ENTRY_INTERRUPT(4) /* IRQ Software Level 4 */ |
35 | t_irq5: TRAP_ENTRY_INTERRUPT(5) /* IRQ SBUS/Ethernet Level 5 */ |
36 | t_irq6: TRAP_ENTRY_INTERRUPT(6) /* IRQ Software Level 6 */ |
37 | t_irq7: TRAP_ENTRY_INTERRUPT(7) /* IRQ Video/SBUS Level 5 */ |
38 | t_irq8: TRAP_ENTRY_INTERRUPT(8) /* IRQ SBUS Level 6 */ |
39 | t_irq9: TRAP_ENTRY_INTERRUPT(9) /* IRQ SBUS Level 7 */ |
40 | t_irq10:TRAP_ENTRY_INTERRUPT(10) /* IRQ Timer #1 (one we use) */ |
41 | t_irq11:TRAP_ENTRY_INTERRUPT(11) /* IRQ Floppy Intr. */ |
42 | t_irq12:TRAP_ENTRY_INTERRUPT(12) /* IRQ Zilog serial chip */ |
43 | t_irq13:TRAP_ENTRY_INTERRUPT(13) /* IRQ Audio Intr. */ |
44 | t_irq14:TRAP_ENTRY_INTERRUPT(14) /* IRQ Timer #2 */ |
45 | |
46 | .globl t_nmi |
47 | t_nmi: TRAP_ENTRY(0x1f, linux_trap_ipi15_sun4m) |
48 | |
49 | t_racc: TRAP_ENTRY(0x20, do_reg_access) /* General Register Access Error */ |
50 | t_iacce:BAD_TRAP(0x21) /* Instr Access Error */ |
51 | t_bad22:BAD_TRAP(0x22) |
52 | BAD_TRAP(0x23) |
53 | t_cpdis:TRAP_ENTRY(0x24, do_cp_disabled) /* Co-Processor Disabled */ |
54 | t_uflsh:SKIP_TRAP(0x25, unimp_flush) /* Unimplemented FLUSH inst. */ |
55 | t_bad26:BAD_TRAP(0x26) BAD_TRAP(0x27) |
56 | t_cpexc:TRAP_ENTRY(0x28, do_cp_exception) /* Co-Processor Exception */ |
57 | t_dacce:SRMMU_DFAULT /* Data Access Error */ |
58 | t_hwdz: TRAP_ENTRY(0x2a, do_hw_divzero) /* Division by zero, you lose... */ |
59 | t_dserr:BAD_TRAP(0x2b) /* Data Store Error */ |
60 | t_daccm:BAD_TRAP(0x2c) /* Data Access MMU-Miss */ |
61 | t_bad2d:BAD_TRAP(0x2d) BAD_TRAP(0x2e) BAD_TRAP(0x2f) BAD_TRAP(0x30) BAD_TRAP(0x31) |
62 | t_bad32:BAD_TRAP(0x32) BAD_TRAP(0x33) BAD_TRAP(0x34) BAD_TRAP(0x35) BAD_TRAP(0x36) |
63 | t_bad37:BAD_TRAP(0x37) BAD_TRAP(0x38) BAD_TRAP(0x39) BAD_TRAP(0x3a) BAD_TRAP(0x3b) |
64 | t_iaccm:BAD_TRAP(0x3c) /* Instr Access MMU-Miss */ |
65 | t_bad3d:BAD_TRAP(0x3d) BAD_TRAP(0x3e) BAD_TRAP(0x3f) BAD_TRAP(0x40) BAD_TRAP(0x41) |
66 | t_bad42:BAD_TRAP(0x42) BAD_TRAP(0x43) BAD_TRAP(0x44) BAD_TRAP(0x45) BAD_TRAP(0x46) |
67 | t_bad47:BAD_TRAP(0x47) BAD_TRAP(0x48) BAD_TRAP(0x49) BAD_TRAP(0x4a) BAD_TRAP(0x4b) |
68 | t_bad4c:BAD_TRAP(0x4c) BAD_TRAP(0x4d) BAD_TRAP(0x4e) BAD_TRAP(0x4f) BAD_TRAP(0x50) |
69 | t_bad51:BAD_TRAP(0x51) BAD_TRAP(0x52) BAD_TRAP(0x53) BAD_TRAP(0x54) BAD_TRAP(0x55) |
70 | t_bad56:BAD_TRAP(0x56) BAD_TRAP(0x57) BAD_TRAP(0x58) BAD_TRAP(0x59) BAD_TRAP(0x5a) |
71 | t_bad5b:BAD_TRAP(0x5b) BAD_TRAP(0x5c) BAD_TRAP(0x5d) BAD_TRAP(0x5e) BAD_TRAP(0x5f) |
72 | t_bad60:BAD_TRAP(0x60) BAD_TRAP(0x61) BAD_TRAP(0x62) BAD_TRAP(0x63) BAD_TRAP(0x64) |
73 | t_bad65:BAD_TRAP(0x65) BAD_TRAP(0x66) BAD_TRAP(0x67) BAD_TRAP(0x68) BAD_TRAP(0x69) |
74 | t_bad6a:BAD_TRAP(0x6a) BAD_TRAP(0x6b) BAD_TRAP(0x6c) BAD_TRAP(0x6d) BAD_TRAP(0x6e) |
75 | t_bad6f:BAD_TRAP(0x6f) BAD_TRAP(0x70) BAD_TRAP(0x71) BAD_TRAP(0x72) BAD_TRAP(0x73) |
76 | t_bad74:BAD_TRAP(0x74) BAD_TRAP(0x75) BAD_TRAP(0x76) BAD_TRAP(0x77) BAD_TRAP(0x78) |
77 | t_bad79:BAD_TRAP(0x79) BAD_TRAP(0x7a) BAD_TRAP(0x7b) BAD_TRAP(0x7c) BAD_TRAP(0x7d) |
78 | t_bad7e:BAD_TRAP(0x7e) BAD_TRAP(0x7f) |
79 | t_bad80:BAD_TRAP(0x80) /* SunOS System Call */ |
80 | t_sbkpt:BREAKPOINT_TRAP /* Software Breakpoint/KGDB */ |
81 | t_divz: TRAP_ENTRY(0x82, do_hw_divzero) /* Divide by zero trap */ |
82 | t_flwin:TRAP_ENTRY(0x83, do_flush_windows) /* Flush Windows Trap */ |
83 | t_clwin:BAD_TRAP(0x84) /* Clean Windows Trap */ |
84 | t_rchk: BAD_TRAP(0x85) /* Range Check */ |
85 | t_funal:BAD_TRAP(0x86) /* Fix Unaligned Access Trap */ |
86 | t_iovf: BAD_TRAP(0x87) /* Integer Overflow Trap */ |
87 | t_bad88:BAD_TRAP(0x88) /* Slowaris System Call */ |
88 | t_bad89:BAD_TRAP(0x89) /* Net-B.S. System Call */ |
89 | t_bad8a:BAD_TRAP(0x8a) BAD_TRAP(0x8b) BAD_TRAP(0x8c) BAD_TRAP(0x8d) BAD_TRAP(0x8e) |
90 | t_bad8f:BAD_TRAP(0x8f) |
91 | t_linux:LINUX_SYSCALL_TRAP /* Linux System Call */ |
92 | t_bad91:BAD_TRAP(0x91) BAD_TRAP(0x92) BAD_TRAP(0x93) BAD_TRAP(0x94) BAD_TRAP(0x95) |
93 | t_bad96:BAD_TRAP(0x96) BAD_TRAP(0x97) BAD_TRAP(0x98) BAD_TRAP(0x99) BAD_TRAP(0x9a) |
94 | t_bad9b:BAD_TRAP(0x9b) BAD_TRAP(0x9c) BAD_TRAP(0x9d) BAD_TRAP(0x9e) BAD_TRAP(0x9f) |
95 | t_getcc:GETCC_TRAP /* Get Condition Codes */ |
96 | t_setcc:SETCC_TRAP /* Set Condition Codes */ |
97 | t_getpsr:GETPSR_TRAP /* Get PSR Register */ |
98 | t_bada3:BAD_TRAP(0xa3) BAD_TRAP(0xa4) BAD_TRAP(0xa5) BAD_TRAP(0xa6) |
99 | t_bada7:BAD_TRAP(0xa7) |
100 | t_bada8:BAD_TRAP(0xa8) BAD_TRAP(0xa9) BAD_TRAP(0xaa) BAD_TRAP(0xab) |
101 | t_badac:BAD_TRAP(0xac) BAD_TRAP(0xad) BAD_TRAP(0xae) BAD_TRAP(0xaf) BAD_TRAP(0xb0) |
102 | t_badb1:BAD_TRAP(0xb1) BAD_TRAP(0xb2) BAD_TRAP(0xb3) BAD_TRAP(0xb4) BAD_TRAP(0xb5) |
103 | t_badb6:BAD_TRAP(0xb6) BAD_TRAP(0xb7) BAD_TRAP(0xb8) BAD_TRAP(0xb9) BAD_TRAP(0xba) |
104 | t_badbb:BAD_TRAP(0xbb) BAD_TRAP(0xbc) BAD_TRAP(0xbd) BAD_TRAP(0xbe) BAD_TRAP(0xbf) |
105 | t_badc0:BAD_TRAP(0xc0) BAD_TRAP(0xc1) BAD_TRAP(0xc2) BAD_TRAP(0xc3) BAD_TRAP(0xc4) |
106 | t_badc5:BAD_TRAP(0xc5) BAD_TRAP(0xc6) BAD_TRAP(0xc7) BAD_TRAP(0xc8) BAD_TRAP(0xc9) |
107 | t_badca:BAD_TRAP(0xca) BAD_TRAP(0xcb) BAD_TRAP(0xcc) BAD_TRAP(0xcd) BAD_TRAP(0xce) |
108 | t_badcf:BAD_TRAP(0xcf) BAD_TRAP(0xd0) BAD_TRAP(0xd1) BAD_TRAP(0xd2) BAD_TRAP(0xd3) |
109 | t_badd4:BAD_TRAP(0xd4) BAD_TRAP(0xd5) BAD_TRAP(0xd6) BAD_TRAP(0xd7) BAD_TRAP(0xd8) |
110 | t_badd9:BAD_TRAP(0xd9) BAD_TRAP(0xda) BAD_TRAP(0xdb) BAD_TRAP(0xdc) BAD_TRAP(0xdd) |
111 | t_badde:BAD_TRAP(0xde) BAD_TRAP(0xdf) BAD_TRAP(0xe0) BAD_TRAP(0xe1) BAD_TRAP(0xe2) |
112 | t_bade3:BAD_TRAP(0xe3) BAD_TRAP(0xe4) BAD_TRAP(0xe5) BAD_TRAP(0xe6) BAD_TRAP(0xe7) |
113 | t_bade8:BAD_TRAP(0xe8) BAD_TRAP(0xe9) BAD_TRAP(0xea) BAD_TRAP(0xeb) BAD_TRAP(0xec) |
114 | t_baded:BAD_TRAP(0xed) BAD_TRAP(0xee) BAD_TRAP(0xef) BAD_TRAP(0xf0) BAD_TRAP(0xf1) |
115 | t_badf2:BAD_TRAP(0xf2) BAD_TRAP(0xf3) BAD_TRAP(0xf4) BAD_TRAP(0xf5) BAD_TRAP(0xf6) |
116 | t_badf7:BAD_TRAP(0xf7) BAD_TRAP(0xf8) BAD_TRAP(0xf9) BAD_TRAP(0xfa) BAD_TRAP(0xfb) |
117 | t_badfc:BAD_TRAP(0xfc) |
118 | t_kgdb: KGDB_TRAP(0xfd) |
119 | dbtrap: BAD_TRAP(0xfe) /* Debugger/PROM breakpoint #1 */ |
120 | dbtrap2:BAD_TRAP(0xff) /* Debugger/PROM breakpoint #2 */ |
121 | |
122 | .globl end_traptable |
123 | end_traptable: |
124 | |
125 | #ifdef CONFIG_SMP |
126 | /* Trap tables for the other cpus. */ |
127 | .globl trapbase_cpu1, trapbase_cpu2, trapbase_cpu3 |
128 | trapbase_cpu1: |
129 | BAD_TRAP(0x0) |
130 | SRMMU_TFAULT |
131 | TRAP_ENTRY(0x2, bad_instruction) |
132 | TRAP_ENTRY(0x3, priv_instruction) |
133 | TRAP_ENTRY(0x4, fpd_trap_handler) |
134 | WINDOW_SPILL |
135 | WINDOW_FILL |
136 | TRAP_ENTRY(0x7, mna_handler) |
137 | TRAP_ENTRY(0x8, fpe_trap_handler) |
138 | SRMMU_DFAULT |
139 | TRAP_ENTRY(0xa, do_tag_overflow) |
140 | TRAP_ENTRY(0xb, do_watchpoint) |
141 | BAD_TRAP(0xc) BAD_TRAP(0xd) BAD_TRAP(0xe) BAD_TRAP(0xf) BAD_TRAP(0x10) |
142 | TRAP_ENTRY_INTERRUPT(1) TRAP_ENTRY_INTERRUPT(2) |
143 | TRAP_ENTRY_INTERRUPT(3) TRAP_ENTRY_INTERRUPT(4) |
144 | TRAP_ENTRY_INTERRUPT(5) TRAP_ENTRY_INTERRUPT(6) |
145 | TRAP_ENTRY_INTERRUPT(7) TRAP_ENTRY_INTERRUPT(8) |
146 | TRAP_ENTRY_INTERRUPT(9) TRAP_ENTRY_INTERRUPT(10) |
147 | TRAP_ENTRY_INTERRUPT(11) TRAP_ENTRY_INTERRUPT(12) |
148 | TRAP_ENTRY_INTERRUPT(13) TRAP_ENTRY_INTERRUPT(14) |
149 | TRAP_ENTRY(0x1f, linux_trap_ipi15_sun4m) |
150 | TRAP_ENTRY(0x20, do_reg_access) |
151 | BAD_TRAP(0x21) |
152 | BAD_TRAP(0x22) |
153 | BAD_TRAP(0x23) |
154 | TRAP_ENTRY(0x24, do_cp_disabled) |
155 | SKIP_TRAP(0x25, unimp_flush) |
156 | BAD_TRAP(0x26) |
157 | BAD_TRAP(0x27) |
158 | TRAP_ENTRY(0x28, do_cp_exception) |
159 | SRMMU_DFAULT |
160 | TRAP_ENTRY(0x2a, do_hw_divzero) |
161 | BAD_TRAP(0x2b) |
162 | BAD_TRAP(0x2c) |
163 | BAD_TRAP(0x2d) BAD_TRAP(0x2e) BAD_TRAP(0x2f) BAD_TRAP(0x30) BAD_TRAP(0x31) |
164 | BAD_TRAP(0x32) BAD_TRAP(0x33) BAD_TRAP(0x34) BAD_TRAP(0x35) BAD_TRAP(0x36) |
165 | BAD_TRAP(0x37) BAD_TRAP(0x38) BAD_TRAP(0x39) BAD_TRAP(0x3a) BAD_TRAP(0x3b) |
166 | BAD_TRAP(0x3c) BAD_TRAP(0x3d) BAD_TRAP(0x3e) BAD_TRAP(0x3f) BAD_TRAP(0x40) |
167 | BAD_TRAP(0x41) BAD_TRAP(0x42) BAD_TRAP(0x43) BAD_TRAP(0x44) BAD_TRAP(0x45) |
168 | BAD_TRAP(0x46) BAD_TRAP(0x47) BAD_TRAP(0x48) BAD_TRAP(0x49) BAD_TRAP(0x4a) |
169 | BAD_TRAP(0x4b) BAD_TRAP(0x4c) BAD_TRAP(0x4d) BAD_TRAP(0x4e) BAD_TRAP(0x4f) |
170 | BAD_TRAP(0x50) |
171 | BAD_TRAP(0x51) BAD_TRAP(0x52) BAD_TRAP(0x53) BAD_TRAP(0x54) BAD_TRAP(0x55) |
172 | BAD_TRAP(0x56) BAD_TRAP(0x57) BAD_TRAP(0x58) BAD_TRAP(0x59) BAD_TRAP(0x5a) |
173 | BAD_TRAP(0x5b) BAD_TRAP(0x5c) BAD_TRAP(0x5d) BAD_TRAP(0x5e) BAD_TRAP(0x5f) |
174 | BAD_TRAP(0x60) BAD_TRAP(0x61) BAD_TRAP(0x62) BAD_TRAP(0x63) BAD_TRAP(0x64) |
175 | BAD_TRAP(0x65) BAD_TRAP(0x66) BAD_TRAP(0x67) BAD_TRAP(0x68) BAD_TRAP(0x69) |
176 | BAD_TRAP(0x6a) BAD_TRAP(0x6b) BAD_TRAP(0x6c) BAD_TRAP(0x6d) BAD_TRAP(0x6e) |
177 | BAD_TRAP(0x6f) BAD_TRAP(0x70) BAD_TRAP(0x71) BAD_TRAP(0x72) BAD_TRAP(0x73) |
178 | BAD_TRAP(0x74) BAD_TRAP(0x75) BAD_TRAP(0x76) BAD_TRAP(0x77) BAD_TRAP(0x78) |
179 | BAD_TRAP(0x79) BAD_TRAP(0x7a) BAD_TRAP(0x7b) BAD_TRAP(0x7c) BAD_TRAP(0x7d) |
180 | BAD_TRAP(0x7e) BAD_TRAP(0x7f) |
181 | BAD_TRAP(0x80) |
182 | BREAKPOINT_TRAP |
183 | TRAP_ENTRY(0x82, do_hw_divzero) |
184 | TRAP_ENTRY(0x83, do_flush_windows) |
185 | BAD_TRAP(0x84) BAD_TRAP(0x85) BAD_TRAP(0x86) |
186 | BAD_TRAP(0x87) BAD_TRAP(0x88) BAD_TRAP(0x89) |
187 | BAD_TRAP(0x8a) BAD_TRAP(0x8b) BAD_TRAP(0x8c) |
188 | BAD_TRAP(0x8d) BAD_TRAP(0x8e) BAD_TRAP(0x8f) |
189 | LINUX_SYSCALL_TRAP BAD_TRAP(0x91) |
190 | BAD_TRAP(0x92) BAD_TRAP(0x93) BAD_TRAP(0x94) |
191 | BAD_TRAP(0x95) BAD_TRAP(0x96) BAD_TRAP(0x97) BAD_TRAP(0x98) BAD_TRAP(0x99) |
192 | BAD_TRAP(0x9a) BAD_TRAP(0x9b) BAD_TRAP(0x9c) BAD_TRAP(0x9d) BAD_TRAP(0x9e) |
193 | BAD_TRAP(0x9f) |
194 | GETCC_TRAP |
195 | SETCC_TRAP |
196 | GETPSR_TRAP |
197 | BAD_TRAP(0xa3) BAD_TRAP(0xa4) BAD_TRAP(0xa5) BAD_TRAP(0xa6) |
198 | BAD_TRAP(0xa7) BAD_TRAP(0xa8) BAD_TRAP(0xa9) BAD_TRAP(0xaa) BAD_TRAP(0xab) |
199 | BAD_TRAP(0xac) BAD_TRAP(0xad) BAD_TRAP(0xae) BAD_TRAP(0xaf) BAD_TRAP(0xb0) |
200 | BAD_TRAP(0xb1) BAD_TRAP(0xb2) BAD_TRAP(0xb3) BAD_TRAP(0xb4) BAD_TRAP(0xb5) |
201 | BAD_TRAP(0xb6) BAD_TRAP(0xb7) BAD_TRAP(0xb8) BAD_TRAP(0xb9) BAD_TRAP(0xba) |
202 | BAD_TRAP(0xbb) BAD_TRAP(0xbc) BAD_TRAP(0xbd) BAD_TRAP(0xbe) BAD_TRAP(0xbf) |
203 | BAD_TRAP(0xc0) BAD_TRAP(0xc1) BAD_TRAP(0xc2) BAD_TRAP(0xc3) BAD_TRAP(0xc4) |
204 | BAD_TRAP(0xc5) BAD_TRAP(0xc6) BAD_TRAP(0xc7) BAD_TRAP(0xc8) BAD_TRAP(0xc9) |
205 | BAD_TRAP(0xca) BAD_TRAP(0xcb) BAD_TRAP(0xcc) BAD_TRAP(0xcd) BAD_TRAP(0xce) |
206 | BAD_TRAP(0xcf) BAD_TRAP(0xd0) BAD_TRAP(0xd1) BAD_TRAP(0xd2) BAD_TRAP(0xd3) |
207 | BAD_TRAP(0xd4) BAD_TRAP(0xd5) BAD_TRAP(0xd6) BAD_TRAP(0xd7) BAD_TRAP(0xd8) |
208 | BAD_TRAP(0xd9) BAD_TRAP(0xda) BAD_TRAP(0xdb) BAD_TRAP(0xdc) BAD_TRAP(0xdd) |
209 | BAD_TRAP(0xde) BAD_TRAP(0xdf) BAD_TRAP(0xe0) BAD_TRAP(0xe1) BAD_TRAP(0xe2) |
210 | BAD_TRAP(0xe3) BAD_TRAP(0xe4) BAD_TRAP(0xe5) BAD_TRAP(0xe6) BAD_TRAP(0xe7) |
211 | BAD_TRAP(0xe8) BAD_TRAP(0xe9) BAD_TRAP(0xea) BAD_TRAP(0xeb) BAD_TRAP(0xec) |
212 | BAD_TRAP(0xed) BAD_TRAP(0xee) BAD_TRAP(0xef) BAD_TRAP(0xf0) BAD_TRAP(0xf1) |
213 | BAD_TRAP(0xf2) BAD_TRAP(0xf3) BAD_TRAP(0xf4) BAD_TRAP(0xf5) BAD_TRAP(0xf6) |
214 | BAD_TRAP(0xf7) BAD_TRAP(0xf8) BAD_TRAP(0xf9) BAD_TRAP(0xfa) BAD_TRAP(0xfb) |
215 | BAD_TRAP(0xfc) |
216 | KGDB_TRAP(0xfd) |
217 | BAD_TRAP(0xfe) |
218 | BAD_TRAP(0xff) |
219 | |
220 | trapbase_cpu2: |
221 | BAD_TRAP(0x0) |
222 | SRMMU_TFAULT |
223 | TRAP_ENTRY(0x2, bad_instruction) |
224 | TRAP_ENTRY(0x3, priv_instruction) |
225 | TRAP_ENTRY(0x4, fpd_trap_handler) |
226 | WINDOW_SPILL |
227 | WINDOW_FILL |
228 | TRAP_ENTRY(0x7, mna_handler) |
229 | TRAP_ENTRY(0x8, fpe_trap_handler) |
230 | SRMMU_DFAULT |
231 | TRAP_ENTRY(0xa, do_tag_overflow) |
232 | TRAP_ENTRY(0xb, do_watchpoint) |
233 | BAD_TRAP(0xc) BAD_TRAP(0xd) BAD_TRAP(0xe) BAD_TRAP(0xf) BAD_TRAP(0x10) |
234 | TRAP_ENTRY_INTERRUPT(1) |
235 | TRAP_ENTRY_INTERRUPT(2) |
236 | TRAP_ENTRY_INTERRUPT(3) |
237 | TRAP_ENTRY_INTERRUPT(4) |
238 | TRAP_ENTRY_INTERRUPT(5) |
239 | TRAP_ENTRY_INTERRUPT(6) |
240 | TRAP_ENTRY_INTERRUPT(7) |
241 | TRAP_ENTRY_INTERRUPT(8) |
242 | TRAP_ENTRY_INTERRUPT(9) |
243 | TRAP_ENTRY_INTERRUPT(10) |
244 | TRAP_ENTRY_INTERRUPT(11) |
245 | TRAP_ENTRY_INTERRUPT(12) |
246 | TRAP_ENTRY_INTERRUPT(13) |
247 | TRAP_ENTRY_INTERRUPT(14) |
248 | TRAP_ENTRY(0x1f, linux_trap_ipi15_sun4m) |
249 | TRAP_ENTRY(0x20, do_reg_access) |
250 | BAD_TRAP(0x21) |
251 | BAD_TRAP(0x22) |
252 | BAD_TRAP(0x23) |
253 | TRAP_ENTRY(0x24, do_cp_disabled) |
254 | SKIP_TRAP(0x25, unimp_flush) |
255 | BAD_TRAP(0x26) |
256 | BAD_TRAP(0x27) |
257 | TRAP_ENTRY(0x28, do_cp_exception) |
258 | SRMMU_DFAULT |
259 | TRAP_ENTRY(0x2a, do_hw_divzero) |
260 | BAD_TRAP(0x2b) |
261 | BAD_TRAP(0x2c) |
262 | BAD_TRAP(0x2d) BAD_TRAP(0x2e) BAD_TRAP(0x2f) BAD_TRAP(0x30) BAD_TRAP(0x31) |
263 | BAD_TRAP(0x32) BAD_TRAP(0x33) BAD_TRAP(0x34) BAD_TRAP(0x35) BAD_TRAP(0x36) |
264 | BAD_TRAP(0x37) BAD_TRAP(0x38) BAD_TRAP(0x39) BAD_TRAP(0x3a) BAD_TRAP(0x3b) |
265 | BAD_TRAP(0x3c) BAD_TRAP(0x3d) BAD_TRAP(0x3e) BAD_TRAP(0x3f) BAD_TRAP(0x40) |
266 | BAD_TRAP(0x41) BAD_TRAP(0x42) BAD_TRAP(0x43) BAD_TRAP(0x44) BAD_TRAP(0x45) |
267 | BAD_TRAP(0x46) BAD_TRAP(0x47) BAD_TRAP(0x48) BAD_TRAP(0x49) BAD_TRAP(0x4a) |
268 | BAD_TRAP(0x4b) BAD_TRAP(0x4c) BAD_TRAP(0x4d) BAD_TRAP(0x4e) BAD_TRAP(0x4f) |
269 | BAD_TRAP(0x50) |
270 | BAD_TRAP(0x51) BAD_TRAP(0x52) BAD_TRAP(0x53) BAD_TRAP(0x54) BAD_TRAP(0x55) |
271 | BAD_TRAP(0x56) BAD_TRAP(0x57) BAD_TRAP(0x58) BAD_TRAP(0x59) BAD_TRAP(0x5a) |
272 | BAD_TRAP(0x5b) BAD_TRAP(0x5c) BAD_TRAP(0x5d) BAD_TRAP(0x5e) BAD_TRAP(0x5f) |
273 | BAD_TRAP(0x60) BAD_TRAP(0x61) BAD_TRAP(0x62) BAD_TRAP(0x63) BAD_TRAP(0x64) |
274 | BAD_TRAP(0x65) BAD_TRAP(0x66) BAD_TRAP(0x67) BAD_TRAP(0x68) BAD_TRAP(0x69) |
275 | BAD_TRAP(0x6a) BAD_TRAP(0x6b) BAD_TRAP(0x6c) BAD_TRAP(0x6d) BAD_TRAP(0x6e) |
276 | BAD_TRAP(0x6f) BAD_TRAP(0x70) BAD_TRAP(0x71) BAD_TRAP(0x72) BAD_TRAP(0x73) |
277 | BAD_TRAP(0x74) BAD_TRAP(0x75) BAD_TRAP(0x76) BAD_TRAP(0x77) BAD_TRAP(0x78) |
278 | BAD_TRAP(0x79) BAD_TRAP(0x7a) BAD_TRAP(0x7b) BAD_TRAP(0x7c) BAD_TRAP(0x7d) |
279 | BAD_TRAP(0x7e) BAD_TRAP(0x7f) |
280 | BAD_TRAP(0x80) |
281 | BREAKPOINT_TRAP |
282 | TRAP_ENTRY(0x82, do_hw_divzero) |
283 | TRAP_ENTRY(0x83, do_flush_windows) |
284 | BAD_TRAP(0x84) |
285 | BAD_TRAP(0x85) |
286 | BAD_TRAP(0x86) BAD_TRAP(0x87) BAD_TRAP(0x88) |
287 | BAD_TRAP(0x89) BAD_TRAP(0x8a) BAD_TRAP(0x8b) BAD_TRAP(0x8c) |
288 | BAD_TRAP(0x8d) BAD_TRAP(0x8e) BAD_TRAP(0x8f) |
289 | LINUX_SYSCALL_TRAP BAD_TRAP(0x91) |
290 | BAD_TRAP(0x92) BAD_TRAP(0x93) BAD_TRAP(0x94) |
291 | BAD_TRAP(0x95) BAD_TRAP(0x96) BAD_TRAP(0x97) BAD_TRAP(0x98) BAD_TRAP(0x99) |
292 | BAD_TRAP(0x9a) BAD_TRAP(0x9b) BAD_TRAP(0x9c) BAD_TRAP(0x9d) BAD_TRAP(0x9e) |
293 | BAD_TRAP(0x9f) |
294 | GETCC_TRAP |
295 | SETCC_TRAP |
296 | GETPSR_TRAP |
297 | BAD_TRAP(0xa3) BAD_TRAP(0xa4) BAD_TRAP(0xa5) BAD_TRAP(0xa6) |
298 | BAD_TRAP(0xa7) BAD_TRAP(0xa8) BAD_TRAP(0xa9) BAD_TRAP(0xaa) BAD_TRAP(0xab) |
299 | BAD_TRAP(0xac) BAD_TRAP(0xad) BAD_TRAP(0xae) BAD_TRAP(0xaf) BAD_TRAP(0xb0) |
300 | BAD_TRAP(0xb1) BAD_TRAP(0xb2) BAD_TRAP(0xb3) BAD_TRAP(0xb4) BAD_TRAP(0xb5) |
301 | BAD_TRAP(0xb6) BAD_TRAP(0xb7) BAD_TRAP(0xb8) BAD_TRAP(0xb9) BAD_TRAP(0xba) |
302 | BAD_TRAP(0xbb) BAD_TRAP(0xbc) BAD_TRAP(0xbd) BAD_TRAP(0xbe) BAD_TRAP(0xbf) |
303 | BAD_TRAP(0xc0) BAD_TRAP(0xc1) BAD_TRAP(0xc2) BAD_TRAP(0xc3) BAD_TRAP(0xc4) |
304 | BAD_TRAP(0xc5) BAD_TRAP(0xc6) BAD_TRAP(0xc7) BAD_TRAP(0xc8) BAD_TRAP(0xc9) |
305 | BAD_TRAP(0xca) BAD_TRAP(0xcb) BAD_TRAP(0xcc) BAD_TRAP(0xcd) BAD_TRAP(0xce) |
306 | BAD_TRAP(0xcf) BAD_TRAP(0xd0) BAD_TRAP(0xd1) BAD_TRAP(0xd2) BAD_TRAP(0xd3) |
307 | BAD_TRAP(0xd4) BAD_TRAP(0xd5) BAD_TRAP(0xd6) BAD_TRAP(0xd7) BAD_TRAP(0xd8) |
308 | BAD_TRAP(0xd9) BAD_TRAP(0xda) BAD_TRAP(0xdb) BAD_TRAP(0xdc) BAD_TRAP(0xdd) |
309 | BAD_TRAP(0xde) BAD_TRAP(0xdf) BAD_TRAP(0xe0) BAD_TRAP(0xe1) BAD_TRAP(0xe2) |
310 | BAD_TRAP(0xe3) BAD_TRAP(0xe4) BAD_TRAP(0xe5) BAD_TRAP(0xe6) BAD_TRAP(0xe7) |
311 | BAD_TRAP(0xe8) BAD_TRAP(0xe9) BAD_TRAP(0xea) BAD_TRAP(0xeb) BAD_TRAP(0xec) |
312 | BAD_TRAP(0xed) BAD_TRAP(0xee) BAD_TRAP(0xef) BAD_TRAP(0xf0) BAD_TRAP(0xf1) |
313 | BAD_TRAP(0xf2) BAD_TRAP(0xf3) BAD_TRAP(0xf4) BAD_TRAP(0xf5) BAD_TRAP(0xf6) |
314 | BAD_TRAP(0xf7) BAD_TRAP(0xf8) BAD_TRAP(0xf9) BAD_TRAP(0xfa) BAD_TRAP(0xfb) |
315 | BAD_TRAP(0xfc) |
316 | KGDB_TRAP(0xfd) |
317 | BAD_TRAP(0xfe) |
318 | BAD_TRAP(0xff) |
319 | |
320 | trapbase_cpu3: |
321 | BAD_TRAP(0x0) |
322 | SRMMU_TFAULT |
323 | TRAP_ENTRY(0x2, bad_instruction) |
324 | TRAP_ENTRY(0x3, priv_instruction) |
325 | TRAP_ENTRY(0x4, fpd_trap_handler) |
326 | WINDOW_SPILL |
327 | WINDOW_FILL |
328 | TRAP_ENTRY(0x7, mna_handler) |
329 | TRAP_ENTRY(0x8, fpe_trap_handler) |
330 | SRMMU_DFAULT |
331 | TRAP_ENTRY(0xa, do_tag_overflow) |
332 | TRAP_ENTRY(0xb, do_watchpoint) |
333 | BAD_TRAP(0xc) BAD_TRAP(0xd) BAD_TRAP(0xe) BAD_TRAP(0xf) BAD_TRAP(0x10) |
334 | TRAP_ENTRY_INTERRUPT(1) |
335 | TRAP_ENTRY_INTERRUPT(2) |
336 | TRAP_ENTRY_INTERRUPT(3) |
337 | TRAP_ENTRY_INTERRUPT(4) |
338 | TRAP_ENTRY_INTERRUPT(5) |
339 | TRAP_ENTRY_INTERRUPT(6) |
340 | TRAP_ENTRY_INTERRUPT(7) |
341 | TRAP_ENTRY_INTERRUPT(8) |
342 | TRAP_ENTRY_INTERRUPT(9) |
343 | TRAP_ENTRY_INTERRUPT(10) |
344 | TRAP_ENTRY_INTERRUPT(11) |
345 | TRAP_ENTRY_INTERRUPT(12) |
346 | TRAP_ENTRY_INTERRUPT(13) |
347 | TRAP_ENTRY_INTERRUPT(14) |
348 | TRAP_ENTRY(0x1f, linux_trap_ipi15_sun4m) |
349 | TRAP_ENTRY(0x20, do_reg_access) |
350 | BAD_TRAP(0x21) |
351 | BAD_TRAP(0x22) |
352 | BAD_TRAP(0x23) |
353 | TRAP_ENTRY(0x24, do_cp_disabled) |
354 | SKIP_TRAP(0x25, unimp_flush) |
355 | BAD_TRAP(0x26) |
356 | BAD_TRAP(0x27) |
357 | TRAP_ENTRY(0x28, do_cp_exception) |
358 | SRMMU_DFAULT |
359 | TRAP_ENTRY(0x2a, do_hw_divzero) |
360 | BAD_TRAP(0x2b) BAD_TRAP(0x2c) |
361 | BAD_TRAP(0x2d) BAD_TRAP(0x2e) BAD_TRAP(0x2f) BAD_TRAP(0x30) BAD_TRAP(0x31) |
362 | BAD_TRAP(0x32) BAD_TRAP(0x33) BAD_TRAP(0x34) BAD_TRAP(0x35) BAD_TRAP(0x36) |
363 | BAD_TRAP(0x37) BAD_TRAP(0x38) BAD_TRAP(0x39) BAD_TRAP(0x3a) BAD_TRAP(0x3b) |
364 | BAD_TRAP(0x3c) BAD_TRAP(0x3d) BAD_TRAP(0x3e) BAD_TRAP(0x3f) BAD_TRAP(0x40) |
365 | BAD_TRAP(0x41) BAD_TRAP(0x42) BAD_TRAP(0x43) BAD_TRAP(0x44) BAD_TRAP(0x45) |
366 | BAD_TRAP(0x46) BAD_TRAP(0x47) BAD_TRAP(0x48) BAD_TRAP(0x49) BAD_TRAP(0x4a) |
367 | BAD_TRAP(0x4b) BAD_TRAP(0x4c) BAD_TRAP(0x4d) BAD_TRAP(0x4e) BAD_TRAP(0x4f) |
368 | BAD_TRAP(0x50) |
369 | BAD_TRAP(0x51) BAD_TRAP(0x52) BAD_TRAP(0x53) BAD_TRAP(0x54) BAD_TRAP(0x55) |
370 | BAD_TRAP(0x56) BAD_TRAP(0x57) BAD_TRAP(0x58) BAD_TRAP(0x59) BAD_TRAP(0x5a) |
371 | BAD_TRAP(0x5b) BAD_TRAP(0x5c) BAD_TRAP(0x5d) BAD_TRAP(0x5e) BAD_TRAP(0x5f) |
372 | BAD_TRAP(0x60) BAD_TRAP(0x61) BAD_TRAP(0x62) BAD_TRAP(0x63) BAD_TRAP(0x64) |
373 | BAD_TRAP(0x65) BAD_TRAP(0x66) BAD_TRAP(0x67) BAD_TRAP(0x68) BAD_TRAP(0x69) |
374 | BAD_TRAP(0x6a) BAD_TRAP(0x6b) BAD_TRAP(0x6c) BAD_TRAP(0x6d) BAD_TRAP(0x6e) |
375 | BAD_TRAP(0x6f) BAD_TRAP(0x70) BAD_TRAP(0x71) BAD_TRAP(0x72) BAD_TRAP(0x73) |
376 | BAD_TRAP(0x74) BAD_TRAP(0x75) BAD_TRAP(0x76) BAD_TRAP(0x77) BAD_TRAP(0x78) |
377 | BAD_TRAP(0x79) BAD_TRAP(0x7a) BAD_TRAP(0x7b) BAD_TRAP(0x7c) BAD_TRAP(0x7d) |
378 | BAD_TRAP(0x7e) BAD_TRAP(0x7f) |
379 | BAD_TRAP(0x80) |
380 | BREAKPOINT_TRAP |
381 | TRAP_ENTRY(0x82, do_hw_divzero) |
382 | TRAP_ENTRY(0x83, do_flush_windows) |
383 | BAD_TRAP(0x84) BAD_TRAP(0x85) |
384 | BAD_TRAP(0x86) BAD_TRAP(0x87) BAD_TRAP(0x88) |
385 | BAD_TRAP(0x89) BAD_TRAP(0x8a) BAD_TRAP(0x8b) BAD_TRAP(0x8c) |
386 | BAD_TRAP(0x8d) BAD_TRAP(0x8e) BAD_TRAP(0x8f) |
387 | LINUX_SYSCALL_TRAP |
388 | BAD_TRAP(0x91) BAD_TRAP(0x92) BAD_TRAP(0x93) BAD_TRAP(0x94) |
389 | BAD_TRAP(0x95) BAD_TRAP(0x96) BAD_TRAP(0x97) BAD_TRAP(0x98) BAD_TRAP(0x99) |
390 | BAD_TRAP(0x9a) BAD_TRAP(0x9b) BAD_TRAP(0x9c) BAD_TRAP(0x9d) BAD_TRAP(0x9e) |
391 | BAD_TRAP(0x9f) |
392 | GETCC_TRAP |
393 | SETCC_TRAP |
394 | GETPSR_TRAP |
395 | BAD_TRAP(0xa3) BAD_TRAP(0xa4) BAD_TRAP(0xa5) BAD_TRAP(0xa6) |
396 | BAD_TRAP(0xa7) BAD_TRAP(0xa8) BAD_TRAP(0xa9) BAD_TRAP(0xaa) BAD_TRAP(0xab) |
397 | BAD_TRAP(0xac) BAD_TRAP(0xad) BAD_TRAP(0xae) BAD_TRAP(0xaf) BAD_TRAP(0xb0) |
398 | BAD_TRAP(0xb1) BAD_TRAP(0xb2) BAD_TRAP(0xb3) BAD_TRAP(0xb4) BAD_TRAP(0xb5) |
399 | BAD_TRAP(0xb6) BAD_TRAP(0xb7) BAD_TRAP(0xb8) BAD_TRAP(0xb9) BAD_TRAP(0xba) |
400 | BAD_TRAP(0xbb) BAD_TRAP(0xbc) BAD_TRAP(0xbd) BAD_TRAP(0xbe) BAD_TRAP(0xbf) |
401 | BAD_TRAP(0xc0) BAD_TRAP(0xc1) BAD_TRAP(0xc2) BAD_TRAP(0xc3) BAD_TRAP(0xc4) |
402 | BAD_TRAP(0xc5) BAD_TRAP(0xc6) BAD_TRAP(0xc7) BAD_TRAP(0xc8) BAD_TRAP(0xc9) |
403 | BAD_TRAP(0xca) BAD_TRAP(0xcb) BAD_TRAP(0xcc) BAD_TRAP(0xcd) BAD_TRAP(0xce) |
404 | BAD_TRAP(0xcf) BAD_TRAP(0xd0) BAD_TRAP(0xd1) BAD_TRAP(0xd2) BAD_TRAP(0xd3) |
405 | BAD_TRAP(0xd4) BAD_TRAP(0xd5) BAD_TRAP(0xd6) BAD_TRAP(0xd7) BAD_TRAP(0xd8) |
406 | BAD_TRAP(0xd9) BAD_TRAP(0xda) BAD_TRAP(0xdb) BAD_TRAP(0xdc) BAD_TRAP(0xdd) |
407 | BAD_TRAP(0xde) BAD_TRAP(0xdf) BAD_TRAP(0xe0) BAD_TRAP(0xe1) BAD_TRAP(0xe2) |
408 | BAD_TRAP(0xe3) BAD_TRAP(0xe4) BAD_TRAP(0xe5) BAD_TRAP(0xe6) BAD_TRAP(0xe7) |
409 | BAD_TRAP(0xe8) BAD_TRAP(0xe9) BAD_TRAP(0xea) BAD_TRAP(0xeb) BAD_TRAP(0xec) |
410 | BAD_TRAP(0xed) BAD_TRAP(0xee) BAD_TRAP(0xef) BAD_TRAP(0xf0) BAD_TRAP(0xf1) |
411 | BAD_TRAP(0xf2) BAD_TRAP(0xf3) BAD_TRAP(0xf4) BAD_TRAP(0xf5) BAD_TRAP(0xf6) |
412 | BAD_TRAP(0xf7) BAD_TRAP(0xf8) BAD_TRAP(0xf9) BAD_TRAP(0xfa) BAD_TRAP(0xfb) |
413 | BAD_TRAP(0xfc) |
414 | KGDB_TRAP(0xfd) |
415 | BAD_TRAP(0xfe) |
416 | BAD_TRAP(0xff) |
417 | |
418 | #endif |
419 | |