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