[332484b5] | 1 | /* |
---|
| 2 | * $Id$ |
---|
| 3 | */ |
---|
| 4 | |
---|
| 5 | /* Exception Vector definitions follow */ |
---|
| 6 | |
---|
| 7 | /* !!! Warning !!! This table is not tested, and |
---|
| 8 | the user must make sure it is complete. */ |
---|
| 9 | |
---|
| 10 | /* If we use TRAP #15 for reboot, note that group 0 and 1 exceptions |
---|
| 11 | will have priority. */ |
---|
| 12 | |
---|
| 13 | /* This is the "magic word" that CPU32bug uses to indicate that |
---|
| 14 | there is a bootable image here. */ |
---|
| 15 | .long 0xBEEFBEEF |
---|
| 16 | |
---|
| 17 | /* Vector 0: RESET: Initial SSP */ |
---|
| 18 | .long _RamEnd |
---|
| 19 | /* Vector 1: RESET: Initial PC */ |
---|
| 20 | .long start |
---|
| 21 | |
---|
| 22 | /* default action for undefined vectors is to re-boot */ |
---|
| 23 | |
---|
| 24 | /* Note group 0 and 1 exception (like trace) have priority |
---|
| 25 | over other exceptions (like trap #15) that may call this. */ |
---|
| 26 | |
---|
| 27 | /* Vectors 2-255 */ |
---|
| 28 | .long reboot /* exception vector: 2 */ |
---|
| 29 | .long reboot /* exception vector: 3 */ |
---|
| 30 | .long reboot /* exception vector: 4 */ |
---|
| 31 | .long reboot /* exception vector: 5 */ |
---|
| 32 | .long reboot /* exception vector: 6 */ |
---|
| 33 | .long reboot /* exception vector: 7 */ |
---|
| 34 | .long reboot /* exception vector: 8 */ |
---|
| 35 | .long reboot /* exception vector: 9 */ |
---|
| 36 | .long reboot /* exception vector: 10 */ |
---|
| 37 | .long reboot /* exception vector: 11 */ |
---|
| 38 | .long reboot /* exception vector: 12 */ |
---|
| 39 | .long reboot /* exception vector: 13 */ |
---|
| 40 | .long reboot /* exception vector: 14 */ |
---|
| 41 | .long reboot /* exception vector: 15 */ |
---|
| 42 | .long reboot /* exception vector: 16 */ |
---|
| 43 | .long reboot /* exception vector: 17 */ |
---|
| 44 | .long reboot /* exception vector: 18 */ |
---|
| 45 | .long reboot /* exception vector: 19 */ |
---|
| 46 | .long reboot /* exception vector: 20 */ |
---|
| 47 | .long reboot /* exception vector: 21 */ |
---|
| 48 | .long reboot /* exception vector: 22 */ |
---|
| 49 | .long reboot /* exception vector: 23 */ |
---|
| 50 | .long reboot /* exception vector: 24 */ |
---|
| 51 | .long reboot /* exception vector: 25 */ |
---|
| 52 | .long reboot /* exception vector: 26 */ |
---|
| 53 | .long reboot /* exception vector: 27 */ |
---|
| 54 | .long reboot /* exception vector: 28 */ |
---|
| 55 | .long reboot /* exception vector: 29 */ |
---|
| 56 | .long reboot /* exception vector: 30 */ |
---|
| 57 | .long reboot /* exception vector: 31 */ |
---|
| 58 | .long reboot /* exception vector: 32 */ |
---|
| 59 | .long reboot /* exception vector: 33 */ |
---|
| 60 | .long reboot /* exception vector: 34 */ |
---|
| 61 | .long reboot /* exception vector: 35 */ |
---|
| 62 | .long reboot /* exception vector: 36 */ |
---|
| 63 | .long reboot /* exception vector: 37 */ |
---|
| 64 | .long reboot /* exception vector: 38 */ |
---|
| 65 | .long reboot /* exception vector: 39 */ |
---|
| 66 | .long reboot /* exception vector: 40 */ |
---|
| 67 | .long reboot /* exception vector: 41 */ |
---|
| 68 | .long reboot /* exception vector: 42 */ |
---|
| 69 | .long reboot /* exception vector: 43 */ |
---|
| 70 | .long reboot /* exception vector: 44 */ |
---|
| 71 | .long reboot /* exception vector: 45 */ |
---|
| 72 | .long reboot /* exception vector: 46 */ |
---|
| 73 | .long _reboot /* the reboot trap: 47 */ |
---|
| 74 | .long reboot /* exception vector: 48 */ |
---|
| 75 | .long reboot /* exception vector: 49 */ |
---|
| 76 | .long reboot /* exception vector: 50 */ |
---|
| 77 | .long reboot /* exception vector: 51 */ |
---|
| 78 | .long reboot /* exception vector: 52 */ |
---|
| 79 | .long reboot /* exception vector: 53 */ |
---|
| 80 | .long reboot /* exception vector: 54 */ |
---|
| 81 | .long reboot /* exception vector: 55 */ |
---|
| 82 | .long reboot /* exception vector: 56 */ |
---|
| 83 | .long reboot /* exception vector: 57 */ |
---|
| 84 | .long reboot /* exception vector: 58 */ |
---|
| 85 | .long reboot /* exception vector: 59 */ |
---|
| 86 | .long reboot /* exception vector: 60 */ |
---|
| 87 | .long reboot /* exception vector: 61 */ |
---|
| 88 | .long reboot /* exception vector: 62 */ |
---|
| 89 | .long reboot /* exception vector: 63 */ |
---|
| 90 | .long reboot /* exception vector: 64 */ |
---|
| 91 | .long reboot /* exception vector: 65 */ |
---|
| 92 | .long reboot /* exception vector: 66 */ |
---|
| 93 | .long reboot /* exception vector: 67 */ |
---|
| 94 | .long reboot /* exception vector: 68 */ |
---|
| 95 | .long reboot /* exception vector: 69 */ |
---|
| 96 | .long reboot /* exception vector: 70 */ |
---|
| 97 | .long reboot /* exception vector: 71 */ |
---|
| 98 | .long reboot /* exception vector: 72 */ |
---|
| 99 | .long reboot /* exception vector: 73 */ |
---|
| 100 | .long reboot /* exception vector: 74 */ |
---|
| 101 | .long reboot /* exception vector: 75 */ |
---|
| 102 | .long reboot /* exception vector: 76 */ |
---|
| 103 | .long reboot /* exception vector: 77 */ |
---|
| 104 | .long reboot /* exception vector: 78 */ |
---|
| 105 | .long reboot /* exception vector: 79 */ |
---|
| 106 | .long reboot /* exception vector: 80 */ |
---|
| 107 | .long reboot /* exception vector: 81 */ |
---|
| 108 | .long reboot /* exception vector: 82 */ |
---|
| 109 | .long reboot /* exception vector: 83 */ |
---|
| 110 | .long reboot /* exception vector: 84 */ |
---|
| 111 | .long reboot /* exception vector: 85 */ |
---|
| 112 | .long reboot /* exception vector: 86 */ |
---|
| 113 | .long reboot /* exception vector: 87 */ |
---|
| 114 | .long reboot /* exception vector: 88 */ |
---|
| 115 | .long reboot /* exception vector: 89 */ |
---|
| 116 | .long reboot /* exception vector: 90 */ |
---|
| 117 | .long reboot /* exception vector: 91 */ |
---|
| 118 | .long reboot /* exception vector: 92 */ |
---|
| 119 | .long reboot /* exception vector: 93 */ |
---|
| 120 | .long reboot /* exception vector: 94 */ |
---|
| 121 | .long reboot /* exception vector: 95 */ |
---|
| 122 | .long reboot /* exception vector: 96 */ |
---|
| 123 | .long reboot /* exception vector: 97 */ |
---|
| 124 | .long reboot /* exception vector: 98 */ |
---|
| 125 | .long reboot /* exception vector: 99 */ |
---|
| 126 | .long reboot /* exception vector: 100 */ |
---|
| 127 | .long reboot /* exception vector: 101 */ |
---|
| 128 | .long reboot /* exception vector: 102 */ |
---|
| 129 | .long reboot /* exception vector: 103 */ |
---|
| 130 | .long reboot /* exception vector: 104 */ |
---|
| 131 | .long reboot /* exception vector: 105 */ |
---|
| 132 | .long reboot /* exception vector: 106 */ |
---|
| 133 | .long reboot /* exception vector: 107 */ |
---|
| 134 | .long reboot /* exception vector: 108 */ |
---|
| 135 | .long reboot /* exception vector: 109 */ |
---|
| 136 | .long reboot /* exception vector: 110 */ |
---|
| 137 | .long reboot /* exception vector: 111 */ |
---|
| 138 | .long reboot /* exception vector: 112 */ |
---|
| 139 | .long reboot /* exception vector: 113 */ |
---|
| 140 | .long reboot /* exception vector: 114 */ |
---|
| 141 | .long reboot /* exception vector: 115 */ |
---|
| 142 | .long reboot /* exception vector: 116 */ |
---|
| 143 | .long reboot /* exception vector: 117 */ |
---|
| 144 | .long reboot /* exception vector: 118 */ |
---|
| 145 | .long reboot /* exception vector: 119 */ |
---|
| 146 | .long reboot /* exception vector: 120 */ |
---|
| 147 | .long reboot /* exception vector: 121 */ |
---|
| 148 | .long reboot /* exception vector: 122 */ |
---|
| 149 | .long reboot /* exception vector: 123 */ |
---|
| 150 | .long reboot /* exception vector: 124 */ |
---|
| 151 | .long reboot /* exception vector: 125 */ |
---|
| 152 | .long reboot /* exception vector: 126 */ |
---|
| 153 | .long reboot /* exception vector: 127 */ |
---|
| 154 | .long reboot /* exception vector: 128 */ |
---|
| 155 | .long reboot /* exception vector: 129 */ |
---|
| 156 | .long reboot /* exception vector: 130 */ |
---|
| 157 | .long reboot /* exception vector: 131 */ |
---|
| 158 | .long reboot /* exception vector: 132 */ |
---|
| 159 | .long reboot /* exception vector: 133 */ |
---|
| 160 | .long reboot /* exception vector: 134 */ |
---|
| 161 | .long reboot /* exception vector: 135 */ |
---|
| 162 | .long reboot /* exception vector: 136 */ |
---|
| 163 | .long reboot /* exception vector: 137 */ |
---|
| 164 | .long reboot /* exception vector: 138 */ |
---|
| 165 | .long reboot /* exception vector: 139 */ |
---|
| 166 | .long reboot /* exception vector: 140 */ |
---|
| 167 | .long reboot /* exception vector: 141 */ |
---|
| 168 | .long reboot /* exception vector: 142 */ |
---|
| 169 | .long reboot /* exception vector: 143 */ |
---|
| 170 | .long reboot /* exception vector: 144 */ |
---|
| 171 | .long reboot /* exception vector: 145 */ |
---|
| 172 | .long reboot /* exception vector: 146 */ |
---|
| 173 | .long reboot /* exception vector: 147 */ |
---|
| 174 | .long reboot /* exception vector: 148 */ |
---|
| 175 | .long reboot /* exception vector: 149 */ |
---|
| 176 | .long reboot /* exception vector: 150 */ |
---|
| 177 | .long reboot /* exception vector: 151 */ |
---|
| 178 | .long reboot /* exception vector: 152 */ |
---|
| 179 | .long reboot /* exception vector: 153 */ |
---|
| 180 | .long reboot /* exception vector: 154 */ |
---|
| 181 | .long reboot /* exception vector: 155 */ |
---|
| 182 | .long reboot /* exception vector: 156 */ |
---|
| 183 | .long reboot /* exception vector: 157 */ |
---|
| 184 | .long reboot /* exception vector: 158 */ |
---|
| 185 | .long reboot /* exception vector: 159 */ |
---|
| 186 | .long reboot /* exception vector: 160 */ |
---|
| 187 | .long reboot /* exception vector: 161 */ |
---|
| 188 | .long reboot /* exception vector: 162 */ |
---|
| 189 | .long reboot /* exception vector: 163 */ |
---|
| 190 | .long reboot /* exception vector: 164 */ |
---|
| 191 | .long reboot /* exception vector: 165 */ |
---|
| 192 | .long reboot /* exception vector: 166 */ |
---|
| 193 | .long reboot /* exception vector: 167 */ |
---|
| 194 | .long reboot /* exception vector: 168 */ |
---|
| 195 | .long reboot /* exception vector: 169 */ |
---|
| 196 | .long reboot /* exception vector: 170 */ |
---|
| 197 | .long reboot /* exception vector: 171 */ |
---|
| 198 | .long reboot /* exception vector: 172 */ |
---|
| 199 | .long reboot /* exception vector: 173 */ |
---|
| 200 | .long reboot /* exception vector: 174 */ |
---|
| 201 | .long reboot /* exception vector: 175 */ |
---|
| 202 | .long reboot /* exception vector: 176 */ |
---|
| 203 | .long reboot /* exception vector: 177 */ |
---|
| 204 | .long reboot /* exception vector: 178 */ |
---|
| 205 | .long reboot /* exception vector: 179 */ |
---|
| 206 | .long reboot /* exception vector: 180 */ |
---|
| 207 | .long reboot /* exception vector: 181 */ |
---|
| 208 | .long reboot /* exception vector: 182 */ |
---|
| 209 | .long reboot /* exception vector: 183 */ |
---|
| 210 | .long reboot /* exception vector: 184 */ |
---|
| 211 | .long reboot /* exception vector: 185 */ |
---|
| 212 | .long reboot /* exception vector: 186 */ |
---|
| 213 | .long reboot /* exception vector: 187 */ |
---|
| 214 | .long reboot /* exception vector: 188 */ |
---|
| 215 | .long reboot /* exception vector: 189 */ |
---|
| 216 | .long reboot /* exception vector: 190 */ |
---|
| 217 | .long reboot /* exception vector: 191 */ |
---|
| 218 | .long reboot /* exception vector: 192 */ |
---|
| 219 | .long reboot /* exception vector: 193 */ |
---|
| 220 | .long reboot /* exception vector: 194 */ |
---|
| 221 | .long reboot /* exception vector: 195 */ |
---|
| 222 | .long reboot /* exception vector: 196 */ |
---|
| 223 | .long reboot /* exception vector: 197 */ |
---|
| 224 | .long reboot /* exception vector: 198 */ |
---|
| 225 | .long reboot /* exception vector: 199 */ |
---|
| 226 | .long reboot /* exception vector: 200 */ |
---|
| 227 | .long reboot /* exception vector: 201 */ |
---|
| 228 | .long reboot /* exception vector: 202 */ |
---|
| 229 | .long reboot /* exception vector: 203 */ |
---|
| 230 | .long reboot /* exception vector: 204 */ |
---|
| 231 | .long reboot /* exception vector: 205 */ |
---|
| 232 | .long reboot /* exception vector: 206 */ |
---|
| 233 | .long reboot /* exception vector: 207 */ |
---|
| 234 | .long reboot /* exception vector: 208 */ |
---|
| 235 | .long reboot /* exception vector: 209 */ |
---|
| 236 | .long reboot /* exception vector: 210 */ |
---|
| 237 | .long reboot /* exception vector: 211 */ |
---|
| 238 | .long reboot /* exception vector: 212 */ |
---|
| 239 | .long reboot /* exception vector: 213 */ |
---|
| 240 | .long reboot /* exception vector: 214 */ |
---|
| 241 | .long reboot /* exception vector: 215 */ |
---|
| 242 | .long reboot /* exception vector: 216 */ |
---|
| 243 | .long reboot /* exception vector: 217 */ |
---|
| 244 | .long reboot /* exception vector: 218 */ |
---|
| 245 | .long reboot /* exception vector: 219 */ |
---|
| 246 | .long reboot /* exception vector: 220 */ |
---|
| 247 | .long reboot /* exception vector: 221 */ |
---|
| 248 | .long reboot /* exception vector: 222 */ |
---|
| 249 | .long reboot /* exception vector: 223 */ |
---|
| 250 | .long reboot /* exception vector: 224 */ |
---|
| 251 | .long reboot /* exception vector: 225 */ |
---|
| 252 | .long reboot /* exception vector: 226 */ |
---|
| 253 | .long reboot /* exception vector: 227 */ |
---|
| 254 | .long reboot /* exception vector: 228 */ |
---|
| 255 | .long reboot /* exception vector: 229 */ |
---|
| 256 | .long reboot /* exception vector: 230 */ |
---|
| 257 | .long reboot /* exception vector: 231 */ |
---|
| 258 | .long reboot /* exception vector: 232 */ |
---|
| 259 | .long reboot /* exception vector: 233 */ |
---|
| 260 | .long reboot /* exception vector: 234 */ |
---|
| 261 | .long reboot /* exception vector: 235 */ |
---|
| 262 | .long reboot /* exception vector: 236 */ |
---|
| 263 | .long reboot /* exception vector: 237 */ |
---|
| 264 | .long reboot /* exception vector: 238 */ |
---|
| 265 | .long reboot /* exception vector: 239 */ |
---|
| 266 | .long reboot /* exception vector: 240 */ |
---|
| 267 | .long reboot /* exception vector: 241 */ |
---|
| 268 | .long reboot /* exception vector: 242 */ |
---|
| 269 | .long reboot /* exception vector: 243 */ |
---|
| 270 | .long reboot /* exception vector: 244 */ |
---|
| 271 | .long reboot /* exception vector: 245 */ |
---|
| 272 | .long reboot /* exception vector: 246 */ |
---|
| 273 | .long reboot /* exception vector: 247 */ |
---|
| 274 | .long reboot /* exception vector: 248 */ |
---|
| 275 | .long reboot /* exception vector: 249 */ |
---|
| 276 | .long reboot /* exception vector: 250 */ |
---|
| 277 | .long reboot /* exception vector: 251 */ |
---|
| 278 | .long reboot /* exception vector: 252 */ |
---|
| 279 | .long reboot /* exception vector: 253 */ |
---|
| 280 | .long reboot /* exception vector: 254 */ |
---|
| 281 | .long reboot /* exception vector: 255 */ |
---|
| 282 | |
---|
| 283 | |
---|
| 284 | _reboot: |
---|
| 285 | move #0x2700,%sr /* mask interrupts */ |
---|
| 286 | movea.l (0x0).w,%a7 /* load stack */ |
---|
| 287 | movea.l (0x4).w,%a0 /* jmp to location of reset vector */ |
---|
| 288 | jmp (%a0) |
---|
| 289 | |
---|
| 290 | reboot: |
---|
| 291 | trap #15 /* use trap exception to enter supervisor |
---|
| 292 | state. Trace mode ( and other group 0 |
---|
| 293 | and 1 exceptions) *could* screw this up if |
---|
| 294 | not vectored to reboot or did not return. */ |
---|