1 unsigned long na_script[] = {
2 /* extern scsi_id_buf */
3 /* extern msg_out_buf */
4 /* extern cmd_buf */
5 /* extern data_buf */
6 /* extern status_buf */
7 /* extern msgin_buf */
8 /* extern dsa_0 */
9 /* extern dsa_1 */
10 /* extern dsa_head */
11 /* extern ssid_mask */
12 /* SIR_MSG_IO_COMPLETE = 0 */
13 /* error_not_cmd_complete = 1 */
14 /* error_disconnected = 2 */
15 /* error_reselected = 3 */
16 /* error_unexpected_phase = 4 */
17 /* error_weird_message = 5 */
18 /* SIR_ERROR_NOT_MSG_IN_AFTER_RESELECT = 6 */
19 /* error_not_identify_after_reselect = 7 */
20 /* error_too_much_data = 8 */
21 /* error_too_little_data = 9 */
22 /* SIR_MSG_REJECT = 10 */
23 /* SIR_MSG_SDTR = 11 */
24 /* SIR_EV_RESPONSE_OK = 12 */
25 /* error_sigp_set = 13 */
26 /* SIR_EV_PHASE_SWITCH_AFTER_ID = 14 */
27 /* SIR_MSG_WDTR = 15 */
28 /* SIR_MSG_IGNORE_WIDE_RESIDUE = 16 */
29 /* SIR_NOTIFY_DISC = 100 */
30 /* SIR_NOTIFY_RESELECT = 101 */
31 /* SIR_NOTIFY_MSG_IN = 102 */
32 /* SIR_NOTIFY_STATUS = 103 */
33 /* SIR_NOTIFY_DUMP = 104 */
34 /* SIR_NOTIFY_DUMP2 = 105 */
35 /* SIR_NOTIFY_SIGP = 106 */
36 /* SIR_NOTIFY_ISSUE = 107 */
37 /* SIR_NOTIFY_WAIT_RESELECT = 108 */
38 /* SIR_NOTIFY_ISSUE_CHECK = 109 */
39 /* SIR_NOTIFY_DUMP_NEXT_CODE = 110 */
40 /* SIR_NOTIFY_COMMAND = 111 */
41 /* SIR_NOTIFY_DATA_IN = 112 */
42 /* SIR_NOTIFY_DATA_OUT = 113 */
43 /* SIR_NOTIFY_BLOCK_DATA_IN = 114 */
44 /* SIR_NOTIFY_WSR = 115 */
45 /* SIR_NOTIFY_LOAD_SYNC = 116 */
46 /* SIR_NOTIFY_RESELECTED_ON_SELECT = 117 */
47 /* SIR_NOTIFY_LOAD_STATE = 118 */
48 /* STATE_FREE = 0 */
49 /* STATE_ALLOCATED = 1 */
50 /* STATE_ISSUE = 2 */
51 /* STATE_DISCONNECTED = 3 */
52 /* STATE_DONE = 4 */
53 /* STATE_END = 5 */
54 /* RESULT_OK = 0 */
55 /* MSG_IDENTIFY = 0x80 */
56 /* MSG_DISCONNECT = 0x04 */
57 /* MSG_SAVE_DATA_POINTER = 0x02 */
58 /* MSG_RESTORE_POINTERS = 0x03 */
59 /* MSG_IGNORE_WIDE_RESIDUE = 0x23 */
60 /* X_MSG = 0x01 */
61 /* X_MSG_SDTR = 0x01 */
62 /* X_MSG_WDTR = 0x03 */
63 /* MSG_REJECT = 0x07 */
64 /* BSIZE = 512 */
65 /* 0000 */ 0x80880000L, /* jump wait_for_reselection */
66 /* 0004 */ 0x00000514L,
67 /* 0008 */ 0x88880000L, /* call load_sync */
68 /* 000c */ 0x00000790L,
69 /* 0010 */ 0x60000200L, /* clear target */
70 /* 0014 */ 0x00000000L,
71 /* 0018 */ 0x47000000L, /* select atn from scsi_id_buf, reselected_on_select */
72 /* 001c */ 0x000004ecL,
73 /* 0020 */ 0x878b0000L, /* jump start1, when msg_in */
74 /* 0024 */ 0x00000000L,
75 /* 0028 */ 0x1e000000L, /* move from msg_out_buf, when msg_out */
76 /* 002c */ 0x00000001L,
77 /* 0030 */ 0x868b0000L, /* jump start1, when msg_out */
78 /* 0034 */ 0x00fffff0L,
79 /* 0038 */ 0x82830000L, /* jump to_decisions, when not cmd */
80 /* 003c */ 0x000005b8L,
81 /* 0040 */ 0x60000008L, /* clear atn */
82 /* 0044 */ 0x00000000L,
83 /* 0048 */ 0x1a000000L, /* move from cmd_buf, when cmd */
84 /* 004c */ 0x00000002L,
85 /* 0050 */ 0x81830000L, /* jump to_decisions, when not data_in */
86 /* 0054 */ 0x000005a0L,
87 /* 0058 */ 0xc0000004L, /* move memory 4, state, scratcha */
88 /* 005c */ 0x00000640L,
89 /* 0060 */ 0x00000034L,
90 /* 0064 */ 0xc0000004L, /* move memory 4, dmaaddr, scratchb */
91 /* 0068 */ 0x00000644L,
92 /* 006c */ 0x0000005cL,
93 /* 0070 */ 0x72360000L, /* move scratcha2 to sfbr */
94 /* 0074 */ 0x00000000L,
95 /* 0078 */ 0x808c0000L, /* jump data_in_normal, if 0 */
96 /* 007c */ 0x00000078L,
97 /* 0080 */ 0x29000200L, /* move BSIZE, ptr dmaaddr, when data_in */
98 /* 0084 */ 0x00000644L,
99 /* 0088 */ 0x7e5d0200L, /* move scratchb1 + BSIZE / 256 to scratchb1 */
100 /* 008c */ 0x00000000L,
101 /* 0090 */ 0x7f5e0000L, /* move scratchb2 + 0 to scratchb2 with carry */
102 /* 0094 */ 0x00000000L,
103 /* 0098 */ 0x7f5f0000L, /* move scratchb3 + 0 to scratchb3 with carry */
104 /* 009c */ 0x00000000L,
105 /* 00a0 */ 0x7e36ff00L, /* move scratcha2 + 255 to scratcha2 */
106 /* 00a4 */ 0x00000000L,
107 /* 00a8 */ 0xc0000004L, /* move memory 4, scratchb, dmaaddr */
108 /* 00ac */ 0x0000005cL,
109 /* 00b0 */ 0x00000644L,
110 /* 00b4 */ 0x818b0000L, /* jump data_in_block_loop, when data_in */
111 /* 00b8 */ 0x00ffffb4L,
112 /* 00bc */ 0xc0000004L, /* move memory 4, scratcha, state */
113 /* 00c0 */ 0x00000034L,
114 /* 00c4 */ 0x00000640L,
115 /* 00c8 */ 0x88880000L, /* call save_state */
116 /* 00cc */ 0x0000065cL,
117 /* 00d0 */ 0x80880000L, /* jump to_decisions */
118 /* 00d4 */ 0x00000520L,
119 /* 00d8 */ 0xc0000004L, /* move memory 4, scratchb, dmaaddr */
120 /* 00dc */ 0x0000005cL,
121 /* 00e0 */ 0x00000644L,
122 /* 00e4 */ 0xc0000004L, /* move memory 4, scratcha, state */
123 /* 00e8 */ 0x00000034L,
124 /* 00ec */ 0x00000640L,
125 /* 00f0 */ 0x80880000L, /* jump to_decisions */
126 /* 00f4 */ 0x00000500L,
127 /* 00f8 */ 0x72370000L, /* move scratcha3 to sfbr */
128 /* 00fc */ 0x00000000L,
129 /* 0100 */ 0x98040000L, /* int error_too_much_data, if not 0 */
130 /* 0104 */ 0x00000008L,
131 /* 0108 */ 0x19000000L, /* move from data_buf, when data_in */
132 /* 010c */ 0x00000003L,
133 /* 0110 */ 0x78370200L, /* move 2 to scratcha3 */
134 /* 0114 */ 0x00000000L,
135 /* 0118 */ 0xc0000004L, /* move memory 4, scratcha, state */
136 /* 011c */ 0x00000034L,
137 /* 0120 */ 0x00000640L,
138 /* 0124 */ 0x88880000L, /* call save_state */
139 /* 0128 */ 0x00000600L,
140 /* 012c */ 0x80880000L, /* jump post_data_to_decisions */
141 /* 0130 */ 0x000004f4L,
142 /* 0134 */ 0xc0000004L, /* move memory 4, state, scratcha */
143 /* 0138 */ 0x00000640L,
144 /* 013c */ 0x00000034L,
145 /* 0140 */ 0xc0000004L, /* move memory 4, dmaaddr, scratchb */
146 /* 0144 */ 0x00000644L,
147 /* 0148 */ 0x0000005cL,
148 /* 014c */ 0x72360000L, /* move scratcha2 to sfbr */
149 /* 0150 */ 0x00000000L,
150 /* 0154 */ 0x808c0000L, /* jump data_out_normal, if 0 */
151 /* 0158 */ 0x0000005cL,
152 /* 015c */ 0xc0000004L, /* move memory 4, dmaaddr, scratchb */
153 /* 0160 */ 0x00000644L,
154 /* 0164 */ 0x0000005cL,
155 /* 0168 */ 0x28000200L, /* move BSIZE, ptr dmaaddr, when data_out */
156 /* 016c */ 0x00000644L,
157 /* 0170 */ 0x7e5d0200L, /* move scratchb1 + BSIZE / 256 to scratchb1 */
158 /* 0174 */ 0x00000000L,
159 /* 0178 */ 0x7f5e0000L, /* move scratchb2 + 0 to scratchb2 with carry */
160 /* 017c */ 0x00000000L,
161 /* 0180 */ 0x7f5f0000L, /* move scratchb3 + 0 to scratchb3 with carry */
162 /* 0184 */ 0x00000000L,
163 /* 0188 */ 0x7e36ff00L, /* move scratcha2 + 255 to scratcha2 */
164 /* 018c */ 0x00000000L,
165 /* 0190 */ 0xc0000004L, /* move memory 4, scratchb, dmaaddr */
166 /* 0194 */ 0x0000005cL,
167 /* 0198 */ 0x00000644L,
168 /* 019c */ 0x808b0000L, /* jump data_out_block_loop, when data_out */
169 /* 01a0 */ 0x00ffffa8L,
170 /* 01a4 */ 0xc0000004L, /* move memory 4, scratcha, state */
171 /* 01a8 */ 0x00000034L,
172 /* 01ac */ 0x00000640L,
173 /* 01b0 */ 0x80880000L, /* jump to_decisions */
174 /* 01b4 */ 0x00000440L,
175 /* 01b8 */ 0x72370000L, /* move scratcha3 to sfbr */
176 /* 01bc */ 0x00000000L,
177 /* 01c0 */ 0x98040000L, /* int error_too_little_data, if not 0 */
178 /* 01c4 */ 0x00000009L,
179 /* 01c8 */ 0x18000000L, /* move from data_buf, when data_out */
180 /* 01cc */ 0x00000003L,
181 /* 01d0 */ 0x78370200L, /* move 2 to scratcha3 */
182 /* 01d4 */ 0x00000000L,
183 /* 01d8 */ 0xc0000004L, /* move memory 4, scratcha, state */
184 /* 01dc */ 0x00000034L,
185 /* 01e0 */ 0x00000640L,
186 /* 01e4 */ 0x88880000L, /* call save_state */
187 /* 01e8 */ 0x00000540L,
188 /* 01ec */ 0x80880000L, /* jump post_data_to_decisions */
189 /* 01f0 */ 0x00000434L,
190 /* 01f4 */ 0x1b000000L, /* move from status_buf, when status */
191 /* 01f8 */ 0x00000004L,
192 /* 01fc */ 0x9f030000L, /* int error_unexpected_phase, when not msg_in */
193 /* 0200 */ 0x00000004L,
194 /* 0204 */ 0x0f000001L, /* move 1, scratcha, when msg_in */
195 /* 0208 */ 0x00000034L,
196 /* 020c */ 0x808c0007L, /* jump rejected, if MSG_REJECT */
197 /* 0210 */ 0x00000088L,
198 /* 0214 */ 0x808c0004L, /* jump disconnected, if MSG_DISCONNECT */
199 /* 0218 */ 0x00000298L,
200 /* 021c */ 0x808c0002L, /* jump msg_in_skip, if MSG_SAVE_DATA_POINTER */
201 /* 0220 */ 0x00000090L,
202 /* 0224 */ 0x808c0003L, /* jump msg_in_skip, if MSG_RESTORE_POINTERS */
203 /* 0228 */ 0x00000088L,
204 /* 022c */ 0x808c0023L, /* jump ignore_wide, if MSG_IGNORE_WIDE_RESIDUE */
205 /* 0230 */ 0x000001f0L,
206 /* 0234 */ 0x808c0001L, /* jump extended, if X_MSG */
207 /* 0238 */ 0x00000088L,
208 /* 023c */ 0x98040000L, /* int error_not_cmd_complete, if not 0 */
209 /* 0240 */ 0x00000001L,
210 /* 0244 */ 0x7c027e00L, /* move scntl2&0x7e to scntl2 */
211 /* 0248 */ 0x00000000L,
212 /* 024c */ 0x60000040L, /* clear ack */
213 /* 0250 */ 0x00000000L,
214 /* 0254 */ 0x48000000L, /* wait disconnect */
215 /* 0258 */ 0x00000000L,
216 /* 025c */ 0xc0000004L, /* move memory 4, state, scratcha */
217 /* 0260 */ 0x00000640L,
218 /* 0264 */ 0x00000034L,
219 /* 0268 */ 0x78340400L, /* move STATE_DONE to scratcha0 */
220 /* 026c */ 0x00000000L,
221 /* 0270 */ 0x78350000L, /* move RESULT_OK to scratcha1 */
222 /* 0274 */ 0x00000000L,
223 /* 0278 */ 0xc0000004L, /* move memory 4, scratcha, state */
224 /* 027c */ 0x00000034L,
225 /* 0280 */ 0x00000640L,
226 /* 0284 */ 0x88880000L, /* call save_state */
227 /* 0288 */ 0x000004a0L,
228 /* 028c */ 0x98180000L, /* intfly 0 */
229 /* 0290 */ 0x00000000L,
230 /* 0294 */ 0x80880000L, /* jump issue_check */
231 /* 0298 */ 0x000004b8L,
232 /* 029c */ 0x98080000L, /* int SIR_MSG_REJECT */
233 /* 02a0 */ 0x0000000aL,
234 /* 02a4 */ 0x60000040L, /* clear ack */
235 /* 02a8 */ 0x00000000L,
236 /* 02ac */ 0x80880000L, /* jump to_decisions */
237 /* 02b0 */ 0x00000344L,
238 /* 02b4 */ 0x60000040L, /* clear ack */
239 /* 02b8 */ 0x00000000L,
240 /* 02bc */ 0x80880000L, /* jump to_decisions */
241 /* 02c0 */ 0x00000334L,
242 /* 02c4 */ 0x60000040L, /* clear ack */
243 /* 02c8 */ 0x00000000L,
244 /* 02cc */ 0x9f030000L, /* int error_unexpected_phase, when not msg_in */
245 /* 02d0 */ 0x00000004L,
246 /* 02d4 */ 0x0f000001L, /* move 1, scratcha1, when msg_in */
247 /* 02d8 */ 0x00000035L,
248 /* 02dc */ 0x808c0003L, /* jump ext_3, if 3 */
249 /* 02e0 */ 0x00000030L,
250 /* 02e4 */ 0x808c0002L, /* jump ext_2, if 2 */
251 /* 02e8 */ 0x00000098L,
252 /* 02ec */ 0x98040001L, /* int error_weird_message, if not 1 */
253 /* 02f0 */ 0x00000005L,
254 /* 02f4 */ 0x60000040L, /* clear ack */
255 /* 02f8 */ 0x00000000L,
256 /* 02fc */ 0x9f030000L, /* int error_unexpected_phase, when not msg_in */
257 /* 0300 */ 0x00000004L,
258 /* 0304 */ 0x0f000001L, /* move 1, scratcha1, when msg_in */
259 /* 0308 */ 0x00000035L,
260 /* 030c */ 0x80880000L, /* jump ext_done */
261 /* 0310 */ 0x000000c8L,
262 /* 0314 */ 0x60000040L, /* ext_3: clear ack */
263 /* 0318 */ 0x00000000L,
264 /* 031c */ 0x9f030000L, /* int error_unexpected_phase, when not msg_in */
265 /* 0320 */ 0x00000004L,
266 /* 0324 */ 0x0f000001L, /* move 1, scratcha1, when msg_in */
267 /* 0328 */ 0x00000035L,
268 /* 032c */ 0x60000040L, /* clear ack */
269 /* 0330 */ 0x00000000L,
270 /* 0334 */ 0x9f030000L, /* int error_unexpected_phase, when not msg_in */
271 /* 0338 */ 0x00000004L,
272 /* 033c */ 0x0f000001L, /* move 1, scratcha2, when msg_in */
273 /* 0340 */ 0x00000036L,
274 /* 0344 */ 0x60000040L, /* clear ack */
275 /* 0348 */ 0x00000000L,
276 /* 034c */ 0x9f030000L, /* int error_unexpected_phase, when not msg_in */
277 /* 0350 */ 0x00000004L,
278 /* 0354 */ 0x0f000001L, /* move 1, scratcha3, when msg_in */
279 /* 0358 */ 0x00000037L,
280 /* 035c */ 0x72350000L, /* move scratcha1 to sfbr */
281 /* 0360 */ 0x00000000L,
282 /* 0364 */ 0x80840001L, /* jump ext_done, if not X_MSG_SDTR */
283 /* 0368 */ 0x00000070L,
284 /* 036c */ 0x98080000L, /* sdtr: int SIR_MSG_SDTR */
285 /* 0370 */ 0x0000000bL,
286 /* 0374 */ 0x60000040L, /* clear ack */
287 /* 0378 */ 0x00000000L,
288 /* 037c */ 0x80880000L, /* jump to_decisions */
289 /* 0380 */ 0x00000274L,
290 /* 0384 */ 0x60000040L, /* ext_2: clear ack */
291 /* 0388 */ 0x00000000L,
292 /* 038c */ 0x9f030000L, /* int error_unexpected_phase, when not msg_in */
293 /* 0390 */ 0x00000004L,
294 /* 0394 */ 0x0f000001L, /* move 1, scratcha1, when msg_in */
295 /* 0398 */ 0x00000035L,
296 /* 039c */ 0x60000040L, /* clear ack */
297 /* 03a0 */ 0x00000000L,
298 /* 03a4 */ 0x9f030000L, /* int error_unexpected_phase, when not msg_in */
299 /* 03a8 */ 0x00000004L,
300 /* 03ac */ 0x0f000001L, /* move 1, scratcha2, when msg_in */
301 /* 03b0 */ 0x00000036L,
302 /* 03b4 */ 0x72350000L, /* move scratcha1 to sfbr */
303 /* 03b8 */ 0x00000000L,
304 /* 03bc */ 0x80840003L, /* jump ext_done, if not X_MSG_WDTR */
305 /* 03c0 */ 0x00000018L,
306 /* 03c4 */ 0x98080000L, /* wdtr: int SIR_MSG_WDTR */
307 /* 03c8 */ 0x0000000fL,
308 /* 03cc */ 0x60000040L, /* clear ack */
309 /* 03d0 */ 0x00000000L,
310 /* 03d4 */ 0x80880000L, /* jump to_decisions */
311 /* 03d8 */ 0x0000021cL,
312 /* 03dc */ 0x58000008L, /* set atn */
313 /* 03e0 */ 0x00000000L,
314 /* 03e4 */ 0x60000040L, /* clear ack */
315 /* 03e8 */ 0x00000000L,
316 /* 03ec */ 0x78340700L, /* move MSG_REJECT to scratcha */
317 /* 03f0 */ 0x00000000L,
318 /* 03f4 */ 0x9e030000L, /* int error_unexpected_phase, when not msg_out */
319 /* 03f8 */ 0x00000004L,
320 /* 03fc */ 0x60000008L, /* clear atn */
321 /* 0400 */ 0x00000000L,
322 /* 0404 */ 0x0e000001L, /* move 1, scratcha, when msg_out */
323 /* 0408 */ 0x00000034L,
324 /* 040c */ 0x60000040L, /* clear ack */
325 /* 0410 */ 0x00000000L,
326 /* 0414 */ 0x868b0000L, /* jump reject, when msg_out */
327 /* 0418 */ 0x00ffffc0L,
328 /* 041c */ 0x80880000L, /* jump to_decisions */
329 /* 0420 */ 0x000001d4L,
330 /* 0424 */ 0x60000040L, /* clear ack */
331 /* 0428 */ 0x00000000L,
332 /* 042c */ 0x9f030000L, /* int error_unexpected_phase, when not msg_in */
333 /* 0430 */ 0x00000004L,
334 /* 0434 */ 0x0f000001L, /* move 1, scratcha1, when msg_in */
335 /* 0438 */ 0x00000035L,
336 /* 043c */ 0x98080000L, /* int SIR_MSG_IGNORE_WIDE_RESIDUE */
337 /* 0440 */ 0x00000010L,
338 /* 0444 */ 0x60000040L, /* clear ack */
339 /* 0448 */ 0x00000000L,
340 /* 044c */ 0x80880000L, /* jump to_decisions */
341 /* 0450 */ 0x000001a4L,
342 /* 0454 */ 0x58000008L, /* set atn */
343 /* 0458 */ 0x00000000L,
344 /* 045c */ 0x60000040L, /* clear ack */
345 /* 0460 */ 0x00000000L,
346 /* 0464 */ 0x9e030000L, /* int error_unexpected_phase, when not msg_out */
347 /* 0468 */ 0x00000004L,
348 /* 046c */ 0x1e000000L, /* move from msg_out_buf, when msg_out */
349 /* 0470 */ 0x00000001L,
350 /* 0474 */ 0x868b0000L, /* jump response_repeat, when msg_out */
351 /* 0478 */ 0x00fffff0L,
352 /* 047c */ 0x878b0000L, /* jump response_msg_in, when msg_in */
353 /* 0480 */ 0x00000010L,
354 /* 0484 */ 0x98080000L, /* int SIR_EV_RESPONSE_OK */
355 /* 0488 */ 0x0000000cL,
356 /* 048c */ 0x80880000L, /* jump to_decisions */
357 /* 0490 */ 0x00000164L,
358 /* 0494 */ 0x0f000001L, /* move 1, scratcha, when msg_in */
359 /* 0498 */ 0x00000034L,
360 /* 049c */ 0x808c0007L, /* jump rejected, if MSG_REJECT */
361 /* 04a0 */ 0x00fffdf8L,
362 /* 04a4 */ 0x98080000L, /* int SIR_EV_RESPONSE_OK */
363 /* 04a8 */ 0x0000000cL,
364 /* 04ac */ 0x80880000L, /* jump msg_in_not_reject */
365 /* 04b0 */ 0x00fffd60L,
366 /* 04b4 */ 0x7c027e00L, /* move scntl2&0x7e to scntl2 */
367 /* 04b8 */ 0x00000000L,
368 /* 04bc */ 0x60000040L, /* clear ack */
369 /* 04c0 */ 0x00000000L,
370 /* 04c4 */ 0x48000000L, /* wait disconnect */
371 /* 04c8 */ 0x00000000L,
372 /* 04cc */ 0xc0000004L, /* move memory 4, state, scratcha */
373 /* 04d0 */ 0x00000640L,
374 /* 04d4 */ 0x00000034L,
375 /* 04d8 */ 0x78340300L, /* move STATE_DISCONNECTED to scratcha0 */
376 /* 04dc */ 0x00000000L,
377 /* 04e0 */ 0xc0000004L, /* move memory 4, scratcha, state */
378 /* 04e4 */ 0x00000034L,
379 /* 04e8 */ 0x00000640L,
380 /* 04ec */ 0x88880000L, /* call save_state */
381 /* 04f0 */ 0x00000238L,
382 /* 04f4 */ 0x74020100L, /* move scntl2&0x01 to sfbr */
383 /* 04f8 */ 0x00000000L,
384 /* 04fc */ 0x98040000L, /* int SIR_NOTIFY_WSR, if not 0 */
385 /* 0500 */ 0x00000073L,
386 /* 0504 */ 0x80880000L, /* jump issue_check */
387 /* 0508 */ 0x00000248L,
388 /* 050c */ 0x98080000L, /* int SIR_NOTIFY_RESELECTED_ON_SELECT */
389 /* 0510 */ 0x00000075L,
390 /* 0514 */ 0x80880000L, /* jump reselected */
391 /* 0518 */ 0x00000008L,
392 /* 051c */ 0x54000000L, /* wait reselect sigp_set */
393 /* 0520 */ 0x00000228L,
394 /* 0524 */ 0x60000200L, /* clear target */
395 /* 0528 */ 0x00000000L,
396 /* 052c */ 0x9f030000L, /* int SIR_ERROR_NOT_MSG_IN_AFTER_RESELECT, when not msg_in */
397 /* 0530 */ 0x00000006L,
398 /* 0534 */ 0x0f000001L, /* move 1, scratchb, when msg_in */
399 /* 0538 */ 0x0000005cL,
400 /* 053c */ 0x98041f80L, /* int error_not_identify_after_reselect, if not MSG_IDENTIFY and mask 0x1f */
401 /* 0540 */ 0x00000007L,
402 /* 0544 */ 0xc0000004L, /* move memory 4, dsa_head, dsa */
403 /* 0548 */ 0x00000008L,
404 /* 054c */ 0x00000010L,
405 /* 0550 */ 0x88880000L, /* call load_state */
406 /* 0554 */ 0x00000100L,
407 /* 0558 */ 0xc0000004L, /* move memory 4, state, scratcha */
408 /* 055c */ 0x00000640L,
409 /* 0560 */ 0x00000034L,
410 /* 0564 */ 0x72340000L, /* move scratcha0 to sfbr */
411 /* 0568 */ 0x00000000L,
412 /* 056c */ 0x80840003L, /* jump find_dsa_next, if not STATE_DISCONNECTED */
413 /* 0570 */ 0x00000040L,
414 /* 0574 */ 0x980c0005L, /* int error_reselected, if STATE_END */
415 /* 0578 */ 0x00000003L,
416 /* 057c */ 0x740a0900L, /* move ssid & ssid_mask to sfbr */
417 /* 0580 */ 0x00000000L,
418 /* 0584 */ 0xc0000001L, /* move memory 1, targ, find_dsa_smc1 */
419 /* 0588 */ 0x00000648L,
420 /* 058c */ 0x00000590L,
421 /* 0590 */ 0x808400ffL, /* jump find_dsa_next, if not 255 */
422 /* 0594 */ 0x0000001cL,
423 /* 0598 */ 0xc0000001L, /* move memory 1, lun, find_dsa_smc2 */
424 /* 059c */ 0x0000064cL,
425 /* 05a0 */ 0x000005acL,
426 /* 05a4 */ 0x725c0000L, /* move scratchb0 to sfbr */
427 /* 05a8 */ 0x00000000L,
428 /* 05ac */ 0x808cf8ffL, /* jump reload_sync, if 255 and mask ~7 */
429 /* 05b0 */ 0x00000034L,
430 /* 05b4 */ 0xc0000004L, /* move memory 4, next, dsa */
431 /* 05b8 */ 0x00000654L,
432 /* 05bc */ 0x00000010L,
433 /* 05c0 */ 0x80880000L, /* jump find_dsa_loop */
434 /* 05c4 */ 0x00ffff88L,
435 /* 05c8 */ 0x60000008L, /* clear atn */
436 /* 05cc */ 0x00000000L,
437 /* 05d0 */ 0x878b0000L, /* jump msg_in_phase, when msg_in */
438 /* 05d4 */ 0x00fffc2cL,
439 /* 05d8 */ 0x98080000L, /* int SIR_MSG_REJECT */
440 /* 05dc */ 0x0000000aL,
441 /* 05e0 */ 0x80880000L, /* jump to_decisions */
442 /* 05e4 */ 0x00000010L,
443 /* 05e8 */ 0x88880000L, /* call load_sync */
444 /* 05ec */ 0x000001b0L,
445 /* 05f0 */ 0x60000040L, /* clear ack */
446 /* 05f4 */ 0x00000000L,
447 /* 05f8 */ 0x818b0000L, /* jump data_in_phase, when data_in */
448 /* 05fc */ 0x00fffa58L,
449 /* 0600 */ 0x828a0000L, /* jump cmd_phase, if cmd */
450 /* 0604 */ 0x00fffa38L,
451 /* 0608 */ 0x808a0000L, /* jump data_out_phase, if data_out */
452 /* 060c */ 0x00fffb24L,
453 /* 0610 */ 0x838a0000L, /* jump status_phase, if status */
454 /* 0614 */ 0x00fffbdcL,
455 /* 0618 */ 0x878a0000L, /* jump msg_in_phase, if msg_in */
456 /* 061c */ 0x00fffbe4L,
457 /* 0620 */ 0x98080000L, /* int error_unexpected_phase */
458 /* 0624 */ 0x00000004L,
459 /* 0628 */ 0x838b0000L, /* jump status_phase, when status */
460 /* 062c */ 0x00fffbc4L,
461 /* 0630 */ 0x878a0000L, /* jump msg_in_phase, if msg_in */
462 /* 0634 */ 0x00fffbccL,
463 /* 0638 */ 0x98080000L, /* int error_unexpected_phase */
464 /* 063c */ 0x00000004L,
465 /* 0640 */ 0x00000000L, /* state: defw 0 */
466 /* 0644 */ 0x00000000L, /* dmaaddr: defw 0 */
467 /* 0648 */ 0x00000000L, /* targ: defw 0 */
468 /* 064c */ 0x00000000L, /* lun: defw 0 */
469 /* 0650 */ 0x00000000L, /* sync: defw 0 */
470 /* 0654 */ 0x00000000L, /* next: defw 0 */
471 /* dsa_load_len = dsa_load_end - dsa_copy */
472 /* dsa_save_len = dsa_save_end - dsa_copy */
473 /* 0658 */ 0x80880000L, /* jump load_state_okay */
474 /* 065c */ 0x000000acL,
475 /* 0660 */ 0x72100000L, /* move dsa0 to sfbr */
476 /* 0664 */ 0x00000000L,
477 /* 0668 */ 0x80840000L, /* jump load_state_okay, if not 0 */
478 /* 066c */ 0x0000009cL,
479 /* 0670 */ 0x72110000L, /* move dsa1 to sfbr */
480 /* 0674 */ 0x00000000L,
481 /* 0678 */ 0x80840000L, /* jump load_state_okay, if not 0 */
482 /* 067c */ 0x0000008cL,
483 /* 0680 */ 0x72120000L, /* move dsa2 to sfbr */
484 /* 0684 */ 0x00000000L,
485 /* 0688 */ 0x80840000L, /* jump load_state_okay, if not 0 */
486 /* 068c */ 0x0000007cL,
487 /* 0690 */ 0x72130000L, /* move dsa3 to sfbr */
488 /* 0694 */ 0x00000000L,
489 /* 0698 */ 0x80840000L, /* jump load_state_okay, if not 0 */
490 /* 069c */ 0x0000006cL,
491 /* 06a0 */ 0xc0000004L, /* move memory 4, dsa, dmaaddr */
492 /* 06a4 */ 0x00000010L,
493 /* 06a8 */ 0x00000644L,
494 /* 06ac */ 0xc0000004L, /* move memory 4, dsa, targ */
495 /* 06b0 */ 0x00000010L,
496 /* 06b4 */ 0x00000648L,
497 /* 06b8 */ 0xc0000004L, /* move memory 4, dsa, lun */
498 /* 06bc */ 0x00000010L,
499 /* 06c0 */ 0x0000064cL,
500 /* 06c4 */ 0xc0000004L, /* move memory 4, dsa, sync */
501 /* 06c8 */ 0x00000010L,
502 /* 06cc */ 0x00000650L,
503 /* 06d0 */ 0xc0000004L, /* move memory 4, dsa, next */
504 /* 06d4 */ 0x00000010L,
505 /* 06d8 */ 0x00000654L,
506 /* 06dc */ 0xc0000004L, /* move memory 4, dsa, scratcha */
507 /* 06e0 */ 0x00000010L,
508 /* 06e4 */ 0x00000034L,
509 /* 06e8 */ 0x68080500L, /* move STATE_END to sfbr */
510 /* 06ec */ 0x00000000L,
511 /* 06f0 */ 0x6a340000L, /* move sfbr to scratcha0 */
512 /* 06f4 */ 0x00000000L,
513 /* 06f8 */ 0xc0000004L, /* move memory 4, scratcha, state */
514 /* 06fc */ 0x00000034L,
515 /* 0700 */ 0x00000640L,
516 /* 0704 */ 0x90080000L, /* return */
517 /* 0708 */ 0x00000000L,
518 /* 070c */ 0xc0000004L, /* move memory 4, dsa, load_state_smc0 + 4 */
519 /* 0710 */ 0x00000010L,
520 /* 0714 */ 0x0000071cL,
521 /* 0718 */ 0xc0000018L, /* move memory dsa_load_len, 0, dsa_copy */
522 /* 071c */ 0x00000000L,
523 /* 0720 */ 0x00000640L,
524 /* 0724 */ 0x90080000L, /* return */
525 /* 0728 */ 0x00000000L,
526 /* 072c */ 0xc0000004L, /* move memory 4, dsa, save_state_smc0 + 8 */
527 /* 0730 */ 0x00000010L,
528 /* 0734 */ 0x00000740L,
529 /* 0738 */ 0xc0000008L, /* move memory dsa_save_len, dsa_copy, 0 */
530 /* 073c */ 0x00000640L,
531 /* 0740 */ 0x00000000L,
532 /* 0744 */ 0x90080000L, /* return */
533 /* 0748 */ 0x00000000L,
534 /* 074c */ 0x721a0000L, /* move ctest2 to sfbr */
535 /* 0750 */ 0x00000000L,
536 /* 0754 */ 0xc0000004L, /* move memory 4, dsa_head, dsa */
537 /* 0758 */ 0x00000008L,
538 /* 075c */ 0x00000010L,
539 /* 0760 */ 0x88880000L, /* call load_state */
540 /* 0764 */ 0x00fffef0L,
541 /* 0768 */ 0xc0000004L, /* move memory 4, state, scratcha */
542 /* 076c */ 0x00000640L,
543 /* 0770 */ 0x00000034L,
544 /* 0774 */ 0x72340000L, /* move scratcha0 to sfbr */
545 /* 0778 */ 0x00000000L,
546 /* 077c */ 0x808c0002L, /* jump start, if STATE_ISSUE */
547 /* 0780 */ 0x00fff884L,
548 /* 0784 */ 0x808c0005L, /* jump wait_for_reselection, if STATE_END */
549 /* 0788 */ 0x00fffd90L,
550 /* 078c */ 0xc0000004L, /* move memory 4, next, dsa */
551 /* 0790 */ 0x00000654L,
552 /* 0794 */ 0x00000010L,
553 /* 0798 */ 0x80880000L, /* jump issue_check_loop */
554 /* 079c */ 0x00ffffc0L,
555 /* 07a0 */ 0xc0000004L, /* move memory 4, sync, scratcha */
556 /* 07a4 */ 0x00000650L,
557 /* 07a8 */ 0x00000034L,
558 /* 07ac */ 0x72340000L, /* move scratcha0 to sfbr */
559 /* 07b0 */ 0x00000000L,
560 /* 07b4 */ 0x6a030000L, /* move sfbr to scntl3 */
561 /* 07b8 */ 0x00000000L,
562 /* 07bc */ 0x72350000L, /* move scratcha1 to sfbr */
563 /* 07c0 */ 0x00000000L,
564 /* 07c4 */ 0x6a050000L, /* move sfbr to sxfer */
565 /* 07c8 */ 0x00000000L,
566 /* 07cc */ 0x90080000L, /* return */
567 /* 07d0 */ 0x00000000L,
568 };
569
570 #define NA_SCRIPT_SIZE 501
571
572 struct na_patch na_patches[] = {
573 { 0x0006, 5 }, /* 00000018 */
574 { 0x000b, 4 }, /* 0000002c */
575 { 0x0013, 4 }, /* 0000004c */
576 { 0x0017, 1 }, /* 0000005c */
577 { 0x0018, 2 }, /* 00000060 */
578 { 0x001a, 1 }, /* 00000068 */
579 { 0x001b, 2 }, /* 0000006c */
580 { 0x0021, 1 }, /* 00000084 */
581 { 0x002b, 2 }, /* 000000ac */
582 { 0x002c, 1 }, /* 000000b0 */
583 { 0x0030, 2 }, /* 000000c0 */
584 { 0x0031, 1 }, /* 000000c4 */
585 { 0x0037, 2 }, /* 000000dc */
586 { 0x0038, 1 }, /* 000000e0 */
587 { 0x003a, 2 }, /* 000000e8 */
588 { 0x003b, 1 }, /* 000000ec */
589 { 0x0043, 4 }, /* 0000010c */
590 { 0x0047, 2 }, /* 0000011c */
591 { 0x0048, 1 }, /* 00000120 */
592 { 0x004e, 1 }, /* 00000138 */
593 { 0x004f, 2 }, /* 0000013c */
594 { 0x0051, 1 }, /* 00000144 */
595 { 0x0052, 2 }, /* 00000148 */
596 { 0x0058, 1 }, /* 00000160 */
597 { 0x0059, 2 }, /* 00000164 */
598 { 0x005b, 1 }, /* 0000016c */
599 { 0x0065, 2 }, /* 00000194 */
600 { 0x0066, 1 }, /* 00000198 */
601 { 0x006a, 2 }, /* 000001a8 */
602 { 0x006b, 1 }, /* 000001ac */
603 { 0x0073, 4 }, /* 000001cc */
604 { 0x0077, 2 }, /* 000001dc */
605 { 0x0078, 1 }, /* 000001e0 */
606 { 0x007e, 4 }, /* 000001f8 */
607 { 0x0082, 2 }, /* 00000208 */
608 { 0x0098, 1 }, /* 00000260 */
609 { 0x0099, 2 }, /* 00000264 */
610 { 0x009f, 2 }, /* 0000027c */
611 { 0x00a0, 1 }, /* 00000280 */
612 { 0x00b6, 2 }, /* 000002d8 */
613 { 0x00c2, 2 }, /* 00000308 */
614 { 0x00ca, 2 }, /* 00000328 */
615 { 0x00d0, 2 }, /* 00000340 */
616 { 0x00d6, 2 }, /* 00000358 */
617 { 0x00e6, 2 }, /* 00000398 */
618 { 0x00ec, 2 }, /* 000003b0 */
619 { 0x0102, 2 }, /* 00000408 */
620 { 0x010e, 2 }, /* 00000438 */
621 { 0x011c, 4 }, /* 00000470 */
622 { 0x0126, 2 }, /* 00000498 */
623 { 0x0134, 1 }, /* 000004d0 */
624 { 0x0135, 2 }, /* 000004d4 */
625 { 0x0139, 2 }, /* 000004e4 */
626 { 0x013a, 1 }, /* 000004e8 */
627 { 0x014e, 2 }, /* 00000538 */
628 { 0x0152, 4 }, /* 00000548 */
629 { 0x0153, 2 }, /* 0000054c */
630 { 0x0157, 1 }, /* 0000055c */
631 { 0x0158, 2 }, /* 00000560 */
632 { 0x015f, 3 }, /* 0000057c */
633 { 0x0162, 1 }, /* 00000588 */
634 { 0x0163, 1 }, /* 0000058c */
635 { 0x0167, 1 }, /* 0000059c */
636 { 0x0168, 1 }, /* 000005a0 */
637 { 0x016e, 1 }, /* 000005b8 */
638 { 0x016f, 2 }, /* 000005bc */
639 { 0x01a9, 2 }, /* 000006a4 */
640 { 0x01aa, 1 }, /* 000006a8 */
641 { 0x01ac, 2 }, /* 000006b0 */
642 { 0x01ad, 1 }, /* 000006b4 */
643 { 0x01af, 2 }, /* 000006bc */
644 { 0x01b0, 1 }, /* 000006c0 */
645 { 0x01b2, 2 }, /* 000006c8 */
646 { 0x01b3, 1 }, /* 000006cc */
647 { 0x01b5, 2 }, /* 000006d4 */
648 { 0x01b6, 1 }, /* 000006d8 */
649 { 0x01b8, 2 }, /* 000006e0 */
650 { 0x01b9, 2 }, /* 000006e4 */
651 { 0x01bf, 2 }, /* 000006fc */
652 { 0x01c0, 1 }, /* 00000700 */
653 { 0x01c4, 2 }, /* 00000710 */
654 { 0x01c5, 1 }, /* 00000714 */
655 { 0x01c8, 1 }, /* 00000720 */
656 { 0x01cc, 2 }, /* 00000730 */
657 { 0x01cd, 1 }, /* 00000734 */
658 { 0x01cf, 1 }, /* 0000073c */
659 { 0x01d6, 4 }, /* 00000758 */
660 { 0x01d7, 2 }, /* 0000075c */
661 { 0x01db, 1 }, /* 0000076c */
662 { 0x01dc, 2 }, /* 00000770 */
663 { 0x01e4, 1 }, /* 00000790 */
664 { 0x01e5, 2 }, /* 00000794 */
665 { 0x01e9, 1 }, /* 000007a4 */
666 { 0x01ea, 2 }, /* 000007a8 */
667 };
668 #define NA_PATCHES 94
669
670 enum na_external {
671 X_scsi_id_buf,
672 X_msg_out_buf,
673 X_cmd_buf,
674 X_data_buf,
675 X_status_buf,
676 X_msgin_buf,
677 X_dsa_0,
678 X_dsa_1,
679 X_dsa_head,
680 X_ssid_mask,
681 };
682
683 enum {
684 E_issue_check_loop = 1888,
685 E_save_state_smc0 = 1848,
686 E_load_state_smc0 = 1816,
687 E_load_state_okay = 1804,
688 E_dsa_load_end = 1624,
689 E_sync = 1616,
690 E_dsa_save_end = 1608,
691 E_dsa_copy = 1600,
692 E_id_out_mismatch_recover = 1480,
693 E_next = 1620,
694 E_reload_sync = 1512,
695 E_find_dsa_smc2 = 1452,
696 E_lun = 1612,
697 E_find_dsa_smc1 = 1424,
698 E_targ = 1608,
699 E_find_dsa_next = 1460,
700 E_load_state = 1624,
701 E_find_dsa_loop = 1360,
702 E_find_dsa = 1348,
703 E_sigp_set = 1868,
704 E_reselected = 1316,
705 E_wsr_check = 1268,
706 E_response_msg_in = 1172,
707 E_response_repeat = 1132,
708 E_response = 1108,
709 E_reject = 988,
710 E_wdtr = 964,
711 E_sdtr = 876,
712 E_ext_done = 988,
713 E_ext_1 = 756,
714 E_ext_2 = 900,
715 E_ext_3 = 788,
716 E_issue_check = 1876,
717 E_extended = 708,
718 E_ignore_wide = 1060,
719 E_msg_in_skip = 692,
720 E_disconnected = 1204,
721 E_msg_in_not_reject = 532,
722 E_rejected = 668,
723 E_msg_in_phase = 516,
724 E_status_phase = 500,
725 E_data_out_mismatch = 464,
726 E_data_out_block_mismatch = 368,
727 E_data_out_normal = 440,
728 E_data_out_block_loop = 332,
729 E_data_out_phase = 308,
730 E_post_data_to_decisions = 1576,
731 E_data_in_mismatch = 272,
732 E_data_mismatch_recover = 228,
733 E_data_block_mismatch_recover = 216,
734 E_save_state = 1836,
735 E_data_in_block_mismatch = 136,
736 E_data_in_normal = 248,
737 E_data_in_block_loop = 112,
738 E_dmaaddr = 1604,
739 E_state = 1600,
740 E_data_in_phase = 88,
741 E_cmd_out_mismatch = 80,
742 E_cmd_phase = 64,
743 E_to_decisions = 1528,
744 E_id_out_mismatch = 48,
745 E_start1 = 40,
746 E_reselected_on_select = 1292,
747 E_load_sync = 1952,
748 E_start = 8,
749 E_wait_for_reselection = 1308,
750 };
751 #define A_dsa_save_len 8
752 #define A_dsa_load_len 24
753 #define A_BSIZE 512
754 #define A_MSG_REJECT 7
755 #define A_X_MSG_WDTR 3
756 #define A_X_MSG_SDTR 1
757 #define A_X_MSG 1
758 #define A_MSG_IGNORE_WIDE_RESIDUE 35
759 #define A_MSG_RESTORE_POINTERS 3
760 #define A_MSG_SAVE_DATA_POINTER 2
761 #define A_MSG_DISCONNECT 4
762 #define A_MSG_IDENTIFY 128
763 #define A_RESULT_OK 0
764 #define A_STATE_END 5
765 #define A_STATE_DONE 4
766 #define A_STATE_DISCONNECTED 3
767 #define A_STATE_ISSUE 2
768 #define A_STATE_ALLOCATED 1
769 #define A_STATE_FREE 0
770 #define A_SIR_NOTIFY_LOAD_STATE 118
771 #define A_SIR_NOTIFY_RESELECTED_ON_SELECT 117
772 #define A_SIR_NOTIFY_LOAD_SYNC 116
773 #define A_SIR_NOTIFY_WSR 115
774 #define A_SIR_NOTIFY_BLOCK_DATA_IN 114
775 #define A_SIR_NOTIFY_DATA_OUT 113
776 #define A_SIR_NOTIFY_DATA_IN 112
777 #define A_SIR_NOTIFY_COMMAND 111
778 #define A_SIR_NOTIFY_DUMP_NEXT_CODE 110
779 #define A_SIR_NOTIFY_ISSUE_CHECK 109
780 #define A_SIR_NOTIFY_WAIT_RESELECT 108
781 #define A_SIR_NOTIFY_ISSUE 107
782 #define A_SIR_NOTIFY_SIGP 106
783 #define A_SIR_NOTIFY_DUMP2 105
784 #define A_SIR_NOTIFY_DUMP 104
785 #define A_SIR_NOTIFY_STATUS 103
786 #define A_SIR_NOTIFY_MSG_IN 102
787 #define A_SIR_NOTIFY_RESELECT 101
788 #define A_SIR_NOTIFY_DISC 100
789 #define A_SIR_MSG_IGNORE_WIDE_RESIDUE 16
790 #define A_SIR_MSG_WDTR 15
791 #define A_SIR_EV_PHASE_SWITCH_AFTER_ID 14
792 #define A_error_sigp_set 13
793 #define A_SIR_EV_RESPONSE_OK 12
794 #define A_SIR_MSG_SDTR 11
795 #define A_SIR_MSG_REJECT 10
796 #define A_error_too_little_data 9
797 #define A_error_too_much_data 8
798 #define A_error_not_identify_after_reselect 7
799 #define A_SIR_ERROR_NOT_MSG_IN_AFTER_RESELECT 6
800 #define A_error_weird_message 5
801 #define A_error_unexpected_phase 4
802 #define A_error_reselected 3
803 #define A_error_disconnected 2
804 #define A_error_not_cmd_complete 1
805 #define A_SIR_MSG_IO_COMPLETE 0
Cache object: 8f831ba99933444f8051260db24fe10c
|