add common functions for the new config file format
[openwrt/svn-archive/archive.git] / openwrt / target / linux / package / bcm43xx-standalone / fwcutter / fwcutter_list.h
1
2 static const struct file {
3 const char *name;
4 const char *version;
5 const char *md5;
6 const uint8_t flags;
7 const uint32_t iv_pos;
8 const uint32_t uc2_pos;
9 const uint32_t uc2_length;
10 const uint32_t uc4_pos;
11 const uint32_t uc4_length;
12 const uint32_t uc5_pos;
13 const uint32_t uc5_length;
14 const uint32_t uc11_pos;
15 const uint32_t uc11_length;
16 const uint32_t pcm4_pos;
17 const uint32_t pcm4_length;
18 const uint32_t pcm5_pos;
19 const uint32_t pcm5_length;
20 } files[] =
21 {
22 {
23 .name = "AppleAirPort2",
24 .version = "3.30.15.p3 (3.1.1b2)",
25 .md5 = "a8275cc50107a13b5be15d067b2245a0",
26 .flags = BYTE_ORDER_BIG_ENDIAN |
27 MISSING_INITVAL_08,
28 .iv_pos = 0x42550,
29 .uc2_pos = 0x45630, .uc2_length = 0x3d88,
30 .uc4_pos = 0x493bc, .uc4_length = 0x44a0,
31 .uc5_pos = 0x4d860, .uc5_length = 0x4ec0,
32 .pcm4_pos = 0x52724, .pcm4_length = 0x478,
33 .pcm5_pos = 0x52ba0, .pcm5_length = 0x478,
34 },
35 {
36 .name = "AppleAirPort2",
37 .version = "3.30.15.p3 (3.1.2b3)",
38 .md5 = "55134c1298abaa85f190331f016d4d36",
39 .flags = BYTE_ORDER_BIG_ENDIAN |
40 MISSING_INITVAL_08,
41 .iv_pos = 0x42c24,
42 .uc2_pos = 0x45d04, .uc2_length = 0x3d88,
43 .uc4_pos = 0x49a90, .uc4_length = 0x44a0,
44 .uc5_pos = 0x4df34, .uc5_length = 0x4ec0,
45 .pcm4_pos = 0x52df8, .pcm4_length = 0x478,
46 .pcm5_pos = 0x53274, .pcm5_length = 0x478,
47 },
48 {
49 .name = "AppleAirPort2",
50 .version = "3.30.15.p7 (3.2)",
51 .md5 = "e74e8d2df2e4eb97e28602f3b2dd4647",
52 .flags = BYTE_ORDER_BIG_ENDIAN |
53 MISSING_INITVAL_08,
54 .iv_pos = 0x40efc,
55 .uc2_pos = 0x43fdc, .uc2_length = 0x3d88,
56 .uc4_pos = 0x47d68, .uc4_length = 0x44a0,
57 .uc5_pos = 0x4c20c, .uc5_length = 0x4ec0,
58 .pcm4_pos = 0x510d0, .pcm4_length = 0x478,
59 .pcm5_pos = 0x5154c, .pcm5_length = 0x478,
60 },
61 {
62 .name = "AppleAirPort2",
63 .version = "3.30.15.p8 (3.3b1)", /* 01/19/2004 */
64 .md5 = "87c74c55d2501d2e968f8c132e160b6e",
65 .flags = BYTE_ORDER_BIG_ENDIAN,
66 .iv_pos = 0x41c8c,
67 .uc2_pos = 0x43fe4, .uc2_length = 0x3d88,
68 .uc4_pos = 0x47d70, .uc4_length = 0x44b2,
69 .uc5_pos = 0x4c214, .uc5_length = 0x4ec0,
70 .pcm4_pos = 0x510d8, .pcm4_length = 0x478,
71 .pcm5_pos = 0x51554, .pcm5_length = 0x478,
72 },
73 {
74 .name = "AppleAirPort2",
75 .version = "3.50.37.p4 (3.4.2b1)",
76 .md5 = "1739c357ade1d04c9be47e8604afb1c2",
77 .flags = BYTE_ORDER_BIG_ENDIAN,
78 .iv_pos = 0x4f2b8,
79 .uc2_pos = 0x52da0, .uc2_length = 0x3d30,
80 .uc4_pos = 0x56ad4, .uc4_length = 0x45c8,
81 .uc5_pos = 0x5b0a0, .uc5_length = 0x5500,
82 .pcm4_pos = 0x605a4, .pcm4_length = 0x478,
83 .pcm5_pos = 0x60a20, .pcm5_length = 0x478,
84 },
85 {
86 .name = "AppleAirPort2",
87 .version = "3.50.37.p4 (3.4.3f1)", /* 09/29/2004 */
88 .md5 = "c672b8c218c5dc4a55060bdfa9f58a69",
89 .flags = BYTE_ORDER_BIG_ENDIAN |
90 MISSING_INITVAL_08,
91 .iv_pos = 0x4f378,
92 .uc2_pos = 0x52e60, .uc2_length = 0x3d30,
93 .uc4_pos = 0x56b94, .uc4_length = 0x45c8,
94 .uc5_pos = 0x5b160, .uc5_length = 0x5500,
95 .pcm4_pos = 0x60664, .pcm4_length = 0x478,
96 .pcm5_pos = 0x60ae0, .pcm5_length = 0x478,
97 },
98 {
99 .name = "AppleAirPort2",
100 .version = "3.50.37.p4 (3.4.4f5)",
101 .md5 = "2c388e3e8ea9310a58cf76a3757e8ccc",
102 .flags = BYTE_ORDER_BIG_ENDIAN,
103 .iv_pos = 0x4f5f0,
104 .uc2_pos = 0x530d8, .uc2_length = 0x3d30,
105 .uc4_pos = 0x56e0c, .uc4_length = 0x45c8,
106 .uc5_pos = 0x5b3d8, .uc5_length = 0x5500,
107 .pcm4_pos = 0x608dc, .pcm4_length = 0x478,
108 .pcm5_pos = 0x60d58, .pcm5_length = 0x478,
109 },
110 {
111 .name = "AppleAirPort2",
112 .version = "3.50.37.p4 (3.4.4f5)",
113 .md5 = "3860545266b554d2955664db55452f5a",
114 .flags = BYTE_ORDER_BIG_ENDIAN,
115 .iv_pos = 0x4f5f0,
116 .uc2_pos = 0x530d8, .uc2_length = 0x3d30,
117 .uc4_pos = 0x56e0c, .uc4_length = 0x45c8,
118 .uc5_pos = 0x5b3d8, .uc5_length = 0x5500,
119 .pcm4_pos = 0x608dc, .pcm4_length = 0x478,
120 .pcm5_pos = 0x60d58, .pcm5_length = 0x478,
121 },
122 {
123 .name = "AppleAirPort2",
124 .version = "3.50.37.p6 (3.5f1)",
125 .md5 = "a62e35ee9956b286c46b145d35bd6e0c",
126 .flags = BYTE_ORDER_BIG_ENDIAN,
127 .iv_pos = 0x4f9b8,
128 .uc2_pos = 0x534a0, .uc2_length = 0x3d30,
129 .uc4_pos = 0x571d4, .uc4_length = 0x45c8,
130 .uc5_pos = 0x5b7a0, .uc5_length = 0x5500,
131 .pcm4_pos = 0x60ca4, .pcm4_length = 0x478,
132 .pcm5_pos = 0x61120, .pcm5_length = 0x478,
133 },
134 {
135 .name = "AppleAirPort2",
136 .version = "3.50.37.p6 (3.5f1)",
137 .md5 = "b6f3d2437c40277c197f0afcf12208e9",
138 .flags = BYTE_ORDER_BIG_ENDIAN,
139 .iv_pos = 0x4f9b8,
140 .uc2_pos = 0x534a0, .uc2_length = 0x3d30,
141 .uc4_pos = 0x571d4, .uc4_length = 0x45c8,
142 .uc5_pos = 0x5b7a0, .uc5_length = 0x5500,
143 .pcm4_pos = 0x60ca4, .pcm4_length = 0x478,
144 .pcm5_pos = 0x61120, .pcm5_length = 0x478,
145 },
146 {
147 .name = "AppleAirPort2",
148 .version = "3.90.34.0.p11 (400.17)", /* 09/13/2005 (??) */
149 .md5 = "ca0f34df2f0bfb8b5cfd83b5848d2bf5",
150 .flags = BYTE_ORDER_BIG_ENDIAN |
151 MISSING_INITVAL_80211_A,
152 .iv_pos = 0x4ff2c, /* A-PHY init vals empty */
153 .uc2_pos = 0x5181c, .uc2_length = 0x3f48,
154 .uc4_pos = 0x55764, .uc4_length = 0x4df0,
155 .uc5_pos = 0x5a554, .uc5_length = 0x57e0,
156 .pcm4_pos = 0x5fd34, .pcm4_length = 0x520,
157 .pcm5_pos = 0x60254, .pcm5_length = 0x520,
158 },
159 {
160 .name = "AppleAirPort2",
161 .version = "3.90.34.0.p11 (400.17)",
162 .md5 = "dc3a69aac95c68fe8edc760e39bbb2c9",
163 .flags = BYTE_ORDER_BIG_ENDIAN |
164 MISSING_INITVAL_80211_A,
165 .iv_pos = 0x50efc, /* A-PHY init vals empty */
166 .uc2_pos = 0x527ec, .uc2_length = 0x3f48,
167 .uc4_pos = 0x56734, .uc4_length = 0x4df0,
168 .uc5_pos = 0x5b524, .uc5_length = 0x57e0,
169 .pcm4_pos = 0x60d04, .pcm4_length = 0x520,
170 .pcm5_pos = 0x61224, .pcm5_length = 0x520,
171 },
172 {
173 .name = "AppleAirPort2",
174 .version = "3.90.34.0.p13 (401.2)", /* 07/10/2005 */
175 .md5 = "6ecf38e5ab6997c7ec483c0d637f5c68",
176 .flags = BYTE_ORDER_BIG_ENDIAN |
177 MISSING_INITVAL_80211_A,
178 .iv_pos = 0x50fcc, /* A-PHY init vals empty */
179 .uc2_pos = 0x528bc, .uc2_length = 0x3f48,
180 .uc4_pos = 0x56804, .uc4_length = 0x4df0,
181 .uc5_pos = 0x5b5f4, .uc5_length = 0x57e0,
182 .pcm4_pos = 0x60dd4, .pcm4_length = 0x520,
183 .pcm5_pos = 0x612f4, .pcm5_length = 0x520,
184 },
185 {
186 .name = "AppleAirPort2",
187 .version = "3.90.34.0.p16 (404.2)",
188 .md5 = "7200d1aef5f413ebc811046d068b40dc",
189 .flags = BYTE_ORDER_BIG_ENDIAN |
190 MISSING_INITVAL_80211_A,
191 .iv_pos = 0x511ec, /* A-PHY init vals empty */
192 .uc2_pos = 0x52adc, .uc2_length = 0x3f48,
193 .uc4_pos = 0x56a24, .uc4_length = 0x4df0,
194 .uc5_pos = 0x5b814, .uc5_length = 0x57f0,
195 .pcm4_pos = 0x61004, .pcm4_length = 0x520,
196 .pcm5_pos = 0x61524, .pcm5_length = 0x520,
197 },
198 {
199 .name = "AppleAirPort2",
200 .version = "3.90.34.0.p16 (404.2)",
201 .md5 = "86cc708e8df3b035a1dbea41ac4eb7d2",
202 .flags = BYTE_ORDER_BIG_ENDIAN |
203 MISSING_INITVAL_80211_A,
204 .iv_pos = 0x5021c, /* A-PHY init vals empty */
205 .uc2_pos = 0x51b0c, .uc2_length = 0x3f48,
206 .uc4_pos = 0x55a54, .uc4_length = 0x4df0,
207 .uc5_pos = 0x5a844, .uc5_length = 0x57f0,
208 .pcm4_pos = 0x60034, .pcm4_length = 0x520,
209 .pcm5_pos = 0x60554, .pcm5_length = 0x520,
210 },
211 {
212 .name = "bcmwl5.sys",
213 .version = "3.10.8.0", /* 10/04/2002 */
214 .md5 = "288923b401e87ef76b7ae2652601ee47",
215 .flags = DRIVER_UNSUPPORTED, /* file differs from later ones */
216 },
217 {
218 .name = "bcmwl5.sys",
219 .version = "3.10.53.6", /* 04/28/2003 */
220 .md5 = "b43c593fd7c2a47cdc40580fe341f674",
221 .flags = DRIVER_UNSUPPORTED, /* file differs from later ones */
222 },
223 {
224 .name = "bcmwl5.sys",
225 .version = "3.20.23.0", /* 06/13/2003 */
226 .md5 = "1b1cf5e962c15abca83d1ef2b3906e2f", /* pcm5 not available, driver is too old */
227 .flags = BYTE_ORDER_LITTLE_ENDIAN |
228 MISSING_INITVAL_08,
229 .iv_pos = 0x2a1d0,
230 .uc2_pos = 0x2d228, .uc2_length = 0x3da8,
231 .uc4_pos = 0x30fd8, .uc4_length = 0x4470,
232 .uc5_pos = 0x35450, .uc5_length = 0x4ba0,
233 .pcm4_pos = 0x39ff8, .pcm4_length = 0x478,
234 },
235 {
236 .name = "bcmwl5.sys",
237 .version = "3.30.15.0", /* 07/17/2003 */
238 .md5 = "ebf36d658d0da5b1ea667fa403919c26",
239 .flags = BYTE_ORDER_LITTLE_ENDIAN |
240 MISSING_INITVAL_08,
241 .iv_pos = 0x2c658,
242 .uc2_pos = 0x2f738, .uc2_length = 0x3d88,
243 .uc4_pos = 0x334c8, .uc4_length = 0x44a0,
244 .uc5_pos = 0x37970, .uc5_length = 0x4ec0,
245 .pcm4_pos = 0x3c838, .pcm4_length = 0x478,
246 .pcm5_pos = 0x3ccb8, .pcm5_length = 0x478,
247 },
248 {
249 .name = "bcmwl5.sys",
250 .version = "3.40.20.0", /* 09/24/2003 */
251 .md5 = "0c3fc803184f6f85e665dd012611225b",
252 .flags = BYTE_ORDER_LITTLE_ENDIAN,
253 .iv_pos = 0x302f0,
254 .uc2_pos = 0x33d88, .uc2_length = 0x3db8,
255 .uc4_pos = 0x37b48, .uc4_length = 0x45d8,
256 .uc5_pos = 0x3c128, .uc5_length = 0x5050,
257 .pcm4_pos = 0x41180, .pcm4_length = 0x478,
258 .pcm5_pos = 0x41600, .pcm5_length = 0x478,
259 },
260 {
261 .name = "bcmwl5.sys",
262 .version = "3.40.25.3", /* 10/28/2003 */
263 .md5 = "5e58a3148b98c9f356cde6049435cb21",
264 .flags = BYTE_ORDER_LITTLE_ENDIAN,
265 .iv_pos = 0x30970,
266 .uc2_pos = 0x34408, .uc2_length = 0x3db0,
267 .uc4_pos = 0x381c0, .uc4_length = 0x45d0,
268 .uc5_pos = 0x3c798, .uc5_length = 0x5050,
269 .pcm4_pos = 0x417f0, .pcm4_length = 0x478,
270 .pcm5_pos = 0x41c70, .pcm5_length = 0x478,
271 },
272 {
273 .name = "bcmwl5.sys",
274 .version = "3.40.73.0", /* 06/25/2004 */
275 .md5 = "52d67c5465c01913b03b7daca0cc4077",
276 .flags = BYTE_ORDER_LITTLE_ENDIAN,
277 .iv_pos = 0x37398,
278 .uc2_pos = 0x3ae30, .uc2_length = 0x3ff0,
279 .uc4_pos = 0x3ee28, .uc4_length = 0x47f0,
280 .uc5_pos = 0x43620, .uc5_length = 0x5260,
281 .pcm4_pos = 0x48888, .pcm4_length = 0x478,
282 .pcm5_pos = 0x48d08, .pcm5_length = 0x478,
283 },
284 {
285 .name = "bcmwl5.sys",
286 .version = "3.40.100.0", /* 02/07/2004 */
287 .md5 = "431195b941dff794f23c2077fcbf8377",
288 .flags = BYTE_ORDER_LITTLE_ENDIAN,
289 .iv_pos = 0x34d18,
290 .uc2_pos = 0x387b0, .uc2_length = 0x3ff0,
291 .uc4_pos = 0x3c7a8, .uc4_length = 0x47f0,
292 .uc5_pos = 0x40fa0, .uc5_length = 0x5260,
293 .pcm4_pos = 0x46208, .pcm4_length = 0x478,
294 .pcm5_pos = 0x46688, .pcm5_length = 0x478,
295 },
296 {
297 .name = "bcmwl5.sys",
298 .version = "3.50.21.11", /* 02/19/2004 */
299 .md5 = "ae96075a3aed5c40f1ead477ea94acd7",
300 .flags = BYTE_ORDER_LITTLE_ENDIAN,
301 .iv_pos = 0x33370,
302 .uc2_pos = 0x36e58, .uc2_length = 0x3e00,
303 .uc4_pos = 0x3ac60, .uc4_length = 0x4628,
304 .uc5_pos = 0x3f290, .uc5_length = 0x5548,
305 .pcm4_pos = 0x447e0, .pcm4_length = 0x478,
306 .pcm5_pos = 0x44c60, .pcm5_length = 0x478,
307 },
308 {
309 .name = "bcmwl5.sys",
310 .version = "3.60.7.0", /* 03/22/2004 */
311 .md5 = "c5616736df4e83930780dca5795387ca",
312 .flags = BYTE_ORDER_LITTLE_ENDIAN,
313 .iv_pos = 0x3b988,
314 .uc2_pos = 0x3f580, .uc2_length = 0x3e08,
315 .uc4_pos = 0x43390, .uc4_length = 0x4e58,
316 .uc5_pos = 0x481f0, .uc5_length = 0x5608,
317 .pcm4_pos = 0x4d800, .pcm4_length = 0x478,
318 .pcm5_pos = 0x4dc80, .pcm5_length = 0x478,
319 },
320 {
321 .name = "bcmwl5.sys",
322 .version = "3.60.7.5", /* 06/07/2004 */
323 .md5 = "d2ae116c741c215ef3ef68603db9917f",
324 .flags = BYTE_ORDER_LITTLE_ENDIAN,
325 .iv_pos = 0x3b988,
326 .uc2_pos = 0x3f580, .uc2_length = 0x3e08,
327 .uc4_pos = 0x43390, .uc4_length = 0x4e58,
328 .uc5_pos = 0x481f0, .uc5_length = 0x5608,
329 .pcm4_pos = 0x4d800, .pcm4_length = 0x478,
330 .pcm5_pos = 0x4dc80, .pcm5_length = 0x478,
331 },
332 {
333 .name = "bcmwl5.sys",
334 .version = "3.70.12.0", /* 06/02/2004 */
335 .md5 = "d409b089370486521d5408baed9bffde",
336 .flags = BYTE_ORDER_LITTLE_ENDIAN,
337 .iv_pos = 0x39480,
338 .uc2_pos = 0x3d0c8, .uc2_length = 0x3e80,
339 .uc4_pos = 0x40f50, .uc4_length = 0x4ed0,
340 .uc5_pos = 0x45e28, .uc5_length = 0x5680,
341 .pcm4_pos = 0x4b4b0, .pcm4_length = 0x478,
342 .pcm5_pos = 0x4b930, .pcm5_length = 0x478,
343 },
344 {
345 .name = "bcmwl5.sys",
346 .version = "3.70.17.0", /* 06/25/2004 */
347 .md5 = "d87b4e14e890091d8e64fb5c570cf192",
348 .flags = BYTE_ORDER_LITTLE_ENDIAN,
349 .iv_pos = 0x39600,
350 .uc2_pos = 0x3d248, .uc2_length = 0x3e80,
351 .uc4_pos = 0x410d0, .uc4_length = 0x4ed0,
352 .uc5_pos = 0x45fa8, .uc5_length = 0x5680,
353 .pcm4_pos = 0x4b630, .pcm4_length = 0x478,
354 .pcm5_pos = 0x4bab0, .pcm5_length = 0x478,
355 },
356 {
357 .name = "bcmwl5.sys",
358 .version = "3.70.22.0", /* 10/20/2004 */
359 .md5 = "185a6dc6d655dc31c0b228cc94fb99ac",
360 .flags = BYTE_ORDER_LITTLE_ENDIAN,
361 .iv_pos = 0x39a88,
362 .uc2_pos = 0x3d6d0, .uc2_length = 0x3e80,
363 .uc4_pos = 0x41558, .uc4_length = 0x4ed0,
364 .uc5_pos = 0x46430, .uc5_length = 0x5680,
365 .pcm4_pos = 0x4bab8, .pcm4_length = 0x478,
366 .pcm5_pos = 0x4bf38, .pcm5_length = 0x478,
367 },
368 {
369 .name = "bcmwl5.sys",
370 .version = "3.90.41.1", /* 07/04/2005 */
371 .md5 = "0a87541dd24c6f046a4bf8f671f74de2",
372 .flags = BYTE_ORDER_LITTLE_ENDIAN,
373 .iv_pos = 0x3bec8,
374 .uc2_pos = 0x3fb38, .uc2_length = 0x3f48,
375 .uc4_pos = 0x43a88, .uc4_length = 0x4df0,
376 .uc5_pos = 0x48880, .uc5_length = 0x57e0,
377 .pcm4_pos = 0x4e068, .pcm4_length = 0x520,
378 .pcm5_pos = 0x4e590, .pcm5_length = 0x520,
379 },
380 {
381 .name = "bcmwl5.sys",
382 .version = "3.100.35.0", /* 11/27/2004 */
383 .md5 = "c3ab2d6954c7b5103770832a3a6a591b",
384 .flags = BYTE_ORDER_LITTLE_ENDIAN,
385 .iv_pos = 0x3de80,
386 .uc2_pos = 0x41af0, .uc2_length = 0x3f58,
387 .uc4_pos = 0x45a50, .uc4_length = 0x4df8,
388 .uc5_pos = 0x4a850, .uc5_length = 0x57f8,
389 .pcm4_pos = 0x50050, .pcm4_length = 0x520,
390 .pcm5_pos = 0x50578, .pcm5_length = 0x520,
391 },
392 {
393 .name = "bcmwl5.sys",
394 .version = "3.100.35.1", /* 02/10/2005 */
395 .md5 = "da7ca369a1a3593ceac85dec2d267a08",
396 .flags = BYTE_ORDER_LITTLE_ENDIAN,
397 .iv_pos = 0x3df00,
398 .uc2_pos = 0x41b70, .uc2_length = 0x3f58,
399 .uc4_pos = 0x45ad0, .uc4_length = 0x4df8,
400 .uc5_pos = 0x4a8d0, .uc5_length = 0x57f8,
401 .pcm4_pos = 0x500d0, .pcm4_length = 0x520,
402 .pcm5_pos = 0x505f8, .pcm5_length = 0x520,
403 },
404 {
405 .name = "bcmwl5.sys",
406 .version = "3.100.46.0", /* 12/22/2004 */
407 .md5 = "38ca1443660d0f5f06887c6a2e692aeb",
408 .flags = BYTE_ORDER_LITTLE_ENDIAN,
409 .iv_pos = 0x3de80,
410 .uc2_pos = 0x41af0, .uc2_length = 0x3f58,
411 .uc4_pos = 0x45a50, .uc4_length = 0x4df8,
412 .uc5_pos = 0x4a850, .uc5_length = 0x57f8,
413 .pcm4_pos = 0x50050, .pcm4_length = 0x520,
414 .pcm5_pos = 0x50578, .pcm5_length = 0x520,
415 },
416 {
417 .name = "bcmwl5.sys",
418 .version = "3.100.64.0", /* 02/11/2005 */
419 .md5 = "e7debb46b9ef1f28932e533be4a3d1a9",
420 .flags = BYTE_ORDER_LITTLE_ENDIAN,
421 .iv_pos = 0x3e980,
422 .uc2_pos = 0x425f0, .uc2_length = 0x3f58,
423 .uc4_pos = 0x46550, .uc4_length = 0x4e00,
424 .uc5_pos = 0x4b358, .uc5_length = 0x5800,
425 .pcm4_pos = 0x50b60, .pcm4_length = 0x520,
426 .pcm5_pos = 0x51088, .pcm5_length = 0x520,
427 },
428 {
429 .name = "bcmwl5.sys",
430 .version = "3.100.64.50", /* 04/05/2005 */
431 .md5 = "4b3e367b829b9b2c0c088909a617e04e",
432 .flags = BYTE_ORDER_LITTLE_ENDIAN,
433 .iv_pos = 0x3e900,
434 .uc2_pos = 0x42570, .uc2_length = 0x3f58,
435 .uc4_pos = 0x464d0, .uc4_length = 0x4e00,
436 .uc5_pos = 0x4b2d8, .uc5_length = 0x5800,
437 .pcm4_pos = 0x50ae0, .pcm4_length = 0x520,
438 .pcm5_pos = 0x51008, .pcm5_length = 0x520,
439 },
440 {
441 .name = "bcmwl5.sys",
442 .version = "3.100.65.1", /* 04/21/2005 */
443 .md5 = "d5f1ab1aab8b81bca6f19da9554a267a",
444 .flags = BYTE_ORDER_LITTLE_ENDIAN,
445 .iv_pos = 0x3e980,
446 .uc2_pos = 0x425f0, .uc2_length = 0x3f58,
447 .uc4_pos = 0x46550, .uc4_length = 0x4e00,
448 .uc5_pos = 0x4b358, .uc5_length = 0x5800,
449 .pcm4_pos = 0x50b60, .pcm4_length = 0x520,
450 .pcm5_pos = 0x51088, .pcm5_length = 0x520,
451 },
452 {
453 .name = "bcmwl5.sys",
454 .version = "3.120.27.0", /* 05/19/2005 */
455 .md5 = "8d49f11238815a320880fee9f98b2c92",
456 .flags = BYTE_ORDER_LITTLE_ENDIAN,
457 .iv_pos = 0x3f700,
458 .uc2_pos = 0x43370, .uc2_length = 0x3f68,
459 .uc4_pos = 0x472e0, .uc4_length = 0x4e10,
460 .uc5_pos = 0x4c0f8, .uc5_length = 0x5800,
461 .pcm4_pos = 0x51900, .pcm4_length = 0x520,
462 .pcm5_pos = 0x51e28, .pcm5_length = 0x520,
463 },
464 {
465 .name = "bcmwl5.sys",
466 .version = "3.140.16.0", /* 07/21/2005 */
467 .md5 = "fa4a4a50b4b2647afedc676cc68c69cc",
468 .flags = BYTE_ORDER_LITTLE_ENDIAN,
469 .iv_pos = 0x3f700,
470 .uc2_pos = 0x43370, .uc2_length = 0x3f68,
471 .uc4_pos = 0x472e0, .uc4_length = 0x4e10,
472 .uc5_pos = 0x4c0f8, .uc5_length = 0x5800,
473 .pcm4_pos = 0x51900, .pcm4_length = 0x520,
474 .pcm5_pos = 0x51e28, .pcm5_length = 0x520,
475 },
476 {
477 .name = "bcmwl564.sys",
478 .version = "3.70.17.5", /* 09/21/2004 */
479 .md5 = "f5590c8784b91dfd9ee092d3040b6e40", /* for 64bit machines */
480 .flags = BYTE_ORDER_LITTLE_ENDIAN,
481 .iv_pos = 0x566f0,
482 .uc2_pos = 0x5a360, .uc2_length = 0x3e80,
483 .uc4_pos = 0x5e1f0, .uc4_length = 0x4ed0,
484 .uc5_pos = 0x630d0, .uc5_length = 0x5680,
485 .pcm4_pos = 0x68760, .pcm4_length = 0x478,
486 .pcm5_pos = 0x68be0, .pcm5_length = 0x478,
487 },
488 {
489 .name = "bcmwl564.sys",
490 .version = "3.100.64.10", /* 05/12/2005 */
491 .md5 = "b8d76da338ecf2c650f5f7ca226ccf89", /* for 64bit machines */
492 .flags = BYTE_ORDER_LITTLE_ENDIAN,
493 .iv_pos = 0x50bf0,
494 .uc2_pos = 0x54860, .uc2_length = 0x3f58,
495 .uc4_pos = 0x587c0, .uc4_length = 0x4e00,
496 .uc5_pos = 0x5d5d0, .uc5_length = 0x5800,
497 .pcm4_pos = 0x62de0, .pcm4_length = 0x520,
498 .pcm5_pos = 0x63310, .pcm5_length = 0x520,
499 },
500 {
501 .name = "bcmwl5a.sys",
502 .version = "3.90.16.0", /* 12/06/2004 */
503 .md5 = "e6d927deea6c75bddf84080e6c3837b7",
504 .flags = BYTE_ORDER_LITTLE_ENDIAN,
505 .iv_pos = 0x3b4c8,
506 .uc2_pos = 0x3f138, .uc2_length = 0x3f48,
507 .uc4_pos = 0x43088, .uc4_length = 0x4de8,
508 .uc5_pos = 0x47e78, .uc5_length = 0x57d8,
509 .pcm4_pos = 0x4d658, .pcm4_length = 0x520,
510 .pcm5_pos = 0x4db80, .pcm5_length = 0x520,
511 },
512 {
513 .name = "d11ucode.o",
514 .version = "3.31.16.0 ?", /*FIXME: version correct? */
515 .md5 = "31e6cac8a8129bf8f91291293e017329",
516 .flags = BYTE_ORDER_LITTLE_ENDIAN |
517 MISSING_INITVAL_08,
518 .iv_pos = 0x40,
519 .uc2_pos = 0x3120, .uc2_length = 0x3d88,
520 .uc4_pos = 0x6eac, .uc4_length = 0x44a0,
521 .uc5_pos = 0xb350, .uc5_length = 0x4ec0,
522 .pcm4_pos = 0x10214, .pcm4_length = 0x478,
523 .pcm5_pos = 0x10690, .pcm5_length = 0x478,
524 },
525 {
526 .name = "d11ucode.o",
527 .version = "3.60.7.0 ? (1.3.2)", /* no version number found */
528 .md5 = "7774e5dda1daa2b3f83d279552ca1cc4", /* but same fw files are also */
529 .flags = BYTE_ORDER_LITTLE_ENDIAN, /* in bcmwl5.sys 3.60.7.0 */
530 .iv_pos = 0x40,
531 .uc2_pos = 0x3c38, .uc2_length = 0x3e08,
532 .uc4_pos = 0x7a44, .uc4_length = 0x4e58,
533 .uc5_pos = 0xc8a0, .uc5_length = 0x5608,
534 .pcm4_pos = 0x11eac, .pcm4_length = 0x478,
535 .pcm5_pos = 0x12328, .pcm5_length = 0x478,
536 },
537 {
538 .name = "d11ucode.o",
539 .version = "3.90.7.0 ? (3.90.RC7)", /* 10/14/2004 */
540 .md5 = "b2580361620881b06fa810422ec8b7ce",
541 .flags = BYTE_ORDER_LITTLE_ENDIAN,
542 .iv_pos = 0x60,
543 .uc2_pos = 0x3cd0, .uc2_length = 0x3ec0,
544 .uc4_pos = 0x7b94, .uc4_length = 0x4d60,
545 .uc5_pos = 0xc8f8, .uc5_length = 0x5750,
546 .pcm4_pos = 0x1204c, .pcm4_length = 0x520,
547 .pcm5_pos = 0x12570, .pcm5_length = 0x520,
548 },
549 {
550 .name = "d11ucode.o",
551 .version = "3.90.37.0",
552 .md5 = "2543935259739a8a879ccb8386647ac7",
553 .flags = BYTE_ORDER_LITTLE_ENDIAN,
554 .iv_pos = 0x60,
555 .uc2_pos = 0x3cd0, .uc2_length = 0x3f48,
556 .uc4_pos = 0x7c1c, .uc4_length = 0x4df0,
557 .uc5_pos = 0xca10, .uc5_length = 0x57e0,
558 .pcm4_pos = 0x121f4, .pcm4_length = 0x520,
559 .pcm5_pos = 0x12718, .pcm5_length = 0x520,
560 },
561 {
562 .name = "wl.o",
563 .version = "3.31.15.0", /* 07/28/2003 */
564 .md5 = "a85af65b5ae1d64ee11eab714faab843",
565 .flags = BYTE_ORDER_LITTLE_ENDIAN |
566 MISSING_INITVAL_08,
567 .iv_pos = 0x32270,
568 .uc2_pos = 0x35350, .uc2_length = 0x3d88,
569 .uc4_pos = 0x390dc, .uc4_length = 0x44a0,
570 .uc5_pos = 0x3d580, .uc5_length = 0x4ec0,
571 .pcm4_pos = 0x42444, .pcm4_length = 0x478,
572 .pcm5_pos = 0x428c0, .pcm5_length = 0x478,
573 },
574 {
575 .name = "wl.o",
576 .version = "3.31.15.0", /* 07/28/2003 */
577 .md5 = "98dd50a95b02c8bcb3725c770df81dfc",
578 .flags = BYTE_ORDER_LITTLE_ENDIAN |
579 MISSING_INITVAL_08,
580 .iv_pos = 0x32270,
581 .uc2_pos = 0x35350, .uc2_length = 0x3d88,
582 .uc4_pos = 0x390dc, .uc4_length = 0x44a0,
583 .uc5_pos = 0x3d580, .uc5_length = 0x4ec0,
584 .pcm4_pos = 0x42444, .pcm4_length = 0x478,
585 .pcm5_pos = 0x428c0, .pcm5_length = 0x478,
586 },
587 {
588 .name = "wl.o",
589 .version = "3.50.21.0", /* 05/11/2003 */
590 .md5 = "f71be0e1d14f68c98d916465a300d835",
591 .flags = BYTE_ORDER_LITTLE_ENDIAN,
592 .iv_pos = 0x38990,
593 .uc2_pos = 0x3c428, .uc2_length = 0x3db8,
594 .uc4_pos = 0x401e4, .uc4_length = 0x45d8,
595 .uc5_pos = 0x447c0, .uc5_length = 0x5050,
596 .pcm4_pos = 0x49814, .pcm4_length = 0x478,
597 .pcm5_pos = 0x49c90, .pcm5_length = 0x478,
598 },
599 {
600 .name = "wl.o",
601 .version = "3.50.21.10", /* 01/21/2004 */
602 .md5 = "191029d5e7097ed7db92cbd6e6131f85",
603 .flags = BYTE_ORDER_LITTLE_ENDIAN,
604 .iv_pos = 0x3a5d0,
605 .uc2_pos = 0x3e0b8, .uc2_length = 0x3e00,
606 .uc4_pos = 0x41ebc, .uc4_length = 0x4628,
607 .uc5_pos = 0x464e8, .uc5_length = 0x5548,
608 .pcm4_pos = 0x4ba34, .pcm4_length = 0x478,
609 .pcm5_pos = 0x4beb0, .pcm5_length = 0x478,
610 },
611 {
612 .name = "wl.o",
613 .version = "3.60.7.0 ? (1.3.2.0)", /* 02/04/2004 */
614 .md5 = "7009220d84c445797443aa0221b7d8a4", /* no bcm version found */
615 .flags = BYTE_ORDER_LITTLE_ENDIAN, /* but same fw files are also */
616 .iv_pos = 0x545e0, /* in bcmwl5.sys 3.60.7.0, */
617 .uc2_pos = 0x581d8, .uc2_length = 0x3e08,
618 .uc4_pos = 0x5bfe4, .uc4_length = 0x4e58,
619 .uc5_pos = 0x60e40, .uc5_length = 0x5608,
620 .pcm4_pos = 0x6644c, .pcm4_length = 0x478,
621 .pcm5_pos = 0x668c8, .pcm5_length = 0x478,
622 },
623 {
624 .name = "wl.o",
625 .version = "3.60.13.0", /* 05/05/2004 */
626 .md5 = "275dd4958eb94058d4650f58d534c635",
627 .flags = BYTE_ORDER_LITTLE_ENDIAN,
628 .iv_pos = 0x3b740,
629 .uc2_pos = 0x3f388, .uc2_length = 0x3e30,
630 .uc4_pos = 0x431bc, .uc4_length = 0x4e80,
631 .uc5_pos = 0x48040, .uc5_length = 0x5630,
632 .pcm4_pos = 0x4d674, .pcm4_length = 0x478,
633 .pcm5_pos = 0x4daf0, .pcm5_length = 0x478,
634 },
635 {
636 .name = "wl.o",
637 .version = "3.60.13.0", /* 08/02/2004 */
638 .md5 = "4f20653a0b7c0bb3bd1ee0dd79f77785",
639 .flags = BYTE_ORDER_LITTLE_ENDIAN,
640 .iv_pos = 0x3b730,
641 .uc2_pos = 0x3f378, .uc2_length = 0x3e30,
642 .uc4_pos = 0x431ac, .uc4_length = 0x4e80,
643 .uc5_pos = 0x48030, .uc5_length = 0x5630,
644 .pcm4_pos = 0x4d664, .pcm4_length = 0x478,
645 .pcm5_pos = 0x4dae0, .pcm5_length = 0x478,
646 },
647 {
648 .name = "wl.o",
649 .version = "3.90.7.0", /* 14/10/2004 */
650 .md5 = "f15b59ad4d6f6ad2c7f45193d033aff8",
651 .flags = BYTE_ORDER_LITTLE_ENDIAN,
652 .iv_pos = 0x4d890,
653 .uc2_pos = 0x51500, .uc2_length = 0x3ec0,
654 .uc4_pos = 0x553c4, .uc4_length = 0x4d60,
655 .uc5_pos = 0x5a128, .uc5_length = 0x5750,
656 .pcm4_pos = 0x5f87c, .pcm4_length = 0x520,
657 .pcm5_pos = 0x5fda0, .pcm5_length = 0x520,
658 },
659 {
660 .name = "wl.o",
661 .version = "3.90.37.0", /* 15/02/2005 */
662 .md5 = "984c42947552652d5ab61b78e7d12227",
663 .flags = BYTE_ORDER_LITTLE_ENDIAN,
664 .iv_pos = 0x4cf50,
665 .uc2_pos = 0x50bc0, .uc2_length = 0x3f48,
666 .uc4_pos = 0x54b0c, .uc4_length = 0x4df0,
667 .uc5_pos = 0x59900, .uc5_length = 0x57e0,
668 .pcm4_pos = 0x5f0e4, .pcm4_length = 0x520,
669 .pcm5_pos = 0x5f608, .pcm5_length = 0x520,
670 },
671 {
672 .name = "wl_ap.o",
673 .version = "3.31.16.0", /* 08/06/2003 */
674 .md5 = "463633e7bf0efc6c0f8eac2514a71024",
675 .flags = BYTE_ORDER_LITTLE_ENDIAN |
676 MISSING_INITVAL_08,
677 .iv_pos = 0x32270,
678 .uc2_pos = 0x35350, .uc2_length = 0x3d88,
679 .uc4_pos = 0x390dc, .uc4_length = 0x44a0,
680 .uc5_pos = 0x3d580, .uc5_length = 0x4ec0,
681 .pcm4_pos = 0x42444, .pcm4_length = 0x478,
682 .pcm5_pos = 0x428c0, .pcm5_length = 0x478,
683 },
684 {
685 .name = "wl_ap.o",
686 .version = "3.90.37.0", /* 15/02/2005 */
687 .md5 = "0538296d46a854d2facc9a0db2088180",
688 .flags = BYTE_ORDER_LITTLE_ENDIAN,
689 .iv_pos = 0x3eac0,
690 .uc2_pos = 0x42730, .uc2_length = 0x3f48,
691 .uc4_pos = 0x4667c, .uc4_length = 0x4df0,
692 .uc5_pos = 0x4b470, .uc5_length = 0x57e0,
693 .pcm4_pos = 0x50c54, .pcm4_length = 0x520,
694 .pcm5_pos = 0x51178, .pcm5_length = 0x520,
695 },
696 {
697 .name = "wl_ap.o",
698 .version = "3.90.37.0", /* 15/02/2005 */
699 .md5 = "6c9073531a528dd455b716b5e821e696",
700 .flags = BYTE_ORDER_LITTLE_ENDIAN,
701 .iv_pos = 0x3eac0,
702 .uc2_pos = 0x42730, .uc2_length = 0x3f48,
703 .uc4_pos = 0x4667c, .uc4_length = 0x4df0,
704 .uc5_pos = 0x4b470, .uc5_length = 0x57e0,
705 .pcm4_pos = 0x50c54, .pcm4_length = 0x520,
706 .pcm5_pos = 0x51178, .pcm5_length = 0x520,
707 },
708 {
709 .name = "wl_apsta.o",
710 .version = "3.31.16.0", /* 06/08/2003 */
711 .md5 = "22b90e4cbeee45ad7f78ff536c65712a",
712 .flags = BYTE_ORDER_LITTLE_ENDIAN |
713 MISSING_INITVAL_08,
714 .iv_pos = 0x38020,
715 .uc2_pos = 0x3b100, .uc2_length = 0x3d88,
716 .uc4_pos = 0x3ee8c, .uc4_length = 0x44a0,
717 .uc5_pos = 0x43330, .uc5_length = 0x4ec0,
718 .pcm4_pos = 0x481f4, .pcm4_length = 0x478,
719 .pcm5_pos = 0x48670, .pcm5_length = 0x478,
720 },
721 {
722 .name = "wl_apsta.o",
723 .version = "3.31.16.0", /* 06/08/2003 */
724 .md5 = "dfce35a8b5cb6e53e1ab75342c7e7194",
725 .flags = BYTE_ORDER_LITTLE_ENDIAN |
726 MISSING_INITVAL_08,
727 .iv_pos = 0x38020,
728 .uc2_pos = 0x3b100, .uc2_length = 0x3d88,
729 .uc4_pos = 0x3ee8c, .uc4_length = 0x44a0,
730 .uc5_pos = 0x43330, .uc5_length = 0x4ec0,
731 .pcm4_pos = 0x481f4, .pcm4_length = 0x478,
732 .pcm5_pos = 0x48670, .pcm5_length = 0x478,
733 },
734 {
735 .name = "wl_apsta.o",
736 .version = "3.90.37.0", /* 15/02/2005 */
737 .md5 = "2922e6c48917eacd6c8c094347d2ec4b",
738 .flags = BYTE_ORDER_LITTLE_ENDIAN,
739 .iv_pos = 0x4ebc0,
740 .uc2_pos = 0x52830, .uc2_length = 0x3f48,
741 .uc4_pos = 0x5677c, .uc4_length = 0x4df0,
742 .uc5_pos = 0x5b570, .uc5_length = 0x57e0,
743 .pcm4_pos = 0x60d54, .pcm4_length = 0x520,
744 .pcm5_pos = 0x61278, .pcm5_length = 0x520,
745 },
746 {
747 .name = "wl_apsta.o",
748 .version = "3.90.37.0", /* 15/02/2005 */
749 .md5 = "f9fa565a766e8befeb495a8a8c0c134b",
750 .flags = BYTE_ORDER_LITTLE_ENDIAN,
751 .iv_pos = 0x4ebc0,
752 .uc2_pos = 0x52830, .uc2_length = 0x3f48,
753 .uc4_pos = 0x5677c, .uc4_length = 0x4df0,
754 .uc5_pos = 0x5b570, .uc5_length = 0x57e0,
755 .pcm4_pos = 0x60d54, .pcm4_length = 0x520,
756 .pcm5_pos = 0x61278, .pcm5_length = 0x520,
757 },
758 {
759 .name = "wl_apsta.o",
760 .version = "3.130.20.0", /* 19/05/2005 */
761 .md5 = "e08665c5c5b66beb9c3b2dd54aa80cb3",
762 .flags = BYTE_ORDER_LITTLE_ENDIAN,
763 .iv_pos = 0x56020,
764 .uc2_pos = 0x59ca0, .uc2_length = 0x3fe0,
765 .uc4_pos = 0x5dc84, .uc4_length = 0x4e78,
766 .uc5_pos = 0x62b00, .uc5_length = 0x5700,
767 .uc11_pos = 0x68204, .uc11_length = 0x54a8,
768 .pcm4_pos = 0x6d6b0, .pcm4_length = 0x520,
769 .pcm5_pos = 0x6dbd4, .pcm5_length = 0x520,
770 },
771 {
772 .name = "wl_sta.o",
773 .version = "3.31.16.0", /* 08/06/2003 */
774 .md5 = "c3e663cb78b2fc299088de69fc11a9a9",
775 .flags = BYTE_ORDER_LITTLE_ENDIAN |
776 MISSING_INITVAL_08,
777 .iv_pos = 0x317b0,
778 .uc2_pos = 0x34890, .uc2_length = 0x3d88,
779 .uc4_pos = 0x3861c, .uc4_length = 0x44a0,
780 .uc5_pos = 0x3cac0, .uc5_length = 0x4ec0,
781 .pcm4_pos = 0x41984, .pcm4_length = 0x478,
782 .pcm5_pos = 0x41e00, .pcm5_length = 0x478,
783 },
784 {
785 .name = "wl_sta.o",
786 .version = "3.90.37.0", /* 15/02/2005 */
787 .md5 = "4631d4d4c3ab943462e1ea24f4dba7bd",
788 .flags = BYTE_ORDER_LITTLE_ENDIAN,
789 .iv_pos = 0x47040,
790 .uc2_pos = 0x4acb0, .uc2_length = 0x3f48,
791 .uc4_pos = 0x4ebfc, .uc4_length = 0x4df0,
792 .uc5_pos = 0x539f0, .uc5_length = 0x57e0,
793 .pcm4_pos = 0x591d4, .pcm4_length = 0x520,
794 .pcm5_pos = 0x596f8, .pcm5_length = 0x520,
795 },
796 {
797 .name = "wl_sta.o",
798 .version = "3.90.37.0", /* 15/02/2005 */
799 .md5 = "bf824b38b3993e0a8b5a9bf717c428ed",
800 .flags = BYTE_ORDER_LITTLE_ENDIAN,
801 .iv_pos = 0x47040,
802 .uc2_pos = 0x4acb0, .uc2_length = 0x3f48,
803 .uc4_pos = 0x4ebfc, .uc4_length = 0x4df0,
804 .uc5_pos = 0x539f0, .uc5_length = 0x57e0,
805 .pcm4_pos = 0x591d4, .pcm4_length = 0x520,
806 .pcm5_pos = 0x596f8, .pcm5_length = 0x520,
807 },
808 };
809
810 #define FILES (sizeof(files) / sizeof(files[0]))