1 /* DO NOT EDIT - Generated automatically by script_asm.pl */
2 static u32 SCRIPT[] = {
4 ; Script for the NCR (or symbios) 53c700 and 53c700-66 chip
6 ; Copyright (C) 2001 James.Bottomley@HansenPartnership.com
7 ;;-----------------------------------------------------------------------------
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.
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.
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.
23 ;;-----------------------------------------------------------------------------
25 ; This script is designed to be modified for the particular command in
26 ; operation. The particular variables pertaining to the commands are:
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
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
42 ABSOLUTE SGScriptStartAddress = 0
44 ; The following represent status interrupts we use 3 hex digits for
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
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
69 ABSOLUTE GOOD_STATUS = 0x1
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
97 ; Other interrupt conditions
99 ABSOLUTE RESELECTED_DURING_SELECTION = 0x1000
100 ABSOLUTE COMPLETED_SELECTION_AS_TARGET = 0x1001
101 ABSOLUTE RESELECTION_IDENTIFIED = 0x1003
103 ; Fatal interrupt conditions. If you add to this, also add to the
104 ; array of corresponding messages
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
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
122 ; SCSI Messages we interpret in the script
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
139 ; This is where the script begins
144 SELECT ATN Device_ID, Reselect
146 at 0x00000000 : */ 0x41000000,0x00000020,
148 JUMP Finish, WHEN STATUS
150 at 0x00000002 : */ 0x830b0000,0x00000460,
152 JUMP SendIdentifyMsg, IF MSG_OUT
154 at 0x00000004 : */ 0x860a0000,0x000001b0,
156 INT NOT_MSG_OUT_AFTER_SELECTION
158 at 0x00000006 : */ 0x98080000,0x00000110,
162 WAIT RESELECT SelectedAsTarget
164 at 0x00000008 : */ 0x50000000,0x00000058,
166 INT RESELECTED_DURING_SELECTION, WHEN MSG_IN
168 at 0x0000000a : */ 0x9f0b0000,0x00001000,
170 INT FATAL_NOT_MSG_IN_AFTER_SELECTION
172 at 0x0000000c : */ 0x98080000,0x00002002,
175 ENTRY GetReselectionData
177 MOVE 1, ReceiveMsgAddress, WHEN MSG_IN
179 at 0x0000000e : */ 0x0f000001,0x00000000,
181 INT RESELECTION_IDENTIFIED
183 at 0x00000010 : */ 0x98080000,0x00001003,
186 ENTRY GetReselectionWithTag
187 GetReselectionWithTag:
188 MOVE 3, ReceiveMsgAddress, WHEN MSG_IN
190 at 0x00000012 : */ 0x0f000003,0x00000000,
192 INT RESELECTION_IDENTIFIED
194 at 0x00000014 : */ 0x98080000,0x00001003,
197 ENTRY SelectedAsTarget
199 ; Basically tell the selecting device that there's nothing here
202 at 0x00000016 : */ 0x58000200,0x00000000,
206 at 0x00000018 : */ 0x48000000,0x00000000,
210 at 0x0000001a : */ 0x60000200,0x00000000,
212 INT COMPLETED_SELECTION_AS_TARGET
214 at 0x0000001c : */ 0x98080000,0x00001001,
217 ; These are the messaging entries
219 ; Send a message. Message count should be correctly patched
222 MOVE MessageCount, MessageLocation, WHEN MSG_OUT
224 at 0x0000001e : */ 0x0e000000,0x00000000,
227 RETURN, WHEN NOT MSG_OUT
229 at 0x00000020 : */ 0x96030000,0x00000000,
233 at 0x00000022 : */ 0x98080000,0x00002001,
236 ENTRY SendMessagePhaseMismatch
237 SendMessagePhaseMismatch:
240 at 0x00000024 : */ 0x60000040,0x00000000,
242 JUMP ResumeSendMessage
244 at 0x00000026 : */ 0x80080000,0x00000080,
247 ; Receive a message. Need to identify the message to
248 ; receive it correctly
251 MOVE 1, ReceiveMsgAddress, WHEN MSG_IN
253 at 0x00000028 : */ 0x0f000001,0x00000000,
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
261 at 0x0000002a : */ 0x800c0001,0x000000d0,
263 RETURN, IF NOT TWO_BYTE_MSG, AND MASK TWO_BYTE_MSG_MASK
265 at 0x0000002c : */ 0x90040f20,0x00000000,
269 at 0x0000002e : */ 0x60000040,0x00000000,
271 MOVE 1, ReceiveMsgAddress + 1, WHEN MSG_IN
273 at 0x00000030 : */ 0x0f000001,0x00000001,
277 at 0x00000032 : */ 0x90080000,0x00000000,
279 ReceiveExtendedMessage:
282 at 0x00000034 : */ 0x60000040,0x00000000,
284 MOVE 1, ReceiveMsgAddress + 1, WHEN MSG_IN
286 at 0x00000036 : */ 0x0f000001,0x00000001,
288 JUMP Receive1Byte, IF 0x01
290 at 0x00000038 : */ 0x800c0001,0x00000110,
292 JUMP Receive2Byte, IF 0x02
294 at 0x0000003a : */ 0x800c0002,0x00000128,
296 JUMP Receive3Byte, IF 0x03
298 at 0x0000003c : */ 0x800c0003,0x00000140,
300 JUMP Receive4Byte, IF 0x04
302 at 0x0000003e : */ 0x800c0004,0x00000158,
304 JUMP Receive5Byte, IF 0x05
306 at 0x00000040 : */ 0x800c0005,0x00000170,
308 INT FATAL_ILLEGAL_MSG_LENGTH
310 at 0x00000042 : */ 0x98080000,0x00002003,
315 at 0x00000044 : */ 0x60000040,0x00000000,
317 MOVE 1, ReceiveMsgAddress + 2, WHEN MSG_IN
319 at 0x00000046 : */ 0x0f000001,0x00000002,
323 at 0x00000048 : */ 0x90080000,0x00000000,
328 at 0x0000004a : */ 0x60000040,0x00000000,
330 MOVE 2, ReceiveMsgAddress + 2, WHEN MSG_IN
332 at 0x0000004c : */ 0x0f000002,0x00000002,
336 at 0x0000004e : */ 0x90080000,0x00000000,
341 at 0x00000050 : */ 0x60000040,0x00000000,
343 MOVE 3, ReceiveMsgAddress + 2, WHEN MSG_IN
345 at 0x00000052 : */ 0x0f000003,0x00000002,
349 at 0x00000054 : */ 0x90080000,0x00000000,
354 at 0x00000056 : */ 0x60000040,0x00000000,
356 MOVE 4, ReceiveMsgAddress + 2, WHEN MSG_IN
358 at 0x00000058 : */ 0x0f000004,0x00000002,
362 at 0x0000005a : */ 0x90080000,0x00000000,
367 at 0x0000005c : */ 0x60000040,0x00000000,
369 MOVE 5, ReceiveMsgAddress + 2, WHEN MSG_IN
371 at 0x0000005e : */ 0x0f000005,0x00000002,
375 at 0x00000060 : */ 0x90080000,0x00000000,
378 ; Come here from the message processor to ignore the message
384 at 0x00000062 : */ 0x60000040,0x00000000,
388 at 0x00000064 : */ 0x90080000,0x00000000,
391 ; Come here to send a reply to a message
393 ENTRY SendMessageWithATN
397 at 0x00000066 : */ 0x58000008,0x00000000,
401 at 0x00000068 : */ 0x60000040,0x00000000,
405 at 0x0000006a : */ 0x80080000,0x00000078,
411 at 0x0000006c : */ 0x88080000,0x00000078,
415 at 0x0000006e : */ 0x60000008,0x00000000,
418 IgnoreMsgBeforeCommand:
421 at 0x00000070 : */ 0x60000040,0x00000000,
425 JUMP Finish, WHEN STATUS
427 at 0x00000072 : */ 0x830b0000,0x00000460,
429 JUMP MsgInBeforeCommand, IF MSG_IN
431 at 0x00000074 : */ 0x870a0000,0x000002c0,
433 INT UNEXPECTED_PHASE_BEFORE_CMD, IF NOT CMD
435 at 0x00000076 : */ 0x9a020000,0x00000220,
437 MOVE CommandCount, CommandAddress, WHEN CMD
439 at 0x00000078 : */ 0x0a000000,0x00000000,
442 JUMP Finish, WHEN STATUS
444 at 0x0000007a : */ 0x830b0000,0x00000460,
446 JUMP MsgInAfterCmd, IF MSG_IN
448 at 0x0000007c : */ 0x870a0000,0x00000248,
450 JUMP DataIn, IF DATA_IN
452 at 0x0000007e : */ 0x810a0000,0x000002f8,
454 JUMP DataOut, IF DATA_OUT
456 at 0x00000080 : */ 0x800a0000,0x00000338,
458 INT UNEXPECTED_PHASE_AFTER_CMD
460 at 0x00000082 : */ 0x98080000,0x00000320,
466 at 0x00000084 : */ 0x60000040,0x00000000,
468 ; fall through to MsgInDuringData
470 Entry MsgInDuringData
473 ; Could be we have nothing more to transfer
475 JUMP Finish, WHEN STATUS
477 at 0x00000086 : */ 0x830b0000,0x00000460,
479 MOVE 1, ReceiveMsgAddress, WHEN MSG_IN
481 at 0x00000088 : */ 0x0f000001,0x00000000,
483 JUMP DisconnectDuringDataIn, IF DISCONNECT_MSG
485 at 0x0000008a : */ 0x800c0004,0x00000398,
487 JUMP IgnoreMsgDuringData, IF SAVE_DATA_PTRS_MSG
489 at 0x0000008c : */ 0x800c0002,0x00000210,
491 JUMP IgnoreMsgDuringData, IF RESTORE_DATA_PTRS_MSG
493 at 0x0000008e : */ 0x800c0003,0x00000210,
495 INT MSG_IN_DURING_DATA_IN
497 at 0x00000090 : */ 0x98080000,0x00000750,
501 MOVE 1, ReceiveMsgAddress, WHEN MSG_IN
503 at 0x00000092 : */ 0x0f000001,0x00000000,
505 JUMP DisconnectAfterCmd, IF DISCONNECT_MSG
507 at 0x00000094 : */ 0x800c0004,0x00000298,
509 JUMP IgnoreMsgInAfterCmd, IF SAVE_DATA_PTRS_MSG
511 at 0x00000096 : */ 0x800c0002,0x00000288,
513 JUMP IgnoreMsgInAfterCmd, IF RESTORE_DATA_PTRS_MSG
515 at 0x00000098 : */ 0x800c0003,0x00000288,
517 CALL ProcessReceiveMessage
519 at 0x0000009a : */ 0x88080000,0x000000a8,
523 at 0x0000009c : */ 0x98080000,0x00000350,
527 at 0x0000009e : */ 0x60000040,0x00000000,
529 JUMP ResumeSendCommand
531 at 0x000000a0 : */ 0x80080000,0x000001e8,
537 at 0x000000a2 : */ 0x60000040,0x00000000,
539 JUMP ResumeSendCommand
541 at 0x000000a4 : */ 0x80080000,0x000001e8,
547 at 0x000000a6 : */ 0x60000040,0x00000000,
551 at 0x000000a8 : */ 0x48000000,0x00000000,
555 INT DISCONNECT_AFTER_CMD
557 at 0x000000aa : */ 0x98080000,0x00000380,
561 ; We return here after a reselection
564 at 0x000000ac : */ 0x60000040,0x00000000,
566 JUMP ResumeSendCommand
568 at 0x000000ae : */ 0x80080000,0x000001e8,
572 MOVE 1, ReceiveMsgAddress, WHEN MSG_IN
574 at 0x000000b0 : */ 0x0f000001,0x00000000,
576 JUMP IgnoreMsgBeforeCommand, IF SAVE_DATA_PTRS_MSG
578 at 0x000000b2 : */ 0x800c0002,0x000001c0,
580 JUMP IgnoreMsgBeforeCommand, IF RESTORE_DATA_PTRS_MSG
582 at 0x000000b4 : */ 0x800c0003,0x000001c0,
584 CALL ProcessReceiveMessage
586 at 0x000000b6 : */ 0x88080000,0x000000a8,
588 INT MSG_IN_BEFORE_CMD
590 at 0x000000b8 : */ 0x98080000,0x00000250,
594 at 0x000000ba : */ 0x60000040,0x00000000,
598 at 0x000000bc : */ 0x80080000,0x000001c8,
602 CALL SGScriptStartAddress
604 at 0x000000be : */ 0x88080000,0x00000000,
607 JUMP Finish, WHEN STATUS
609 at 0x000000c0 : */ 0x830b0000,0x00000460,
611 JUMP MsgInAfterDataIn, IF MSG_IN
613 at 0x000000c2 : */ 0x870a0000,0x00000358,
615 JUMP DataInAfterDataIn, if DATA_IN
617 at 0x000000c4 : */ 0x810a0000,0x00000328,
619 INT MSG_OUT_AFTER_DATA_IN, if MSG_OUT
621 at 0x000000c6 : */ 0x9e0a0000,0x00000590,
623 INT UNEXPECTED_PHASE_AFTER_DATA_IN
625 at 0x000000c8 : */ 0x98080000,0x00000520,
629 INT DATA_IN_AFTER_DATA_IN
631 at 0x000000ca : */ 0x98080000,0x000005a0,
635 at 0x000000cc : */ 0x80080000,0x00000300,
639 CALL SGScriptStartAddress
641 at 0x000000ce : */ 0x88080000,0x00000000,
644 JUMP Finish, WHEN STATUS
646 at 0x000000d0 : */ 0x830b0000,0x00000460,
648 JUMP MsgInAfterDataOut, IF MSG_IN
650 at 0x000000d2 : */ 0x870a0000,0x000003e8,
652 INT UNEXPECTED_PHASE_AFTER_DATA_OUT
654 at 0x000000d4 : */ 0x98080000,0x00000620,
658 MOVE 1, ReceiveMsgAddress, WHEN MSG_IN
660 at 0x000000d6 : */ 0x0f000001,0x00000000,
662 JUMP DisconnectAfterDataIn, IF DISCONNECT_MSG
664 at 0x000000d8 : */ 0x800c0004,0x000003c0,
666 JUMP IgnoreMsgAfterData, IF SAVE_DATA_PTRS_MSG
668 at 0x000000da : */ 0x800c0002,0x00000428,
670 JUMP IgnoreMsgAfterData, IF RESTORE_DATA_PTRS_MSG
672 at 0x000000dc : */ 0x800c0003,0x00000428,
674 CALL ProcessReceiveMessage
676 at 0x000000de : */ 0x88080000,0x000000a8,
678 INT MSG_IN_AFTER_DATA_IN
680 at 0x000000e0 : */ 0x98080000,0x00000550,
684 at 0x000000e2 : */ 0x60000040,0x00000000,
688 at 0x000000e4 : */ 0x80080000,0x00000300,
691 DisconnectDuringDataIn:
694 at 0x000000e6 : */ 0x60000040,0x00000000,
698 at 0x000000e8 : */ 0x48000000,0x00000000,
702 INT DISCONNECT_DURING_DATA
704 at 0x000000ea : */ 0x98080000,0x00000780,
708 ; we return here after a reselection
711 at 0x000000ec : */ 0x60000040,0x00000000,
713 JUMP ResumeSendCommand
715 at 0x000000ee : */ 0x80080000,0x000001e8,
719 DisconnectAfterDataIn:
722 at 0x000000f0 : */ 0x60000040,0x00000000,
726 at 0x000000f2 : */ 0x48000000,0x00000000,
730 INT DISCONNECT_AFTER_DATA
732 at 0x000000f4 : */ 0x98080000,0x00000580,
736 ; we return here after a reselection
739 at 0x000000f6 : */ 0x60000040,0x00000000,
743 at 0x000000f8 : */ 0x80080000,0x00000300,
747 MOVE 1, ReceiveMsgAddress, WHEN MSG_IN
749 at 0x000000fa : */ 0x0f000001,0x00000000,
751 JUMP DisconnectAfterDataOut, if DISCONNECT_MSG
753 at 0x000000fc : */ 0x800c0004,0x00000438,
755 JUMP IgnoreMsgAfterData, IF SAVE_DATA_PTRS_MSG
757 at 0x000000fe : */ 0x800c0002,0x00000428,
759 JUMP IgnoreMsgAfterData, IF RESTORE_DATA_PTRS_MSG
761 at 0x00000100 : */ 0x800c0003,0x00000428,
763 CALL ProcessReceiveMessage
765 at 0x00000102 : */ 0x88080000,0x000000a8,
767 INT MSG_IN_AFTER_DATA_OUT
769 at 0x00000104 : */ 0x98080000,0x00000650,
773 at 0x00000106 : */ 0x60000040,0x00000000,
777 at 0x00000108 : */ 0x80080000,0x00000340,
783 at 0x0000010a : */ 0x60000040,0x00000000,
785 ; Data in and out do the same thing on resume, so pick one
788 at 0x0000010c : */ 0x80080000,0x00000300,
791 DisconnectAfterDataOut:
794 at 0x0000010e : */ 0x60000040,0x00000000,
798 at 0x00000110 : */ 0x48000000,0x00000000,
802 INT DISCONNECT_AFTER_DATA
804 at 0x00000112 : */ 0x98080000,0x00000580,
808 ; we return here after a reselection
811 at 0x00000114 : */ 0x60000040,0x00000000,
815 at 0x00000116 : */ 0x80080000,0x00000340,
819 MOVE 1, StatusAddress, WHEN STATUS
821 at 0x00000118 : */ 0x0b000001,0x00000000,
823 INT NOT_MSG_IN_AFTER_STATUS, WHEN NOT MSG_IN
825 at 0x0000011a : */ 0x9f030000,0x00000430,
827 MOVE 1, ReceiveMsgAddress, WHEN MSG_IN
829 at 0x0000011c : */ 0x0f000001,0x00000000,
831 JUMP FinishCommandComplete, IF COMMAND_COMPLETE_MSG
833 at 0x0000011e : */ 0x800c0000,0x00000490,
835 CALL ProcessReceiveMessage
837 at 0x00000120 : */ 0x88080000,0x000000a8,
839 INT MSG_IN_AFTER_STATUS
841 at 0x00000122 : */ 0x98080000,0x00000440,
843 ENTRY FinishCommandComplete
844 FinishCommandComplete:
847 at 0x00000124 : */ 0x60000040,0x00000000,
851 at 0x00000126 : */ 0x48000000,0x00000000,
855 INT GOOD_STATUS_AFTER_STATUS
857 at 0x00000128 : */ 0x98080000,0x00000401,
860 #define A_AFTER_CMD 0x00000300
861 static u32 A_AFTER_CMD_used[] __attribute((unused)) = {
864 #define A_AFTER_DATA_IN 0x00000500
865 static u32 A_AFTER_DATA_IN_used[] __attribute((unused)) = {
868 #define A_AFTER_DATA_OUT 0x00000600
869 static u32 A_AFTER_DATA_OUT_used[] __attribute((unused)) = {
872 #define A_AFTER_SELECTION 0x00000100
873 static u32 A_AFTER_SELECTION_used[] __attribute((unused)) = {
876 #define A_AFTER_STATUS 0x00000400
877 static u32 A_AFTER_STATUS_used[] __attribute((unused)) = {
880 #define A_BEFORE_CMD 0x00000200
881 static u32 A_BEFORE_CMD_used[] __attribute((unused)) = {
884 #define A_COMMAND_COMPLETE_MSG 0x00000000
885 static u32 A_COMMAND_COMPLETE_MSG_used[] __attribute((unused)) = {
889 #define A_COMPLETED_SELECTION_AS_TARGET 0x00001001
890 static u32 A_COMPLETED_SELECTION_AS_TARGET_used[] __attribute((unused)) = {
894 #define A_CommandAddress 0x00000000
895 static u32 A_CommandAddress_used[] __attribute((unused)) = {
899 #define A_CommandCount 0x00000000
900 static u32 A_CommandCount_used[] __attribute((unused)) = {
904 #define A_DATA_IN_AFTER_DATA_IN 0x000005a0
905 static u32 A_DATA_IN_AFTER_DATA_IN_used[] __attribute((unused)) = {
909 #define A_DEBUG_INTERRUPT 0x00003000
910 static u32 A_DEBUG_INTERRUPT_used[] __attribute((unused)) = {
913 #define A_DEBUG_INTERRUPT1 0x00003001
914 static u32 A_DEBUG_INTERRUPT1_used[] __attribute((unused)) = {
917 #define A_DEBUG_INTERRUPT2 0x00003002
918 static u32 A_DEBUG_INTERRUPT2_used[] __attribute((unused)) = {
921 #define A_DEBUG_INTERRUPT3 0x00003003
922 static u32 A_DEBUG_INTERRUPT3_used[] __attribute((unused)) = {
925 #define A_DEBUG_INTERRUPT4 0x00003004
926 static u32 A_DEBUG_INTERRUPT4_used[] __attribute((unused)) = {
929 #define A_DEBUG_INTERRUPT5 0x00003005
930 static u32 A_DEBUG_INTERRUPT5_used[] __attribute((unused)) = {
933 #define A_DEBUG_INTERRUPT6 0x00003006
934 static u32 A_DEBUG_INTERRUPT6_used[] __attribute((unused)) = {
937 #define A_DISCONNECT 0x00000080
938 static u32 A_DISCONNECT_used[] __attribute((unused)) = {
941 #define A_DISCONNECT_AFTER_CMD 0x00000380
942 static u32 A_DISCONNECT_AFTER_CMD_used[] __attribute((unused)) = {
946 #define A_DISCONNECT_AFTER_DATA 0x00000580
947 static u32 A_DISCONNECT_AFTER_DATA_used[] __attribute((unused)) = {
952 #define A_DISCONNECT_DURING_DATA 0x00000780
953 static u32 A_DISCONNECT_DURING_DATA_used[] __attribute((unused)) = {
957 #define A_DISCONNECT_MSG 0x00000004
958 static u32 A_DISCONNECT_MSG_used[] __attribute((unused)) = {
965 #define A_DURING_DATA_IN 0x00000700
966 static u32 A_DURING_DATA_IN_used[] __attribute((unused)) = {
969 #define A_Device_ID 0x00000000
970 static u32 A_Device_ID_used[] __attribute((unused)) = {
974 #define A_EXTENDED_MSG 0x00000001
975 static u32 A_EXTENDED_MSG_used[] __attribute((unused)) = {
979 #define A_FATAL 0x00002000
980 static u32 A_FATAL_used[] __attribute((unused)) = {
983 #define A_FATAL_ILLEGAL_MSG_LENGTH 0x00002003
984 static u32 A_FATAL_ILLEGAL_MSG_LENGTH_used[] __attribute((unused)) = {
988 #define A_FATAL_NOT_MSG_IN_AFTER_SELECTION 0x00002002
989 static u32 A_FATAL_NOT_MSG_IN_AFTER_SELECTION_used[] __attribute((unused)) = {
993 #define A_FATAL_SEND_MSG 0x00002001
994 static u32 A_FATAL_SEND_MSG_used[] __attribute((unused)) = {
998 #define A_FATAL_UNEXPECTED_RESELECTION_MSG 0x00002000
999 static u32 A_FATAL_UNEXPECTED_RESELECTION_MSG_used[] __attribute((unused)) = {
1002 #define A_GOOD_STATUS 0x00000001
1003 static u32 A_GOOD_STATUS_used[] __attribute((unused)) = {
1006 #define A_GOOD_STATUS_AFTER_STATUS 0x00000401
1007 static u32 A_GOOD_STATUS_AFTER_STATUS_used[] __attribute((unused)) = {
1011 #define A_IDENTIFY_MSG 0x00000080
1012 static u32 A_IDENTIFY_MSG_used[] __attribute((unused)) = {
1015 #define A_IDENTIFY_MSG_MASK 0x0000007f
1016 static u32 A_IDENTIFY_MSG_MASK_used[] __attribute((unused)) = {
1019 #define A_MSG_IN 0x00000050
1020 static u32 A_MSG_IN_used[] __attribute((unused)) = {
1023 #define A_MSG_IN_AFTER_CMD 0x00000350
1024 static u32 A_MSG_IN_AFTER_CMD_used[] __attribute((unused)) = {
1028 #define A_MSG_IN_AFTER_DATA_IN 0x00000550
1029 static u32 A_MSG_IN_AFTER_DATA_IN_used[] __attribute((unused)) = {
1033 #define A_MSG_IN_AFTER_DATA_OUT 0x00000650
1034 static u32 A_MSG_IN_AFTER_DATA_OUT_used[] __attribute((unused)) = {
1038 #define A_MSG_IN_AFTER_STATUS 0x00000440
1039 static u32 A_MSG_IN_AFTER_STATUS_used[] __attribute((unused)) = {
1043 #define A_MSG_IN_BEFORE_CMD 0x00000250
1044 static u32 A_MSG_IN_BEFORE_CMD_used[] __attribute((unused)) = {
1048 #define A_MSG_IN_DURING_DATA_IN 0x00000750
1049 static u32 A_MSG_IN_DURING_DATA_IN_used[] __attribute((unused)) = {
1053 #define A_MSG_OUT 0x00000090
1054 static u32 A_MSG_OUT_used[] __attribute((unused)) = {
1057 #define A_MSG_OUT_AFTER_DATA_IN 0x00000590
1058 static u32 A_MSG_OUT_AFTER_DATA_IN_used[] __attribute((unused)) = {
1062 #define A_MessageCount 0x00000000
1063 static u32 A_MessageCount_used[] __attribute((unused)) = {
1067 #define A_MessageLocation 0x00000000
1068 static u32 A_MessageLocation_used[] __attribute((unused)) = {
1072 #define A_NOT_MSG_IN 0x00000030
1073 static u32 A_NOT_MSG_IN_used[] __attribute((unused)) = {
1076 #define A_NOT_MSG_IN_AFTER_STATUS 0x00000430
1077 static u32 A_NOT_MSG_IN_AFTER_STATUS_used[] __attribute((unused)) = {
1081 #define A_NOT_MSG_OUT 0x00000010
1082 static u32 A_NOT_MSG_OUT_used[] __attribute((unused)) = {
1085 #define A_NOT_MSG_OUT_AFTER_SELECTION 0x00000110
1086 static u32 A_NOT_MSG_OUT_AFTER_SELECTION_used[] __attribute((unused)) = {
1090 #define A_PARITY_ERROR_MSG 0x00000009
1091 static u32 A_PARITY_ERROR_MSG_used[] __attribute((unused)) = {
1094 #define A_REJECT_MSG 0x00000007
1095 static u32 A_REJECT_MSG_used[] __attribute((unused)) = {
1098 #define A_REJECT_MSG_BEFORE_CMD 0x00000270
1099 static u32 A_REJECT_MSG_BEFORE_CMD_used[] __attribute((unused)) = {
1102 #define A_REJECT_MSG_R 0x00000070
1103 static u32 A_REJECT_MSG_R_used[] __attribute((unused)) = {
1106 #define A_RESELECTED_DURING_SELECTION 0x00001000
1107 static u32 A_RESELECTED_DURING_SELECTION_used[] __attribute((unused)) = {
1111 #define A_RESELECTION_IDENTIFIED 0x00001003
1112 static u32 A_RESELECTION_IDENTIFIED_used[] __attribute((unused)) = {
1117 #define A_RESTORE_DATA_PTRS_MSG 0x00000003
1118 static u32 A_RESTORE_DATA_PTRS_MSG_used[] __attribute((unused)) = {
1126 #define A_ReceiveMsgAddress 0x00000000
1127 static u32 A_ReceiveMsgAddress_used[] __attribute((unused)) = {
1146 #define A_SAVE_DATA_PTRS_MSG 0x00000002
1147 static u32 A_SAVE_DATA_PTRS_MSG_used[] __attribute((unused)) = {
1155 #define A_SDTR_MSG 0x00000001
1156 static u32 A_SDTR_MSG_used[] __attribute((unused)) = {
1159 #define A_SDTR_MSG_AFTER_CMD 0x00000360
1160 static u32 A_SDTR_MSG_AFTER_CMD_used[] __attribute((unused)) = {
1163 #define A_SDTR_MSG_BEFORE_CMD 0x00000260
1164 static u32 A_SDTR_MSG_BEFORE_CMD_used[] __attribute((unused)) = {
1167 #define A_SDTR_MSG_R 0x00000060
1168 static u32 A_SDTR_MSG_R_used[] __attribute((unused)) = {
1171 #define A_SGScriptStartAddress 0x00000000
1172 static u32 A_SGScriptStartAddress_used[] __attribute((unused)) = {
1177 #define A_SIMPLE_TAG_MSG 0x00000020
1178 static u32 A_SIMPLE_TAG_MSG_used[] __attribute((unused)) = {
1181 #define A_StatusAddress 0x00000000
1182 static u32 A_StatusAddress_used[] __attribute((unused)) = {
1186 #define A_TWO_BYTE_MSG 0x00000020
1187 static u32 A_TWO_BYTE_MSG_used[] __attribute((unused)) = {
1191 #define A_TWO_BYTE_MSG_MASK 0x0000000f
1192 static u32 A_TWO_BYTE_MSG_MASK_used[] __attribute((unused)) = {
1196 #define A_UNEXPECTED_MSG 0x00000040
1197 static u32 A_UNEXPECTED_MSG_used[] __attribute((unused)) = {
1200 #define A_UNEXPECTED_MSG_BEFORE_CMD 0x00000240
1201 static u32 A_UNEXPECTED_MSG_BEFORE_CMD_used[] __attribute((unused)) = {
1204 #define A_UNEXPECTED_PHASE 0x00000020
1205 static u32 A_UNEXPECTED_PHASE_used[] __attribute((unused)) = {
1208 #define A_UNEXPECTED_PHASE_AFTER_CMD 0x00000320
1209 static u32 A_UNEXPECTED_PHASE_AFTER_CMD_used[] __attribute((unused)) = {
1213 #define A_UNEXPECTED_PHASE_AFTER_DATA_IN 0x00000520
1214 static u32 A_UNEXPECTED_PHASE_AFTER_DATA_IN_used[] __attribute((unused)) = {
1218 #define A_UNEXPECTED_PHASE_AFTER_DATA_OUT 0x00000620
1219 static u32 A_UNEXPECTED_PHASE_AFTER_DATA_OUT_used[] __attribute((unused)) = {
1223 #define A_UNEXPECTED_PHASE_BEFORE_CMD 0x00000220
1224 static u32 A_UNEXPECTED_PHASE_BEFORE_CMD_used[] __attribute((unused)) = {
1228 #define A_WDTR_MSG 0x00000003
1229 static u32 A_WDTR_MSG_used[] __attribute((unused)) = {
1232 #define A_WDTR_MSG_AFTER_CMD 0x000003a0
1233 static u32 A_WDTR_MSG_AFTER_CMD_used[] __attribute((unused)) = {
1236 #define A_WDTR_MSG_R 0x000000a0
1237 static u32 A_WDTR_MSG_R_used[] __attribute((unused)) = {
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)) = {
1324 } EXTERNAL_PATCHES[] __attribute((unused)) = {
1327 static u32 INSTRUCTIONS __attribute((unused)) = 149;
1328 static u32 PATCHES __attribute((unused)) = 56;
1329 static u32 EXTERNAL_PATCHES_LEN __attribute((unused)) = 0;