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