brintos

brintos / linux-shallow public Read only

0
0
Text · 28.2 KiB · aa623da Raw
1330 lines · plain
1/* DO NOT EDIT - Generated automatically by script_asm.pl */2static u32 SCRIPT[] = {3/*4; Script for the NCR (or symbios) 53c700 and 53c700-66 chip5;6; Copyright (C) 2001 James.Bottomley@HansenPartnership.com7;;-----------------------------------------------------------------------------8;;  9;;  This program is free software; you can redistribute it and/or modify10;;  it under the terms of the GNU General Public License as published by11;;  the Free Software Foundation; either version 2 of the License, or12;;  (at your option) any later version.13;;14;;  This program is distributed in the hope that it will be useful,15;;  but WITHOUT ANY WARRANTY; without even the implied warranty of16;;  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the17;;  GNU General Public License for more details.18;;19;;  You should have received a copy of the GNU General Public License20;;  along with this program; if not, write to the Free Software21;;  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.22;;23;;-----------------------------------------------------------------------------24;25; This script is designed to be modified for the particular command in26; operation.  The particular variables pertaining to the commands are:27;28ABSOLUTE	Device_ID = 0		; ID of target for command29ABSOLUTE	MessageCount = 0	; Number of bytes in message30ABSOLUTE	MessageLocation = 0	; Addr of message31ABSOLUTE	CommandCount = 0	; Number of bytes in command32ABSOLUTE	CommandAddress = 0	; Addr of Command33ABSOLUTE	StatusAddress = 0	; Addr to receive status return34ABSOLUTE	ReceiveMsgAddress = 0	; Addr to receive msg35;36; This is the magic component for handling scatter-gather.  Each of the37; SG components is preceded by a script fragment which moves the38; necessary amount of data and jumps to the next SG segment.  The final39; SG segment jumps back to .  However, this address is the first SG script40; segment.41;42ABSOLUTE	SGScriptStartAddress = 043 44; The following represent status interrupts we use 3 hex digits for45; this: 0xPRS where 46 47; P:48ABSOLUTE	AFTER_SELECTION 	= 0x10049ABSOLUTE	BEFORE_CMD 		= 0x20050ABSOLUTE	AFTER_CMD 		= 0x30051ABSOLUTE	AFTER_STATUS 		= 0x40052ABSOLUTE	AFTER_DATA_IN		= 0x50053ABSOLUTE	AFTER_DATA_OUT		= 0x60054ABSOLUTE	DURING_DATA_IN		= 0x70055 56; R:57ABSOLUTE	NOT_MSG_OUT 		= 0x1058ABSOLUTE	UNEXPECTED_PHASE 	= 0x2059ABSOLUTE	NOT_MSG_IN 		= 0x3060ABSOLUTE	UNEXPECTED_MSG		= 0x4061ABSOLUTE	MSG_IN			= 0x5062ABSOLUTE	SDTR_MSG_R		= 0x6063ABSOLUTE	REJECT_MSG_R		= 0x7064ABSOLUTE	DISCONNECT		= 0x8065ABSOLUTE	MSG_OUT			= 0x9066ABSOLUTE	WDTR_MSG_R		= 0xA067 68; S:69ABSOLUTE	GOOD_STATUS 		= 0x170 71; Combinations, since the script assembler can't process |72ABSOLUTE	NOT_MSG_OUT_AFTER_SELECTION = 0x11073ABSOLUTE	UNEXPECTED_PHASE_BEFORE_CMD = 0x22074ABSOLUTE	UNEXPECTED_PHASE_AFTER_CMD = 0x32075ABSOLUTE	NOT_MSG_IN_AFTER_STATUS = 0x43076ABSOLUTE	GOOD_STATUS_AFTER_STATUS = 0x40177ABSOLUTE	UNEXPECTED_PHASE_AFTER_DATA_IN = 0x52078ABSOLUTE	UNEXPECTED_PHASE_AFTER_DATA_OUT = 0x62079ABSOLUTE	UNEXPECTED_MSG_BEFORE_CMD = 0x24080ABSOLUTE	MSG_IN_BEFORE_CMD = 0x25081ABSOLUTE	MSG_IN_AFTER_CMD = 0x35082ABSOLUTE	SDTR_MSG_BEFORE_CMD = 0x26083ABSOLUTE	REJECT_MSG_BEFORE_CMD = 0x27084ABSOLUTE	DISCONNECT_AFTER_CMD = 0x38085ABSOLUTE	SDTR_MSG_AFTER_CMD = 0x36086ABSOLUTE	WDTR_MSG_AFTER_CMD = 0x3A087ABSOLUTE	MSG_IN_AFTER_STATUS = 0x44088ABSOLUTE	DISCONNECT_AFTER_DATA = 0x58089ABSOLUTE	MSG_IN_AFTER_DATA_IN = 0x55090ABSOLUTE	MSG_IN_AFTER_DATA_OUT = 0x65091ABSOLUTE	MSG_OUT_AFTER_DATA_IN = 0x59092ABSOLUTE	DATA_IN_AFTER_DATA_IN = 0x5a093ABSOLUTE	MSG_IN_DURING_DATA_IN = 0x75094ABSOLUTE	DISCONNECT_DURING_DATA = 0x78095 96;97; Other interrupt conditions98; 99ABSOLUTE	RESELECTED_DURING_SELECTION = 0x1000100ABSOLUTE	COMPLETED_SELECTION_AS_TARGET = 0x1001101ABSOLUTE	RESELECTION_IDENTIFIED = 0x1003102;103; Fatal interrupt conditions.  If you add to this, also add to the104; array of corresponding messages105;106ABSOLUTE	FATAL = 0x2000107ABSOLUTE	FATAL_UNEXPECTED_RESELECTION_MSG = 0x2000108ABSOLUTE	FATAL_SEND_MSG = 0x2001109ABSOLUTE	FATAL_NOT_MSG_IN_AFTER_SELECTION = 0x2002110ABSOLUTE	FATAL_ILLEGAL_MSG_LENGTH = 0x2003111 112ABSOLUTE	DEBUG_INTERRUPT	= 0x3000113ABSOLUTE	DEBUG_INTERRUPT1 = 0x3001114ABSOLUTE	DEBUG_INTERRUPT2 = 0x3002115ABSOLUTE	DEBUG_INTERRUPT3 = 0x3003116ABSOLUTE	DEBUG_INTERRUPT4 = 0x3004117ABSOLUTE	DEBUG_INTERRUPT5 = 0x3005118ABSOLUTE	DEBUG_INTERRUPT6 = 0x3006119 120 121;122; SCSI Messages we interpret in the script123;124ABSOLUTE	COMMAND_COMPLETE_MSG	= 0x00125ABSOLUTE	EXTENDED_MSG		= 0x01126ABSOLUTE	SDTR_MSG		= 0x01127ABSOLUTE	SAVE_DATA_PTRS_MSG	= 0x02128ABSOLUTE	RESTORE_DATA_PTRS_MSG	= 0x03129ABSOLUTE	WDTR_MSG		= 0x03130ABSOLUTE	DISCONNECT_MSG		= 0x04131ABSOLUTE	REJECT_MSG		= 0x07132ABSOLUTE	PARITY_ERROR_MSG	= 0x09133ABSOLUTE	SIMPLE_TAG_MSG		= 0x20134ABSOLUTE	IDENTIFY_MSG		= 0x80135ABSOLUTE	IDENTIFY_MSG_MASK	= 0x7F136ABSOLUTE	TWO_BYTE_MSG		= 0x20137ABSOLUTE	TWO_BYTE_MSG_MASK	= 0x0F138 139; This is where the script begins140 141ENTRY	StartUp142 143StartUp:144	SELECT	ATN Device_ID, Reselect145 146at 0x00000000 : */	0x41000000,0x00000020,147/*148	JUMP	Finish, WHEN STATUS149 150at 0x00000002 : */	0x830b0000,0x00000460,151/*152	JUMP	SendIdentifyMsg, IF MSG_OUT153 154at 0x00000004 : */	0x860a0000,0x000001b0,155/*156	INT	NOT_MSG_OUT_AFTER_SELECTION157 158at 0x00000006 : */	0x98080000,0x00000110,159/*160 161Reselect:162	WAIT	RESELECT SelectedAsTarget163 164at 0x00000008 : */	0x50000000,0x00000058,165/*166	INT	RESELECTED_DURING_SELECTION, WHEN MSG_IN167 168at 0x0000000a : */	0x9f0b0000,0x00001000,169/*170	INT	FATAL_NOT_MSG_IN_AFTER_SELECTION171 172at 0x0000000c : */	0x98080000,0x00002002,173/*174 175	ENTRY	GetReselectionData176GetReselectionData:177	MOVE	1, ReceiveMsgAddress, WHEN MSG_IN178 179at 0x0000000e : */	0x0f000001,0x00000000,180/*181	INT	RESELECTION_IDENTIFIED182 183at 0x00000010 : */	0x98080000,0x00001003,184/*185 186	ENTRY	GetReselectionWithTag187GetReselectionWithTag:188	MOVE	3, ReceiveMsgAddress, WHEN MSG_IN189 190at 0x00000012 : */	0x0f000003,0x00000000,191/*192	INT	RESELECTION_IDENTIFIED193 194at 0x00000014 : */	0x98080000,0x00001003,195/*196	197	ENTRY	SelectedAsTarget198SelectedAsTarget:199; Basically tell the selecting device that there's nothing here200	SET	TARGET201 202at 0x00000016 : */	0x58000200,0x00000000,203/*204	DISCONNECT205 206at 0x00000018 : */	0x48000000,0x00000000,207/*208	CLEAR	TARGET209 210at 0x0000001a : */	0x60000200,0x00000000,211/*212	INT	COMPLETED_SELECTION_AS_TARGET213 214at 0x0000001c : */	0x98080000,0x00001001,215/*216;217; These are the messaging entries218;219; Send a message.  Message count should be correctly patched220	ENTRY	SendMessage221SendMessage:222	MOVE	MessageCount, MessageLocation, WHEN MSG_OUT223 224at 0x0000001e : */	0x0e000000,0x00000000,225/*226ResumeSendMessage:227	RETURN,	WHEN NOT MSG_OUT228 229at 0x00000020 : */	0x96030000,0x00000000,230/*231	INT	FATAL_SEND_MSG232 233at 0x00000022 : */	0x98080000,0x00002001,234/*235 236	ENTRY	SendMessagePhaseMismatch237SendMessagePhaseMismatch:238	CLEAR	ACK239 240at 0x00000024 : */	0x60000040,0x00000000,241/*242	JUMP	ResumeSendMessage243 244at 0x00000026 : */	0x80080000,0x00000080,245/*246;247; Receive a message.  Need to identify the message to248; receive it correctly249	ENTRY	ReceiveMessage250ReceiveMessage:251	MOVE	1, ReceiveMsgAddress, WHEN MSG_IN252 253at 0x00000028 : */	0x0f000001,0x00000000,254/*255;256; Use this entry if we've just tried to look at the first byte257; of the message and want to process it further258ProcessReceiveMessage:259	JUMP	ReceiveExtendedMessage, IF EXTENDED_MSG260 261at 0x0000002a : */	0x800c0001,0x000000d0,262/*263	RETURN,	IF NOT TWO_BYTE_MSG, AND MASK TWO_BYTE_MSG_MASK264 265at 0x0000002c : */	0x90040f20,0x00000000,266/*267	CLEAR	ACK268 269at 0x0000002e : */	0x60000040,0x00000000,270/*271	MOVE	1, ReceiveMsgAddress + 1, WHEN MSG_IN272 273at 0x00000030 : */	0x0f000001,0x00000001,274/*275	RETURN276 277at 0x00000032 : */	0x90080000,0x00000000,278/*279ReceiveExtendedMessage:280	CLEAR	ACK281 282at 0x00000034 : */	0x60000040,0x00000000,283/*284	MOVE	1, ReceiveMsgAddress + 1, WHEN MSG_IN285 286at 0x00000036 : */	0x0f000001,0x00000001,287/*288	JUMP	Receive1Byte, IF 0x01289 290at 0x00000038 : */	0x800c0001,0x00000110,291/*292	JUMP	Receive2Byte, IF 0x02293 294at 0x0000003a : */	0x800c0002,0x00000128,295/*296	JUMP	Receive3Byte, IF 0x03297 298at 0x0000003c : */	0x800c0003,0x00000140,299/*300	JUMP	Receive4Byte, IF 0x04301 302at 0x0000003e : */	0x800c0004,0x00000158,303/*304	JUMP	Receive5Byte, IF 0x05305 306at 0x00000040 : */	0x800c0005,0x00000170,307/*308	INT	FATAL_ILLEGAL_MSG_LENGTH309 310at 0x00000042 : */	0x98080000,0x00002003,311/*312Receive1Byte:313	CLEAR	ACK314 315at 0x00000044 : */	0x60000040,0x00000000,316/*317	MOVE	1, ReceiveMsgAddress + 2, WHEN MSG_IN318 319at 0x00000046 : */	0x0f000001,0x00000002,320/*321	RETURN322 323at 0x00000048 : */	0x90080000,0x00000000,324/*325Receive2Byte:326	CLEAR	ACK327 328at 0x0000004a : */	0x60000040,0x00000000,329/*330	MOVE	2, ReceiveMsgAddress + 2, WHEN MSG_IN331 332at 0x0000004c : */	0x0f000002,0x00000002,333/*334	RETURN335 336at 0x0000004e : */	0x90080000,0x00000000,337/*338Receive3Byte:339	CLEAR	ACK340 341at 0x00000050 : */	0x60000040,0x00000000,342/*343	MOVE	3, ReceiveMsgAddress + 2, WHEN MSG_IN344 345at 0x00000052 : */	0x0f000003,0x00000002,346/*347	RETURN348 349at 0x00000054 : */	0x90080000,0x00000000,350/*351Receive4Byte:352	CLEAR	ACK353 354at 0x00000056 : */	0x60000040,0x00000000,355/*356	MOVE	4, ReceiveMsgAddress + 2, WHEN MSG_IN357 358at 0x00000058 : */	0x0f000004,0x00000002,359/*360	RETURN361 362at 0x0000005a : */	0x90080000,0x00000000,363/*364Receive5Byte:365	CLEAR	ACK366 367at 0x0000005c : */	0x60000040,0x00000000,368/*369	MOVE	5, ReceiveMsgAddress + 2, WHEN MSG_IN370 371at 0x0000005e : */	0x0f000005,0x00000002,372/*373	RETURN374 375at 0x00000060 : */	0x90080000,0x00000000,376/*377;378; Come here from the message processor to ignore the message379;380	ENTRY	IgnoreMessage381IgnoreMessage:382	CLEAR	ACK383 384at 0x00000062 : */	0x60000040,0x00000000,385/*386	RETURN387 388at 0x00000064 : */	0x90080000,0x00000000,389/*390;391; Come here to send a reply to a message392;393	ENTRY	SendMessageWithATN394SendMessageWithATN:395	SET	ATN396 397at 0x00000066 : */	0x58000008,0x00000000,398/*399	CLEAR	ACK400 401at 0x00000068 : */	0x60000040,0x00000000,402/*403	JUMP	SendMessage404 405at 0x0000006a : */	0x80080000,0x00000078,406/*407 408SendIdentifyMsg:409	CALL	SendMessage410 411at 0x0000006c : */	0x88080000,0x00000078,412/*413	CLEAR	ATN414 415at 0x0000006e : */	0x60000008,0x00000000,416/*417 418IgnoreMsgBeforeCommand:419	CLEAR	ACK420 421at 0x00000070 : */	0x60000040,0x00000000,422/*423	ENTRY	SendCommand424SendCommand:425	JUMP	Finish, WHEN STATUS426 427at 0x00000072 : */	0x830b0000,0x00000460,428/*429	JUMP	MsgInBeforeCommand, IF MSG_IN430 431at 0x00000074 : */	0x870a0000,0x000002c0,432/*433	INT	UNEXPECTED_PHASE_BEFORE_CMD, IF NOT CMD434 435at 0x00000076 : */	0x9a020000,0x00000220,436/*437	MOVE	CommandCount, CommandAddress, WHEN CMD438 439at 0x00000078 : */	0x0a000000,0x00000000,440/*441ResumeSendCommand:442	JUMP	Finish, WHEN STATUS443 444at 0x0000007a : */	0x830b0000,0x00000460,445/*446	JUMP	MsgInAfterCmd, IF MSG_IN447 448at 0x0000007c : */	0x870a0000,0x00000248,449/*450	JUMP	DataIn, IF DATA_IN451 452at 0x0000007e : */	0x810a0000,0x000002f8,453/*454	JUMP	DataOut, IF DATA_OUT455 456at 0x00000080 : */	0x800a0000,0x00000338,457/*458	INT	UNEXPECTED_PHASE_AFTER_CMD459 460at 0x00000082 : */	0x98080000,0x00000320,461/*462 463IgnoreMsgDuringData:464	CLEAR	ACK465 466at 0x00000084 : */	0x60000040,0x00000000,467/*468	; fall through to MsgInDuringData469 470Entry MsgInDuringData471MsgInDuringData:472;473; Could be we have nothing more to transfer474;475	JUMP	Finish, WHEN STATUS476 477at 0x00000086 : */	0x830b0000,0x00000460,478/*479	MOVE	1, ReceiveMsgAddress, WHEN MSG_IN480 481at 0x00000088 : */	0x0f000001,0x00000000,482/*483	JUMP	DisconnectDuringDataIn, IF DISCONNECT_MSG484 485at 0x0000008a : */	0x800c0004,0x00000398,486/*487	JUMP	IgnoreMsgDuringData, IF SAVE_DATA_PTRS_MSG488 489at 0x0000008c : */	0x800c0002,0x00000210,490/*491	JUMP	IgnoreMsgDuringData, IF RESTORE_DATA_PTRS_MSG492 493at 0x0000008e : */	0x800c0003,0x00000210,494/*495	INT	MSG_IN_DURING_DATA_IN496 497at 0x00000090 : */	0x98080000,0x00000750,498/*499 500MsgInAfterCmd:501	MOVE	1, ReceiveMsgAddress, WHEN MSG_IN502 503at 0x00000092 : */	0x0f000001,0x00000000,504/*505	JUMP	DisconnectAfterCmd, IF DISCONNECT_MSG506 507at 0x00000094 : */	0x800c0004,0x00000298,508/*509	JUMP	IgnoreMsgInAfterCmd, IF SAVE_DATA_PTRS_MSG510 511at 0x00000096 : */	0x800c0002,0x00000288,512/*513	JUMP	IgnoreMsgInAfterCmd, IF RESTORE_DATA_PTRS_MSG514 515at 0x00000098 : */	0x800c0003,0x00000288,516/*517	CALL	ProcessReceiveMessage518 519at 0x0000009a : */	0x88080000,0x000000a8,520/*521	INT	MSG_IN_AFTER_CMD522 523at 0x0000009c : */	0x98080000,0x00000350,524/*525	CLEAR	ACK526 527at 0x0000009e : */	0x60000040,0x00000000,528/*529	JUMP	ResumeSendCommand530 531at 0x000000a0 : */	0x80080000,0x000001e8,532/*533 534IgnoreMsgInAfterCmd:535	CLEAR	ACK536 537at 0x000000a2 : */	0x60000040,0x00000000,538/*539	JUMP	ResumeSendCommand540 541at 0x000000a4 : */	0x80080000,0x000001e8,542/*543 544DisconnectAfterCmd:545	CLEAR	ACK546 547at 0x000000a6 : */	0x60000040,0x00000000,548/*549	WAIT	DISCONNECT550 551at 0x000000a8 : */	0x48000000,0x00000000,552/*553	ENTRY	Disconnect1554Disconnect1:555	INT	DISCONNECT_AFTER_CMD556 557at 0x000000aa : */	0x98080000,0x00000380,558/*559	ENTRY	Disconnect2560Disconnect2:561; We return here after a reselection562	CLEAR	ACK563 564at 0x000000ac : */	0x60000040,0x00000000,565/*566	JUMP	ResumeSendCommand567 568at 0x000000ae : */	0x80080000,0x000001e8,569/*570 571MsgInBeforeCommand:572	MOVE	1, ReceiveMsgAddress, WHEN MSG_IN573 574at 0x000000b0 : */	0x0f000001,0x00000000,575/*576	JUMP	IgnoreMsgBeforeCommand, IF SAVE_DATA_PTRS_MSG577 578at 0x000000b2 : */	0x800c0002,0x000001c0,579/*580	JUMP	IgnoreMsgBeforeCommand, IF RESTORE_DATA_PTRS_MSG581 582at 0x000000b4 : */	0x800c0003,0x000001c0,583/*584	CALL	ProcessReceiveMessage585 586at 0x000000b6 : */	0x88080000,0x000000a8,587/*588	INT	MSG_IN_BEFORE_CMD589 590at 0x000000b8 : */	0x98080000,0x00000250,591/*592	CLEAR	ACK593 594at 0x000000ba : */	0x60000040,0x00000000,595/*596	JUMP	SendCommand597 598at 0x000000bc : */	0x80080000,0x000001c8,599/*600 601DataIn:602	CALL	SGScriptStartAddress603 604at 0x000000be : */	0x88080000,0x00000000,605/*606ResumeDataIn:607	JUMP	Finish, WHEN STATUS608 609at 0x000000c0 : */	0x830b0000,0x00000460,610/*611	JUMP	MsgInAfterDataIn, IF MSG_IN612 613at 0x000000c2 : */	0x870a0000,0x00000358,614/*615	JUMP	DataInAfterDataIn, if DATA_IN616 617at 0x000000c4 : */	0x810a0000,0x00000328,618/*619	INT	MSG_OUT_AFTER_DATA_IN, if MSG_OUT620 621at 0x000000c6 : */	0x9e0a0000,0x00000590,622/*623	INT	UNEXPECTED_PHASE_AFTER_DATA_IN624 625at 0x000000c8 : */	0x98080000,0x00000520,626/*627 628DataInAfterDataIn:629	INT	DATA_IN_AFTER_DATA_IN630 631at 0x000000ca : */	0x98080000,0x000005a0,632/*633	JUMP	ResumeDataIn634 635at 0x000000cc : */	0x80080000,0x00000300,636/*637 638DataOut:639	CALL	SGScriptStartAddress640 641at 0x000000ce : */	0x88080000,0x00000000,642/*643ResumeDataOut:644	JUMP	Finish, WHEN STATUS645 646at 0x000000d0 : */	0x830b0000,0x00000460,647/*648	JUMP	MsgInAfterDataOut, IF MSG_IN649 650at 0x000000d2 : */	0x870a0000,0x000003e8,651/*652	INT	UNEXPECTED_PHASE_AFTER_DATA_OUT653 654at 0x000000d4 : */	0x98080000,0x00000620,655/*656 657MsgInAfterDataIn:658	MOVE	1, ReceiveMsgAddress, WHEN MSG_IN659 660at 0x000000d6 : */	0x0f000001,0x00000000,661/*662	JUMP	DisconnectAfterDataIn, IF DISCONNECT_MSG663 664at 0x000000d8 : */	0x800c0004,0x000003c0,665/*666	JUMP	IgnoreMsgAfterData, IF SAVE_DATA_PTRS_MSG667 668at 0x000000da : */	0x800c0002,0x00000428,669/*670	JUMP	IgnoreMsgAfterData, IF RESTORE_DATA_PTRS_MSG671 672at 0x000000dc : */	0x800c0003,0x00000428,673/*674	CALL	ProcessReceiveMessage675 676at 0x000000de : */	0x88080000,0x000000a8,677/*678	INT	MSG_IN_AFTER_DATA_IN679 680at 0x000000e0 : */	0x98080000,0x00000550,681/*682	CLEAR	ACK683 684at 0x000000e2 : */	0x60000040,0x00000000,685/*686	JUMP	ResumeDataIn687 688at 0x000000e4 : */	0x80080000,0x00000300,689/*690 691DisconnectDuringDataIn:692	CLEAR	ACK693 694at 0x000000e6 : */	0x60000040,0x00000000,695/*696	WAIT	DISCONNECT697 698at 0x000000e8 : */	0x48000000,0x00000000,699/*700	ENTRY	Disconnect3701Disconnect3:702	INT	DISCONNECT_DURING_DATA703 704at 0x000000ea : */	0x98080000,0x00000780,705/*706	ENTRY	Disconnect4707Disconnect4:708; we return here after a reselection709	CLEAR	ACK710 711at 0x000000ec : */	0x60000040,0x00000000,712/*713	JUMP	ResumeSendCommand714 715at 0x000000ee : */	0x80080000,0x000001e8,716/*717 718 719DisconnectAfterDataIn:720	CLEAR	ACK721 722at 0x000000f0 : */	0x60000040,0x00000000,723/*724	WAIT	DISCONNECT725 726at 0x000000f2 : */	0x48000000,0x00000000,727/*728	ENTRY	Disconnect5729Disconnect5:730	INT	DISCONNECT_AFTER_DATA731 732at 0x000000f4 : */	0x98080000,0x00000580,733/*734	ENTRY	Disconnect6735Disconnect6:736; we return here after a reselection737	CLEAR	ACK738 739at 0x000000f6 : */	0x60000040,0x00000000,740/*741	JUMP	ResumeDataIn742 743at 0x000000f8 : */	0x80080000,0x00000300,744/*745 746MsgInAfterDataOut:747	MOVE	1, ReceiveMsgAddress, WHEN MSG_IN748 749at 0x000000fa : */	0x0f000001,0x00000000,750/*751	JUMP	DisconnectAfterDataOut, if DISCONNECT_MSG752 753at 0x000000fc : */	0x800c0004,0x00000438,754/*755	JUMP	IgnoreMsgAfterData, IF SAVE_DATA_PTRS_MSG756 757at 0x000000fe : */	0x800c0002,0x00000428,758/*759	JUMP	IgnoreMsgAfterData, IF RESTORE_DATA_PTRS_MSG760 761at 0x00000100 : */	0x800c0003,0x00000428,762/*763	CALL	ProcessReceiveMessage764 765at 0x00000102 : */	0x88080000,0x000000a8,766/*767	INT	MSG_IN_AFTER_DATA_OUT768 769at 0x00000104 : */	0x98080000,0x00000650,770/*771	CLEAR	ACK772 773at 0x00000106 : */	0x60000040,0x00000000,774/*775	JUMP	ResumeDataOut776 777at 0x00000108 : */	0x80080000,0x00000340,778/*779 780IgnoreMsgAfterData:781	CLEAR	ACK782 783at 0x0000010a : */	0x60000040,0x00000000,784/*785; Data in and out do the same thing on resume, so pick one786	JUMP	ResumeDataIn787 788at 0x0000010c : */	0x80080000,0x00000300,789/*790 791DisconnectAfterDataOut:792	CLEAR	ACK793 794at 0x0000010e : */	0x60000040,0x00000000,795/*796	WAIT	DISCONNECT797 798at 0x00000110 : */	0x48000000,0x00000000,799/*800	ENTRY	Disconnect7801Disconnect7:802	INT	DISCONNECT_AFTER_DATA803 804at 0x00000112 : */	0x98080000,0x00000580,805/*806	ENTRY	Disconnect8807Disconnect8:808; we return here after a reselection809	CLEAR	ACK810 811at 0x00000114 : */	0x60000040,0x00000000,812/*813	JUMP	ResumeDataOut814 815at 0x00000116 : */	0x80080000,0x00000340,816/*817 818Finish:819	MOVE	1, StatusAddress, WHEN STATUS820 821at 0x00000118 : */	0x0b000001,0x00000000,822/*823	INT	NOT_MSG_IN_AFTER_STATUS, WHEN NOT MSG_IN824 825at 0x0000011a : */	0x9f030000,0x00000430,826/*827	MOVE	1, ReceiveMsgAddress, WHEN MSG_IN828 829at 0x0000011c : */	0x0f000001,0x00000000,830/*831	JUMP	FinishCommandComplete, IF COMMAND_COMPLETE_MSG832 833at 0x0000011e : */	0x800c0000,0x00000490,834/*835	CALL	ProcessReceiveMessage836 837at 0x00000120 : */	0x88080000,0x000000a8,838/*839	INT	MSG_IN_AFTER_STATUS840 841at 0x00000122 : */	0x98080000,0x00000440,842/*843	ENTRY	FinishCommandComplete844FinishCommandComplete:845	CLEAR	ACK846 847at 0x00000124 : */	0x60000040,0x00000000,848/*849	WAIT	DISCONNECT850 851at 0x00000126 : */	0x48000000,0x00000000,852/*853	ENTRY	Finish1854Finish1:855	INT	GOOD_STATUS_AFTER_STATUS856 857at 0x00000128 : */	0x98080000,0x00000401,858};859 860#define A_AFTER_CMD	0x00000300861static u32 A_AFTER_CMD_used[] __attribute((unused)) = {862};863 864#define A_AFTER_DATA_IN	0x00000500865static u32 A_AFTER_DATA_IN_used[] __attribute((unused)) = {866};867 868#define A_AFTER_DATA_OUT	0x00000600869static u32 A_AFTER_DATA_OUT_used[] __attribute((unused)) = {870};871 872#define A_AFTER_SELECTION	0x00000100873static u32 A_AFTER_SELECTION_used[] __attribute((unused)) = {874};875 876#define A_AFTER_STATUS	0x00000400877static u32 A_AFTER_STATUS_used[] __attribute((unused)) = {878};879 880#define A_BEFORE_CMD	0x00000200881static u32 A_BEFORE_CMD_used[] __attribute((unused)) = {882};883 884#define A_COMMAND_COMPLETE_MSG	0x00000000885static u32 A_COMMAND_COMPLETE_MSG_used[] __attribute((unused)) = {886	0x0000011e,887};888 889#define A_COMPLETED_SELECTION_AS_TARGET	0x00001001890static u32 A_COMPLETED_SELECTION_AS_TARGET_used[] __attribute((unused)) = {891	0x0000001d,892};893 894#define A_CommandAddress	0x00000000895static u32 A_CommandAddress_used[] __attribute((unused)) = {896	0x00000079,897};898 899#define A_CommandCount	0x00000000900static u32 A_CommandCount_used[] __attribute((unused)) = {901	0x00000078,902};903 904#define A_DATA_IN_AFTER_DATA_IN	0x000005a0905static u32 A_DATA_IN_AFTER_DATA_IN_used[] __attribute((unused)) = {906	0x000000cb,907};908 909#define A_DEBUG_INTERRUPT	0x00003000910static u32 A_DEBUG_INTERRUPT_used[] __attribute((unused)) = {911};912 913#define A_DEBUG_INTERRUPT1	0x00003001914static u32 A_DEBUG_INTERRUPT1_used[] __attribute((unused)) = {915};916 917#define A_DEBUG_INTERRUPT2	0x00003002918static u32 A_DEBUG_INTERRUPT2_used[] __attribute((unused)) = {919};920 921#define A_DEBUG_INTERRUPT3	0x00003003922static u32 A_DEBUG_INTERRUPT3_used[] __attribute((unused)) = {923};924 925#define A_DEBUG_INTERRUPT4	0x00003004926static u32 A_DEBUG_INTERRUPT4_used[] __attribute((unused)) = {927};928 929#define A_DEBUG_INTERRUPT5	0x00003005930static u32 A_DEBUG_INTERRUPT5_used[] __attribute((unused)) = {931};932 933#define A_DEBUG_INTERRUPT6	0x00003006934static u32 A_DEBUG_INTERRUPT6_used[] __attribute((unused)) = {935};936 937#define A_DISCONNECT	0x00000080938static u32 A_DISCONNECT_used[] __attribute((unused)) = {939};940 941#define A_DISCONNECT_AFTER_CMD	0x00000380942static u32 A_DISCONNECT_AFTER_CMD_used[] __attribute((unused)) = {943	0x000000ab,944};945 946#define A_DISCONNECT_AFTER_DATA	0x00000580947static u32 A_DISCONNECT_AFTER_DATA_used[] __attribute((unused)) = {948	0x000000f5,949	0x00000113,950};951 952#define A_DISCONNECT_DURING_DATA	0x00000780953static u32 A_DISCONNECT_DURING_DATA_used[] __attribute((unused)) = {954	0x000000eb,955};956 957#define A_DISCONNECT_MSG	0x00000004958static u32 A_DISCONNECT_MSG_used[] __attribute((unused)) = {959	0x0000008a,960	0x00000094,961	0x000000d8,962	0x000000fc,963};964 965#define A_DURING_DATA_IN	0x00000700966static u32 A_DURING_DATA_IN_used[] __attribute((unused)) = {967};968 969#define A_Device_ID	0x00000000970static u32 A_Device_ID_used[] __attribute((unused)) = {971	0x00000000,972};973 974#define A_EXTENDED_MSG	0x00000001975static u32 A_EXTENDED_MSG_used[] __attribute((unused)) = {976	0x0000002a,977};978 979#define A_FATAL	0x00002000980static u32 A_FATAL_used[] __attribute((unused)) = {981};982 983#define A_FATAL_ILLEGAL_MSG_LENGTH	0x00002003984static u32 A_FATAL_ILLEGAL_MSG_LENGTH_used[] __attribute((unused)) = {985	0x00000043,986};987 988#define A_FATAL_NOT_MSG_IN_AFTER_SELECTION	0x00002002989static u32 A_FATAL_NOT_MSG_IN_AFTER_SELECTION_used[] __attribute((unused)) = {990	0x0000000d,991};992 993#define A_FATAL_SEND_MSG	0x00002001994static u32 A_FATAL_SEND_MSG_used[] __attribute((unused)) = {995	0x00000023,996};997 998#define A_FATAL_UNEXPECTED_RESELECTION_MSG	0x00002000999static u32 A_FATAL_UNEXPECTED_RESELECTION_MSG_used[] __attribute((unused)) = {1000};1001 1002#define A_GOOD_STATUS	0x000000011003static u32 A_GOOD_STATUS_used[] __attribute((unused)) = {1004};1005 1006#define A_GOOD_STATUS_AFTER_STATUS	0x000004011007static u32 A_GOOD_STATUS_AFTER_STATUS_used[] __attribute((unused)) = {1008	0x00000129,1009};1010 1011#define A_IDENTIFY_MSG	0x000000801012static u32 A_IDENTIFY_MSG_used[] __attribute((unused)) = {1013};1014 1015#define A_IDENTIFY_MSG_MASK	0x0000007f1016static u32 A_IDENTIFY_MSG_MASK_used[] __attribute((unused)) = {1017};1018 1019#define A_MSG_IN	0x000000501020static u32 A_MSG_IN_used[] __attribute((unused)) = {1021};1022 1023#define A_MSG_IN_AFTER_CMD	0x000003501024static u32 A_MSG_IN_AFTER_CMD_used[] __attribute((unused)) = {1025	0x0000009d,1026};1027 1028#define A_MSG_IN_AFTER_DATA_IN	0x000005501029static u32 A_MSG_IN_AFTER_DATA_IN_used[] __attribute((unused)) = {1030	0x000000e1,1031};1032 1033#define A_MSG_IN_AFTER_DATA_OUT	0x000006501034static u32 A_MSG_IN_AFTER_DATA_OUT_used[] __attribute((unused)) = {1035	0x00000105,1036};1037 1038#define A_MSG_IN_AFTER_STATUS	0x000004401039static u32 A_MSG_IN_AFTER_STATUS_used[] __attribute((unused)) = {1040	0x00000123,1041};1042 1043#define A_MSG_IN_BEFORE_CMD	0x000002501044static u32 A_MSG_IN_BEFORE_CMD_used[] __attribute((unused)) = {1045	0x000000b9,1046};1047 1048#define A_MSG_IN_DURING_DATA_IN	0x000007501049static u32 A_MSG_IN_DURING_DATA_IN_used[] __attribute((unused)) = {1050	0x00000091,1051};1052 1053#define A_MSG_OUT	0x000000901054static u32 A_MSG_OUT_used[] __attribute((unused)) = {1055};1056 1057#define A_MSG_OUT_AFTER_DATA_IN	0x000005901058static u32 A_MSG_OUT_AFTER_DATA_IN_used[] __attribute((unused)) = {1059	0x000000c7,1060};1061 1062#define A_MessageCount	0x000000001063static u32 A_MessageCount_used[] __attribute((unused)) = {1064	0x0000001e,1065};1066 1067#define A_MessageLocation	0x000000001068static u32 A_MessageLocation_used[] __attribute((unused)) = {1069	0x0000001f,1070};1071 1072#define A_NOT_MSG_IN	0x000000301073static u32 A_NOT_MSG_IN_used[] __attribute((unused)) = {1074};1075 1076#define A_NOT_MSG_IN_AFTER_STATUS	0x000004301077static u32 A_NOT_MSG_IN_AFTER_STATUS_used[] __attribute((unused)) = {1078	0x0000011b,1079};1080 1081#define A_NOT_MSG_OUT	0x000000101082static u32 A_NOT_MSG_OUT_used[] __attribute((unused)) = {1083};1084 1085#define A_NOT_MSG_OUT_AFTER_SELECTION	0x000001101086static u32 A_NOT_MSG_OUT_AFTER_SELECTION_used[] __attribute((unused)) = {1087	0x00000007,1088};1089 1090#define A_PARITY_ERROR_MSG	0x000000091091static u32 A_PARITY_ERROR_MSG_used[] __attribute((unused)) = {1092};1093 1094#define A_REJECT_MSG	0x000000071095static u32 A_REJECT_MSG_used[] __attribute((unused)) = {1096};1097 1098#define A_REJECT_MSG_BEFORE_CMD	0x000002701099static u32 A_REJECT_MSG_BEFORE_CMD_used[] __attribute((unused)) = {1100};1101 1102#define A_REJECT_MSG_R	0x000000701103static u32 A_REJECT_MSG_R_used[] __attribute((unused)) = {1104};1105 1106#define A_RESELECTED_DURING_SELECTION	0x000010001107static u32 A_RESELECTED_DURING_SELECTION_used[] __attribute((unused)) = {1108	0x0000000b,1109};1110 1111#define A_RESELECTION_IDENTIFIED	0x000010031112static u32 A_RESELECTION_IDENTIFIED_used[] __attribute((unused)) = {1113	0x00000011,1114	0x00000015,1115};1116 1117#define A_RESTORE_DATA_PTRS_MSG	0x000000031118static 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	0x000000001127static 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	0x000000021147static 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	0x000000011156static u32 A_SDTR_MSG_used[] __attribute((unused)) = {1157};1158 1159#define A_SDTR_MSG_AFTER_CMD	0x000003601160static u32 A_SDTR_MSG_AFTER_CMD_used[] __attribute((unused)) = {1161};1162 1163#define A_SDTR_MSG_BEFORE_CMD	0x000002601164static u32 A_SDTR_MSG_BEFORE_CMD_used[] __attribute((unused)) = {1165};1166 1167#define A_SDTR_MSG_R	0x000000601168static u32 A_SDTR_MSG_R_used[] __attribute((unused)) = {1169};1170 1171#define A_SGScriptStartAddress	0x000000001172static u32 A_SGScriptStartAddress_used[] __attribute((unused)) = {1173	0x000000bf,1174	0x000000cf,1175};1176 1177#define A_SIMPLE_TAG_MSG	0x000000201178static u32 A_SIMPLE_TAG_MSG_used[] __attribute((unused)) = {1179};1180 1181#define A_StatusAddress	0x000000001182static u32 A_StatusAddress_used[] __attribute((unused)) = {1183	0x00000119,1184};1185 1186#define A_TWO_BYTE_MSG	0x000000201187static u32 A_TWO_BYTE_MSG_used[] __attribute((unused)) = {1188	0x0000002c,1189};1190 1191#define A_TWO_BYTE_MSG_MASK	0x0000000f1192static u32 A_TWO_BYTE_MSG_MASK_used[] __attribute((unused)) = {1193	0x0000002c,1194};1195 1196#define A_UNEXPECTED_MSG	0x000000401197static u32 A_UNEXPECTED_MSG_used[] __attribute((unused)) = {1198};1199 1200#define A_UNEXPECTED_MSG_BEFORE_CMD	0x000002401201static u32 A_UNEXPECTED_MSG_BEFORE_CMD_used[] __attribute((unused)) = {1202};1203 1204#define A_UNEXPECTED_PHASE	0x000000201205static u32 A_UNEXPECTED_PHASE_used[] __attribute((unused)) = {1206};1207 1208#define A_UNEXPECTED_PHASE_AFTER_CMD	0x000003201209static u32 A_UNEXPECTED_PHASE_AFTER_CMD_used[] __attribute((unused)) = {1210	0x00000083,1211};1212 1213#define A_UNEXPECTED_PHASE_AFTER_DATA_IN	0x000005201214static u32 A_UNEXPECTED_PHASE_AFTER_DATA_IN_used[] __attribute((unused)) = {1215	0x000000c9,1216};1217 1218#define A_UNEXPECTED_PHASE_AFTER_DATA_OUT	0x000006201219static u32 A_UNEXPECTED_PHASE_AFTER_DATA_OUT_used[] __attribute((unused)) = {1220	0x000000d5,1221};1222 1223#define A_UNEXPECTED_PHASE_BEFORE_CMD	0x000002201224static u32 A_UNEXPECTED_PHASE_BEFORE_CMD_used[] __attribute((unused)) = {1225	0x00000077,1226};1227 1228#define A_WDTR_MSG	0x000000031229static u32 A_WDTR_MSG_used[] __attribute((unused)) = {1230};1231 1232#define A_WDTR_MSG_AFTER_CMD	0x000003a01233static u32 A_WDTR_MSG_AFTER_CMD_used[] __attribute((unused)) = {1234};1235 1236#define A_WDTR_MSG_R	0x000000a01237static u32 A_WDTR_MSG_R_used[] __attribute((unused)) = {1238};1239 1240#define Ent_Disconnect1	0x000002a81241#define Ent_Disconnect2	0x000002b01242#define Ent_Disconnect3	0x000003a81243#define Ent_Disconnect4	0x000003b01244#define Ent_Disconnect5	0x000003d01245#define Ent_Disconnect6	0x000003d81246#define Ent_Disconnect7	0x000004481247#define Ent_Disconnect8	0x000004501248#define Ent_Finish1	0x000004a01249#define Ent_Finish2	0x000004a81250#define Ent_FinishCommandComplete	0x000004901251#define Ent_GetReselectionData	0x000000381252#define Ent_GetReselectionWithTag	0x000000481253#define Ent_IgnoreMessage	0x000001881254#define Ent_MsgInDuringData	0x000002181255#define Ent_ReceiveMessage	0x000000a01256#define Ent_SelectedAsTarget	0x000000581257#define Ent_SendCommand	0x000001c81258#define Ent_SendMessage	0x000000781259#define Ent_SendMessagePhaseMismatch	0x000000901260#define Ent_SendMessageWithATN	0x000001981261#define Ent_StartUp	0x000000001262static 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 1321static struct {1322	u32	offset;1323	void		*address;1324} EXTERNAL_PATCHES[] __attribute((unused)) = {1325};1326 1327static u32 INSTRUCTIONS __attribute((unused))	= 149;1328static u32 PATCHES __attribute((unused))	= 56;1329static u32 EXTERNAL_PATCHES_LEN __attribute((unused))	= 0;1330