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