Commit | Line | Data |
---|---|---|
1da177e4 LT |
1 | /* DO NOT EDIT - Generated automatically by script_asm.pl */ |
2 | static u32 SCRIPT[] = { | |
3 | /* | |
4 | ; Script for the NCR (or symbios) 53c700 and 53c700-66 chip | |
5 | ; | |
6 | ; Copyright (C) 2001 James.Bottomley@HansenPartnership.com | |
7 | ;;----------------------------------------------------------------------------- | |
8 | ;; | |
9 | ;; This program is free software; you can redistribute it and/or modify | |
10 | ;; it under the terms of the GNU General Public License as published by | |
11 | ;; the Free Software Foundation; either version 2 of the License, or | |
12 | ;; (at your option) any later version. | |
13 | ;; | |
14 | ;; This program is distributed in the hope that it will be useful, | |
15 | ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
16 | ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
17 | ;; GNU General Public License for more details. | |
18 | ;; | |
19 | ;; You should have received a copy of the GNU General Public License | |
20 | ;; along with this program; if not, write to the Free Software | |
21 | ;; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | |
22 | ;; | |
23 | ;;----------------------------------------------------------------------------- | |
24 | ; | |
25 | ; This script is designed to be modified for the particular command in | |
26 | ; operation. The particular variables pertaining to the commands are: | |
27 | ; | |
28 | ABSOLUTE Device_ID = 0 ; ID of target for command | |
29 | ABSOLUTE MessageCount = 0 ; Number of bytes in message | |
30 | ABSOLUTE MessageLocation = 0 ; Addr of message | |
31 | ABSOLUTE CommandCount = 0 ; Number of bytes in command | |
32 | ABSOLUTE CommandAddress = 0 ; Addr of Command | |
33 | ABSOLUTE StatusAddress = 0 ; Addr to receive status return | |
34 | ABSOLUTE ReceiveMsgAddress = 0 ; Addr to receive msg | |
35 | ; | |
36 | ; This is the magic component for handling scatter-gather. Each of the | |
37 | ; SG components is preceeded by a script fragment which moves the | |
38 | ; necessary amount of data and jumps to the next SG segment. The final | |
39 | ; SG segment jumps back to . However, this address is the first SG script | |
40 | ; segment. | |
41 | ; | |
42 | ABSOLUTE SGScriptStartAddress = 0 | |
43 | ||
44 | ; The following represent status interrupts we use 3 hex digits for | |
45 | ; this: 0xPRS where | |
46 | ||
47 | ; P: | |
48 | ABSOLUTE AFTER_SELECTION = 0x100 | |
49 | ABSOLUTE BEFORE_CMD = 0x200 | |
50 | ABSOLUTE AFTER_CMD = 0x300 | |
51 | ABSOLUTE AFTER_STATUS = 0x400 | |
52 | ABSOLUTE AFTER_DATA_IN = 0x500 | |
53 | ABSOLUTE AFTER_DATA_OUT = 0x600 | |
54 | ABSOLUTE DURING_DATA_IN = 0x700 | |
55 | ||
56 | ; R: | |
57 | ABSOLUTE NOT_MSG_OUT = 0x10 | |
58 | ABSOLUTE UNEXPECTED_PHASE = 0x20 | |
59 | ABSOLUTE NOT_MSG_IN = 0x30 | |
60 | ABSOLUTE UNEXPECTED_MSG = 0x40 | |
61 | ABSOLUTE MSG_IN = 0x50 | |
62 | ABSOLUTE SDTR_MSG_R = 0x60 | |
63 | ABSOLUTE REJECT_MSG_R = 0x70 | |
64 | ABSOLUTE DISCONNECT = 0x80 | |
65 | ABSOLUTE MSG_OUT = 0x90 | |
66 | ABSOLUTE WDTR_MSG_R = 0xA0 | |
67 | ||
68 | ; S: | |
69 | ABSOLUTE GOOD_STATUS = 0x1 | |
70 | ||
71 | ; Combinations, since the script assembler can't process | | |
72 | ABSOLUTE NOT_MSG_OUT_AFTER_SELECTION = 0x110 | |
73 | ABSOLUTE UNEXPECTED_PHASE_BEFORE_CMD = 0x220 | |
74 | ABSOLUTE UNEXPECTED_PHASE_AFTER_CMD = 0x320 | |
75 | ABSOLUTE NOT_MSG_IN_AFTER_STATUS = 0x430 | |
76 | ABSOLUTE GOOD_STATUS_AFTER_STATUS = 0x401 | |
77 | ABSOLUTE UNEXPECTED_PHASE_AFTER_DATA_IN = 0x520 | |
78 | ABSOLUTE UNEXPECTED_PHASE_AFTER_DATA_OUT = 0x620 | |
79 | ABSOLUTE UNEXPECTED_MSG_BEFORE_CMD = 0x240 | |
80 | ABSOLUTE MSG_IN_BEFORE_CMD = 0x250 | |
81 | ABSOLUTE MSG_IN_AFTER_CMD = 0x350 | |
82 | ABSOLUTE SDTR_MSG_BEFORE_CMD = 0x260 | |
83 | ABSOLUTE REJECT_MSG_BEFORE_CMD = 0x270 | |
84 | ABSOLUTE DISCONNECT_AFTER_CMD = 0x380 | |
85 | ABSOLUTE SDTR_MSG_AFTER_CMD = 0x360 | |
86 | ABSOLUTE WDTR_MSG_AFTER_CMD = 0x3A0 | |
87 | ABSOLUTE MSG_IN_AFTER_STATUS = 0x440 | |
88 | ABSOLUTE DISCONNECT_AFTER_DATA = 0x580 | |
89 | ABSOLUTE MSG_IN_AFTER_DATA_IN = 0x550 | |
90 | ABSOLUTE MSG_IN_AFTER_DATA_OUT = 0x650 | |
91 | ABSOLUTE MSG_OUT_AFTER_DATA_IN = 0x590 | |
92 | ABSOLUTE DATA_IN_AFTER_DATA_IN = 0x5a0 | |
93 | ABSOLUTE MSG_IN_DURING_DATA_IN = 0x750 | |
94 | ABSOLUTE DISCONNECT_DURING_DATA = 0x780 | |
95 | ||
96 | ; | |
97 | ; Other interrupt conditions | |
98 | ; | |
99 | ABSOLUTE RESELECTED_DURING_SELECTION = 0x1000 | |
100 | ABSOLUTE COMPLETED_SELECTION_AS_TARGET = 0x1001 | |
101 | ABSOLUTE RESELECTION_IDENTIFIED = 0x1003 | |
102 | ; | |
103 | ; Fatal interrupt conditions. If you add to this, also add to the | |
104 | ; array of corresponding messages | |
105 | ; | |
106 | ABSOLUTE FATAL = 0x2000 | |
107 | ABSOLUTE FATAL_UNEXPECTED_RESELECTION_MSG = 0x2000 | |
108 | ABSOLUTE FATAL_SEND_MSG = 0x2001 | |
109 | ABSOLUTE FATAL_NOT_MSG_IN_AFTER_SELECTION = 0x2002 | |
110 | ABSOLUTE FATAL_ILLEGAL_MSG_LENGTH = 0x2003 | |
111 | ||
112 | ABSOLUTE DEBUG_INTERRUPT = 0x3000 | |
113 | ABSOLUTE DEBUG_INTERRUPT1 = 0x3001 | |
114 | ABSOLUTE DEBUG_INTERRUPT2 = 0x3002 | |
115 | ABSOLUTE DEBUG_INTERRUPT3 = 0x3003 | |
116 | ABSOLUTE DEBUG_INTERRUPT4 = 0x3004 | |
117 | ABSOLUTE DEBUG_INTERRUPT5 = 0x3005 | |
118 | ABSOLUTE DEBUG_INTERRUPT6 = 0x3006 | |
119 | ||
120 | ||
121 | ; | |
122 | ; SCSI Messages we interpret in the script | |
123 | ; | |
124 | ABSOLUTE COMMAND_COMPLETE_MSG = 0x00 | |
125 | ABSOLUTE EXTENDED_MSG = 0x01 | |
126 | ABSOLUTE SDTR_MSG = 0x01 | |
127 | ABSOLUTE SAVE_DATA_PTRS_MSG = 0x02 | |
128 | ABSOLUTE RESTORE_DATA_PTRS_MSG = 0x03 | |
129 | ABSOLUTE WDTR_MSG = 0x03 | |
130 | ABSOLUTE DISCONNECT_MSG = 0x04 | |
131 | ABSOLUTE REJECT_MSG = 0x07 | |
132 | ABSOLUTE PARITY_ERROR_MSG = 0x09 | |
133 | ABSOLUTE SIMPLE_TAG_MSG = 0x20 | |
134 | ABSOLUTE IDENTIFY_MSG = 0x80 | |
135 | ABSOLUTE IDENTIFY_MSG_MASK = 0x7F | |
136 | ABSOLUTE TWO_BYTE_MSG = 0x20 | |
137 | ABSOLUTE TWO_BYTE_MSG_MASK = 0x0F | |
138 | ||
139 | ; This is where the script begins | |
140 | ||
141 | ENTRY StartUp | |
142 | ||
143 | StartUp: | |
144 | SELECT ATN Device_ID, Reselect | |
145 | ||
146 | at 0x00000000 : */ 0x41000000,0x00000020, | |
147 | /* | |
148 | JUMP Finish, WHEN STATUS | |
149 | ||
150 | at 0x00000002 : */ 0x830b0000,0x00000460, | |
151 | /* | |
152 | JUMP SendIdentifyMsg, IF MSG_OUT | |
153 | ||
154 | at 0x00000004 : */ 0x860a0000,0x000001b0, | |
155 | /* | |
156 | INT NOT_MSG_OUT_AFTER_SELECTION | |
157 | ||
158 | at 0x00000006 : */ 0x98080000,0x00000110, | |
159 | /* | |
160 | ||
161 | Reselect: | |
162 | WAIT RESELECT SelectedAsTarget | |
163 | ||
164 | at 0x00000008 : */ 0x50000000,0x00000058, | |
165 | /* | |
166 | INT RESELECTED_DURING_SELECTION, WHEN MSG_IN | |
167 | ||
168 | at 0x0000000a : */ 0x9f0b0000,0x00001000, | |
169 | /* | |
170 | INT FATAL_NOT_MSG_IN_AFTER_SELECTION | |
171 | ||
172 | at 0x0000000c : */ 0x98080000,0x00002002, | |
173 | /* | |
174 | ||
175 | ENTRY GetReselectionData | |
176 | GetReselectionData: | |
177 | MOVE 1, ReceiveMsgAddress, WHEN MSG_IN | |
178 | ||
179 | at 0x0000000e : */ 0x0f000001,0x00000000, | |
180 | /* | |
181 | INT RESELECTION_IDENTIFIED | |
182 | ||
183 | at 0x00000010 : */ 0x98080000,0x00001003, | |
184 | /* | |
185 | ||
186 | ENTRY GetReselectionWithTag | |
187 | GetReselectionWithTag: | |
188 | MOVE 3, ReceiveMsgAddress, WHEN MSG_IN | |
189 | ||
190 | at 0x00000012 : */ 0x0f000003,0x00000000, | |
191 | /* | |
192 | INT RESELECTION_IDENTIFIED | |
193 | ||
194 | at 0x00000014 : */ 0x98080000,0x00001003, | |
195 | /* | |
196 | ||
197 | ENTRY SelectedAsTarget | |
198 | SelectedAsTarget: | |
199 | ; Basically tell the selecting device that there's nothing here | |
200 | SET TARGET | |
201 | ||
202 | at 0x00000016 : */ 0x58000200,0x00000000, | |
203 | /* | |
204 | DISCONNECT | |
205 | ||
206 | at 0x00000018 : */ 0x48000000,0x00000000, | |
207 | /* | |
208 | CLEAR TARGET | |
209 | ||
210 | at 0x0000001a : */ 0x60000200,0x00000000, | |
211 | /* | |
212 | INT COMPLETED_SELECTION_AS_TARGET | |
213 | ||
214 | at 0x0000001c : */ 0x98080000,0x00001001, | |
215 | /* | |
216 | ; | |
217 | ; These are the messaging entries | |
218 | ; | |
219 | ; Send a message. Message count should be correctly patched | |
220 | ENTRY SendMessage | |
221 | SendMessage: | |
222 | MOVE MessageCount, MessageLocation, WHEN MSG_OUT | |
223 | ||
224 | at 0x0000001e : */ 0x0e000000,0x00000000, | |
225 | /* | |
226 | ResumeSendMessage: | |
227 | RETURN, WHEN NOT MSG_OUT | |
228 | ||
229 | at 0x00000020 : */ 0x96030000,0x00000000, | |
230 | /* | |
231 | INT FATAL_SEND_MSG | |
232 | ||
233 | at 0x00000022 : */ 0x98080000,0x00002001, | |
234 | /* | |
235 | ||
236 | ENTRY SendMessagePhaseMismatch | |
237 | SendMessagePhaseMismatch: | |
238 | CLEAR ACK | |
239 | ||
240 | at 0x00000024 : */ 0x60000040,0x00000000, | |
241 | /* | |
242 | JUMP ResumeSendMessage | |
243 | ||
244 | at 0x00000026 : */ 0x80080000,0x00000080, | |
245 | /* | |
246 | ; | |
247 | ; Receive a message. Need to identify the message to | |
248 | ; receive it correctly | |
249 | ENTRY ReceiveMessage | |
250 | ReceiveMessage: | |
251 | MOVE 1, ReceiveMsgAddress, WHEN MSG_IN | |
252 | ||
253 | at 0x00000028 : */ 0x0f000001,0x00000000, | |
254 | /* | |
255 | ; | |
256 | ; Use this entry if we've just tried to look at the first byte | |
257 | ; of the message and want to process it further | |
258 | ProcessReceiveMessage: | |
259 | JUMP ReceiveExtendedMessage, IF EXTENDED_MSG | |
260 | ||
261 | at 0x0000002a : */ 0x800c0001,0x000000d0, | |
262 | /* | |
263 | RETURN, IF NOT TWO_BYTE_MSG, AND MASK TWO_BYTE_MSG_MASK | |
264 | ||
265 | at 0x0000002c : */ 0x90040f20,0x00000000, | |
266 | /* | |
267 | CLEAR ACK | |
268 | ||
269 | at 0x0000002e : */ 0x60000040,0x00000000, | |
270 | /* | |
271 | MOVE 1, ReceiveMsgAddress + 1, WHEN MSG_IN | |
272 | ||
273 | at 0x00000030 : */ 0x0f000001,0x00000001, | |
274 | /* | |
275 | RETURN | |
276 | ||
277 | at 0x00000032 : */ 0x90080000,0x00000000, | |
278 | /* | |
279 | ReceiveExtendedMessage: | |
280 | CLEAR ACK | |
281 | ||
282 | at 0x00000034 : */ 0x60000040,0x00000000, | |
283 | /* | |
284 | MOVE 1, ReceiveMsgAddress + 1, WHEN MSG_IN | |
285 | ||
286 | at 0x00000036 : */ 0x0f000001,0x00000001, | |
287 | /* | |
288 | JUMP Receive1Byte, IF 0x01 | |
289 | ||
290 | at 0x00000038 : */ 0x800c0001,0x00000110, | |
291 | /* | |
292 | JUMP Receive2Byte, IF 0x02 | |
293 | ||
294 | at 0x0000003a : */ 0x800c0002,0x00000128, | |
295 | /* | |
296 | JUMP Receive3Byte, IF 0x03 | |
297 | ||
298 | at 0x0000003c : */ 0x800c0003,0x00000140, | |
299 | /* | |
300 | JUMP Receive4Byte, IF 0x04 | |
301 | ||
302 | at 0x0000003e : */ 0x800c0004,0x00000158, | |
303 | /* | |
304 | JUMP Receive5Byte, IF 0x05 | |
305 | ||
306 | at 0x00000040 : */ 0x800c0005,0x00000170, | |
307 | /* | |
308 | INT FATAL_ILLEGAL_MSG_LENGTH | |
309 | ||
310 | at 0x00000042 : */ 0x98080000,0x00002003, | |
311 | /* | |
312 | Receive1Byte: | |
313 | CLEAR ACK | |
314 | ||
315 | at 0x00000044 : */ 0x60000040,0x00000000, | |
316 | /* | |
317 | MOVE 1, ReceiveMsgAddress + 2, WHEN MSG_IN | |
318 | ||
319 | at 0x00000046 : */ 0x0f000001,0x00000002, | |
320 | /* | |
321 | RETURN | |
322 | ||
323 | at 0x00000048 : */ 0x90080000,0x00000000, | |
324 | /* | |
325 | Receive2Byte: | |
326 | CLEAR ACK | |
327 | ||
328 | at 0x0000004a : */ 0x60000040,0x00000000, | |
329 | /* | |
330 | MOVE 2, ReceiveMsgAddress + 2, WHEN MSG_IN | |
331 | ||
332 | at 0x0000004c : */ 0x0f000002,0x00000002, | |
333 | /* | |
334 | RETURN | |
335 | ||
336 | at 0x0000004e : */ 0x90080000,0x00000000, | |
337 | /* | |
338 | Receive3Byte: | |
339 | CLEAR ACK | |
340 | ||
341 | at 0x00000050 : */ 0x60000040,0x00000000, | |
342 | /* | |
343 | MOVE 3, ReceiveMsgAddress + 2, WHEN MSG_IN | |
344 | ||
345 | at 0x00000052 : */ 0x0f000003,0x00000002, | |
346 | /* | |
347 | RETURN | |
348 | ||
349 | at 0x00000054 : */ 0x90080000,0x00000000, | |
350 | /* | |
351 | Receive4Byte: | |
352 | CLEAR ACK | |
353 | ||
354 | at 0x00000056 : */ 0x60000040,0x00000000, | |
355 | /* | |
356 | MOVE 4, ReceiveMsgAddress + 2, WHEN MSG_IN | |
357 | ||
358 | at 0x00000058 : */ 0x0f000004,0x00000002, | |
359 | /* | |
360 | RETURN | |
361 | ||
362 | at 0x0000005a : */ 0x90080000,0x00000000, | |
363 | /* | |
364 | Receive5Byte: | |
365 | CLEAR ACK | |
366 | ||
367 | at 0x0000005c : */ 0x60000040,0x00000000, | |
368 | /* | |
369 | MOVE 5, ReceiveMsgAddress + 2, WHEN MSG_IN | |
370 | ||
371 | at 0x0000005e : */ 0x0f000005,0x00000002, | |
372 | /* | |
373 | RETURN | |
374 | ||
375 | at 0x00000060 : */ 0x90080000,0x00000000, | |
376 | /* | |
377 | ; | |
378 | ; Come here from the message processor to ignore the message | |
379 | ; | |
380 | ENTRY IgnoreMessage | |
381 | IgnoreMessage: | |
382 | CLEAR ACK | |
383 | ||
384 | at 0x00000062 : */ 0x60000040,0x00000000, | |
385 | /* | |
386 | RETURN | |
387 | ||
388 | at 0x00000064 : */ 0x90080000,0x00000000, | |
389 | /* | |
390 | ; | |
391 | ; Come here to send a reply to a message | |
392 | ; | |
393 | ENTRY SendMessageWithATN | |
394 | SendMessageWithATN: | |
395 | SET ATN | |
396 | ||
397 | at 0x00000066 : */ 0x58000008,0x00000000, | |
398 | /* | |
399 | CLEAR ACK | |
400 | ||
401 | at 0x00000068 : */ 0x60000040,0x00000000, | |
402 | /* | |
403 | JUMP SendMessage | |
404 | ||
405 | at 0x0000006a : */ 0x80080000,0x00000078, | |
406 | /* | |
407 | ||
408 | SendIdentifyMsg: | |
409 | CALL SendMessage | |
410 | ||
411 | at 0x0000006c : */ 0x88080000,0x00000078, | |
412 | /* | |
413 | CLEAR ATN | |
414 | ||
415 | at 0x0000006e : */ 0x60000008,0x00000000, | |
416 | /* | |
417 | ||
418 | IgnoreMsgBeforeCommand: | |
419 | CLEAR ACK | |
420 | ||
421 | at 0x00000070 : */ 0x60000040,0x00000000, | |
422 | /* | |
423 | ENTRY SendCommand | |
424 | SendCommand: | |
425 | JUMP Finish, WHEN STATUS | |
426 | ||
427 | at 0x00000072 : */ 0x830b0000,0x00000460, | |
428 | /* | |
429 | JUMP MsgInBeforeCommand, IF MSG_IN | |
430 | ||
431 | at 0x00000074 : */ 0x870a0000,0x000002c0, | |
432 | /* | |
433 | INT UNEXPECTED_PHASE_BEFORE_CMD, IF NOT CMD | |
434 | ||
435 | at 0x00000076 : */ 0x9a020000,0x00000220, | |
436 | /* | |
437 | MOVE CommandCount, CommandAddress, WHEN CMD | |
438 | ||
439 | at 0x00000078 : */ 0x0a000000,0x00000000, | |
440 | /* | |
441 | ResumeSendCommand: | |
442 | JUMP Finish, WHEN STATUS | |
443 | ||
444 | at 0x0000007a : */ 0x830b0000,0x00000460, | |
445 | /* | |
446 | JUMP MsgInAfterCmd, IF MSG_IN | |
447 | ||
448 | at 0x0000007c : */ 0x870a0000,0x00000248, | |
449 | /* | |
450 | JUMP DataIn, IF DATA_IN | |
451 | ||
452 | at 0x0000007e : */ 0x810a0000,0x000002f8, | |
453 | /* | |
454 | JUMP DataOut, IF DATA_OUT | |
455 | ||
456 | at 0x00000080 : */ 0x800a0000,0x00000338, | |
457 | /* | |
458 | INT UNEXPECTED_PHASE_AFTER_CMD | |
459 | ||
460 | at 0x00000082 : */ 0x98080000,0x00000320, | |
461 | /* | |
462 | ||
463 | IgnoreMsgDuringData: | |
464 | CLEAR ACK | |
465 | ||
466 | at 0x00000084 : */ 0x60000040,0x00000000, | |
467 | /* | |
468 | ; fall through to MsgInDuringData | |
469 | ||
470 | Entry MsgInDuringData | |
471 | MsgInDuringData: | |
472 | ; | |
473 | ; Could be we have nothing more to transfer | |
474 | ; | |
475 | JUMP Finish, WHEN STATUS | |
476 | ||
477 | at 0x00000086 : */ 0x830b0000,0x00000460, | |
478 | /* | |
479 | MOVE 1, ReceiveMsgAddress, WHEN MSG_IN | |
480 | ||
481 | at 0x00000088 : */ 0x0f000001,0x00000000, | |
482 | /* | |
483 | JUMP DisconnectDuringDataIn, IF DISCONNECT_MSG | |
484 | ||
485 | at 0x0000008a : */ 0x800c0004,0x00000398, | |
486 | /* | |
487 | JUMP IgnoreMsgDuringData, IF SAVE_DATA_PTRS_MSG | |
488 | ||
489 | at 0x0000008c : */ 0x800c0002,0x00000210, | |
490 | /* | |
491 | JUMP IgnoreMsgDuringData, IF RESTORE_DATA_PTRS_MSG | |
492 | ||
493 | at 0x0000008e : */ 0x800c0003,0x00000210, | |
494 | /* | |
495 | INT MSG_IN_DURING_DATA_IN | |
496 | ||
497 | at 0x00000090 : */ 0x98080000,0x00000750, | |
498 | /* | |
499 | ||
500 | MsgInAfterCmd: | |
501 | MOVE 1, ReceiveMsgAddress, WHEN MSG_IN | |
502 | ||
503 | at 0x00000092 : */ 0x0f000001,0x00000000, | |
504 | /* | |
505 | JUMP DisconnectAfterCmd, IF DISCONNECT_MSG | |
506 | ||
507 | at 0x00000094 : */ 0x800c0004,0x00000298, | |
508 | /* | |
509 | JUMP IgnoreMsgInAfterCmd, IF SAVE_DATA_PTRS_MSG | |
510 | ||
511 | at 0x00000096 : */ 0x800c0002,0x00000288, | |
512 | /* | |
513 | JUMP IgnoreMsgInAfterCmd, IF RESTORE_DATA_PTRS_MSG | |
514 | ||
515 | at 0x00000098 : */ 0x800c0003,0x00000288, | |
516 | /* | |
517 | CALL ProcessReceiveMessage | |
518 | ||
519 | at 0x0000009a : */ 0x88080000,0x000000a8, | |
520 | /* | |
521 | INT MSG_IN_AFTER_CMD | |
522 | ||
523 | at 0x0000009c : */ 0x98080000,0x00000350, | |
524 | /* | |
525 | CLEAR ACK | |
526 | ||
527 | at 0x0000009e : */ 0x60000040,0x00000000, | |
528 | /* | |
529 | JUMP ResumeSendCommand | |
530 | ||
531 | at 0x000000a0 : */ 0x80080000,0x000001e8, | |
532 | /* | |
533 | ||
534 | IgnoreMsgInAfterCmd: | |
535 | CLEAR ACK | |
536 | ||
537 | at 0x000000a2 : */ 0x60000040,0x00000000, | |
538 | /* | |
539 | JUMP ResumeSendCommand | |
540 | ||
541 | at 0x000000a4 : */ 0x80080000,0x000001e8, | |
542 | /* | |
543 | ||
544 | DisconnectAfterCmd: | |
545 | CLEAR ACK | |
546 | ||
547 | at 0x000000a6 : */ 0x60000040,0x00000000, | |
548 | /* | |
549 | WAIT DISCONNECT | |
550 | ||
551 | at 0x000000a8 : */ 0x48000000,0x00000000, | |
552 | /* | |
553 | ENTRY Disconnect1 | |
554 | Disconnect1: | |
555 | INT DISCONNECT_AFTER_CMD | |
556 | ||
557 | at 0x000000aa : */ 0x98080000,0x00000380, | |
558 | /* | |
559 | ENTRY Disconnect2 | |
560 | Disconnect2: | |
561 | ; We return here after a reselection | |
562 | CLEAR ACK | |
563 | ||
564 | at 0x000000ac : */ 0x60000040,0x00000000, | |
565 | /* | |
566 | JUMP ResumeSendCommand | |
567 | ||
568 | at 0x000000ae : */ 0x80080000,0x000001e8, | |
569 | /* | |
570 | ||
571 | MsgInBeforeCommand: | |
572 | MOVE 1, ReceiveMsgAddress, WHEN MSG_IN | |
573 | ||
574 | at 0x000000b0 : */ 0x0f000001,0x00000000, | |
575 | /* | |
576 | JUMP IgnoreMsgBeforeCommand, IF SAVE_DATA_PTRS_MSG | |
577 | ||
578 | at 0x000000b2 : */ 0x800c0002,0x000001c0, | |
579 | /* | |
580 | JUMP IgnoreMsgBeforeCommand, IF RESTORE_DATA_PTRS_MSG | |
581 | ||
582 | at 0x000000b4 : */ 0x800c0003,0x000001c0, | |
583 | /* | |
584 | CALL ProcessReceiveMessage | |
585 | ||
586 | at 0x000000b6 : */ 0x88080000,0x000000a8, | |
587 | /* | |
588 | INT MSG_IN_BEFORE_CMD | |
589 | ||
590 | at 0x000000b8 : */ 0x98080000,0x00000250, | |
591 | /* | |
592 | CLEAR ACK | |
593 | ||
594 | at 0x000000ba : */ 0x60000040,0x00000000, | |
595 | /* | |
596 | JUMP SendCommand | |
597 | ||
598 | at 0x000000bc : */ 0x80080000,0x000001c8, | |
599 | /* | |
600 | ||
601 | DataIn: | |
602 | CALL SGScriptStartAddress | |
603 | ||
604 | at 0x000000be : */ 0x88080000,0x00000000, | |
605 | /* | |
606 | ResumeDataIn: | |
607 | JUMP Finish, WHEN STATUS | |
608 | ||
609 | at 0x000000c0 : */ 0x830b0000,0x00000460, | |
610 | /* | |
611 | JUMP MsgInAfterDataIn, IF MSG_IN | |
612 | ||
613 | at 0x000000c2 : */ 0x870a0000,0x00000358, | |
614 | /* | |
615 | JUMP DataInAfterDataIn, if DATA_IN | |
616 | ||
617 | at 0x000000c4 : */ 0x810a0000,0x00000328, | |
618 | /* | |
619 | INT MSG_OUT_AFTER_DATA_IN, if MSG_OUT | |
620 | ||
621 | at 0x000000c6 : */ 0x9e0a0000,0x00000590, | |
622 | /* | |
623 | INT UNEXPECTED_PHASE_AFTER_DATA_IN | |
624 | ||
625 | at 0x000000c8 : */ 0x98080000,0x00000520, | |
626 | /* | |
627 | ||
628 | DataInAfterDataIn: | |
629 | INT DATA_IN_AFTER_DATA_IN | |
630 | ||
631 | at 0x000000ca : */ 0x98080000,0x000005a0, | |
632 | /* | |
633 | JUMP ResumeDataIn | |
634 | ||
635 | at 0x000000cc : */ 0x80080000,0x00000300, | |
636 | /* | |
637 | ||
638 | DataOut: | |
639 | CALL SGScriptStartAddress | |
640 | ||
641 | at 0x000000ce : */ 0x88080000,0x00000000, | |
642 | /* | |
643 | ResumeDataOut: | |
644 | JUMP Finish, WHEN STATUS | |
645 | ||
646 | at 0x000000d0 : */ 0x830b0000,0x00000460, | |
647 | /* | |
648 | JUMP MsgInAfterDataOut, IF MSG_IN | |
649 | ||
650 | at 0x000000d2 : */ 0x870a0000,0x000003e8, | |
651 | /* | |
652 | INT UNEXPECTED_PHASE_AFTER_DATA_OUT | |
653 | ||
654 | at 0x000000d4 : */ 0x98080000,0x00000620, | |
655 | /* | |
656 | ||
657 | MsgInAfterDataIn: | |
658 | MOVE 1, ReceiveMsgAddress, WHEN MSG_IN | |
659 | ||
660 | at 0x000000d6 : */ 0x0f000001,0x00000000, | |
661 | /* | |
662 | JUMP DisconnectAfterDataIn, IF DISCONNECT_MSG | |
663 | ||
664 | at 0x000000d8 : */ 0x800c0004,0x000003c0, | |
665 | /* | |
666 | JUMP IgnoreMsgAfterData, IF SAVE_DATA_PTRS_MSG | |
667 | ||
668 | at 0x000000da : */ 0x800c0002,0x00000428, | |
669 | /* | |
670 | JUMP IgnoreMsgAfterData, IF RESTORE_DATA_PTRS_MSG | |
671 | ||
672 | at 0x000000dc : */ 0x800c0003,0x00000428, | |
673 | /* | |
674 | CALL ProcessReceiveMessage | |
675 | ||
676 | at 0x000000de : */ 0x88080000,0x000000a8, | |
677 | /* | |
678 | INT MSG_IN_AFTER_DATA_IN | |
679 | ||
680 | at 0x000000e0 : */ 0x98080000,0x00000550, | |
681 | /* | |
682 | CLEAR ACK | |
683 | ||
684 | at 0x000000e2 : */ 0x60000040,0x00000000, | |
685 | /* | |
686 | JUMP ResumeDataIn | |
687 | ||
688 | at 0x000000e4 : */ 0x80080000,0x00000300, | |
689 | /* | |
690 | ||
691 | DisconnectDuringDataIn: | |
692 | CLEAR ACK | |
693 | ||
694 | at 0x000000e6 : */ 0x60000040,0x00000000, | |
695 | /* | |
696 | WAIT DISCONNECT | |
697 | ||
698 | at 0x000000e8 : */ 0x48000000,0x00000000, | |
699 | /* | |
700 | ENTRY Disconnect3 | |
701 | Disconnect3: | |
702 | INT DISCONNECT_DURING_DATA | |
703 | ||
704 | at 0x000000ea : */ 0x98080000,0x00000780, | |
705 | /* | |
706 | ENTRY Disconnect4 | |
707 | Disconnect4: | |
708 | ; we return here after a reselection | |
709 | CLEAR ACK | |
710 | ||
711 | at 0x000000ec : */ 0x60000040,0x00000000, | |
712 | /* | |
713 | JUMP ResumeSendCommand | |
714 | ||
715 | at 0x000000ee : */ 0x80080000,0x000001e8, | |
716 | /* | |
717 | ||
718 | ||
719 | DisconnectAfterDataIn: | |
720 | CLEAR ACK | |
721 | ||
722 | at 0x000000f0 : */ 0x60000040,0x00000000, | |
723 | /* | |
724 | WAIT DISCONNECT | |
725 | ||
726 | at 0x000000f2 : */ 0x48000000,0x00000000, | |
727 | /* | |
728 | ENTRY Disconnect5 | |
729 | Disconnect5: | |
730 | INT DISCONNECT_AFTER_DATA | |
731 | ||
732 | at 0x000000f4 : */ 0x98080000,0x00000580, | |
733 | /* | |
734 | ENTRY Disconnect6 | |
735 | Disconnect6: | |
736 | ; we return here after a reselection | |
737 | CLEAR ACK | |
738 | ||
739 | at 0x000000f6 : */ 0x60000040,0x00000000, | |
740 | /* | |
741 | JUMP ResumeDataIn | |
742 | ||
743 | at 0x000000f8 : */ 0x80080000,0x00000300, | |
744 | /* | |
745 | ||
746 | MsgInAfterDataOut: | |
747 | MOVE 1, ReceiveMsgAddress, WHEN MSG_IN | |
748 | ||
749 | at 0x000000fa : */ 0x0f000001,0x00000000, | |
750 | /* | |
751 | JUMP DisconnectAfterDataOut, if DISCONNECT_MSG | |
752 | ||
753 | at 0x000000fc : */ 0x800c0004,0x00000438, | |
754 | /* | |
755 | JUMP IgnoreMsgAfterData, IF SAVE_DATA_PTRS_MSG | |
756 | ||
757 | at 0x000000fe : */ 0x800c0002,0x00000428, | |
758 | /* | |
759 | JUMP IgnoreMsgAfterData, IF RESTORE_DATA_PTRS_MSG | |
760 | ||
761 | at 0x00000100 : */ 0x800c0003,0x00000428, | |
762 | /* | |
763 | CALL ProcessReceiveMessage | |
764 | ||
765 | at 0x00000102 : */ 0x88080000,0x000000a8, | |
766 | /* | |
767 | INT MSG_IN_AFTER_DATA_OUT | |
768 | ||
769 | at 0x00000104 : */ 0x98080000,0x00000650, | |
770 | /* | |
771 | CLEAR ACK | |
772 | ||
773 | at 0x00000106 : */ 0x60000040,0x00000000, | |
774 | /* | |
775 | JUMP ResumeDataOut | |
776 | ||
777 | at 0x00000108 : */ 0x80080000,0x00000340, | |
778 | /* | |
779 | ||
780 | IgnoreMsgAfterData: | |
781 | CLEAR ACK | |
782 | ||
783 | at 0x0000010a : */ 0x60000040,0x00000000, | |
784 | /* | |
785 | ; Data in and out do the same thing on resume, so pick one | |
786 | JUMP ResumeDataIn | |
787 | ||
788 | at 0x0000010c : */ 0x80080000,0x00000300, | |
789 | /* | |
790 | ||
791 | DisconnectAfterDataOut: | |
792 | CLEAR ACK | |
793 | ||
794 | at 0x0000010e : */ 0x60000040,0x00000000, | |
795 | /* | |
796 | WAIT DISCONNECT | |
797 | ||
798 | at 0x00000110 : */ 0x48000000,0x00000000, | |
799 | /* | |
800 | ENTRY Disconnect7 | |
801 | Disconnect7: | |
802 | INT DISCONNECT_AFTER_DATA | |
803 | ||
804 | at 0x00000112 : */ 0x98080000,0x00000580, | |
805 | /* | |
806 | ENTRY Disconnect8 | |
807 | Disconnect8: | |
808 | ; we return here after a reselection | |
809 | CLEAR ACK | |
810 | ||
811 | at 0x00000114 : */ 0x60000040,0x00000000, | |
812 | /* | |
813 | JUMP ResumeDataOut | |
814 | ||
815 | at 0x00000116 : */ 0x80080000,0x00000340, | |
816 | /* | |
817 | ||
818 | Finish: | |
819 | MOVE 1, StatusAddress, WHEN STATUS | |
820 | ||
821 | at 0x00000118 : */ 0x0b000001,0x00000000, | |
822 | /* | |
823 | INT NOT_MSG_IN_AFTER_STATUS, WHEN NOT MSG_IN | |
824 | ||
825 | at 0x0000011a : */ 0x9f030000,0x00000430, | |
826 | /* | |
827 | MOVE 1, ReceiveMsgAddress, WHEN MSG_IN | |
828 | ||
829 | at 0x0000011c : */ 0x0f000001,0x00000000, | |
830 | /* | |
831 | JUMP FinishCommandComplete, IF COMMAND_COMPLETE_MSG | |
832 | ||
833 | at 0x0000011e : */ 0x800c0000,0x00000490, | |
834 | /* | |
835 | CALL ProcessReceiveMessage | |
836 | ||
837 | at 0x00000120 : */ 0x88080000,0x000000a8, | |
838 | /* | |
839 | INT MSG_IN_AFTER_STATUS | |
840 | ||
841 | at 0x00000122 : */ 0x98080000,0x00000440, | |
842 | /* | |
843 | ENTRY FinishCommandComplete | |
844 | FinishCommandComplete: | |
845 | CLEAR ACK | |
846 | ||
847 | at 0x00000124 : */ 0x60000040,0x00000000, | |
848 | /* | |
849 | WAIT DISCONNECT | |
850 | ||
851 | at 0x00000126 : */ 0x48000000,0x00000000, | |
852 | /* | |
853 | ENTRY Finish1 | |
854 | Finish1: | |
855 | INT GOOD_STATUS_AFTER_STATUS | |
856 | ||
857 | at 0x00000128 : */ 0x98080000,0x00000401, | |
858 | }; | |
859 | ||
860 | #define A_AFTER_CMD 0x00000300 | |
861 | static u32 A_AFTER_CMD_used[] __attribute((unused)) = { | |
862 | }; | |
863 | ||
864 | #define A_AFTER_DATA_IN 0x00000500 | |
865 | static u32 A_AFTER_DATA_IN_used[] __attribute((unused)) = { | |
866 | }; | |
867 | ||
868 | #define A_AFTER_DATA_OUT 0x00000600 | |
869 | static u32 A_AFTER_DATA_OUT_used[] __attribute((unused)) = { | |
870 | }; | |
871 | ||
872 | #define A_AFTER_SELECTION 0x00000100 | |
873 | static u32 A_AFTER_SELECTION_used[] __attribute((unused)) = { | |
874 | }; | |
875 | ||
876 | #define A_AFTER_STATUS 0x00000400 | |
877 | static u32 A_AFTER_STATUS_used[] __attribute((unused)) = { | |
878 | }; | |
879 | ||
880 | #define A_BEFORE_CMD 0x00000200 | |
881 | static u32 A_BEFORE_CMD_used[] __attribute((unused)) = { | |
882 | }; | |
883 | ||
884 | #define A_COMMAND_COMPLETE_MSG 0x00000000 | |
885 | static u32 A_COMMAND_COMPLETE_MSG_used[] __attribute((unused)) = { | |
886 | 0x0000011e, | |
887 | }; | |
888 | ||
889 | #define A_COMPLETED_SELECTION_AS_TARGET 0x00001001 | |
890 | static u32 A_COMPLETED_SELECTION_AS_TARGET_used[] __attribute((unused)) = { | |
891 | 0x0000001d, | |
892 | }; | |
893 | ||
894 | #define A_CommandAddress 0x00000000 | |
895 | static u32 A_CommandAddress_used[] __attribute((unused)) = { | |
896 | 0x00000079, | |
897 | }; | |
898 | ||
899 | #define A_CommandCount 0x00000000 | |
900 | static u32 A_CommandCount_used[] __attribute((unused)) = { | |
901 | 0x00000078, | |
902 | }; | |
903 | ||
904 | #define A_DATA_IN_AFTER_DATA_IN 0x000005a0 | |
905 | static u32 A_DATA_IN_AFTER_DATA_IN_used[] __attribute((unused)) = { | |
906 | 0x000000cb, | |
907 | }; | |
908 | ||
909 | #define A_DEBUG_INTERRUPT 0x00003000 | |
910 | static u32 A_DEBUG_INTERRUPT_used[] __attribute((unused)) = { | |
911 | }; | |
912 | ||
913 | #define A_DEBUG_INTERRUPT1 0x00003001 | |
914 | static u32 A_DEBUG_INTERRUPT1_used[] __attribute((unused)) = { | |
915 | }; | |
916 | ||
917 | #define A_DEBUG_INTERRUPT2 0x00003002 | |
918 | static u32 A_DEBUG_INTERRUPT2_used[] __attribute((unused)) = { | |
919 | }; | |
920 | ||
921 | #define A_DEBUG_INTERRUPT3 0x00003003 | |
922 | static u32 A_DEBUG_INTERRUPT3_used[] __attribute((unused)) = { | |
923 | }; | |
924 | ||
925 | #define A_DEBUG_INTERRUPT4 0x00003004 | |
926 | static u32 A_DEBUG_INTERRUPT4_used[] __attribute((unused)) = { | |
927 | }; | |
928 | ||
929 | #define A_DEBUG_INTERRUPT5 0x00003005 | |
930 | static u32 A_DEBUG_INTERRUPT5_used[] __attribute((unused)) = { | |
931 | }; | |
932 | ||
933 | #define A_DEBUG_INTERRUPT6 0x00003006 | |
934 | static u32 A_DEBUG_INTERRUPT6_used[] __attribute((unused)) = { | |
935 | }; | |
936 | ||
937 | #define A_DISCONNECT 0x00000080 | |
938 | static u32 A_DISCONNECT_used[] __attribute((unused)) = { | |
939 | }; | |
940 | ||
941 | #define A_DISCONNECT_AFTER_CMD 0x00000380 | |
942 | static u32 A_DISCONNECT_AFTER_CMD_used[] __attribute((unused)) = { | |
943 | 0x000000ab, | |
944 | }; | |
945 | ||
946 | #define A_DISCONNECT_AFTER_DATA 0x00000580 | |
947 | static u32 A_DISCONNECT_AFTER_DATA_used[] __attribute((unused)) = { | |
948 | 0x000000f5, | |
949 | 0x00000113, | |
950 | }; | |
951 | ||
952 | #define A_DISCONNECT_DURING_DATA 0x00000780 | |
953 | static u32 A_DISCONNECT_DURING_DATA_used[] __attribute((unused)) = { | |
954 | 0x000000eb, | |
955 | }; | |
956 | ||
957 | #define A_DISCONNECT_MSG 0x00000004 | |
958 | static u32 A_DISCONNECT_MSG_used[] __attribute((unused)) = { | |
959 | 0x0000008a, | |
960 | 0x00000094, | |
961 | 0x000000d8, | |
962 | 0x000000fc, | |
963 | }; | |
964 | ||
965 | #define A_DURING_DATA_IN 0x00000700 | |
966 | static u32 A_DURING_DATA_IN_used[] __attribute((unused)) = { | |
967 | }; | |
968 | ||
969 | #define A_Device_ID 0x00000000 | |
970 | static u32 A_Device_ID_used[] __attribute((unused)) = { | |
971 | 0x00000000, | |
972 | }; | |
973 | ||
974 | #define A_EXTENDED_MSG 0x00000001 | |
975 | static u32 A_EXTENDED_MSG_used[] __attribute((unused)) = { | |
976 | 0x0000002a, | |
977 | }; | |
978 | ||
979 | #define A_FATAL 0x00002000 | |
980 | static u32 A_FATAL_used[] __attribute((unused)) = { | |
981 | }; | |
982 | ||
983 | #define A_FATAL_ILLEGAL_MSG_LENGTH 0x00002003 | |
984 | static u32 A_FATAL_ILLEGAL_MSG_LENGTH_used[] __attribute((unused)) = { | |
985 | 0x00000043, | |
986 | }; | |
987 | ||
988 | #define A_FATAL_NOT_MSG_IN_AFTER_SELECTION 0x00002002 | |
989 | static u32 A_FATAL_NOT_MSG_IN_AFTER_SELECTION_used[] __attribute((unused)) = { | |
990 | 0x0000000d, | |
991 | }; | |
992 | ||
993 | #define A_FATAL_SEND_MSG 0x00002001 | |
994 | static u32 A_FATAL_SEND_MSG_used[] __attribute((unused)) = { | |
995 | 0x00000023, | |
996 | }; | |
997 | ||
998 | #define A_FATAL_UNEXPECTED_RESELECTION_MSG 0x00002000 | |
999 | static u32 A_FATAL_UNEXPECTED_RESELECTION_MSG_used[] __attribute((unused)) = { | |
1000 | }; | |
1001 | ||
1002 | #define A_GOOD_STATUS 0x00000001 | |
1003 | static u32 A_GOOD_STATUS_used[] __attribute((unused)) = { | |
1004 | }; | |
1005 | ||
1006 | #define A_GOOD_STATUS_AFTER_STATUS 0x00000401 | |
1007 | static u32 A_GOOD_STATUS_AFTER_STATUS_used[] __attribute((unused)) = { | |
1008 | 0x00000129, | |
1009 | }; | |
1010 | ||
1011 | #define A_IDENTIFY_MSG 0x00000080 | |
1012 | static u32 A_IDENTIFY_MSG_used[] __attribute((unused)) = { | |
1013 | }; | |
1014 | ||
1015 | #define A_IDENTIFY_MSG_MASK 0x0000007f | |
1016 | static u32 A_IDENTIFY_MSG_MASK_used[] __attribute((unused)) = { | |
1017 | }; | |
1018 | ||
1019 | #define A_MSG_IN 0x00000050 | |
1020 | static u32 A_MSG_IN_used[] __attribute((unused)) = { | |
1021 | }; | |
1022 | ||
1023 | #define A_MSG_IN_AFTER_CMD 0x00000350 | |
1024 | static u32 A_MSG_IN_AFTER_CMD_used[] __attribute((unused)) = { | |
1025 | 0x0000009d, | |
1026 | }; | |
1027 | ||
1028 | #define A_MSG_IN_AFTER_DATA_IN 0x00000550 | |
1029 | static u32 A_MSG_IN_AFTER_DATA_IN_used[] __attribute((unused)) = { | |
1030 | 0x000000e1, | |
1031 | }; | |
1032 | ||
1033 | #define A_MSG_IN_AFTER_DATA_OUT 0x00000650 | |
1034 | static u32 A_MSG_IN_AFTER_DATA_OUT_used[] __attribute((unused)) = { | |
1035 | 0x00000105, | |
1036 | }; | |
1037 | ||
1038 | #define A_MSG_IN_AFTER_STATUS 0x00000440 | |
1039 | static u32 A_MSG_IN_AFTER_STATUS_used[] __attribute((unused)) = { | |
1040 | 0x00000123, | |
1041 | }; | |
1042 | ||
1043 | #define A_MSG_IN_BEFORE_CMD 0x00000250 | |
1044 | static u32 A_MSG_IN_BEFORE_CMD_used[] __attribute((unused)) = { | |
1045 | 0x000000b9, | |
1046 | }; | |
1047 | ||
1048 | #define A_MSG_IN_DURING_DATA_IN 0x00000750 | |
1049 | static u32 A_MSG_IN_DURING_DATA_IN_used[] __attribute((unused)) = { | |
1050 | 0x00000091, | |
1051 | }; | |
1052 | ||
1053 | #define A_MSG_OUT 0x00000090 | |
1054 | static u32 A_MSG_OUT_used[] __attribute((unused)) = { | |
1055 | }; | |
1056 | ||
1057 | #define A_MSG_OUT_AFTER_DATA_IN 0x00000590 | |
1058 | static u32 A_MSG_OUT_AFTER_DATA_IN_used[] __attribute((unused)) = { | |
1059 | 0x000000c7, | |
1060 | }; | |
1061 | ||
1062 | #define A_MessageCount 0x00000000 | |
1063 | static u32 A_MessageCount_used[] __attribute((unused)) = { | |
1064 | 0x0000001e, | |
1065 | }; | |
1066 | ||
1067 | #define A_MessageLocation 0x00000000 | |
1068 | static u32 A_MessageLocation_used[] __attribute((unused)) = { | |
1069 | 0x0000001f, | |
1070 | }; | |
1071 | ||
1072 | #define A_NOT_MSG_IN 0x00000030 | |
1073 | static u32 A_NOT_MSG_IN_used[] __attribute((unused)) = { | |
1074 | }; | |
1075 | ||
1076 | #define A_NOT_MSG_IN_AFTER_STATUS 0x00000430 | |
1077 | static u32 A_NOT_MSG_IN_AFTER_STATUS_used[] __attribute((unused)) = { | |
1078 | 0x0000011b, | |
1079 | }; | |
1080 | ||
1081 | #define A_NOT_MSG_OUT 0x00000010 | |
1082 | static u32 A_NOT_MSG_OUT_used[] __attribute((unused)) = { | |
1083 | }; | |
1084 | ||
1085 | #define A_NOT_MSG_OUT_AFTER_SELECTION 0x00000110 | |
1086 | static u32 A_NOT_MSG_OUT_AFTER_SELECTION_used[] __attribute((unused)) = { | |
1087 | 0x00000007, | |
1088 | }; | |
1089 | ||
1090 | #define A_PARITY_ERROR_MSG 0x00000009 | |
1091 | static u32 A_PARITY_ERROR_MSG_used[] __attribute((unused)) = { | |
1092 | }; | |
1093 | ||
1094 | #define A_REJECT_MSG 0x00000007 | |
1095 | static u32 A_REJECT_MSG_used[] __attribute((unused)) = { | |
1096 | }; | |
1097 | ||
1098 | #define A_REJECT_MSG_BEFORE_CMD 0x00000270 | |
1099 | static u32 A_REJECT_MSG_BEFORE_CMD_used[] __attribute((unused)) = { | |
1100 | }; | |
1101 | ||
1102 | #define A_REJECT_MSG_R 0x00000070 | |
1103 | static u32 A_REJECT_MSG_R_used[] __attribute((unused)) = { | |
1104 | }; | |
1105 | ||
1106 | #define A_RESELECTED_DURING_SELECTION 0x00001000 | |
1107 | static u32 A_RESELECTED_DURING_SELECTION_used[] __attribute((unused)) = { | |
1108 | 0x0000000b, | |
1109 | }; | |
1110 | ||
1111 | #define A_RESELECTION_IDENTIFIED 0x00001003 | |
1112 | static u32 A_RESELECTION_IDENTIFIED_used[] __attribute((unused)) = { | |
1113 | 0x00000011, | |
1114 | 0x00000015, | |
1115 | }; | |
1116 | ||
1117 | #define A_RESTORE_DATA_PTRS_MSG 0x00000003 | |
1118 | static u32 A_RESTORE_DATA_PTRS_MSG_used[] __attribute((unused)) = { | |
1119 | 0x0000008e, | |
1120 | 0x00000098, | |
1121 | 0x000000b4, | |
1122 | 0x000000dc, | |
1123 | 0x00000100, | |
1124 | }; | |
1125 | ||
1126 | #define A_ReceiveMsgAddress 0x00000000 | |
1127 | static u32 A_ReceiveMsgAddress_used[] __attribute((unused)) = { | |
1128 | 0x0000000f, | |
1129 | 0x00000013, | |
1130 | 0x00000029, | |
1131 | 0x00000031, | |
1132 | 0x00000037, | |
1133 | 0x00000047, | |
1134 | 0x0000004d, | |
1135 | 0x00000053, | |
1136 | 0x00000059, | |
1137 | 0x0000005f, | |
1138 | 0x00000089, | |
1139 | 0x00000093, | |
1140 | 0x000000b1, | |
1141 | 0x000000d7, | |
1142 | 0x000000fb, | |
1143 | 0x0000011d, | |
1144 | }; | |
1145 | ||
1146 | #define A_SAVE_DATA_PTRS_MSG 0x00000002 | |
1147 | static u32 A_SAVE_DATA_PTRS_MSG_used[] __attribute((unused)) = { | |
1148 | 0x0000008c, | |
1149 | 0x00000096, | |
1150 | 0x000000b2, | |
1151 | 0x000000da, | |
1152 | 0x000000fe, | |
1153 | }; | |
1154 | ||
1155 | #define A_SDTR_MSG 0x00000001 | |
1156 | static u32 A_SDTR_MSG_used[] __attribute((unused)) = { | |
1157 | }; | |
1158 | ||
1159 | #define A_SDTR_MSG_AFTER_CMD 0x00000360 | |
1160 | static u32 A_SDTR_MSG_AFTER_CMD_used[] __attribute((unused)) = { | |
1161 | }; | |
1162 | ||
1163 | #define A_SDTR_MSG_BEFORE_CMD 0x00000260 | |
1164 | static u32 A_SDTR_MSG_BEFORE_CMD_used[] __attribute((unused)) = { | |
1165 | }; | |
1166 | ||
1167 | #define A_SDTR_MSG_R 0x00000060 | |
1168 | static u32 A_SDTR_MSG_R_used[] __attribute((unused)) = { | |
1169 | }; | |
1170 | ||
1171 | #define A_SGScriptStartAddress 0x00000000 | |
1172 | static u32 A_SGScriptStartAddress_used[] __attribute((unused)) = { | |
1173 | 0x000000bf, | |
1174 | 0x000000cf, | |
1175 | }; | |
1176 | ||
1177 | #define A_SIMPLE_TAG_MSG 0x00000020 | |
1178 | static u32 A_SIMPLE_TAG_MSG_used[] __attribute((unused)) = { | |
1179 | }; | |
1180 | ||
1181 | #define A_StatusAddress 0x00000000 | |
1182 | static u32 A_StatusAddress_used[] __attribute((unused)) = { | |
1183 | 0x00000119, | |
1184 | }; | |
1185 | ||
1186 | #define A_TWO_BYTE_MSG 0x00000020 | |
1187 | static u32 A_TWO_BYTE_MSG_used[] __attribute((unused)) = { | |
1188 | 0x0000002c, | |
1189 | }; | |
1190 | ||
1191 | #define A_TWO_BYTE_MSG_MASK 0x0000000f | |
1192 | static u32 A_TWO_BYTE_MSG_MASK_used[] __attribute((unused)) = { | |
1193 | 0x0000002c, | |
1194 | }; | |
1195 | ||
1196 | #define A_UNEXPECTED_MSG 0x00000040 | |
1197 | static u32 A_UNEXPECTED_MSG_used[] __attribute((unused)) = { | |
1198 | }; | |
1199 | ||
1200 | #define A_UNEXPECTED_MSG_BEFORE_CMD 0x00000240 | |
1201 | static u32 A_UNEXPECTED_MSG_BEFORE_CMD_used[] __attribute((unused)) = { | |
1202 | }; | |
1203 | ||
1204 | #define A_UNEXPECTED_PHASE 0x00000020 | |
1205 | static u32 A_UNEXPECTED_PHASE_used[] __attribute((unused)) = { | |
1206 | }; | |
1207 | ||
1208 | #define A_UNEXPECTED_PHASE_AFTER_CMD 0x00000320 | |
1209 | static u32 A_UNEXPECTED_PHASE_AFTER_CMD_used[] __attribute((unused)) = { | |
1210 | 0x00000083, | |
1211 | }; | |
1212 | ||
1213 | #define A_UNEXPECTED_PHASE_AFTER_DATA_IN 0x00000520 | |
1214 | static u32 A_UNEXPECTED_PHASE_AFTER_DATA_IN_used[] __attribute((unused)) = { | |
1215 | 0x000000c9, | |
1216 | }; | |
1217 | ||
1218 | #define A_UNEXPECTED_PHASE_AFTER_DATA_OUT 0x00000620 | |
1219 | static u32 A_UNEXPECTED_PHASE_AFTER_DATA_OUT_used[] __attribute((unused)) = { | |
1220 | 0x000000d5, | |
1221 | }; | |
1222 | ||
1223 | #define A_UNEXPECTED_PHASE_BEFORE_CMD 0x00000220 | |
1224 | static u32 A_UNEXPECTED_PHASE_BEFORE_CMD_used[] __attribute((unused)) = { | |
1225 | 0x00000077, | |
1226 | }; | |
1227 | ||
1228 | #define A_WDTR_MSG 0x00000003 | |
1229 | static u32 A_WDTR_MSG_used[] __attribute((unused)) = { | |
1230 | }; | |
1231 | ||
1232 | #define A_WDTR_MSG_AFTER_CMD 0x000003a0 | |
1233 | static u32 A_WDTR_MSG_AFTER_CMD_used[] __attribute((unused)) = { | |
1234 | }; | |
1235 | ||
1236 | #define A_WDTR_MSG_R 0x000000a0 | |
1237 | static u32 A_WDTR_MSG_R_used[] __attribute((unused)) = { | |
1238 | }; | |
1239 | ||
1240 | #define Ent_Disconnect1 0x000002a8 | |
1241 | #define Ent_Disconnect2 0x000002b0 | |
1242 | #define Ent_Disconnect3 0x000003a8 | |
1243 | #define Ent_Disconnect4 0x000003b0 | |
1244 | #define Ent_Disconnect5 0x000003d0 | |
1245 | #define Ent_Disconnect6 0x000003d8 | |
1246 | #define Ent_Disconnect7 0x00000448 | |
1247 | #define Ent_Disconnect8 0x00000450 | |
1248 | #define Ent_Finish1 0x000004a0 | |
1249 | #define Ent_Finish2 0x000004a8 | |
1250 | #define Ent_FinishCommandComplete 0x00000490 | |
1251 | #define Ent_GetReselectionData 0x00000038 | |
1252 | #define Ent_GetReselectionWithTag 0x00000048 | |
1253 | #define Ent_IgnoreMessage 0x00000188 | |
1254 | #define Ent_MsgInDuringData 0x00000218 | |
1255 | #define Ent_ReceiveMessage 0x000000a0 | |
1256 | #define Ent_SelectedAsTarget 0x00000058 | |
1257 | #define Ent_SendCommand 0x000001c8 | |
1258 | #define Ent_SendMessage 0x00000078 | |
1259 | #define Ent_SendMessagePhaseMismatch 0x00000090 | |
1260 | #define Ent_SendMessageWithATN 0x00000198 | |
1261 | #define Ent_StartUp 0x00000000 | |
1262 | static u32 LABELPATCHES[] __attribute((unused)) = { | |
1263 | 0x00000001, | |
1264 | 0x00000003, | |
1265 | 0x00000005, | |
1266 | 0x00000009, | |
1267 | 0x00000027, | |
1268 | 0x0000002b, | |
1269 | 0x00000039, | |
1270 | 0x0000003b, | |
1271 | 0x0000003d, | |
1272 | 0x0000003f, | |
1273 | 0x00000041, | |
1274 | 0x0000006b, | |
1275 | 0x0000006d, | |
1276 | 0x00000073, | |
1277 | 0x00000075, | |
1278 | 0x0000007b, | |
1279 | 0x0000007d, | |
1280 | 0x0000007f, | |
1281 | 0x00000081, | |
1282 | 0x00000087, | |
1283 | 0x0000008b, | |
1284 | 0x0000008d, | |
1285 | 0x0000008f, | |
1286 | 0x00000095, | |
1287 | 0x00000097, | |
1288 | 0x00000099, | |
1289 | 0x0000009b, | |
1290 | 0x000000a1, | |
1291 | 0x000000a5, | |
1292 | 0x000000af, | |
1293 | 0x000000b3, | |
1294 | 0x000000b5, | |
1295 | 0x000000b7, | |
1296 | 0x000000bd, | |
1297 | 0x000000c1, | |
1298 | 0x000000c3, | |
1299 | 0x000000c5, | |
1300 | 0x000000cd, | |
1301 | 0x000000d1, | |
1302 | 0x000000d3, | |
1303 | 0x000000d9, | |
1304 | 0x000000db, | |
1305 | 0x000000dd, | |
1306 | 0x000000df, | |
1307 | 0x000000e5, | |
1308 | 0x000000ef, | |
1309 | 0x000000f9, | |
1310 | 0x000000fd, | |
1311 | 0x000000ff, | |
1312 | 0x00000101, | |
1313 | 0x00000103, | |
1314 | 0x00000109, | |
1315 | 0x0000010d, | |
1316 | 0x00000117, | |
1317 | 0x0000011f, | |
1318 | 0x00000121, | |
1319 | }; | |
1320 | ||
1321 | static struct { | |
1322 | u32 offset; | |
1323 | void *address; | |
1324 | } EXTERNAL_PATCHES[] __attribute((unused)) = { | |
1325 | }; | |
1326 | ||
1327 | static u32 INSTRUCTIONS __attribute((unused)) = 149; | |
1328 | static u32 PATCHES __attribute((unused)) = 56; | |
1329 | static u32 EXTERNAL_PATCHES_LEN __attribute((unused)) = 0; |