0001 /* DO NOT EDIT - Generated automatically by script_asm.pl */
0002 static u32 SCRIPT[] = {
0003 /*
0004 ; Script for the NCR (or symbios) 53c700 and 53c700-66 chip
0005 ;
0006 ; Copyright (C) 2001 James.Bottomley@HansenPartnership.com
0007 ;;-----------------------------------------------------------------------------
0008 ;;
0009 ;; This program is free software; you can redistribute it and/or modify
0010 ;; it under the terms of the GNU General Public License as published by
0011 ;; the Free Software Foundation; either version 2 of the License, or
0012 ;; (at your option) any later version.
0013 ;;
0014 ;; This program is distributed in the hope that it will be useful,
0015 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
0016 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
0017 ;; GNU General Public License for more details.
0018 ;;
0019 ;; You should have received a copy of the GNU General Public License
0020 ;; along with this program; if not, write to the Free Software
0021 ;; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
0022 ;;
0023 ;;-----------------------------------------------------------------------------
0024 ;
0025 ; This script is designed to be modified for the particular command in
0026 ; operation. The particular variables pertaining to the commands are:
0027 ;
0028 ABSOLUTE Device_ID = 0 ; ID of target for command
0029 ABSOLUTE MessageCount = 0 ; Number of bytes in message
0030 ABSOLUTE MessageLocation = 0 ; Addr of message
0031 ABSOLUTE CommandCount = 0 ; Number of bytes in command
0032 ABSOLUTE CommandAddress = 0 ; Addr of Command
0033 ABSOLUTE StatusAddress = 0 ; Addr to receive status return
0034 ABSOLUTE ReceiveMsgAddress = 0 ; Addr to receive msg
0035 ;
0036 ; This is the magic component for handling scatter-gather. Each of the
0037 ; SG components is preceded by a script fragment which moves the
0038 ; necessary amount of data and jumps to the next SG segment. The final
0039 ; SG segment jumps back to . However, this address is the first SG script
0040 ; segment.
0041 ;
0042 ABSOLUTE SGScriptStartAddress = 0
0043
0044 ; The following represent status interrupts we use 3 hex digits for
0045 ; this: 0xPRS where
0046
0047 ; P:
0048 ABSOLUTE AFTER_SELECTION = 0x100
0049 ABSOLUTE BEFORE_CMD = 0x200
0050 ABSOLUTE AFTER_CMD = 0x300
0051 ABSOLUTE AFTER_STATUS = 0x400
0052 ABSOLUTE AFTER_DATA_IN = 0x500
0053 ABSOLUTE AFTER_DATA_OUT = 0x600
0054 ABSOLUTE DURING_DATA_IN = 0x700
0055
0056 ; R:
0057 ABSOLUTE NOT_MSG_OUT = 0x10
0058 ABSOLUTE UNEXPECTED_PHASE = 0x20
0059 ABSOLUTE NOT_MSG_IN = 0x30
0060 ABSOLUTE UNEXPECTED_MSG = 0x40
0061 ABSOLUTE MSG_IN = 0x50
0062 ABSOLUTE SDTR_MSG_R = 0x60
0063 ABSOLUTE REJECT_MSG_R = 0x70
0064 ABSOLUTE DISCONNECT = 0x80
0065 ABSOLUTE MSG_OUT = 0x90
0066 ABSOLUTE WDTR_MSG_R = 0xA0
0067
0068 ; S:
0069 ABSOLUTE GOOD_STATUS = 0x1
0070
0071 ; Combinations, since the script assembler can't process |
0072 ABSOLUTE NOT_MSG_OUT_AFTER_SELECTION = 0x110
0073 ABSOLUTE UNEXPECTED_PHASE_BEFORE_CMD = 0x220
0074 ABSOLUTE UNEXPECTED_PHASE_AFTER_CMD = 0x320
0075 ABSOLUTE NOT_MSG_IN_AFTER_STATUS = 0x430
0076 ABSOLUTE GOOD_STATUS_AFTER_STATUS = 0x401
0077 ABSOLUTE UNEXPECTED_PHASE_AFTER_DATA_IN = 0x520
0078 ABSOLUTE UNEXPECTED_PHASE_AFTER_DATA_OUT = 0x620
0079 ABSOLUTE UNEXPECTED_MSG_BEFORE_CMD = 0x240
0080 ABSOLUTE MSG_IN_BEFORE_CMD = 0x250
0081 ABSOLUTE MSG_IN_AFTER_CMD = 0x350
0082 ABSOLUTE SDTR_MSG_BEFORE_CMD = 0x260
0083 ABSOLUTE REJECT_MSG_BEFORE_CMD = 0x270
0084 ABSOLUTE DISCONNECT_AFTER_CMD = 0x380
0085 ABSOLUTE SDTR_MSG_AFTER_CMD = 0x360
0086 ABSOLUTE WDTR_MSG_AFTER_CMD = 0x3A0
0087 ABSOLUTE MSG_IN_AFTER_STATUS = 0x440
0088 ABSOLUTE DISCONNECT_AFTER_DATA = 0x580
0089 ABSOLUTE MSG_IN_AFTER_DATA_IN = 0x550
0090 ABSOLUTE MSG_IN_AFTER_DATA_OUT = 0x650
0091 ABSOLUTE MSG_OUT_AFTER_DATA_IN = 0x590
0092 ABSOLUTE DATA_IN_AFTER_DATA_IN = 0x5a0
0093 ABSOLUTE MSG_IN_DURING_DATA_IN = 0x750
0094 ABSOLUTE DISCONNECT_DURING_DATA = 0x780
0095
0096 ;
0097 ; Other interrupt conditions
0098 ;
0099 ABSOLUTE RESELECTED_DURING_SELECTION = 0x1000
0100 ABSOLUTE COMPLETED_SELECTION_AS_TARGET = 0x1001
0101 ABSOLUTE RESELECTION_IDENTIFIED = 0x1003
0102 ;
0103 ; Fatal interrupt conditions. If you add to this, also add to the
0104 ; array of corresponding messages
0105 ;
0106 ABSOLUTE FATAL = 0x2000
0107 ABSOLUTE FATAL_UNEXPECTED_RESELECTION_MSG = 0x2000
0108 ABSOLUTE FATAL_SEND_MSG = 0x2001
0109 ABSOLUTE FATAL_NOT_MSG_IN_AFTER_SELECTION = 0x2002
0110 ABSOLUTE FATAL_ILLEGAL_MSG_LENGTH = 0x2003
0111
0112 ABSOLUTE DEBUG_INTERRUPT = 0x3000
0113 ABSOLUTE DEBUG_INTERRUPT1 = 0x3001
0114 ABSOLUTE DEBUG_INTERRUPT2 = 0x3002
0115 ABSOLUTE DEBUG_INTERRUPT3 = 0x3003
0116 ABSOLUTE DEBUG_INTERRUPT4 = 0x3004
0117 ABSOLUTE DEBUG_INTERRUPT5 = 0x3005
0118 ABSOLUTE DEBUG_INTERRUPT6 = 0x3006
0119
0120
0121 ;
0122 ; SCSI Messages we interpret in the script
0123 ;
0124 ABSOLUTE COMMAND_COMPLETE_MSG = 0x00
0125 ABSOLUTE EXTENDED_MSG = 0x01
0126 ABSOLUTE SDTR_MSG = 0x01
0127 ABSOLUTE SAVE_DATA_PTRS_MSG = 0x02
0128 ABSOLUTE RESTORE_DATA_PTRS_MSG = 0x03
0129 ABSOLUTE WDTR_MSG = 0x03
0130 ABSOLUTE DISCONNECT_MSG = 0x04
0131 ABSOLUTE REJECT_MSG = 0x07
0132 ABSOLUTE PARITY_ERROR_MSG = 0x09
0133 ABSOLUTE SIMPLE_TAG_MSG = 0x20
0134 ABSOLUTE IDENTIFY_MSG = 0x80
0135 ABSOLUTE IDENTIFY_MSG_MASK = 0x7F
0136 ABSOLUTE TWO_BYTE_MSG = 0x20
0137 ABSOLUTE TWO_BYTE_MSG_MASK = 0x0F
0138
0139 ; This is where the script begins
0140
0141 ENTRY StartUp
0142
0143 StartUp:
0144 SELECT ATN Device_ID, Reselect
0145
0146 at 0x00000000 : */ 0x41000000,0x00000020,
0147 /*
0148 JUMP Finish, WHEN STATUS
0149
0150 at 0x00000002 : */ 0x830b0000,0x00000460,
0151 /*
0152 JUMP SendIdentifyMsg, IF MSG_OUT
0153
0154 at 0x00000004 : */ 0x860a0000,0x000001b0,
0155 /*
0156 INT NOT_MSG_OUT_AFTER_SELECTION
0157
0158 at 0x00000006 : */ 0x98080000,0x00000110,
0159 /*
0160
0161 Reselect:
0162 WAIT RESELECT SelectedAsTarget
0163
0164 at 0x00000008 : */ 0x50000000,0x00000058,
0165 /*
0166 INT RESELECTED_DURING_SELECTION, WHEN MSG_IN
0167
0168 at 0x0000000a : */ 0x9f0b0000,0x00001000,
0169 /*
0170 INT FATAL_NOT_MSG_IN_AFTER_SELECTION
0171
0172 at 0x0000000c : */ 0x98080000,0x00002002,
0173 /*
0174
0175 ENTRY GetReselectionData
0176 GetReselectionData:
0177 MOVE 1, ReceiveMsgAddress, WHEN MSG_IN
0178
0179 at 0x0000000e : */ 0x0f000001,0x00000000,
0180 /*
0181 INT RESELECTION_IDENTIFIED
0182
0183 at 0x00000010 : */ 0x98080000,0x00001003,
0184 /*
0185
0186 ENTRY GetReselectionWithTag
0187 GetReselectionWithTag:
0188 MOVE 3, ReceiveMsgAddress, WHEN MSG_IN
0189
0190 at 0x00000012 : */ 0x0f000003,0x00000000,
0191 /*
0192 INT RESELECTION_IDENTIFIED
0193
0194 at 0x00000014 : */ 0x98080000,0x00001003,
0195 /*
0196
0197 ENTRY SelectedAsTarget
0198 SelectedAsTarget:
0199 ; Basically tell the selecting device that there's nothing here
0200 SET TARGET
0201
0202 at 0x00000016 : */ 0x58000200,0x00000000,
0203 /*
0204 DISCONNECT
0205
0206 at 0x00000018 : */ 0x48000000,0x00000000,
0207 /*
0208 CLEAR TARGET
0209
0210 at 0x0000001a : */ 0x60000200,0x00000000,
0211 /*
0212 INT COMPLETED_SELECTION_AS_TARGET
0213
0214 at 0x0000001c : */ 0x98080000,0x00001001,
0215 /*
0216 ;
0217 ; These are the messaging entries
0218 ;
0219 ; Send a message. Message count should be correctly patched
0220 ENTRY SendMessage
0221 SendMessage:
0222 MOVE MessageCount, MessageLocation, WHEN MSG_OUT
0223
0224 at 0x0000001e : */ 0x0e000000,0x00000000,
0225 /*
0226 ResumeSendMessage:
0227 RETURN, WHEN NOT MSG_OUT
0228
0229 at 0x00000020 : */ 0x96030000,0x00000000,
0230 /*
0231 INT FATAL_SEND_MSG
0232
0233 at 0x00000022 : */ 0x98080000,0x00002001,
0234 /*
0235
0236 ENTRY SendMessagePhaseMismatch
0237 SendMessagePhaseMismatch:
0238 CLEAR ACK
0239
0240 at 0x00000024 : */ 0x60000040,0x00000000,
0241 /*
0242 JUMP ResumeSendMessage
0243
0244 at 0x00000026 : */ 0x80080000,0x00000080,
0245 /*
0246 ;
0247 ; Receive a message. Need to identify the message to
0248 ; receive it correctly
0249 ENTRY ReceiveMessage
0250 ReceiveMessage:
0251 MOVE 1, ReceiveMsgAddress, WHEN MSG_IN
0252
0253 at 0x00000028 : */ 0x0f000001,0x00000000,
0254 /*
0255 ;
0256 ; Use this entry if we've just tried to look at the first byte
0257 ; of the message and want to process it further
0258 ProcessReceiveMessage:
0259 JUMP ReceiveExtendedMessage, IF EXTENDED_MSG
0260
0261 at 0x0000002a : */ 0x800c0001,0x000000d0,
0262 /*
0263 RETURN, IF NOT TWO_BYTE_MSG, AND MASK TWO_BYTE_MSG_MASK
0264
0265 at 0x0000002c : */ 0x90040f20,0x00000000,
0266 /*
0267 CLEAR ACK
0268
0269 at 0x0000002e : */ 0x60000040,0x00000000,
0270 /*
0271 MOVE 1, ReceiveMsgAddress + 1, WHEN MSG_IN
0272
0273 at 0x00000030 : */ 0x0f000001,0x00000001,
0274 /*
0275 RETURN
0276
0277 at 0x00000032 : */ 0x90080000,0x00000000,
0278 /*
0279 ReceiveExtendedMessage:
0280 CLEAR ACK
0281
0282 at 0x00000034 : */ 0x60000040,0x00000000,
0283 /*
0284 MOVE 1, ReceiveMsgAddress + 1, WHEN MSG_IN
0285
0286 at 0x00000036 : */ 0x0f000001,0x00000001,
0287 /*
0288 JUMP Receive1Byte, IF 0x01
0289
0290 at 0x00000038 : */ 0x800c0001,0x00000110,
0291 /*
0292 JUMP Receive2Byte, IF 0x02
0293
0294 at 0x0000003a : */ 0x800c0002,0x00000128,
0295 /*
0296 JUMP Receive3Byte, IF 0x03
0297
0298 at 0x0000003c : */ 0x800c0003,0x00000140,
0299 /*
0300 JUMP Receive4Byte, IF 0x04
0301
0302 at 0x0000003e : */ 0x800c0004,0x00000158,
0303 /*
0304 JUMP Receive5Byte, IF 0x05
0305
0306 at 0x00000040 : */ 0x800c0005,0x00000170,
0307 /*
0308 INT FATAL_ILLEGAL_MSG_LENGTH
0309
0310 at 0x00000042 : */ 0x98080000,0x00002003,
0311 /*
0312 Receive1Byte:
0313 CLEAR ACK
0314
0315 at 0x00000044 : */ 0x60000040,0x00000000,
0316 /*
0317 MOVE 1, ReceiveMsgAddress + 2, WHEN MSG_IN
0318
0319 at 0x00000046 : */ 0x0f000001,0x00000002,
0320 /*
0321 RETURN
0322
0323 at 0x00000048 : */ 0x90080000,0x00000000,
0324 /*
0325 Receive2Byte:
0326 CLEAR ACK
0327
0328 at 0x0000004a : */ 0x60000040,0x00000000,
0329 /*
0330 MOVE 2, ReceiveMsgAddress + 2, WHEN MSG_IN
0331
0332 at 0x0000004c : */ 0x0f000002,0x00000002,
0333 /*
0334 RETURN
0335
0336 at 0x0000004e : */ 0x90080000,0x00000000,
0337 /*
0338 Receive3Byte:
0339 CLEAR ACK
0340
0341 at 0x00000050 : */ 0x60000040,0x00000000,
0342 /*
0343 MOVE 3, ReceiveMsgAddress + 2, WHEN MSG_IN
0344
0345 at 0x00000052 : */ 0x0f000003,0x00000002,
0346 /*
0347 RETURN
0348
0349 at 0x00000054 : */ 0x90080000,0x00000000,
0350 /*
0351 Receive4Byte:
0352 CLEAR ACK
0353
0354 at 0x00000056 : */ 0x60000040,0x00000000,
0355 /*
0356 MOVE 4, ReceiveMsgAddress + 2, WHEN MSG_IN
0357
0358 at 0x00000058 : */ 0x0f000004,0x00000002,
0359 /*
0360 RETURN
0361
0362 at 0x0000005a : */ 0x90080000,0x00000000,
0363 /*
0364 Receive5Byte:
0365 CLEAR ACK
0366
0367 at 0x0000005c : */ 0x60000040,0x00000000,
0368 /*
0369 MOVE 5, ReceiveMsgAddress + 2, WHEN MSG_IN
0370
0371 at 0x0000005e : */ 0x0f000005,0x00000002,
0372 /*
0373 RETURN
0374
0375 at 0x00000060 : */ 0x90080000,0x00000000,
0376 /*
0377 ;
0378 ; Come here from the message processor to ignore the message
0379 ;
0380 ENTRY IgnoreMessage
0381 IgnoreMessage:
0382 CLEAR ACK
0383
0384 at 0x00000062 : */ 0x60000040,0x00000000,
0385 /*
0386 RETURN
0387
0388 at 0x00000064 : */ 0x90080000,0x00000000,
0389 /*
0390 ;
0391 ; Come here to send a reply to a message
0392 ;
0393 ENTRY SendMessageWithATN
0394 SendMessageWithATN:
0395 SET ATN
0396
0397 at 0x00000066 : */ 0x58000008,0x00000000,
0398 /*
0399 CLEAR ACK
0400
0401 at 0x00000068 : */ 0x60000040,0x00000000,
0402 /*
0403 JUMP SendMessage
0404
0405 at 0x0000006a : */ 0x80080000,0x00000078,
0406 /*
0407
0408 SendIdentifyMsg:
0409 CALL SendMessage
0410
0411 at 0x0000006c : */ 0x88080000,0x00000078,
0412 /*
0413 CLEAR ATN
0414
0415 at 0x0000006e : */ 0x60000008,0x00000000,
0416 /*
0417
0418 IgnoreMsgBeforeCommand:
0419 CLEAR ACK
0420
0421 at 0x00000070 : */ 0x60000040,0x00000000,
0422 /*
0423 ENTRY SendCommand
0424 SendCommand:
0425 JUMP Finish, WHEN STATUS
0426
0427 at 0x00000072 : */ 0x830b0000,0x00000460,
0428 /*
0429 JUMP MsgInBeforeCommand, IF MSG_IN
0430
0431 at 0x00000074 : */ 0x870a0000,0x000002c0,
0432 /*
0433 INT UNEXPECTED_PHASE_BEFORE_CMD, IF NOT CMD
0434
0435 at 0x00000076 : */ 0x9a020000,0x00000220,
0436 /*
0437 MOVE CommandCount, CommandAddress, WHEN CMD
0438
0439 at 0x00000078 : */ 0x0a000000,0x00000000,
0440 /*
0441 ResumeSendCommand:
0442 JUMP Finish, WHEN STATUS
0443
0444 at 0x0000007a : */ 0x830b0000,0x00000460,
0445 /*
0446 JUMP MsgInAfterCmd, IF MSG_IN
0447
0448 at 0x0000007c : */ 0x870a0000,0x00000248,
0449 /*
0450 JUMP DataIn, IF DATA_IN
0451
0452 at 0x0000007e : */ 0x810a0000,0x000002f8,
0453 /*
0454 JUMP DataOut, IF DATA_OUT
0455
0456 at 0x00000080 : */ 0x800a0000,0x00000338,
0457 /*
0458 INT UNEXPECTED_PHASE_AFTER_CMD
0459
0460 at 0x00000082 : */ 0x98080000,0x00000320,
0461 /*
0462
0463 IgnoreMsgDuringData:
0464 CLEAR ACK
0465
0466 at 0x00000084 : */ 0x60000040,0x00000000,
0467 /*
0468 ; fall through to MsgInDuringData
0469
0470 Entry MsgInDuringData
0471 MsgInDuringData:
0472 ;
0473 ; Could be we have nothing more to transfer
0474 ;
0475 JUMP Finish, WHEN STATUS
0476
0477 at 0x00000086 : */ 0x830b0000,0x00000460,
0478 /*
0479 MOVE 1, ReceiveMsgAddress, WHEN MSG_IN
0480
0481 at 0x00000088 : */ 0x0f000001,0x00000000,
0482 /*
0483 JUMP DisconnectDuringDataIn, IF DISCONNECT_MSG
0484
0485 at 0x0000008a : */ 0x800c0004,0x00000398,
0486 /*
0487 JUMP IgnoreMsgDuringData, IF SAVE_DATA_PTRS_MSG
0488
0489 at 0x0000008c : */ 0x800c0002,0x00000210,
0490 /*
0491 JUMP IgnoreMsgDuringData, IF RESTORE_DATA_PTRS_MSG
0492
0493 at 0x0000008e : */ 0x800c0003,0x00000210,
0494 /*
0495 INT MSG_IN_DURING_DATA_IN
0496
0497 at 0x00000090 : */ 0x98080000,0x00000750,
0498 /*
0499
0500 MsgInAfterCmd:
0501 MOVE 1, ReceiveMsgAddress, WHEN MSG_IN
0502
0503 at 0x00000092 : */ 0x0f000001,0x00000000,
0504 /*
0505 JUMP DisconnectAfterCmd, IF DISCONNECT_MSG
0506
0507 at 0x00000094 : */ 0x800c0004,0x00000298,
0508 /*
0509 JUMP IgnoreMsgInAfterCmd, IF SAVE_DATA_PTRS_MSG
0510
0511 at 0x00000096 : */ 0x800c0002,0x00000288,
0512 /*
0513 JUMP IgnoreMsgInAfterCmd, IF RESTORE_DATA_PTRS_MSG
0514
0515 at 0x00000098 : */ 0x800c0003,0x00000288,
0516 /*
0517 CALL ProcessReceiveMessage
0518
0519 at 0x0000009a : */ 0x88080000,0x000000a8,
0520 /*
0521 INT MSG_IN_AFTER_CMD
0522
0523 at 0x0000009c : */ 0x98080000,0x00000350,
0524 /*
0525 CLEAR ACK
0526
0527 at 0x0000009e : */ 0x60000040,0x00000000,
0528 /*
0529 JUMP ResumeSendCommand
0530
0531 at 0x000000a0 : */ 0x80080000,0x000001e8,
0532 /*
0533
0534 IgnoreMsgInAfterCmd:
0535 CLEAR ACK
0536
0537 at 0x000000a2 : */ 0x60000040,0x00000000,
0538 /*
0539 JUMP ResumeSendCommand
0540
0541 at 0x000000a4 : */ 0x80080000,0x000001e8,
0542 /*
0543
0544 DisconnectAfterCmd:
0545 CLEAR ACK
0546
0547 at 0x000000a6 : */ 0x60000040,0x00000000,
0548 /*
0549 WAIT DISCONNECT
0550
0551 at 0x000000a8 : */ 0x48000000,0x00000000,
0552 /*
0553 ENTRY Disconnect1
0554 Disconnect1:
0555 INT DISCONNECT_AFTER_CMD
0556
0557 at 0x000000aa : */ 0x98080000,0x00000380,
0558 /*
0559 ENTRY Disconnect2
0560 Disconnect2:
0561 ; We return here after a reselection
0562 CLEAR ACK
0563
0564 at 0x000000ac : */ 0x60000040,0x00000000,
0565 /*
0566 JUMP ResumeSendCommand
0567
0568 at 0x000000ae : */ 0x80080000,0x000001e8,
0569 /*
0570
0571 MsgInBeforeCommand:
0572 MOVE 1, ReceiveMsgAddress, WHEN MSG_IN
0573
0574 at 0x000000b0 : */ 0x0f000001,0x00000000,
0575 /*
0576 JUMP IgnoreMsgBeforeCommand, IF SAVE_DATA_PTRS_MSG
0577
0578 at 0x000000b2 : */ 0x800c0002,0x000001c0,
0579 /*
0580 JUMP IgnoreMsgBeforeCommand, IF RESTORE_DATA_PTRS_MSG
0581
0582 at 0x000000b4 : */ 0x800c0003,0x000001c0,
0583 /*
0584 CALL ProcessReceiveMessage
0585
0586 at 0x000000b6 : */ 0x88080000,0x000000a8,
0587 /*
0588 INT MSG_IN_BEFORE_CMD
0589
0590 at 0x000000b8 : */ 0x98080000,0x00000250,
0591 /*
0592 CLEAR ACK
0593
0594 at 0x000000ba : */ 0x60000040,0x00000000,
0595 /*
0596 JUMP SendCommand
0597
0598 at 0x000000bc : */ 0x80080000,0x000001c8,
0599 /*
0600
0601 DataIn:
0602 CALL SGScriptStartAddress
0603
0604 at 0x000000be : */ 0x88080000,0x00000000,
0605 /*
0606 ResumeDataIn:
0607 JUMP Finish, WHEN STATUS
0608
0609 at 0x000000c0 : */ 0x830b0000,0x00000460,
0610 /*
0611 JUMP MsgInAfterDataIn, IF MSG_IN
0612
0613 at 0x000000c2 : */ 0x870a0000,0x00000358,
0614 /*
0615 JUMP DataInAfterDataIn, if DATA_IN
0616
0617 at 0x000000c4 : */ 0x810a0000,0x00000328,
0618 /*
0619 INT MSG_OUT_AFTER_DATA_IN, if MSG_OUT
0620
0621 at 0x000000c6 : */ 0x9e0a0000,0x00000590,
0622 /*
0623 INT UNEXPECTED_PHASE_AFTER_DATA_IN
0624
0625 at 0x000000c8 : */ 0x98080000,0x00000520,
0626 /*
0627
0628 DataInAfterDataIn:
0629 INT DATA_IN_AFTER_DATA_IN
0630
0631 at 0x000000ca : */ 0x98080000,0x000005a0,
0632 /*
0633 JUMP ResumeDataIn
0634
0635 at 0x000000cc : */ 0x80080000,0x00000300,
0636 /*
0637
0638 DataOut:
0639 CALL SGScriptStartAddress
0640
0641 at 0x000000ce : */ 0x88080000,0x00000000,
0642 /*
0643 ResumeDataOut:
0644 JUMP Finish, WHEN STATUS
0645
0646 at 0x000000d0 : */ 0x830b0000,0x00000460,
0647 /*
0648 JUMP MsgInAfterDataOut, IF MSG_IN
0649
0650 at 0x000000d2 : */ 0x870a0000,0x000003e8,
0651 /*
0652 INT UNEXPECTED_PHASE_AFTER_DATA_OUT
0653
0654 at 0x000000d4 : */ 0x98080000,0x00000620,
0655 /*
0656
0657 MsgInAfterDataIn:
0658 MOVE 1, ReceiveMsgAddress, WHEN MSG_IN
0659
0660 at 0x000000d6 : */ 0x0f000001,0x00000000,
0661 /*
0662 JUMP DisconnectAfterDataIn, IF DISCONNECT_MSG
0663
0664 at 0x000000d8 : */ 0x800c0004,0x000003c0,
0665 /*
0666 JUMP IgnoreMsgAfterData, IF SAVE_DATA_PTRS_MSG
0667
0668 at 0x000000da : */ 0x800c0002,0x00000428,
0669 /*
0670 JUMP IgnoreMsgAfterData, IF RESTORE_DATA_PTRS_MSG
0671
0672 at 0x000000dc : */ 0x800c0003,0x00000428,
0673 /*
0674 CALL ProcessReceiveMessage
0675
0676 at 0x000000de : */ 0x88080000,0x000000a8,
0677 /*
0678 INT MSG_IN_AFTER_DATA_IN
0679
0680 at 0x000000e0 : */ 0x98080000,0x00000550,
0681 /*
0682 CLEAR ACK
0683
0684 at 0x000000e2 : */ 0x60000040,0x00000000,
0685 /*
0686 JUMP ResumeDataIn
0687
0688 at 0x000000e4 : */ 0x80080000,0x00000300,
0689 /*
0690
0691 DisconnectDuringDataIn:
0692 CLEAR ACK
0693
0694 at 0x000000e6 : */ 0x60000040,0x00000000,
0695 /*
0696 WAIT DISCONNECT
0697
0698 at 0x000000e8 : */ 0x48000000,0x00000000,
0699 /*
0700 ENTRY Disconnect3
0701 Disconnect3:
0702 INT DISCONNECT_DURING_DATA
0703
0704 at 0x000000ea : */ 0x98080000,0x00000780,
0705 /*
0706 ENTRY Disconnect4
0707 Disconnect4:
0708 ; we return here after a reselection
0709 CLEAR ACK
0710
0711 at 0x000000ec : */ 0x60000040,0x00000000,
0712 /*
0713 JUMP ResumeSendCommand
0714
0715 at 0x000000ee : */ 0x80080000,0x000001e8,
0716 /*
0717
0718
0719 DisconnectAfterDataIn:
0720 CLEAR ACK
0721
0722 at 0x000000f0 : */ 0x60000040,0x00000000,
0723 /*
0724 WAIT DISCONNECT
0725
0726 at 0x000000f2 : */ 0x48000000,0x00000000,
0727 /*
0728 ENTRY Disconnect5
0729 Disconnect5:
0730 INT DISCONNECT_AFTER_DATA
0731
0732 at 0x000000f4 : */ 0x98080000,0x00000580,
0733 /*
0734 ENTRY Disconnect6
0735 Disconnect6:
0736 ; we return here after a reselection
0737 CLEAR ACK
0738
0739 at 0x000000f6 : */ 0x60000040,0x00000000,
0740 /*
0741 JUMP ResumeDataIn
0742
0743 at 0x000000f8 : */ 0x80080000,0x00000300,
0744 /*
0745
0746 MsgInAfterDataOut:
0747 MOVE 1, ReceiveMsgAddress, WHEN MSG_IN
0748
0749 at 0x000000fa : */ 0x0f000001,0x00000000,
0750 /*
0751 JUMP DisconnectAfterDataOut, if DISCONNECT_MSG
0752
0753 at 0x000000fc : */ 0x800c0004,0x00000438,
0754 /*
0755 JUMP IgnoreMsgAfterData, IF SAVE_DATA_PTRS_MSG
0756
0757 at 0x000000fe : */ 0x800c0002,0x00000428,
0758 /*
0759 JUMP IgnoreMsgAfterData, IF RESTORE_DATA_PTRS_MSG
0760
0761 at 0x00000100 : */ 0x800c0003,0x00000428,
0762 /*
0763 CALL ProcessReceiveMessage
0764
0765 at 0x00000102 : */ 0x88080000,0x000000a8,
0766 /*
0767 INT MSG_IN_AFTER_DATA_OUT
0768
0769 at 0x00000104 : */ 0x98080000,0x00000650,
0770 /*
0771 CLEAR ACK
0772
0773 at 0x00000106 : */ 0x60000040,0x00000000,
0774 /*
0775 JUMP ResumeDataOut
0776
0777 at 0x00000108 : */ 0x80080000,0x00000340,
0778 /*
0779
0780 IgnoreMsgAfterData:
0781 CLEAR ACK
0782
0783 at 0x0000010a : */ 0x60000040,0x00000000,
0784 /*
0785 ; Data in and out do the same thing on resume, so pick one
0786 JUMP ResumeDataIn
0787
0788 at 0x0000010c : */ 0x80080000,0x00000300,
0789 /*
0790
0791 DisconnectAfterDataOut:
0792 CLEAR ACK
0793
0794 at 0x0000010e : */ 0x60000040,0x00000000,
0795 /*
0796 WAIT DISCONNECT
0797
0798 at 0x00000110 : */ 0x48000000,0x00000000,
0799 /*
0800 ENTRY Disconnect7
0801 Disconnect7:
0802 INT DISCONNECT_AFTER_DATA
0803
0804 at 0x00000112 : */ 0x98080000,0x00000580,
0805 /*
0806 ENTRY Disconnect8
0807 Disconnect8:
0808 ; we return here after a reselection
0809 CLEAR ACK
0810
0811 at 0x00000114 : */ 0x60000040,0x00000000,
0812 /*
0813 JUMP ResumeDataOut
0814
0815 at 0x00000116 : */ 0x80080000,0x00000340,
0816 /*
0817
0818 Finish:
0819 MOVE 1, StatusAddress, WHEN STATUS
0820
0821 at 0x00000118 : */ 0x0b000001,0x00000000,
0822 /*
0823 INT NOT_MSG_IN_AFTER_STATUS, WHEN NOT MSG_IN
0824
0825 at 0x0000011a : */ 0x9f030000,0x00000430,
0826 /*
0827 MOVE 1, ReceiveMsgAddress, WHEN MSG_IN
0828
0829 at 0x0000011c : */ 0x0f000001,0x00000000,
0830 /*
0831 JUMP FinishCommandComplete, IF COMMAND_COMPLETE_MSG
0832
0833 at 0x0000011e : */ 0x800c0000,0x00000490,
0834 /*
0835 CALL ProcessReceiveMessage
0836
0837 at 0x00000120 : */ 0x88080000,0x000000a8,
0838 /*
0839 INT MSG_IN_AFTER_STATUS
0840
0841 at 0x00000122 : */ 0x98080000,0x00000440,
0842 /*
0843 ENTRY FinishCommandComplete
0844 FinishCommandComplete:
0845 CLEAR ACK
0846
0847 at 0x00000124 : */ 0x60000040,0x00000000,
0848 /*
0849 WAIT DISCONNECT
0850
0851 at 0x00000126 : */ 0x48000000,0x00000000,
0852 /*
0853 ENTRY Finish1
0854 Finish1:
0855 INT GOOD_STATUS_AFTER_STATUS
0856
0857 at 0x00000128 : */ 0x98080000,0x00000401,
0858 };
0859
0860 #define A_AFTER_CMD 0x00000300
0861 static u32 A_AFTER_CMD_used[] __attribute((unused)) = {
0862 };
0863
0864 #define A_AFTER_DATA_IN 0x00000500
0865 static u32 A_AFTER_DATA_IN_used[] __attribute((unused)) = {
0866 };
0867
0868 #define A_AFTER_DATA_OUT 0x00000600
0869 static u32 A_AFTER_DATA_OUT_used[] __attribute((unused)) = {
0870 };
0871
0872 #define A_AFTER_SELECTION 0x00000100
0873 static u32 A_AFTER_SELECTION_used[] __attribute((unused)) = {
0874 };
0875
0876 #define A_AFTER_STATUS 0x00000400
0877 static u32 A_AFTER_STATUS_used[] __attribute((unused)) = {
0878 };
0879
0880 #define A_BEFORE_CMD 0x00000200
0881 static u32 A_BEFORE_CMD_used[] __attribute((unused)) = {
0882 };
0883
0884 #define A_COMMAND_COMPLETE_MSG 0x00000000
0885 static u32 A_COMMAND_COMPLETE_MSG_used[] __attribute((unused)) = {
0886 0x0000011e,
0887 };
0888
0889 #define A_COMPLETED_SELECTION_AS_TARGET 0x00001001
0890 static u32 A_COMPLETED_SELECTION_AS_TARGET_used[] __attribute((unused)) = {
0891 0x0000001d,
0892 };
0893
0894 #define A_CommandAddress 0x00000000
0895 static u32 A_CommandAddress_used[] __attribute((unused)) = {
0896 0x00000079,
0897 };
0898
0899 #define A_CommandCount 0x00000000
0900 static u32 A_CommandCount_used[] __attribute((unused)) = {
0901 0x00000078,
0902 };
0903
0904 #define A_DATA_IN_AFTER_DATA_IN 0x000005a0
0905 static u32 A_DATA_IN_AFTER_DATA_IN_used[] __attribute((unused)) = {
0906 0x000000cb,
0907 };
0908
0909 #define A_DEBUG_INTERRUPT 0x00003000
0910 static u32 A_DEBUG_INTERRUPT_used[] __attribute((unused)) = {
0911 };
0912
0913 #define A_DEBUG_INTERRUPT1 0x00003001
0914 static u32 A_DEBUG_INTERRUPT1_used[] __attribute((unused)) = {
0915 };
0916
0917 #define A_DEBUG_INTERRUPT2 0x00003002
0918 static u32 A_DEBUG_INTERRUPT2_used[] __attribute((unused)) = {
0919 };
0920
0921 #define A_DEBUG_INTERRUPT3 0x00003003
0922 static u32 A_DEBUG_INTERRUPT3_used[] __attribute((unused)) = {
0923 };
0924
0925 #define A_DEBUG_INTERRUPT4 0x00003004
0926 static u32 A_DEBUG_INTERRUPT4_used[] __attribute((unused)) = {
0927 };
0928
0929 #define A_DEBUG_INTERRUPT5 0x00003005
0930 static u32 A_DEBUG_INTERRUPT5_used[] __attribute((unused)) = {
0931 };
0932
0933 #define A_DEBUG_INTERRUPT6 0x00003006
0934 static u32 A_DEBUG_INTERRUPT6_used[] __attribute((unused)) = {
0935 };
0936
0937 #define A_DISCONNECT 0x00000080
0938 static u32 A_DISCONNECT_used[] __attribute((unused)) = {
0939 };
0940
0941 #define A_DISCONNECT_AFTER_CMD 0x00000380
0942 static u32 A_DISCONNECT_AFTER_CMD_used[] __attribute((unused)) = {
0943 0x000000ab,
0944 };
0945
0946 #define A_DISCONNECT_AFTER_DATA 0x00000580
0947 static u32 A_DISCONNECT_AFTER_DATA_used[] __attribute((unused)) = {
0948 0x000000f5,
0949 0x00000113,
0950 };
0951
0952 #define A_DISCONNECT_DURING_DATA 0x00000780
0953 static u32 A_DISCONNECT_DURING_DATA_used[] __attribute((unused)) = {
0954 0x000000eb,
0955 };
0956
0957 #define A_DISCONNECT_MSG 0x00000004
0958 static u32 A_DISCONNECT_MSG_used[] __attribute((unused)) = {
0959 0x0000008a,
0960 0x00000094,
0961 0x000000d8,
0962 0x000000fc,
0963 };
0964
0965 #define A_DURING_DATA_IN 0x00000700
0966 static u32 A_DURING_DATA_IN_used[] __attribute((unused)) = {
0967 };
0968
0969 #define A_Device_ID 0x00000000
0970 static u32 A_Device_ID_used[] __attribute((unused)) = {
0971 0x00000000,
0972 };
0973
0974 #define A_EXTENDED_MSG 0x00000001
0975 static u32 A_EXTENDED_MSG_used[] __attribute((unused)) = {
0976 0x0000002a,
0977 };
0978
0979 #define A_FATAL 0x00002000
0980 static u32 A_FATAL_used[] __attribute((unused)) = {
0981 };
0982
0983 #define A_FATAL_ILLEGAL_MSG_LENGTH 0x00002003
0984 static u32 A_FATAL_ILLEGAL_MSG_LENGTH_used[] __attribute((unused)) = {
0985 0x00000043,
0986 };
0987
0988 #define A_FATAL_NOT_MSG_IN_AFTER_SELECTION 0x00002002
0989 static u32 A_FATAL_NOT_MSG_IN_AFTER_SELECTION_used[] __attribute((unused)) = {
0990 0x0000000d,
0991 };
0992
0993 #define A_FATAL_SEND_MSG 0x00002001
0994 static u32 A_FATAL_SEND_MSG_used[] __attribute((unused)) = {
0995 0x00000023,
0996 };
0997
0998 #define A_FATAL_UNEXPECTED_RESELECTION_MSG 0x00002000
0999 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;