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