Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6
[linux-2.6] / drivers / scsi / aic7xxx / aic79xx_seq.h_shipped
1 /*
2  * DO NOT EDIT - This file is automatically generated
3  *               from the following source files:
4  *
5  * $Id: //depot/aic7xxx/aic7xxx/aic79xx.seq#119 $
6  * $Id: //depot/aic7xxx/aic7xxx/aic79xx.reg#76 $
7  */
8 static uint8_t seqprog[] = {
9         0xff, 0x02, 0x06, 0x78,
10         0x00, 0xea, 0x64, 0x59,
11         0x01, 0xea, 0x04, 0x30,
12         0xff, 0x04, 0x0c, 0x78,
13         0x19, 0xea, 0x64, 0x59,
14         0x19, 0xea, 0x04, 0x00,
15         0x33, 0xea, 0x5e, 0x59,
16         0x33, 0xea, 0x00, 0x00,
17         0x60, 0x3a, 0x3a, 0x68,
18         0x04, 0x4d, 0x35, 0x78,
19         0x01, 0x34, 0xc1, 0x31,
20         0x00, 0x32, 0x21, 0x60,
21         0x01, 0x35, 0xc1, 0x31,
22         0x00, 0x33, 0x21, 0x60,
23         0xfb, 0x4d, 0x9b, 0x0a,
24         0x00, 0xe2, 0x34, 0x40,
25         0x50, 0x4b, 0x3a, 0x68,
26         0xff, 0x31, 0x3b, 0x70,
27         0x02, 0x30, 0x51, 0x31,
28         0xff, 0x8d, 0x2d, 0x70,
29         0x02, 0x8c, 0x51, 0x31,
30         0xff, 0x8d, 0x29, 0x60,
31         0x02, 0x28, 0x19, 0x33,
32         0x02, 0x30, 0x51, 0x32,
33         0xff, 0xea, 0x62, 0x02,
34         0x00, 0xe2, 0x3a, 0x40,
35         0xff, 0x21, 0x3b, 0x70,
36         0x40, 0x4b, 0xaa, 0x69,
37         0x00, 0xe2, 0x68, 0x59,
38         0x40, 0x4b, 0xaa, 0x69,
39         0x20, 0x4b, 0x96, 0x69,
40         0xfc, 0x42, 0x44, 0x78,
41         0x10, 0x40, 0x44, 0x78,
42         0x00, 0xe2, 0xfc, 0x5d,
43         0x20, 0x4d, 0x48, 0x78,
44         0x00, 0xe2, 0xfc, 0x5d,
45         0x30, 0x3f, 0xc0, 0x09,
46         0x30, 0xe0, 0x50, 0x60,
47         0x7f, 0x4a, 0x94, 0x08,
48         0x00, 0xe2, 0x52, 0x40,
49         0xc0, 0x4a, 0x94, 0x00,
50         0x00, 0xe2, 0x5e, 0x58,
51         0x00, 0xe2, 0x76, 0x58,
52         0x00, 0xe2, 0x86, 0x58,
53         0x00, 0xe2, 0x06, 0x40,
54         0x33, 0xea, 0x5e, 0x59,
55         0x33, 0xea, 0x00, 0x00,
56         0x01, 0x52, 0x84, 0x78,
57         0x02, 0x58, 0x50, 0x31,
58         0xff, 0xea, 0x10, 0x0b,
59         0xff, 0x97, 0x6f, 0x78,
60         0x50, 0x4b, 0x6a, 0x68,
61         0xbf, 0x3a, 0x74, 0x08,
62         0x14, 0xea, 0x64, 0x59,
63         0x14, 0xea, 0x04, 0x00,
64         0x08, 0x92, 0x25, 0x03,
65         0xff, 0x90, 0x5f, 0x68,
66         0x00, 0xe2, 0x76, 0x5b,
67         0x00, 0xe2, 0x5e, 0x40,
68         0x00, 0xea, 0x5e, 0x59,
69         0x01, 0xea, 0x00, 0x30,
70         0x80, 0xf9, 0x7e, 0x68,
71         0x00, 0xe2, 0x5c, 0x59,
72         0x11, 0xea, 0x5e, 0x59,
73         0x11, 0xea, 0x00, 0x00,
74         0x80, 0xf9, 0x5c, 0x79,
75         0xff, 0xea, 0xd4, 0x0d,
76         0x22, 0xea, 0x5e, 0x59,
77         0x22, 0xea, 0x00, 0x00,
78         0x10, 0x16, 0x90, 0x78,
79         0x10, 0x16, 0x2c, 0x00,
80         0x01, 0x0b, 0xae, 0x32,
81         0x18, 0xad, 0x12, 0x79,
82         0x04, 0xad, 0xdc, 0x68,
83         0x80, 0xad, 0x84, 0x78,
84         0x10, 0xad, 0xaa, 0x78,
85         0xe7, 0xad, 0x5a, 0x09,
86         0x02, 0x8c, 0x59, 0x32,
87         0xff, 0x8d, 0xa1, 0x60,
88         0xff, 0xea, 0x5e, 0x02,
89         0xff, 0x88, 0xa7, 0x78,
90         0x02, 0x30, 0x19, 0x33,
91         0x02, 0xa8, 0x60, 0x36,
92         0x02, 0x28, 0x19, 0x33,
93         0x02, 0xa8, 0x50, 0x36,
94         0xe7, 0xad, 0x5a, 0x09,
95         0x00, 0xe2, 0xb8, 0x58,
96         0xff, 0xea, 0x56, 0x02,
97         0x04, 0x7c, 0x88, 0x32,
98         0x20, 0x16, 0x84, 0x78,
99         0x04, 0x40, 0x89, 0x32,
100         0x80, 0x3d, 0x7b, 0x16,
101         0xff, 0x2d, 0xc7, 0x60,
102         0xff, 0x29, 0xc7, 0x60,
103         0x40, 0x57, 0xd7, 0x78,
104         0xff, 0x55, 0xc7, 0x68,
105         0xff, 0x53, 0xc1, 0x19,
106         0x00, 0x54, 0xd5, 0x19,
107         0x00, 0xe2, 0xd6, 0x50,
108         0x01, 0x52, 0xc1, 0x31,
109         0x00, 0x56, 0xd5, 0x19,
110         0x00, 0xe2, 0xd6, 0x48,
111         0x80, 0x18, 0x84, 0x78,
112         0x02, 0x50, 0x1d, 0x30,
113         0x10, 0xea, 0x18, 0x00,
114         0x60, 0x18, 0x30, 0x00,
115         0x7f, 0x18, 0x30, 0x0c,
116         0x02, 0xea, 0x02, 0x00,
117         0xff, 0xea, 0xac, 0x0a,
118         0x80, 0x18, 0x30, 0x04,
119         0x40, 0xad, 0x84, 0x78,
120         0xe7, 0xad, 0x5a, 0x09,
121         0x02, 0xa8, 0x40, 0x31,
122         0xff, 0xea, 0xc0, 0x09,
123         0x01, 0x54, 0xa9, 0x1a,
124         0x00, 0x55, 0xab, 0x22,
125         0x01, 0x94, 0x6d, 0x33,
126         0xff, 0xea, 0x20, 0x0b,
127         0x04, 0xac, 0x49, 0x32,
128         0xff, 0xea, 0x5a, 0x03,
129         0xff, 0xea, 0x5e, 0x03,
130         0x01, 0x10, 0xd4, 0x31,
131         0x10, 0x92, 0x07, 0x69,
132         0x3d, 0x93, 0xc5, 0x29,
133         0xfe, 0xe2, 0xc4, 0x09,
134         0x01, 0xea, 0xc6, 0x01,
135         0x02, 0xe2, 0xc8, 0x31,
136         0x02, 0xec, 0x50, 0x31,
137         0x02, 0xa0, 0xda, 0x31,
138         0xff, 0xa9, 0x06, 0x71,
139         0x02, 0xa0, 0x58, 0x37,
140         0xff, 0x21, 0x0f, 0x71,
141         0x02, 0x22, 0x51, 0x31,
142         0x02, 0xa0, 0x5c, 0x33,
143         0x02, 0xa0, 0x44, 0x36,
144         0x02, 0xa0, 0x40, 0x32,
145         0x02, 0xa0, 0x44, 0x36,
146         0x04, 0x4d, 0x17, 0x69,
147         0x40, 0x16, 0x48, 0x69,
148         0xff, 0x2d, 0x4d, 0x61,
149         0xff, 0x29, 0x85, 0x70,
150         0x02, 0x28, 0x55, 0x32,
151         0x01, 0xea, 0x5a, 0x01,
152         0x04, 0x44, 0xf9, 0x30,
153         0x01, 0x44, 0xc1, 0x31,
154         0x02, 0x28, 0x51, 0x31,
155         0x02, 0xa8, 0x60, 0x31,
156         0x01, 0xa4, 0x61, 0x31,
157         0x01, 0x3d, 0x61, 0x31,
158         0x01, 0x14, 0xd4, 0x31,
159         0x01, 0x56, 0xad, 0x1a,
160         0xff, 0x54, 0xa9, 0x1a,
161         0xff, 0x55, 0xab, 0x22,
162         0xff, 0x8d, 0x41, 0x71,
163         0x80, 0xac, 0x40, 0x71,
164         0x20, 0x16, 0x40, 0x69,
165         0x00, 0xac, 0xc4, 0x19,
166         0x07, 0xe2, 0x40, 0xf9,
167         0x02, 0x8c, 0x51, 0x31,
168         0x00, 0xe2, 0x24, 0x41,
169         0x01, 0xac, 0x08, 0x31,
170         0x09, 0xea, 0x5a, 0x01,
171         0x02, 0x8c, 0x51, 0x32,
172         0xff, 0xea, 0x1a, 0x07,
173         0x04, 0x24, 0xf9, 0x30,
174         0x1d, 0xea, 0x52, 0x41,
175         0x02, 0x2c, 0x51, 0x31,
176         0x04, 0xa8, 0xf9, 0x30,
177         0x19, 0xea, 0x52, 0x41,
178         0x06, 0xea, 0x08, 0x81,
179         0x01, 0xe2, 0x5a, 0x35,
180         0x02, 0xf2, 0xf0, 0x31,
181         0xff, 0xea, 0xd4, 0x0d,
182         0x02, 0xf2, 0xf0, 0x31,
183         0x02, 0xf8, 0xe4, 0x35,
184         0x80, 0xea, 0xb2, 0x01,
185         0x01, 0xe2, 0x00, 0x30,
186         0xff, 0xea, 0xb2, 0x0d,
187         0x01, 0xe2, 0x04, 0x30,
188         0x01, 0xea, 0x04, 0x34,
189         0x02, 0x20, 0xbd, 0x30,
190         0x02, 0x20, 0xb9, 0x30,
191         0x02, 0x20, 0x51, 0x31,
192         0x4c, 0x93, 0xd7, 0x28,
193         0x10, 0x92, 0x77, 0x79,
194         0x01, 0x6b, 0xc0, 0x30,
195         0x02, 0x64, 0xc8, 0x00,
196         0x40, 0x3a, 0x74, 0x04,
197         0x00, 0xe2, 0x76, 0x58,
198         0x33, 0xea, 0x5e, 0x59,
199         0x33, 0xea, 0x00, 0x00,
200         0x30, 0x3f, 0xc0, 0x09,
201         0x30, 0xe0, 0x78, 0x61,
202         0x20, 0x3f, 0x8e, 0x69,
203         0x10, 0x3f, 0x78, 0x79,
204         0x02, 0xea, 0x7e, 0x00,
205         0x00, 0xea, 0x5e, 0x59,
206         0x01, 0xea, 0x00, 0x30,
207         0x02, 0x4e, 0x51, 0x35,
208         0x01, 0xea, 0x7e, 0x00,
209         0x11, 0xea, 0x5e, 0x59,
210         0x11, 0xea, 0x00, 0x00,
211         0x02, 0x4e, 0x51, 0x35,
212         0xc0, 0x4a, 0x94, 0x00,
213         0x04, 0x41, 0x9c, 0x79,
214         0x08, 0xea, 0x98, 0x00,
215         0x08, 0x57, 0xae, 0x00,
216         0x08, 0x3c, 0x78, 0x00,
217         0xf0, 0x49, 0x74, 0x0a,
218         0x0f, 0x67, 0xc0, 0x09,
219         0x00, 0x3a, 0x75, 0x02,
220         0x20, 0xea, 0x96, 0x00,
221         0x00, 0xe2, 0x14, 0x42,
222         0xc0, 0x4a, 0x94, 0x00,
223         0x40, 0x3a, 0xc8, 0x69,
224         0x02, 0x55, 0x06, 0x68,
225         0x02, 0x56, 0xc8, 0x69,
226         0xff, 0x5b, 0xc8, 0x61,
227         0x02, 0x20, 0x51, 0x31,
228         0x80, 0xea, 0xb2, 0x01,
229         0x44, 0xea, 0x00, 0x00,
230         0x01, 0x33, 0xc0, 0x31,
231         0x33, 0xea, 0x00, 0x00,
232         0xff, 0xea, 0xb2, 0x09,
233         0xff, 0xe0, 0xc0, 0x19,
234         0xff, 0xe0, 0xca, 0x79,
235         0x02, 0xac, 0x51, 0x31,
236         0x00, 0xe2, 0xc0, 0x41,
237         0x02, 0x5e, 0x50, 0x31,
238         0x02, 0xa8, 0xb8, 0x30,
239         0x02, 0x5c, 0x50, 0x31,
240         0xff, 0xad, 0xdb, 0x71,
241         0x02, 0xac, 0x41, 0x31,
242         0x02, 0x22, 0x51, 0x31,
243         0x02, 0xa0, 0x5c, 0x33,
244         0x02, 0xa0, 0x44, 0x32,
245         0x00, 0xe2, 0xe4, 0x41,
246         0x10, 0x92, 0xe5, 0x69,
247         0x3d, 0x93, 0xc9, 0x29,
248         0x01, 0xe4, 0xc8, 0x01,
249         0x01, 0xea, 0xca, 0x01,
250         0xff, 0xea, 0xda, 0x01,
251         0x02, 0x20, 0x51, 0x31,
252         0x02, 0xae, 0x41, 0x32,
253         0xff, 0x21, 0xed, 0x61,
254         0xff, 0xea, 0x46, 0x02,
255         0x02, 0x5c, 0x50, 0x31,
256         0x40, 0xea, 0x96, 0x00,
257         0x02, 0x56, 0x04, 0x6e,
258         0x01, 0x55, 0x04, 0x6e,
259         0x10, 0x92, 0xf9, 0x79,
260         0x10, 0x40, 0x02, 0x6a,
261         0x01, 0x56, 0x02, 0x7a,
262         0xff, 0x97, 0x07, 0x78,
263         0x13, 0xea, 0x64, 0x59,
264         0x13, 0xea, 0x04, 0x00,
265         0x00, 0xe2, 0x06, 0x40,
266         0xbf, 0x3a, 0x74, 0x08,
267         0x04, 0x41, 0x08, 0x7a,
268         0x08, 0xea, 0x98, 0x00,
269         0x08, 0x57, 0xae, 0x00,
270         0x01, 0x93, 0x75, 0x32,
271         0x01, 0x94, 0x77, 0x32,
272         0x40, 0xea, 0x72, 0x02,
273         0x08, 0x3c, 0x78, 0x00,
274         0x80, 0xea, 0x6e, 0x02,
275         0x00, 0xe2, 0xe2, 0x5b,
276         0x01, 0x3c, 0xc1, 0x31,
277         0x9f, 0xe0, 0x84, 0x7c,
278         0x80, 0xe0, 0x28, 0x72,
279         0xa0, 0xe0, 0x64, 0x72,
280         0xc0, 0xe0, 0x5a, 0x72,
281         0xe0, 0xe0, 0x94, 0x72,
282         0x01, 0xea, 0x64, 0x59,
283         0x01, 0xea, 0x04, 0x00,
284         0x00, 0xe2, 0x14, 0x42,
285         0x80, 0x39, 0x2f, 0x7a,
286         0x03, 0xea, 0x64, 0x59,
287         0x03, 0xea, 0x04, 0x00,
288         0xee, 0x00, 0x36, 0x6a,
289         0x05, 0xea, 0xb4, 0x00,
290         0x33, 0xea, 0x5e, 0x59,
291         0x33, 0xea, 0x00, 0x00,
292         0x02, 0xa8, 0x9c, 0x32,
293         0x00, 0xe2, 0x7e, 0x59,
294         0xef, 0x96, 0xd5, 0x19,
295         0x00, 0xe2, 0x46, 0x52,
296         0x09, 0x80, 0xe1, 0x30,
297         0x02, 0xea, 0x36, 0x00,
298         0xa8, 0xea, 0x32, 0x00,
299         0x00, 0xe2, 0x4c, 0x42,
300         0x01, 0x96, 0xd1, 0x30,
301         0x10, 0x80, 0x89, 0x31,
302         0x20, 0xea, 0x32, 0x00,
303         0xbf, 0x39, 0x73, 0x0a,
304         0x10, 0x4c, 0x56, 0x6a,
305         0x20, 0x19, 0x4e, 0x6a,
306         0x20, 0x19, 0x52, 0x6a,
307         0x02, 0x4d, 0x14, 0x6a,
308         0x40, 0x39, 0x73, 0x02,
309         0x00, 0xe2, 0x14, 0x42,
310         0x80, 0x39, 0xd5, 0x6a,
311         0x01, 0x44, 0x10, 0x33,
312         0x08, 0x92, 0x25, 0x03,
313         0x00, 0xe2, 0x14, 0x42,
314         0x10, 0xea, 0x80, 0x00,
315         0x01, 0x37, 0xc5, 0x31,
316         0x80, 0xe2, 0x80, 0x62,
317         0x10, 0x92, 0xa5, 0x6a,
318         0xc0, 0x94, 0xc5, 0x01,
319         0x40, 0x92, 0x71, 0x6a,
320         0xbf, 0xe2, 0xc4, 0x09,
321         0x20, 0x92, 0x85, 0x7a,
322         0x01, 0xe2, 0x88, 0x30,
323         0x00, 0xe2, 0xe2, 0x5b,
324         0xa0, 0x3c, 0x8d, 0x62,
325         0x23, 0x92, 0x89, 0x08,
326         0x00, 0xe2, 0xe2, 0x5b,
327         0xa0, 0x3c, 0x8d, 0x62,
328         0x00, 0xa8, 0x84, 0x42,
329         0xff, 0xe2, 0x84, 0x62,
330         0x00, 0xe2, 0xa4, 0x42,
331         0x40, 0xea, 0x98, 0x00,
332         0x01, 0xe2, 0x88, 0x30,
333         0x00, 0xe2, 0xe2, 0x5b,
334         0xa0, 0x3c, 0x63, 0x72,
335         0x40, 0xea, 0x98, 0x00,
336         0x01, 0x37, 0x95, 0x32,
337         0x08, 0xea, 0x6e, 0x02,
338         0x00, 0xe2, 0x14, 0x42,
339         0xe0, 0xea, 0xfe, 0x5b,
340         0x80, 0xe0, 0xe0, 0x6a,
341         0x04, 0xe0, 0x92, 0x73,
342         0x02, 0xe0, 0xc4, 0x73,
343         0x00, 0xea, 0x3e, 0x73,
344         0x03, 0xe0, 0xd4, 0x73,
345         0x23, 0xe0, 0xb6, 0x72,
346         0x08, 0xe0, 0xdc, 0x72,
347         0x00, 0xe2, 0xe2, 0x5b,
348         0x07, 0xea, 0x64, 0x59,
349         0x07, 0xea, 0x04, 0x00,
350         0x08, 0x48, 0x15, 0x72,
351         0x04, 0x48, 0xb3, 0x62,
352         0x01, 0x49, 0x89, 0x30,
353         0x00, 0xe2, 0xa4, 0x42,
354         0x01, 0x44, 0xd4, 0x31,
355         0x00, 0xe2, 0xa4, 0x42,
356         0x01, 0x00, 0x6c, 0x32,
357         0x33, 0xea, 0x5e, 0x59,
358         0x33, 0xea, 0x00, 0x00,
359         0x4c, 0x3a, 0xc1, 0x28,
360         0x01, 0x64, 0xc0, 0x31,
361         0x00, 0x36, 0x5f, 0x59,
362         0x01, 0x36, 0x01, 0x30,
363         0x01, 0xe0, 0xda, 0x7a,
364         0xa0, 0xea, 0xf4, 0x5b,
365         0x01, 0xa0, 0xda, 0x62,
366         0x01, 0x84, 0xcf, 0x7a,
367         0x01, 0x95, 0xdd, 0x6a,
368         0x05, 0xea, 0x64, 0x59,
369         0x05, 0xea, 0x04, 0x00,
370         0x00, 0xe2, 0xdc, 0x42,
371         0x03, 0xea, 0x64, 0x59,
372         0x03, 0xea, 0x04, 0x00,
373         0x00, 0xe2, 0xdc, 0x42,
374         0x07, 0xea, 0x06, 0x5c,
375         0x01, 0x44, 0xd4, 0x31,
376         0x00, 0xe2, 0x14, 0x42,
377         0x3f, 0xe0, 0x76, 0x0a,
378         0xc0, 0x3a, 0xc1, 0x09,
379         0x00, 0x3b, 0x51, 0x01,
380         0xff, 0xea, 0x52, 0x09,
381         0x30, 0x3a, 0xc5, 0x09,
382         0x3d, 0xe2, 0xc4, 0x29,
383         0xb8, 0xe2, 0xc4, 0x19,
384         0x01, 0xea, 0xc6, 0x01,
385         0x02, 0xe2, 0xc8, 0x31,
386         0x02, 0xec, 0x40, 0x31,
387         0xff, 0xa1, 0xfc, 0x72,
388         0x02, 0xe8, 0xda, 0x31,
389         0x02, 0xa0, 0x50, 0x31,
390         0x00, 0xe2, 0x1e, 0x43,
391         0x80, 0x39, 0x73, 0x02,
392         0x01, 0x44, 0xd4, 0x31,
393         0x00, 0xe2, 0xe2, 0x5b,
394         0x01, 0x39, 0x73, 0x02,
395         0xe0, 0x3c, 0x39, 0x63,
396         0x02, 0x39, 0x73, 0x02,
397         0x20, 0x46, 0x32, 0x63,
398         0xff, 0xea, 0x52, 0x09,
399         0xa8, 0xea, 0xf4, 0x5b,
400         0x04, 0x92, 0x19, 0x7b,
401         0x01, 0x3a, 0xc1, 0x31,
402         0x00, 0x93, 0x19, 0x63,
403         0x01, 0x3b, 0xc1, 0x31,
404         0x00, 0x94, 0x23, 0x73,
405         0x01, 0xa9, 0x52, 0x11,
406         0xff, 0xa9, 0x0e, 0x6b,
407         0x00, 0xe2, 0x32, 0x43,
408         0x10, 0x39, 0x73, 0x02,
409         0x04, 0x92, 0x33, 0x7b,
410         0xfb, 0x92, 0x25, 0x0b,
411         0xff, 0xea, 0x72, 0x0a,
412         0x01, 0xa4, 0x2d, 0x6b,
413         0x02, 0xa8, 0x9c, 0x32,
414         0x00, 0xe2, 0x7e, 0x59,
415         0x10, 0x92, 0xdd, 0x7a,
416         0xff, 0xea, 0x06, 0x5c,
417         0x00, 0xe2, 0xdc, 0x42,
418         0x04, 0xea, 0x64, 0x59,
419         0x04, 0xea, 0x04, 0x00,
420         0x00, 0xe2, 0xdc, 0x42,
421         0x04, 0xea, 0x64, 0x59,
422         0x04, 0xea, 0x04, 0x00,
423         0x00, 0xe2, 0x14, 0x42,
424         0x08, 0x92, 0xd5, 0x7a,
425         0xc0, 0x39, 0x49, 0x7b,
426         0x80, 0x39, 0xd5, 0x6a,
427         0xff, 0x88, 0x49, 0x6b,
428         0x40, 0x39, 0xd5, 0x6a,
429         0x10, 0x92, 0x4f, 0x7b,
430         0x0a, 0xea, 0x64, 0x59,
431         0x0a, 0xea, 0x04, 0x00,
432         0x00, 0xe2, 0x6e, 0x5b,
433         0x00, 0xe2, 0xae, 0x43,
434         0x50, 0x4b, 0x56, 0x6b,
435         0xbf, 0x3a, 0x74, 0x08,
436         0x01, 0xe0, 0xf4, 0x31,
437         0xff, 0xea, 0xc0, 0x09,
438         0x01, 0x32, 0x65, 0x1a,
439         0x00, 0x33, 0x67, 0x22,
440         0x04, 0x4d, 0x9b, 0x02,
441         0x01, 0xfa, 0xc0, 0x35,
442         0x02, 0xa8, 0x90, 0x32,
443         0x02, 0xea, 0xb4, 0x00,
444         0x33, 0xea, 0x5e, 0x59,
445         0x33, 0xea, 0x00, 0x00,
446         0x02, 0x48, 0x51, 0x31,
447         0xff, 0x90, 0x85, 0x68,
448         0xff, 0x88, 0x7b, 0x6b,
449         0x01, 0xa4, 0x77, 0x6b,
450         0x02, 0xa4, 0x7f, 0x6b,
451         0x01, 0x84, 0x7f, 0x7b,
452         0x02, 0x28, 0x19, 0x33,
453         0x02, 0xa8, 0x50, 0x36,
454         0xff, 0x88, 0x7f, 0x73,
455         0x00, 0xe2, 0x52, 0x5b,
456         0x02, 0xa8, 0x20, 0x33,
457         0x04, 0xa4, 0x49, 0x03,
458         0xff, 0xea, 0x1a, 0x03,
459         0xff, 0x2d, 0x8b, 0x63,
460         0x02, 0xa8, 0x58, 0x32,
461         0x02, 0xa8, 0x5c, 0x36,
462         0x02, 0xa8, 0x40, 0x31,
463         0x02, 0x2e, 0x51, 0x31,
464         0x02, 0xa0, 0x18, 0x33,
465         0x02, 0xa0, 0x5c, 0x36,
466         0xc0, 0x39, 0xd5, 0x6a,
467         0x04, 0x92, 0x25, 0x03,
468         0x20, 0x92, 0xaf, 0x6b,
469         0x02, 0xa8, 0x40, 0x31,
470         0xc0, 0x3a, 0xc1, 0x09,
471         0x00, 0x3b, 0x51, 0x01,
472         0xff, 0xea, 0x52, 0x09,
473         0x30, 0x3a, 0xc5, 0x09,
474         0x3d, 0xe2, 0xc4, 0x29,
475         0xb8, 0xe2, 0xc4, 0x19,
476         0x01, 0xea, 0xc6, 0x01,
477         0x02, 0xe2, 0xc8, 0x31,
478         0x02, 0xa0, 0xda, 0x31,
479         0x02, 0xa0, 0x50, 0x31,
480         0xf7, 0x57, 0xae, 0x08,
481         0x08, 0xea, 0x98, 0x00,
482         0x01, 0x44, 0xd4, 0x31,
483         0xee, 0x00, 0xb8, 0x6b,
484         0x02, 0xea, 0xb4, 0x00,
485         0xc0, 0xea, 0x72, 0x02,
486         0x09, 0x4c, 0xba, 0x7b,
487         0x01, 0xea, 0x78, 0x02,
488         0x08, 0x4c, 0x06, 0x68,
489         0x0b, 0xea, 0x64, 0x59,
490         0x0b, 0xea, 0x04, 0x00,
491         0x01, 0x44, 0xd4, 0x31,
492         0x20, 0x39, 0x15, 0x7a,
493         0x00, 0xe2, 0xcc, 0x5b,
494         0x00, 0xe2, 0x14, 0x42,
495         0x01, 0x84, 0xd1, 0x7b,
496         0x01, 0xa4, 0x49, 0x07,
497         0x08, 0x60, 0x30, 0x33,
498         0x08, 0x80, 0x41, 0x37,
499         0xdf, 0x39, 0x73, 0x0a,
500         0xee, 0x00, 0xde, 0x6b,
501         0x05, 0xea, 0xb4, 0x00,
502         0x33, 0xea, 0x5e, 0x59,
503         0x33, 0xea, 0x00, 0x00,
504         0x00, 0xe2, 0x7e, 0x59,
505         0x00, 0xe2, 0xdc, 0x42,
506         0xff, 0x42, 0xee, 0x6b,
507         0x01, 0x41, 0xe2, 0x6b,
508         0x02, 0x41, 0xe2, 0x7b,
509         0xff, 0x42, 0xee, 0x6b,
510         0x01, 0x41, 0xe2, 0x6b,
511         0x02, 0x41, 0xe2, 0x7b,
512         0xff, 0x42, 0xee, 0x7b,
513         0x04, 0x4c, 0xe2, 0x6b,
514         0xe0, 0x41, 0x78, 0x0e,
515         0x01, 0x44, 0xd4, 0x31,
516         0xff, 0x42, 0xf6, 0x7b,
517         0x04, 0x4c, 0xf6, 0x6b,
518         0xe0, 0x41, 0x78, 0x0a,
519         0xe0, 0x3c, 0x15, 0x62,
520         0xff, 0xea, 0xca, 0x09,
521         0x01, 0xe2, 0xc8, 0x31,
522         0x01, 0x46, 0xda, 0x35,
523         0x01, 0x44, 0xd4, 0x35,
524         0x10, 0xea, 0x80, 0x00,
525         0x01, 0xe2, 0x6e, 0x36,
526         0x04, 0xa6, 0x0e, 0x7c,
527         0xff, 0xea, 0x5a, 0x09,
528         0xff, 0xea, 0x4c, 0x0d,
529         0x01, 0xa6, 0x3a, 0x6c,
530         0x10, 0xad, 0x84, 0x78,
531         0x80, 0xad, 0x32, 0x6c,
532         0x08, 0xad, 0x84, 0x68,
533         0x20, 0x19, 0x26, 0x7c,
534         0x80, 0xea, 0xb2, 0x01,
535         0x11, 0x00, 0x00, 0x10,
536         0x02, 0xa6, 0x22, 0x7c,
537         0xff, 0xea, 0xb2, 0x0d,
538         0x11, 0x00, 0x00, 0x10,
539         0xff, 0xea, 0xb2, 0x09,
540         0x04, 0x84, 0xf9, 0x30,
541         0x00, 0xea, 0x08, 0x81,
542         0xff, 0xea, 0xd4, 0x09,
543         0x02, 0x84, 0xf9, 0x88,
544         0x0d, 0xea, 0x5a, 0x01,
545         0x04, 0xa6, 0x4c, 0x05,
546         0x04, 0xa6, 0x84, 0x78,
547         0xff, 0xea, 0x5a, 0x09,
548         0x03, 0x84, 0x59, 0x89,
549         0x03, 0xea, 0x4c, 0x01,
550         0x80, 0x1a, 0x84, 0x78,
551         0x08, 0x19, 0x84, 0x78,
552         0x08, 0xb0, 0xe0, 0x30,
553         0x04, 0xb0, 0xe0, 0x30,
554         0x03, 0xb0, 0xf0, 0x30,
555         0x01, 0xb0, 0x06, 0x33,
556         0x7f, 0x83, 0xe9, 0x08,
557         0x04, 0xac, 0x58, 0x19,
558         0xff, 0xea, 0xc0, 0x09,
559         0x04, 0x84, 0x09, 0x9b,
560         0x00, 0x85, 0x0b, 0x23,
561         0x00, 0x86, 0x0d, 0x23,
562         0x00, 0x87, 0x0f, 0x23,
563         0x01, 0x84, 0xc5, 0x31,
564         0x80, 0x83, 0x5d, 0x7c,
565         0x02, 0xe2, 0xc4, 0x01,
566         0xff, 0xea, 0x4c, 0x09,
567         0x01, 0xe2, 0x36, 0x30,
568         0xc8, 0x19, 0x32, 0x00,
569         0x88, 0x19, 0x32, 0x00,
570         0x01, 0xac, 0xd4, 0x99,
571         0x00, 0xe2, 0x84, 0x50,
572         0xfe, 0xa6, 0x4c, 0x0d,
573         0x0b, 0x98, 0xe1, 0x30,
574         0xfd, 0xa4, 0x49, 0x09,
575         0x80, 0xa3, 0x71, 0x7c,
576         0x02, 0xa4, 0x48, 0x01,
577         0x01, 0xa4, 0x36, 0x30,
578         0xa8, 0xea, 0x32, 0x00,
579         0xfd, 0xa4, 0x49, 0x0b,
580         0x05, 0xa3, 0x07, 0x33,
581         0x80, 0x83, 0x7d, 0x6c,
582         0x02, 0xea, 0x4c, 0x05,
583         0xff, 0xea, 0x4c, 0x0d,
584         0x00, 0xe2, 0x56, 0x59,
585         0x02, 0xa6, 0x10, 0x6c,
586         0x80, 0xf9, 0xf2, 0x05,
587         0xc0, 0x39, 0x8b, 0x7c,
588         0x03, 0xea, 0x64, 0x59,
589         0x03, 0xea, 0x04, 0x00,
590         0x20, 0x39, 0xaf, 0x7c,
591         0x01, 0x84, 0x95, 0x6c,
592         0x06, 0xea, 0x64, 0x59,
593         0x06, 0xea, 0x04, 0x00,
594         0x00, 0xe2, 0xb2, 0x44,
595         0x01, 0x00, 0x6c, 0x32,
596         0xee, 0x00, 0x9e, 0x6c,
597         0x05, 0xea, 0xb4, 0x00,
598         0x33, 0xea, 0x5e, 0x59,
599         0x33, 0xea, 0x00, 0x00,
600         0x80, 0x3d, 0x7a, 0x00,
601         0xfc, 0x42, 0xa0, 0x7c,
602         0x7f, 0x3d, 0x7a, 0x08,
603         0x00, 0x36, 0x5f, 0x59,
604         0x01, 0x36, 0x01, 0x30,
605         0x09, 0xea, 0x64, 0x59,
606         0x09, 0xea, 0x04, 0x00,
607         0x00, 0xe2, 0x14, 0x42,
608         0x01, 0xa4, 0x95, 0x6c,
609         0x00, 0xe2, 0x68, 0x5c,
610         0x20, 0x39, 0x73, 0x02,
611         0x01, 0x00, 0x6c, 0x32,
612         0x02, 0xa6, 0xba, 0x7c,
613         0x00, 0xe2, 0x7e, 0x5c,
614         0x00, 0xe2, 0x76, 0x58,
615         0x00, 0xe2, 0x86, 0x58,
616         0x00, 0xe2, 0x5a, 0x58,
617         0x00, 0x36, 0x5f, 0x59,
618         0x01, 0x36, 0x01, 0x30,
619         0x20, 0x19, 0xba, 0x6c,
620         0x00, 0xe2, 0xea, 0x5c,
621         0x04, 0x19, 0xd4, 0x6c,
622         0x02, 0x19, 0x32, 0x00,
623         0x01, 0x84, 0xd5, 0x7c,
624         0x01, 0x1b, 0xce, 0x7c,
625         0x01, 0x1a, 0xd4, 0x6c,
626         0x00, 0xe2, 0x84, 0x44,
627         0x80, 0x4b, 0xda, 0x6c,
628         0x01, 0x4c, 0xd6, 0x7c,
629         0x03, 0x42, 0x84, 0x6c,
630         0x00, 0xe2, 0x0a, 0x5c,
631         0x80, 0xf9, 0xf2, 0x01,
632         0x04, 0x39, 0x15, 0x7a,
633         0x00, 0xe2, 0x14, 0x42,
634         0x08, 0x5d, 0xf2, 0x6c,
635         0x00, 0xe2, 0x76, 0x58,
636         0x00, 0x36, 0x5f, 0x59,
637         0x01, 0x36, 0x01, 0x30,
638         0x02, 0x1b, 0xe2, 0x7c,
639         0x08, 0x5d, 0xf0, 0x7c,
640         0x03, 0x68, 0x00, 0x37,
641         0x01, 0x84, 0x09, 0x07,
642         0x80, 0x1b, 0xfc, 0x7c,
643         0x80, 0x84, 0xfd, 0x6c,
644         0xff, 0x85, 0x0b, 0x1b,
645         0xff, 0x86, 0x0d, 0x23,
646         0xff, 0x87, 0x0f, 0x23,
647         0xf8, 0x1b, 0x08, 0x0b,
648         0xff, 0xea, 0x06, 0x0b,
649         0x03, 0x68, 0x00, 0x37,
650         0x00, 0xe2, 0xd6, 0x58,
651         0x10, 0xea, 0x18, 0x00,
652         0xf9, 0xd9, 0xb2, 0x0d,
653         0x01, 0xd9, 0xb2, 0x05,
654         0x01, 0x52, 0x48, 0x31,
655         0x20, 0xa4, 0x26, 0x7d,
656         0x20, 0x5b, 0x26, 0x7d,
657         0x80, 0xf9, 0x34, 0x7d,
658         0x02, 0xea, 0xb4, 0x00,
659         0x11, 0x00, 0x00, 0x10,
660         0x04, 0x19, 0x40, 0x7d,
661         0xdf, 0x19, 0x32, 0x08,
662         0x60, 0x5b, 0x40, 0x6d,
663         0x01, 0x4c, 0x1a, 0x7d,
664         0x20, 0x19, 0x32, 0x00,
665         0x01, 0xd9, 0xb2, 0x05,
666         0x02, 0xea, 0xb4, 0x00,
667         0x01, 0xd9, 0xb2, 0x05,
668         0x10, 0x5b, 0x38, 0x6d,
669         0x08, 0x5b, 0x42, 0x6d,
670         0x20, 0x5b, 0x32, 0x6d,
671         0x02, 0x5b, 0x62, 0x6d,
672         0x0e, 0xea, 0x64, 0x59,
673         0x0e, 0xea, 0x04, 0x00,
674         0x80, 0xf9, 0x22, 0x6d,
675         0xdf, 0x5c, 0xb8, 0x08,
676         0x01, 0xd9, 0xb2, 0x05,
677         0x01, 0xa4, 0x1d, 0x6e,
678         0x00, 0xe2, 0x68, 0x5c,
679         0x00, 0xe2, 0x6c, 0x5d,
680         0x01, 0x90, 0x21, 0x1b,
681         0x01, 0xd9, 0xb2, 0x05,
682         0x00, 0xe2, 0x52, 0x5b,
683         0xf3, 0x96, 0xd5, 0x19,
684         0x00, 0xe2, 0x50, 0x55,
685         0x80, 0x96, 0x51, 0x6d,
686         0x0f, 0xea, 0x64, 0x59,
687         0x0f, 0xea, 0x04, 0x00,
688         0x00, 0xe2, 0x58, 0x45,
689         0x04, 0x8c, 0xe1, 0x30,
690         0x01, 0xea, 0xf2, 0x00,
691         0x02, 0xea, 0x36, 0x00,
692         0xa8, 0xea, 0x32, 0x00,
693         0xff, 0x97, 0x5f, 0x7d,
694         0x14, 0xea, 0x64, 0x59,
695         0x14, 0xea, 0x04, 0x00,
696         0x00, 0xe2, 0xce, 0x5d,
697         0x01, 0xd9, 0xb2, 0x05,
698         0x09, 0x80, 0xe1, 0x30,
699         0x02, 0xea, 0x36, 0x00,
700         0xa8, 0xea, 0x32, 0x00,
701         0x00, 0xe2, 0xc6, 0x5d,
702         0x01, 0xd9, 0xb2, 0x05,
703         0x02, 0xa6, 0x7c, 0x7d,
704         0x00, 0xe2, 0x56, 0x59,
705         0x20, 0x5b, 0x8a, 0x6d,
706         0xfc, 0x42, 0x76, 0x7d,
707         0x10, 0x40, 0x78, 0x6d,
708         0x20, 0x4d, 0x7a, 0x7d,
709         0x08, 0x5d, 0x8a, 0x6d,
710         0x02, 0xa6, 0x10, 0x6c,
711         0x00, 0xe2, 0x56, 0x59,
712         0x20, 0x5b, 0x8a, 0x6d,
713         0x01, 0x1b, 0xaa, 0x6d,
714         0xfc, 0x42, 0x86, 0x7d,
715         0x10, 0x40, 0x88, 0x6d,
716         0x20, 0x4d, 0x84, 0x78,
717         0x08, 0x5d, 0x84, 0x78,
718         0x02, 0x19, 0x32, 0x00,
719         0x01, 0x5b, 0x40, 0x31,
720         0x00, 0xe2, 0xea, 0x5c,
721         0x00, 0xe2, 0xcc, 0x5b,
722         0x20, 0xea, 0xb6, 0x00,
723         0x00, 0xe2, 0x0a, 0x5c,
724         0x20, 0x5c, 0xb8, 0x00,
725         0x04, 0x19, 0xa0, 0x6d,
726         0x01, 0x1a, 0xa0, 0x6d,
727         0x00, 0xe2, 0x56, 0x59,
728         0x01, 0x1a, 0x84, 0x78,
729         0x80, 0xf9, 0xf2, 0x01,
730         0x20, 0xa0, 0x04, 0x7e,
731         0xff, 0x90, 0x21, 0x1b,
732         0x08, 0x92, 0x63, 0x6b,
733         0x02, 0xea, 0xb4, 0x04,
734         0x01, 0xa4, 0x49, 0x03,
735         0x40, 0x5b, 0xba, 0x6d,
736         0x00, 0xe2, 0x56, 0x59,
737         0x40, 0x5b, 0xba, 0x6d,
738         0x04, 0x5d, 0x1e, 0x7e,
739         0x01, 0x1a, 0x1e, 0x7e,
740         0x20, 0x4d, 0x84, 0x78,
741         0x40, 0x5b, 0x04, 0x7e,
742         0x04, 0x5d, 0x1e, 0x7e,
743         0x01, 0x1a, 0x1e, 0x7e,
744         0x80, 0xf9, 0xf2, 0x01,
745         0xff, 0x90, 0x21, 0x1b,
746         0x08, 0x92, 0x63, 0x6b,
747         0x02, 0xea, 0xb4, 0x04,
748         0x00, 0xe2, 0x56, 0x59,
749         0x01, 0x1b, 0x84, 0x78,
750         0x80, 0xf9, 0xf2, 0x01,
751         0x02, 0xea, 0xb4, 0x04,
752         0x00, 0xe2, 0x56, 0x59,
753         0x01, 0x1b, 0xe2, 0x6d,
754         0x40, 0x5b, 0xf0, 0x7d,
755         0x01, 0x1b, 0xe2, 0x6d,
756         0x02, 0x19, 0x32, 0x00,
757         0x01, 0x1a, 0x84, 0x78,
758         0x80, 0xf9, 0xf2, 0x01,
759         0xff, 0xea, 0x10, 0x03,
760         0x08, 0x92, 0x25, 0x03,
761         0x00, 0xe2, 0x62, 0x43,
762         0x01, 0x1a, 0xec, 0x7d,
763         0x40, 0x5b, 0xe8, 0x7d,
764         0x01, 0x1a, 0xd6, 0x6d,
765         0xfc, 0x42, 0x84, 0x78,
766         0x01, 0x1a, 0xf0, 0x6d,
767         0x10, 0xea, 0x64, 0x59,
768         0x10, 0xea, 0x04, 0x00,
769         0xfc, 0x42, 0x84, 0x78,
770         0x10, 0x40, 0xf6, 0x6d,
771         0x20, 0x4d, 0x84, 0x78,
772         0x40, 0x5b, 0xd6, 0x6d,
773         0x01, 0x1a, 0x84, 0x78,
774         0x01, 0x90, 0x21, 0x1b,
775         0x30, 0x3f, 0xc0, 0x09,
776         0x30, 0xe0, 0x84, 0x60,
777         0x40, 0x4b, 0x84, 0x68,
778         0xff, 0xea, 0x52, 0x01,
779         0xee, 0x00, 0x0c, 0x6e,
780         0x80, 0xf9, 0xf2, 0x01,
781         0xff, 0x90, 0x21, 0x1b,
782         0x02, 0xea, 0xb4, 0x00,
783         0x20, 0xea, 0x9a, 0x00,
784         0xf3, 0x42, 0x16, 0x6e,
785         0x12, 0xea, 0x64, 0x59,
786         0x12, 0xea, 0x04, 0x00,
787         0x00, 0xe2, 0x14, 0x42,
788         0x0d, 0xea, 0x64, 0x59,
789         0x0d, 0xea, 0x04, 0x00,
790         0x00, 0xe2, 0x14, 0x42,
791         0x01, 0x90, 0x21, 0x1b,
792         0x11, 0xea, 0x64, 0x59,
793         0x11, 0xea, 0x04, 0x00,
794         0x00, 0xe2, 0x52, 0x5b,
795         0x08, 0x5a, 0xb4, 0x00,
796         0x00, 0xe2, 0x44, 0x5e,
797         0xa8, 0xea, 0x32, 0x00,
798         0x00, 0xe2, 0x56, 0x59,
799         0x80, 0x1a, 0x32, 0x7e,
800         0x00, 0xe2, 0x44, 0x5e,
801         0x80, 0x19, 0x32, 0x00,
802         0x40, 0x5b, 0x38, 0x6e,
803         0x08, 0x5a, 0x38, 0x7e,
804         0x20, 0x4d, 0x84, 0x78,
805         0x02, 0x84, 0x09, 0x03,
806         0x40, 0x5b, 0x04, 0x7e,
807         0xff, 0x90, 0x21, 0x1b,
808         0x80, 0xf9, 0xf2, 0x01,
809         0x08, 0x92, 0x63, 0x6b,
810         0x02, 0xea, 0xb4, 0x04,
811         0x01, 0x40, 0xe1, 0x30,
812         0x05, 0x41, 0xe3, 0x98,
813         0x01, 0xe0, 0xf4, 0x31,
814         0xff, 0xea, 0xc0, 0x09,
815         0x00, 0x42, 0xe5, 0x20,
816         0x00, 0x43, 0xe7, 0x20,
817         0x01, 0xfa, 0xc0, 0x31,
818         0x04, 0xea, 0xe8, 0x30,
819         0xff, 0xea, 0xf0, 0x08,
820         0x02, 0xea, 0xf2, 0x00,
821         0xff, 0xea, 0xf4, 0x0c
822 };
823
824 typedef int ahd_patch_func_t (struct ahd_softc *ahd);
825 static ahd_patch_func_t ahd_patch23_func;
826
827 static int
828 ahd_patch23_func(struct ahd_softc *ahd)
829 {
830         return ((ahd->bugs & AHD_PKT_BITBUCKET_BUG) != 0);
831 }
832
833 static ahd_patch_func_t ahd_patch22_func;
834
835 static int
836 ahd_patch22_func(struct ahd_softc *ahd)
837 {
838         return ((ahd->bugs & AHD_PKT_BITBUCKET_BUG) == 0);
839 }
840
841 static ahd_patch_func_t ahd_patch21_func;
842
843 static int
844 ahd_patch21_func(struct ahd_softc *ahd)
845 {
846         return ((ahd->flags & AHD_INITIATORROLE) != 0);
847 }
848
849 static ahd_patch_func_t ahd_patch20_func;
850
851 static int
852 ahd_patch20_func(struct ahd_softc *ahd)
853 {
854         return ((ahd->flags & AHD_TARGETROLE) != 0);
855 }
856
857 static ahd_patch_func_t ahd_patch19_func;
858
859 static int
860 ahd_patch19_func(struct ahd_softc *ahd)
861 {
862         return ((ahd->bugs & AHD_AUTOFLUSH_BUG) != 0);
863 }
864
865 static ahd_patch_func_t ahd_patch18_func;
866
867 static int
868 ahd_patch18_func(struct ahd_softc *ahd)
869 {
870         return ((ahd->features & AHD_NEW_DFCNTRL_OPTS) != 0);
871 }
872
873 static ahd_patch_func_t ahd_patch17_func;
874
875 static int
876 ahd_patch17_func(struct ahd_softc *ahd)
877 {
878         return ((ahd->flags & AHD_39BIT_ADDRESSING) != 0);
879 }
880
881 static ahd_patch_func_t ahd_patch16_func;
882
883 static int
884 ahd_patch16_func(struct ahd_softc *ahd)
885 {
886         return ((ahd->flags & AHD_64BIT_ADDRESSING) != 0);
887 }
888
889 static ahd_patch_func_t ahd_patch15_func;
890
891 static int
892 ahd_patch15_func(struct ahd_softc *ahd)
893 {
894         return ((ahd->features & AHD_NEW_DFCNTRL_OPTS) == 0);
895 }
896
897 static ahd_patch_func_t ahd_patch14_func;
898
899 static int
900 ahd_patch14_func(struct ahd_softc *ahd)
901 {
902         return ((ahd->bugs & AHD_REG_SLOW_SETTLE_BUG) != 0);
903 }
904
905 static ahd_patch_func_t ahd_patch13_func;
906
907 static int
908 ahd_patch13_func(struct ahd_softc *ahd)
909 {
910         return ((ahd->features & AHD_RTI) == 0);
911 }
912
913 static ahd_patch_func_t ahd_patch12_func;
914
915 static int
916 ahd_patch12_func(struct ahd_softc *ahd)
917 {
918         return ((ahd->bugs & AHD_EARLY_REQ_BUG) != 0);
919 }
920
921 static ahd_patch_func_t ahd_patch11_func;
922
923 static int
924 ahd_patch11_func(struct ahd_softc *ahd)
925 {
926         return ((ahd->bugs & AHD_BUSFREEREV_BUG) == 0);
927 }
928
929 static ahd_patch_func_t ahd_patch10_func;
930
931 static int
932 ahd_patch10_func(struct ahd_softc *ahd)
933 {
934         return ((ahd->flags & AHD_SEQUENCER_DEBUG) != 0);
935 }
936
937 static ahd_patch_func_t ahd_patch9_func;
938
939 static int
940 ahd_patch9_func(struct ahd_softc *ahd)
941 {
942         return ((ahd->features & AHD_FAST_CDB_DELIVERY) != 0);
943 }
944
945 static ahd_patch_func_t ahd_patch8_func;
946
947 static int
948 ahd_patch8_func(struct ahd_softc *ahd)
949 {
950         return ((ahd->bugs & AHD_LQO_ATNO_BUG) != 0);
951 }
952
953 static ahd_patch_func_t ahd_patch7_func;
954
955 static int
956 ahd_patch7_func(struct ahd_softc *ahd)
957 {
958         return ((ahd->bugs & AHD_BUSFREEREV_BUG) != 0);
959 }
960
961 static ahd_patch_func_t ahd_patch6_func;
962
963 static int
964 ahd_patch6_func(struct ahd_softc *ahd)
965 {
966         return ((ahd->bugs & AHD_NONPACKFIFO_BUG) != 0);
967 }
968
969 static ahd_patch_func_t ahd_patch5_func;
970
971 static int
972 ahd_patch5_func(struct ahd_softc *ahd)
973 {
974         return ((ahd->bugs & AHD_SENT_SCB_UPDATE_BUG) != 0);
975 }
976
977 static ahd_patch_func_t ahd_patch4_func;
978
979 static int
980 ahd_patch4_func(struct ahd_softc *ahd)
981 {
982         return ((ahd->bugs & AHD_PKT_LUN_BUG) != 0);
983 }
984
985 static ahd_patch_func_t ahd_patch3_func;
986
987 static int
988 ahd_patch3_func(struct ahd_softc *ahd)
989 {
990         return ((ahd->bugs & AHD_FAINT_LED_BUG) != 0);
991 }
992
993 static ahd_patch_func_t ahd_patch2_func;
994
995 static int
996 ahd_patch2_func(struct ahd_softc *ahd)
997 {
998         return ((ahd->bugs & AHD_SET_MODE_BUG) != 0);
999 }
1000
1001 static ahd_patch_func_t ahd_patch1_func;
1002
1003 static int
1004 ahd_patch1_func(struct ahd_softc *ahd)
1005 {
1006         return ((ahd->bugs & AHD_INTCOLLISION_BUG) != 0);
1007 }
1008
1009 static ahd_patch_func_t ahd_patch0_func;
1010
1011 static int
1012 ahd_patch0_func(struct ahd_softc *ahd)
1013 {
1014         return (0);
1015 }
1016
1017 static struct patch {
1018         ahd_patch_func_t                *patch_func;
1019         uint32_t                 begin          :10,
1020                                  skip_instr     :10,
1021                                  skip_patch     :12;
1022 } patches[] = {
1023         { ahd_patch1_func, 0, 3, 3 },
1024         { ahd_patch1_func, 1, 1, 2 },
1025         { ahd_patch0_func, 2, 1, 1 },
1026         { ahd_patch1_func, 3, 3, 3 },
1027         { ahd_patch1_func, 4, 1, 2 },
1028         { ahd_patch0_func, 5, 1, 1 },
1029         { ahd_patch2_func, 6, 1, 2 },
1030         { ahd_patch0_func, 7, 1, 1 },
1031         { ahd_patch3_func, 36, 5, 1 },
1032         { ahd_patch2_func, 45, 1, 2 },
1033         { ahd_patch0_func, 46, 1, 1 },
1034         { ahd_patch1_func, 53, 1, 2 },
1035         { ahd_patch0_func, 54, 1, 1 },
1036         { ahd_patch2_func, 59, 1, 2 },
1037         { ahd_patch0_func, 60, 1, 1 },
1038         { ahd_patch2_func, 63, 1, 2 },
1039         { ahd_patch0_func, 64, 1, 1 },
1040         { ahd_patch2_func, 67, 1, 2 },
1041         { ahd_patch0_func, 68, 1, 1 },
1042         { ahd_patch4_func, 116, 1, 1 },
1043         { ahd_patch2_func, 175, 3, 1 },
1044         { ahd_patch1_func, 178, 2, 1 },
1045         { ahd_patch5_func, 180, 1, 1 },
1046         { ahd_patch2_func, 189, 1, 2 },
1047         { ahd_patch0_func, 190, 1, 1 },
1048         { ahd_patch6_func, 191, 2, 2 },
1049         { ahd_patch0_func, 193, 6, 3 },
1050         { ahd_patch2_func, 196, 1, 2 },
1051         { ahd_patch0_func, 197, 1, 1 },
1052         { ahd_patch2_func, 200, 1, 2 },
1053         { ahd_patch0_func, 201, 1, 1 },
1054         { ahd_patch3_func, 203, 1, 1 },
1055         { ahd_patch7_func, 204, 3, 1 },
1056         { ahd_patch3_func, 213, 1, 1 },
1057         { ahd_patch5_func, 214, 16, 2 },
1058         { ahd_patch0_func, 230, 1, 1 },
1059         { ahd_patch8_func, 250, 2, 1 },
1060         { ahd_patch1_func, 254, 1, 2 },
1061         { ahd_patch0_func, 255, 1, 1 },
1062         { ahd_patch7_func, 258, 3, 1 },
1063         { ahd_patch1_func, 273, 1, 2 },
1064         { ahd_patch0_func, 274, 1, 1 },
1065         { ahd_patch1_func, 277, 1, 2 },
1066         { ahd_patch0_func, 278, 1, 1 },
1067         { ahd_patch2_func, 281, 1, 2 },
1068         { ahd_patch0_func, 282, 1, 1 },
1069         { ahd_patch9_func, 295, 2, 2 },
1070         { ahd_patch0_func, 297, 1, 1 },
1071         { ahd_patch1_func, 339, 1, 2 },
1072         { ahd_patch0_func, 340, 1, 1 },
1073         { ahd_patch2_func, 348, 1, 2 },
1074         { ahd_patch0_func, 349, 1, 1 },
1075         { ahd_patch2_func, 352, 1, 2 },
1076         { ahd_patch0_func, 353, 1, 1 },
1077         { ahd_patch1_func, 359, 1, 2 },
1078         { ahd_patch0_func, 360, 1, 1 },
1079         { ahd_patch1_func, 362, 1, 2 },
1080         { ahd_patch0_func, 363, 1, 1 },
1081         { ahd_patch10_func, 382, 1, 1 },
1082         { ahd_patch10_func, 385, 1, 1 },
1083         { ahd_patch10_func, 387, 1, 1 },
1084         { ahd_patch10_func, 399, 1, 1 },
1085         { ahd_patch1_func, 409, 1, 2 },
1086         { ahd_patch0_func, 410, 1, 1 },
1087         { ahd_patch1_func, 412, 1, 2 },
1088         { ahd_patch0_func, 413, 1, 1 },
1089         { ahd_patch1_func, 421, 1, 2 },
1090         { ahd_patch0_func, 422, 1, 1 },
1091         { ahd_patch2_func, 435, 1, 2 },
1092         { ahd_patch0_func, 436, 1, 1 },
1093         { ahd_patch11_func, 472, 1, 1 },
1094         { ahd_patch1_func, 480, 1, 2 },
1095         { ahd_patch0_func, 481, 1, 1 },
1096         { ahd_patch2_func, 493, 1, 2 },
1097         { ahd_patch0_func, 494, 1, 1 },
1098         { ahd_patch12_func, 497, 6, 2 },
1099         { ahd_patch0_func, 503, 1, 1 },
1100         { ahd_patch13_func, 524, 7, 1 },
1101         { ahd_patch14_func, 533, 1, 1 },
1102         { ahd_patch15_func, 542, 1, 1 },
1103         { ahd_patch16_func, 543, 1, 2 },
1104         { ahd_patch0_func, 544, 1, 1 },
1105         { ahd_patch17_func, 547, 1, 1 },
1106         { ahd_patch16_func, 548, 1, 1 },
1107         { ahd_patch18_func, 559, 1, 2 },
1108         { ahd_patch0_func, 560, 1, 1 },
1109         { ahd_patch1_func, 579, 1, 2 },
1110         { ahd_patch0_func, 580, 1, 1 },
1111         { ahd_patch1_func, 583, 1, 2 },
1112         { ahd_patch0_func, 584, 1, 1 },
1113         { ahd_patch2_func, 589, 1, 2 },
1114         { ahd_patch0_func, 590, 1, 1 },
1115         { ahd_patch2_func, 594, 1, 2 },
1116         { ahd_patch0_func, 595, 1, 1 },
1117         { ahd_patch1_func, 596, 1, 2 },
1118         { ahd_patch0_func, 597, 1, 1 },
1119         { ahd_patch2_func, 608, 1, 2 },
1120         { ahd_patch0_func, 609, 1, 1 },
1121         { ahd_patch19_func, 613, 1, 1 },
1122         { ahd_patch20_func, 618, 1, 1 },
1123         { ahd_patch21_func, 619, 2, 1 },
1124         { ahd_patch20_func, 623, 1, 2 },
1125         { ahd_patch0_func, 624, 1, 1 },
1126         { ahd_patch2_func, 627, 1, 2 },
1127         { ahd_patch0_func, 628, 1, 1 },
1128         { ahd_patch2_func, 643, 1, 2 },
1129         { ahd_patch0_func, 644, 1, 1 },
1130         { ahd_patch13_func, 645, 14, 1 },
1131         { ahd_patch1_func, 663, 1, 2 },
1132         { ahd_patch0_func, 664, 1, 1 },
1133         { ahd_patch13_func, 665, 1, 1 },
1134         { ahd_patch1_func, 677, 1, 2 },
1135         { ahd_patch0_func, 678, 1, 1 },
1136         { ahd_patch1_func, 685, 1, 2 },
1137         { ahd_patch0_func, 686, 1, 1 },
1138         { ahd_patch19_func, 709, 1, 1 },
1139         { ahd_patch19_func, 747, 1, 1 },
1140         { ahd_patch1_func, 758, 1, 2 },
1141         { ahd_patch0_func, 759, 1, 1 },
1142         { ahd_patch1_func, 776, 1, 2 },
1143         { ahd_patch0_func, 777, 1, 1 },
1144         { ahd_patch1_func, 779, 1, 2 },
1145         { ahd_patch0_func, 780, 1, 1 },
1146         { ahd_patch1_func, 783, 1, 2 },
1147         { ahd_patch0_func, 784, 1, 1 },
1148         { ahd_patch22_func, 786, 1, 2 },
1149         { ahd_patch0_func, 787, 2, 1 },
1150         { ahd_patch23_func, 790, 4, 2 },
1151         { ahd_patch0_func, 794, 1, 1 },
1152         { ahd_patch23_func, 802, 11, 1 }
1153 };
1154
1155 static struct cs {
1156         uint16_t        begin;
1157         uint16_t        end;
1158 } critical_sections[] = {
1159         { 17, 28 },
1160         { 29, 30 },
1161         { 47, 58 },
1162         { 61, 63 },
1163         { 65, 66 },
1164         { 72, 92 },
1165         { 110, 137 },
1166         { 138, 175 },
1167         { 180, 188 },
1168         { 213, 264 },
1169         { 425, 433 },
1170         { 443, 445 },
1171         { 448, 457 },
1172         { 709, 739 },
1173         { 749, 753 }
1174 };
1175
1176 static const int num_critical_sections = sizeof(critical_sections)
1177                                        / sizeof(*critical_sections);