Back to home page

OSCL-LXR

 
 

    


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;