diff --git a/b43-fwcutter.changes b/b43-fwcutter.changes index 3f19226..5ee41f9 100644 --- a/b43-fwcutter.changes +++ b/b43-fwcutter.changes @@ -1,3 +1,15 @@ +------------------------------------------------------------------- +Sun Aug 21 14:38:00 CST 2011 - Larry.Finger@lwfinger.net + +- Remove 2 files that require 300+ MB downloads +- Add 5 new files with newest firmware (508.X, 644.1001, and 666.2) + * 802.11 cores through rev 22 are supported +- the install_bcm43xx_firmware script now unloads and + reloads the driver so that it will work immediately +- Removed firmware-IDs from fwcutter - they are not maintained in kernel +- Updated Email address for Michael Buesch +- Updated to Revision 15 + ------------------------------------------------------------------- Tue Jan 12 14:38:00 CST 2010 - Larry.Finger@lwfinger.net diff --git a/b43-fwcutter.diff b/b43-fwcutter.diff index 931d541..24ed956 100644 --- a/b43-fwcutter.diff +++ b/b43-fwcutter.diff @@ -1,63 +1,66 @@ -diff --git fwcutter_list.h fwcutter_list.h -index c48bc6d..65c8671 100644 ---- fwcutter_list.h +Index: fwcutter_list.h +=================================================================== +--- fwcutter_list.h.orig +++ fwcutter_list.h -@@ -238,7 +238,106 @@ static struct extract _2dd738b8feb8b3559fd9d8fbaf3bfffc[] = +@@ -181,60 +181,593 @@ static struct extract _cb8d70972b885b1f8 EXTRACT_LIST_END }; --/* -+static struct extract _1a258b2d93efa641c32ddf3c3a962028[] = -+{ -+ /* { .name = "ucode4", .offset = 0xAFE08, .type = EXT_UCODE_1, .length = 0x4EA0 }, */ -+ /* { .name = "pcm4", .offset = 0xE8FE0, .type = EXT_PCM, .length = 0x520 }, */ -+ /* { .name = "b0g0initvals4", .offset = 0xA2878, .type = EXT_IV, .length = 0xE80 }, */ -+ /* { .name = "a0g0bsinitvals4", .offset = 0xA45C0, .type = EXT_IV, .length = 0x30 }, */ -+ /* { .name = "b0g0bsinitvals4", .offset = 0xA3700, .type = EXT_IV, .length = 0x30 }, */ -+ /* { .name = "a0g0initvals4", .offset = 0xA3738, .type = EXT_IV, .length = 0xE80 }, */ -+ { .name = "ucode5", .offset = 0xB4CAC, .type = EXT_UCODE_2, .length = 0x56F0 }, -+ { .name = "pcm5", .offset = 0xE9504, .type = EXT_PCM, .length = 0x520 }, -+ { .name = "a0g0bsinitvals5", .offset = 0xA6578, .type = EXT_IV, .length = 0x118 }, -+ { .name = "b0g0bsinitvals5", .offset = 0xA5018, .type = EXT_IV, .length = 0x118 }, -+ { .name = "a0g0initvals5", .offset = 0xA5138, .type = EXT_IV, .length = 0xA18 }, -+ { .name = "a0g1initvals5", .offset = 0xA5B58, .type = EXT_IV, .length = 0xA18 }, -+ { .name = "b0g0initvals5", .offset = 0xA45F8, .type = EXT_IV, .length = 0xA18 }, -+ { .name = "a0g1bsinitvals5", .offset = 0xA6698, .type = EXT_IV, .length = 0x118 }, -+ { .name = "ucode9", .offset = 0xBA3A0, .type = EXT_UCODE_2, .length = 0x6248 }, -+ { .name = "a0g0bsinitvals9", .offset = 0xA89C0, .type = EXT_IV, .length = 0x118 }, -+ { .name = "b0g0initvals9", .offset = 0xA67B8, .type = EXT_IV, .length = 0xAF0 }, -+ { .name = "a0g1bsinitvals9", .offset = 0xA8AE0, .type = EXT_IV, .length = 0x118 }, -+ { .name = "b0g0bsinitvals9", .offset = 0xA72B0, .type = EXT_IV, .length = 0x118 }, -+ { .name = "a0g0initvals9", .offset = 0xA73D0, .type = EXT_IV, .length = 0xAF0 }, -+ { .name = "a0g1initvals9", .offset = 0xA7EC8, .type = EXT_IV, .length = 0xAF0 }, -+ { .name = "ucode11", .offset = 0xC05EC, .type = EXT_UCODE_2, .length = 0x8000 }, -+ { .name = "n0initvals11", .offset = 0xA8C00, .type = EXT_IV, .length = 0xBC8 }, -+ { .name = "n0bsinitvals11", .offset = 0xA97D0, .type = EXT_IV, .length = 0x118 }, -+ { .name = "n0absinitvals11", .offset = 0xA98F0, .type = EXT_IV, .length = 0x118 }, -+ { .name = "ucode13", .offset = 0xC85F0, .type = EXT_UCODE_2, .length = 0x7AC8 }, -+ { .name = "b0g0bsinitvals13", .offset = 0xABA70, .type = EXT_IV, .length = 0x118 }, -+ { .name = "b0g0initvals13", .offset = 0xAAED0, .type = EXT_IV, .length = 0xB98 }, -+ { .name = "a0g1bsinitvals13", .offset = 0xAC730, .type = EXT_IV, .length = 0x118 }, -+ { .name = "a0g1initvals13", .offset = 0xABB90, .type = EXT_IV, .length = 0xB98 }, -+ { .name = "lp0bsinitvals13", .offset = 0xAADB0, .type = EXT_IV, .length = 0x118 }, -+ { .name = "lp0initvals13", .offset = 0xA9A10, .type = EXT_IV, .length = 0x1398 }, -+ { .name = "ucode14", .offset = 0xD00BC, .type = EXT_UCODE_2, .length = 0x7910 }, -+ { .name = "lp0initvals14", .offset = 0xAC850, .type = EXT_IV, .length = 0xB80 }, -+ { .name = "lp0bsinitvals14", .offset = 0xAD3D8, .type = EXT_IV, .length = 0x118 }, -+ { .name = "ucode15", .offset = 0xD79D0, .type = EXT_UCODE_3, .length = 0x8768 }, -+ { .name = "lp0initvals15", .offset = 0xAD4F8, .type = EXT_IV, .length = 0xC68 }, -+ { .name = "lp0bsinitvals15", .offset = 0xAE168, .type = EXT_IV, .length = 0x118 }, -+ { .name = "ucode16", .offset = 0xE013C, .type = EXT_UCODE_3, .length = 0x8EA0 }, -+ { .name = "lp0bsinitvals16", .offset = 0xAFCE8, .type = EXT_IV, .length = 0x118 }, -+ { .name = "n0bsinitvals16", .offset = 0xAEF20, .type = EXT_IV, .length = 0x118 }, -+ { .name = "sslpn0initvals16", .offset = 0xAF040, .type = EXT_IV, .length = 0x0 }, -+ { .name = "n0initvals16", .offset = 0xAE288, .type = EXT_IV, .length = 0xC90 }, -+ { .name = "lp0initvals16", .offset = 0xAF050, .type = EXT_IV, .length = 0xC90 }, -+ { .name = "sslpn0bsinitvals16", .offset = 0xAF048, .type = EXT_IV, .length = 0x0 }, -+ EXTRACT_LIST_END -+}; +-static struct extract _2dd738b8feb8b3559fd9d8fbaf3bfffc[] = +static struct extract _bb8537e3204a1ea5903fe3e66b5e2763[] = -+{ + { +- { .name = "lp0initvals14", .offset = 0x982B0, .type = EXT_IV, .length = 0xB80 }, +- { .name = "lp0bsinitvals14", .offset = 0x98E38, .type = EXT_IV, .length = 0x118 }, +- { .name = "b0g0initvals9", .offset = 0x92218, .type = EXT_IV, .length = 0xAF0 }, +- { .name = "a0g1bsinitvals9", .offset = 0x94540, .type = EXT_IV, .length = 0x118 }, +- { .name = "b0g0bsinitvals13", .offset = 0x974D0, .type = EXT_IV, .length = 0x118 }, +- { .name = "b0g0bsinitvals5", .offset = 0x90A78, .type = EXT_IV, .length = 0x118 }, +- { .name = "ucode4", .offset = 0x9B868, .type = EXT_UCODE_1, .length = 0x4EA0 }, +- { .name = "b0g0initvals4", .offset = 0x8E2D8, .type = EXT_IV, .length = 0xE80 }, +- { .name = "b0g0initvals13", .offset = 0x96930, .type = EXT_IV, .length = 0xB98 }, +- { .name = "ucode14", .offset = 0xBBB1C, .type = EXT_UCODE_2, .length = 0x7910 }, +- { .name = "a0g0initvals5", .offset = 0x90B98, .type = EXT_IV, .length = 0xA18 }, +- { .name = "lp0bsinitvals16", .offset = 0x9B748, .type = EXT_IV, .length = 0x118 }, +- { .name = "pcm4", .offset = 0xD4A40, .type = EXT_PCM, .length = 0x520 }, +- { .name = "a0g1bsinitvals5", .offset = 0x920F8, .type = EXT_IV, .length = 0x118 }, +- { .name = "n0bsinitvals11", .offset = 0x95230, .type = EXT_IV, .length = 0x118 }, +- { .name = "n0absinitvals11", .offset = 0x95350, .type = EXT_IV, .length = 0x118 }, +- /* ERROR: Could not guess data type for: ucode_bomminor */ +- { .name = "a0g1bsinitvals13", .offset = 0x98190, .type = EXT_IV, .length = 0x118 }, +- { .name = "pcm5", .offset = 0xD4F64, .type = EXT_PCM, .length = 0x520 }, +- /* ERROR: Could not guess data type for: ucode_2w_bomminor */ +- { .name = "ucode9", .offset = 0xA5E00, .type = EXT_UCODE_2, .length = 0x6248 }, +- { .name = "a0g0bsinitvals9", .offset = 0x94420, .type = EXT_IV, .length = 0x118 }, +- { .name = "a0g0bsinitvals4", .offset = 0x90020, .type = EXT_IV, .length = 0x30 }, +- { .name = "a0g1initvals5", .offset = 0x915B8, .type = EXT_IV, .length = 0xA18 }, +- { .name = "n0bsinitvals16", .offset = 0x9A980, .type = EXT_IV, .length = 0x118 }, +- { .name = "ucode16", .offset = 0xCBB9C, .type = EXT_UCODE_3, .length = 0x8EA0 }, +- { .name = "b0g0bsinitvals4", .offset = 0x8F160, .type = EXT_IV, .length = 0x30 }, +- { .name = "lp0initvals15", .offset = 0x98F58, .type = EXT_IV, .length = 0xC68 }, +- { .name = "b0g0initvals5", .offset = 0x90058, .type = EXT_IV, .length = 0xA18 }, +- { .name = "a0g0initvals4", .offset = 0x8F198, .type = EXT_IV, .length = 0xE80 }, +- { .name = "sslpn0initvals16", .offset = 0x9AAA0, .type = EXT_IV, .length = 0x0 }, +- { .name = "a0g1initvals13", .offset = 0x975F0, .type = EXT_IV, .length = 0xB98 }, +- /* ERROR: Could not guess data type for: ucode_2w11 */ +- /* ERROR: Could not guess data type for: ucode_bommajor */ +- { .name = "a0g1initvals9", .offset = 0x93928, .type = EXT_IV, .length = 0xAF0 }, +- { .name = "ucode5", .offset = 0xA070C, .type = EXT_UCODE_2, .length = 0x56F0 }, +- { .name = "lp0bsinitvals13", .offset = 0x96810, .type = EXT_IV, .length = 0x118 }, +- { .name = "n0initvals16", .offset = 0x99CE8, .type = EXT_IV, .length = 0xC90 }, +- /* ERROR: Could not guess data type for: ucode_2w_bommajor */ +- { .name = "b0g0bsinitvals9", .offset = 0x92D10, .type = EXT_IV, .length = 0x118 }, +- { .name = "ucode11", .offset = 0xAC04C, .type = EXT_UCODE_2, .length = 0x8000 }, +- { .name = "lp0initvals16", .offset = 0x9AAB0, .type = EXT_IV, .length = 0xC90 }, +- /* ERROR: Could not guess data type for: ucode_2w15 */ +- { .name = "a0g0initvals9", .offset = 0x92E30, .type = EXT_IV, .length = 0xAF0 }, +- { .name = "lp0initvals13", .offset = 0x95470, .type = EXT_IV, .length = 0x1398 }, +- { .name = "a0g0bsinitvals5", .offset = 0x91FD8, .type = EXT_IV, .length = 0x118 }, +- { .name = "ucode13", .offset = 0xB4050, .type = EXT_UCODE_2, .length = 0x7AC8 }, +- /* ERROR: Could not guess data type for: ucode_2w13 */ +- { .name = "ucode15", .offset = 0xC3430, .type = EXT_UCODE_3, .length = 0x8768 }, +- { .name = "lp0bsinitvals15", .offset = 0x99BC8, .type = EXT_IV, .length = 0x118 }, +- { .name = "n0initvals11", .offset = 0x94660, .type = EXT_IV, .length = 0xBC8 }, +- { .name = "sslpn0bsinitvals16", .offset = 0x9AAA8, .type = EXT_IV, .length = 0x0 }, + /* ucode major version at offset 0xa8b70 */ + /* ucode minor version at offset 0xa8b74 */ + /* { .name = "ucode4", .offset = 0xB6108, .type = EXT_UCODE_1, .length = 0x4EA0 }, */ @@ -106,41 +109,762 @@ index c48bc6d..65c8671 100644 + { .name = "sslpn0bsinitvals16", .offset = 0xB5348, .type = EXT_IV, .length = 0x0 }, + { .name = "lp0bsinitvals16", .offset = 0xB5FE8, .type = EXT_IV, .length = 0x118 }, + EXTRACT_LIST_END -+};/* - * Links change, so let's not put them into the README. - * I still put them here so we know where the file was obtained. - */ -@@ -299,6 +398,24 @@ static const struct file files[] = ++}; ++ ++static struct extract _490d4e149ecc45eb1a91f06aa75be071[] = ++{ ++ { .name = "ucode19", .offset = 0xFB3BC, .type = EXT_UCODE_3, .length = 0x9998 }, ++ { .name = "lp0initvals14", .offset = 0x999C8, .type = EXT_IV, .length = 0xB20 }, ++ { .name = "ucode16_lp", .offset = 0xCE5F4, .type = EXT_UCODE_3, .length = 0x9D90 }, ++ { .name = "ucode16_sslpn", .offset = 0xD8388, .type = EXT_UCODE_3, .length = 0x8936 }, ++ { .name = "lp0bsinitvals14", .offset = 0x9A4F0, .type = EXT_IV, .length = 0x118 }, ++ { .name = "b0g0initvals9", .offset = 0x939F8, .type = EXT_IV, .length = 0xAE0 }, ++ { .name = "sslpn2bsinitvals17", .offset = 0x9ECE8, .type = EXT_IV, .length = 0x118 }, ++ { .name = "a0g1bsinitvals9", .offset = 0x95CF0, .type = EXT_IV, .length = 0x118 }, ++ { .name = "b0g0bsinitvals13", .offset = 0x98C00, .type = EXT_IV, .length = 0x118 }, ++ { .name = "ucode16_sslpn_nobt", .offset = 0xE0CC4, .type = EXT_UCODE_3, .length = 0x7413 }, ++ { .name = "b0g0bsinitvals5", .offset = 0x92278, .type = EXT_IV, .length = 0x118 }, ++ { .name = "sslpn2initvals17", .offset = 0x9E020, .type = EXT_IV, .length = 0xCC0 }, ++/* { .name = "ucode4", .offset = 0xA0A68, .type = EXT_UCODE_1, .length = 0x4E80 }, */ ++/* { .name = "b0g0initvals4", .offset = 0x8FB08, .type = EXT_IV, .length = 0xE70 }, */ ++ { .name = "b0g0initvals13", .offset = 0x98078, .type = EXT_IV, .length = 0xB80 }, ++ { .name = "ucode17", .offset = 0xF1B50, .type = EXT_UCODE_3, .length = 0x9868 }, ++ { .name = "sslpn1bsinitvals20", .offset = 0xA0948, .type = EXT_IV, .length = 0x118 }, ++ { .name = "ucode14", .offset = 0xBF864, .type = EXT_UCODE_2, .length = 0x64A0 }, ++ { .name = "a0g0initvals5", .offset = 0x92398, .type = EXT_IV, .length = 0xA08 }, ++ { .name = "lp0bsinitvals16", .offset = 0x9DF00, .type = EXT_IV, .length = 0x118 }, ++/* { .name = "pcm4", .offset = 0x10E9EC, .type = EXT_PCM, .length = 0x520 }, */ ++ { .name = "a0g1bsinitvals5", .offset = 0x938D8, .type = EXT_IV, .length = 0x118 }, ++ { .name = "n0bsinitvals11", .offset = 0x96990, .type = EXT_IV, .length = 0x118 }, ++ { .name = "n0absinitvals11", .offset = 0x96AB0, .type = EXT_IV, .length = 0x118 }, ++ /* ucode minor version at offset 0x8fb04 */ ++ { .name = "a0g1bsinitvals13", .offset = 0x998A8, .type = EXT_IV, .length = 0x118 }, ++ { .name = "pcm5", .offset = 0x10EF10, .type = EXT_PCM, .length = 0x520 }, ++ { .name = "ucode9", .offset = 0xAB000, .type = EXT_UCODE_2, .length = 0x6268 }, ++ { .name = "a0g0bsinitvals9", .offset = 0x95BD0, .type = EXT_IV, .length = 0x118 }, ++/* { .name = "a0g0bsinitvals4", .offset = 0x91830, .type = EXT_IV, .length = 0x30 }, */ ++ { .name = "ucode20", .offset = 0x104D58, .type = EXT_UCODE_3, .length = 0x9C90 }, ++ { .name = "a0g1initvals5", .offset = 0x92DA8, .type = EXT_IV, .length = 0xA08 }, ++ { .name = "n0bsinitvals16", .offset = 0x9C1D0, .type = EXT_IV, .length = 0x118 }, ++/* { .name = "b0g0bsinitvals4", .offset = 0x90980, .type = EXT_IV, .length = 0x30 }, */ ++ { .name = "lp0initvals15", .offset = 0x9A610, .type = EXT_IV, .length = 0xD20 }, ++ { .name = "b0g0initvals5", .offset = 0x91868, .type = EXT_IV, .length = 0xA08 }, ++/* { .name = "a0g0initvals4", .offset = 0x909B8, .type = EXT_IV, .length = 0xE70 }, */ ++ { .name = "sslpn0initvals16", .offset = 0x9C2F0, .type = EXT_IV, .length = 0xD70 }, ++ { .name = "a0g1initvals13", .offset = 0x98D20, .type = EXT_IV, .length = 0xB80 }, ++ { .name = "sslpn2initvals19", .offset = 0x9EE08, .type = EXT_IV, .length = 0xCB0 }, ++ /* ucode major version at offset 0x8fb00 */ ++ { .name = "a0g1initvals9", .offset = 0x950E8, .type = EXT_IV, .length = 0xAE0 }, ++ { .name = "ucode5", .offset = 0xA58EC, .type = EXT_UCODE_2, .length = 0x5710 }, ++ { .name = "lp0bsinitvals13", .offset = 0x97F58, .type = EXT_IV, .length = 0x118 }, ++ { .name = "n0initvals16", .offset = 0x9B458, .type = EXT_IV, .length = 0xD70 }, ++ { .name = "b0g0bsinitvals9", .offset = 0x944E0, .type = EXT_IV, .length = 0x118 }, ++ { .name = "ucode11", .offset = 0xB126C, .type = EXT_UCODE_2, .length = 0x74A8 }, ++ { .name = "lp0initvals16", .offset = 0x9D188, .type = EXT_IV, .length = 0xD70 }, ++ { .name = "ucode16_mimo", .offset = 0xE80DC, .type = EXT_UCODE_3, .length = 0x9A70 }, ++ { .name = "a0g0initvals9", .offset = 0x94600, .type = EXT_IV, .length = 0xAE0 }, ++ { .name = "lp0initvals13", .offset = 0x96BD0, .type = EXT_IV, .length = 0x1380 }, ++ { .name = "a0g0bsinitvals5", .offset = 0x937B8, .type = EXT_IV, .length = 0x118 }, ++ { .name = "ucode13", .offset = 0xB8718, .type = EXT_UCODE_2, .length = 0x7148 }, ++ { .name = "sslpn2bsinitvals19", .offset = 0x9FAC0, .type = EXT_IV, .length = 0x118 }, ++ { .name = "ucode15", .offset = 0xC5D08, .type = EXT_UCODE_3, .length = 0x88E8 }, ++ { .name = "lp0bsinitvals15", .offset = 0x9B338, .type = EXT_IV, .length = 0x118 }, ++ { .name = "n0initvals11", .offset = 0x95E10, .type = EXT_IV, .length = 0xB78 }, ++ { .name = "sslpn0bsinitvals16", .offset = 0x9D068, .type = EXT_IV, .length = 0x118 }, ++ { .name = "sslpn1initvals20", .offset = 0x9FBE0, .type = EXT_IV, .length = 0xD60 }, ++ EXTRACT_LIST_END ++}; ++ ++static struct extract _f06c8aa30ea549ce21872d10ee9a7d48[] = ++{ ++ { .name = "ucode19", .offset = 0x1364E0, .type = EXT_UCODE_3, .length = 0x9B30 }, ++ { .name = "lp0initvals14", .offset = 0xD3338, .type = EXT_IV, .length = 0xB20 }, ++ { .name = "ucode16_lp", .offset = 0x108E84, .type = EXT_UCODE_3, .length = 0x9EB0 }, ++ { .name = "sslpn3bsinitvals21", .offset = 0xDB0B0, .type = EXT_IV, .length = 0x118 }, ++ { .name = "ucode16_sslpn", .offset = 0x112D38, .type = EXT_UCODE_3, .length = 0x8BE4 }, ++ { .name = "lp0bsinitvals14", .offset = 0xD3E60, .type = EXT_IV, .length = 0x118 }, ++ { .name = "b0g0initvals9", .offset = 0xCD368, .type = EXT_IV, .length = 0xAE0 }, ++ { .name = "sslpn2bsinitvals17", .offset = 0xD8640, .type = EXT_IV, .length = 0x118 }, ++ { .name = "a0g1bsinitvals9", .offset = 0xCF660, .type = EXT_IV, .length = 0x118 }, ++ { .name = "b0g0bsinitvals13", .offset = 0xD2570, .type = EXT_IV, .length = 0x118 }, ++ { .name = "ucode16_sslpn_nobt", .offset = 0x11B920, .type = EXT_UCODE_3, .length = 0x76C1 }, ++ { .name = "b0g0bsinitvals5", .offset = 0xCBBE8, .type = EXT_IV, .length = 0x118 }, ++ { .name = "sslpn2initvals17", .offset = 0xD7980, .type = EXT_IV, .length = 0xCB8 }, ++/* { .name = "ucode4", .offset = 0xDB1D0, .type = EXT_UCODE_1, .length = 0x4EB0 }, */ ++/* { .name = "b0g0initvals4", .offset = 0xC9478, .type = EXT_IV, .length = 0xE70 }, */ ++ { .name = "b0g0initvals13", .offset = 0xD19E8, .type = EXT_IV, .length = 0xB80 }, ++ { .name = "ucode17", .offset = 0x12CADC, .type = EXT_UCODE_3, .length = 0x9A00 }, ++ { .name = "sslpn1bsinitvals20", .offset = 0xDA290, .type = EXT_IV, .length = 0x118 }, ++ { .name = "ucode14", .offset = 0xFA09C, .type = EXT_UCODE_2, .length = 0x6498 }, ++ { .name = "a0g0initvals5", .offset = 0xCBD08, .type = EXT_IV, .length = 0xA08 }, ++ { .name = "lp0bsinitvals16", .offset = 0xD7860, .type = EXT_IV, .length = 0x118 }, ++/* { .name = "pcm4", .offset = 0x151470, .type = EXT_PCM, .length = 0x520 }, */ ++ { .name = "a0g1bsinitvals5", .offset = 0xCD248, .type = EXT_IV, .length = 0x118 }, ++ { .name = "n0bsinitvals11", .offset = 0xD0300, .type = EXT_IV, .length = 0x118 }, ++ { .name = "n0absinitvals11", .offset = 0xD0420, .type = EXT_IV, .length = 0x118 }, ++ { .name = "ucode21_sslpn_nobt", .offset = 0x149FA0, .type = EXT_UCODE_3, .length = 0x74C9 }, ++ /* ucode minor version at offset 0xc9474 */ ++ { .name = "sslpn3initvals21", .offset = 0xDA3B0, .type = EXT_IV, .length = 0xCF8 }, ++ { .name = "a0g1bsinitvals13", .offset = 0xD3218, .type = EXT_IV, .length = 0x118 }, ++ { .name = "pcm5", .offset = 0x151994, .type = EXT_PCM, .length = 0x520 }, ++ /* ucode minor version at offset 0x151ec4 */ ++ { .name = "ucode9", .offset = 0xE57C8, .type = EXT_UCODE_2, .length = 0x6290 }, ++ { .name = "a0g0bsinitvals9", .offset = 0xCF540, .type = EXT_IV, .length = 0x118 }, ++/* { .name = "a0g0bsinitvals4", .offset = 0xCB1A0, .type = EXT_IV, .length = 0x30 }, */ ++ { .name = "ucode20", .offset = 0x140014, .type = EXT_UCODE_3, .length = 0x9F88 }, ++ { .name = "a0g1initvals5", .offset = 0xCC718, .type = EXT_IV, .length = 0xA08 }, ++ { .name = "n0bsinitvals16", .offset = 0xD5B40, .type = EXT_IV, .length = 0x118 }, ++/* { .name = "b0g0bsinitvals4", .offset = 0xCA2F0, .type = EXT_IV, .length = 0x30 }, */ ++ { .name = "lp0initvals15", .offset = 0xD3F80, .type = EXT_IV, .length = 0xD28 }, ++ { .name = "b0g0initvals5", .offset = 0xCB1D8, .type = EXT_IV, .length = 0xA08 }, ++/* { .name = "a0g0initvals4", .offset = 0xCA328, .type = EXT_IV, .length = 0xE70 }, */ ++ { .name = "sslpn0initvals16", .offset = 0xD5C60, .type = EXT_IV, .length = 0xD68 }, ++ { .name = "a0g1initvals13", .offset = 0xD2690, .type = EXT_IV, .length = 0xB80 }, ++ { .name = "sslpn2initvals19", .offset = 0xD8760, .type = EXT_IV, .length = 0xCA8 }, ++ /* ucode major version at offset 0xc9470 */ ++ { .name = "a0g1initvals9", .offset = 0xCEA58, .type = EXT_IV, .length = 0xAE0 }, ++ { .name = "ucode5", .offset = 0xE0084, .type = EXT_UCODE_2, .length = 0x5740 }, ++ { .name = "lp0bsinitvals13", .offset = 0xD18C8, .type = EXT_IV, .length = 0x118 }, ++ { .name = "n0initvals16", .offset = 0xD4DD0, .type = EXT_IV, .length = 0xD68 }, ++ /* ucode major version at offset 0x151ec0 */ ++ { .name = "b0g0bsinitvals9", .offset = 0xCDE50, .type = EXT_IV, .length = 0x118 }, ++ { .name = "ucode11", .offset = 0xEBA5C, .type = EXT_UCODE_2, .length = 0x74F8 }, ++ { .name = "lp0initvals16", .offset = 0xD6AF0, .type = EXT_IV, .length = 0xD68 }, ++ { .name = "ucode16_mimo", .offset = 0x122FE8, .type = EXT_UCODE_3, .length = 0x9AF0 }, ++ { .name = "a0g0initvals9", .offset = 0xCDF70, .type = EXT_IV, .length = 0xAE0 }, ++ { .name = "lp0initvals13", .offset = 0xD0540, .type = EXT_IV, .length = 0x1380 }, ++ { .name = "a0g0bsinitvals5", .offset = 0xCD128, .type = EXT_IV, .length = 0x118 }, ++ { .name = "ucode13", .offset = 0xF2F58, .type = EXT_UCODE_2, .length = 0x7140 }, ++ { .name = "sslpn2bsinitvals19", .offset = 0xD9410, .type = EXT_IV, .length = 0x118 }, ++ { .name = "ucode15", .offset = 0x100538, .type = EXT_UCODE_3, .length = 0x8948 }, ++ { .name = "lp0bsinitvals15", .offset = 0xD4CB0, .type = EXT_IV, .length = 0x118 }, ++ { .name = "n0initvals11", .offset = 0xCF780, .type = EXT_IV, .length = 0xB78 }, ++ { .name = "sslpn0bsinitvals16", .offset = 0xD69D0, .type = EXT_IV, .length = 0x118 }, ++ { .name = "sslpn1initvals20", .offset = 0xD9530, .type = EXT_IV, .length = 0xD58 }, ++ EXTRACT_LIST_END ++}; ++ ++static struct extract _e413c0017b99195f3231201c53f314d1[] = ++{ ++ { .name = "ucode19", .offset = 0x129000, .type = EXT_UCODE_3, .length = 0x99A0 }, ++ { .name = "lp0initvals14", .offset = 0xC75D8, .type = EXT_IV, .length = 0xB20 }, ++ { .name = "ucode16_lp", .offset = 0xFC23C, .type = EXT_UCODE_3, .length = 0x9DC0 }, ++ { .name = "ucode16_sslpn", .offset = 0x106000, .type = EXT_UCODE_3, .length = 0x8960 }, ++ { .name = "lp0bsinitvals14", .offset = 0xC8100, .type = EXT_IV, .length = 0x118 }, ++ { .name = "b0g0initvals9", .offset = 0xC1608, .type = EXT_IV, .length = 0xAE0 }, ++ { .name = "sslpn2bsinitvals17", .offset = 0xCC8F8, .type = EXT_IV, .length = 0x118 }, ++ { .name = "a0g1bsinitvals9", .offset = 0xC3900, .type = EXT_IV, .length = 0x118 }, ++ { .name = "b0g0bsinitvals13", .offset = 0xC6810, .type = EXT_IV, .length = 0x118 }, ++ { .name = "ucode16_sslpn_nobt", .offset = 0x10E964, .type = EXT_UCODE_3, .length = 0x743D }, ++ { .name = "b0g0bsinitvals5", .offset = 0xBFE88, .type = EXT_IV, .length = 0x118 }, ++ { .name = "sslpn2initvals17", .offset = 0xCBC30, .type = EXT_IV, .length = 0xCC0 }, ++/* { .name = "ucode4", .offset = 0xCE678, .type = EXT_UCODE_1, .length = 0x4E80 }, */ ++/* { .name = "b0g0initvals4", .offset = 0xBD718, .type = EXT_IV, .length = 0xE70 }, */ ++ { .name = "b0g0initvals13", .offset = 0xC5C88, .type = EXT_IV, .length = 0xB80 }, ++ { .name = "ucode17", .offset = 0x11F78C, .type = EXT_UCODE_3, .length = 0x9870 }, ++ { .name = "sslpn1bsinitvals20", .offset = 0xCE558, .type = EXT_IV, .length = 0x118 }, ++ { .name = "ucode14", .offset = 0xED49C, .type = EXT_UCODE_2, .length = 0x64A8 }, ++ { .name = "a0g0initvals5", .offset = 0xBFFA8, .type = EXT_IV, .length = 0xA08 }, ++ { .name = "lp0bsinitvals16", .offset = 0xCBB10, .type = EXT_IV, .length = 0x118 }, ++/* { .name = "pcm4", .offset = 0x13C640, .type = EXT_PCM, .length = 0x520 }, */ ++ { .name = "a0g1bsinitvals5", .offset = 0xC14E8, .type = EXT_IV, .length = 0x118 }, ++ { .name = "n0bsinitvals11", .offset = 0xC45A0, .type = EXT_IV, .length = 0x118 }, ++ { .name = "n0absinitvals11", .offset = 0xC46C0, .type = EXT_IV, .length = 0x118 }, ++ /* ucode minor version at offset 0xbd714 */ ++ { .name = "a0g1bsinitvals13", .offset = 0xC74B8, .type = EXT_IV, .length = 0x118 }, ++ { .name = "pcm5", .offset = 0x13CB64, .type = EXT_PCM, .length = 0x520 }, ++ /* ucode minor version at offset 0x13d094 */ ++ { .name = "ucode9", .offset = 0xD8C10, .type = EXT_UCODE_2, .length = 0x6268 }, ++ { .name = "a0g0bsinitvals9", .offset = 0xC37E0, .type = EXT_IV, .length = 0x118 }, ++/* { .name = "a0g0bsinitvals4", .offset = 0xBF440, .type = EXT_IV, .length = 0x30 }, */ ++ { .name = "ucode20", .offset = 0x1329A4, .type = EXT_UCODE_3, .length = 0x9C98 }, ++ { .name = "a0g1initvals5", .offset = 0xC09B8, .type = EXT_IV, .length = 0xA08 }, ++ { .name = "n0bsinitvals16", .offset = 0xC9DE0, .type = EXT_IV, .length = 0x118 }, ++/* { .name = "b0g0bsinitvals4", .offset = 0xBE590, .type = EXT_IV, .length = 0x30 }, */ ++ { .name = "lp0initvals15", .offset = 0xC8220, .type = EXT_IV, .length = 0xD20 }, ++ { .name = "b0g0initvals5", .offset = 0xBF478, .type = EXT_IV, .length = 0xA08 }, ++/* { .name = "a0g0initvals4", .offset = 0xBE5C8, .type = EXT_IV, .length = 0xE70 }, */ ++ { .name = "sslpn0initvals16", .offset = 0xC9F00, .type = EXT_IV, .length = 0xD70 }, ++ { .name = "a0g1initvals13", .offset = 0xC6930, .type = EXT_IV, .length = 0xB80 }, ++ { .name = "sslpn2initvals19", .offset = 0xCCA18, .type = EXT_IV, .length = 0xCB0 }, ++ /* ucode major version at offset 0xbd710 */ ++ { .name = "a0g1initvals9", .offset = 0xC2CF8, .type = EXT_IV, .length = 0xAE0 }, ++ { .name = "ucode5", .offset = 0xD34FC, .type = EXT_UCODE_2, .length = 0x5710 }, ++ { .name = "lp0bsinitvals13", .offset = 0xC5B68, .type = EXT_IV, .length = 0x118 }, ++ { .name = "n0initvals16", .offset = 0xC9068, .type = EXT_IV, .length = 0xD70 }, ++ /* ucode major version at offset 0x13d090 */ ++ { .name = "b0g0bsinitvals9", .offset = 0xC20F0, .type = EXT_IV, .length = 0x118 }, ++ { .name = "ucode11", .offset = 0xDEE7C, .type = EXT_UCODE_2, .length = 0x74C8 }, ++ { .name = "lp0initvals16", .offset = 0xCAD98, .type = EXT_IV, .length = 0xD70 }, ++ { .name = "ucode16_mimo", .offset = 0x115DA8, .type = EXT_UCODE_3, .length = 0x99E0 }, ++ { .name = "a0g0initvals9", .offset = 0xC2210, .type = EXT_IV, .length = 0xAE0 }, ++ { .name = "lp0initvals13", .offset = 0xC47E0, .type = EXT_IV, .length = 0x1380 }, ++ { .name = "a0g0bsinitvals5", .offset = 0xC13C8, .type = EXT_IV, .length = 0x118 }, ++ { .name = "ucode13", .offset = 0xE6348, .type = EXT_UCODE_2, .length = 0x7150 }, ++ { .name = "sslpn2bsinitvals19", .offset = 0xCD6D0, .type = EXT_IV, .length = 0x118 }, ++ { .name = "ucode15", .offset = 0xF3948, .type = EXT_UCODE_3, .length = 0x88F0 }, ++ { .name = "lp0bsinitvals15", .offset = 0xC8F48, .type = EXT_IV, .length = 0x118 }, ++ { .name = "n0initvals11", .offset = 0xC3A20, .type = EXT_IV, .length = 0xB78 }, ++ { .name = "sslpn0bsinitvals16", .offset = 0xCAC78, .type = EXT_IV, .length = 0x118 }, ++ { .name = "sslpn1initvals20", .offset = 0xCD7F0, .type = EXT_IV, .length = 0xD60 }, ++ EXTRACT_LIST_END ++}; ++ ++static struct extract _023fafbe4918e384dd531a046dbc03e8[] = ++{ ++ { .name = "ucode19", .offset = 0x123318, .type = EXT_UCODE_3, .length = 0x93E8 }, ++ { .name = "lp0initvals14", .offset = 0xD3710, .type = EXT_IV, .length = 0xB20 }, ++ { .name = "ucode16_lp", .offset = 0x105EC4, .type = EXT_UCODE_3, .length = 0x9E08 }, ++ { .name = "ucode16_sslpn", .offset = 0x10FCD0, .type = EXT_UCODE_3, .length = 0x1 }, ++ { .name = "lp0bsinitvals14", .offset = 0xD4238, .type = EXT_IV, .length = 0x118 }, ++ { .name = "b0g0initvals9", .offset = 0xCD6E8, .type = EXT_IV, .length = 0xAE0 }, ++ { .name = "sslpn2bsinitvals17", .offset = 0xD7038, .type = EXT_IV, .length = 0x0 }, ++ { .name = "a0g1bsinitvals9", .offset = 0xCF9E0, .type = EXT_IV, .length = 0x118 }, ++ { .name = "b0g0bsinitvals13", .offset = 0xD2940, .type = EXT_IV, .length = 0x118 }, ++ { .name = "sslpn4bsinitvals22", .offset = 0xD7068, .type = EXT_IV, .length = 0x0 }, ++ { .name = "ucode16_sslpn_nobt", .offset = 0x10FCD8, .type = EXT_UCODE_3, .length = 0x1 }, ++ { .name = "b0g0bsinitvals5", .offset = 0xCBF68, .type = EXT_IV, .length = 0x118 }, ++ { .name = "sslpn2initvals17", .offset = 0xD7030, .type = EXT_IV, .length = 0x0 }, ++ { .name = "ucode22_sslpn", .offset = 0x136608, .type = EXT_UCODE_3, .length = 0x1 }, ++/* { .name = "ucode4", .offset = 0xD7070, .type = EXT_UCODE_1, .length = 0x4F50 }, */ ++/* { .name = "b0g0initvals4", .offset = 0xC97F8, .type = EXT_IV, .length = 0xE70 }, */ ++ { .name = "b0g0initvals13", .offset = 0xD1DB0, .type = EXT_IV, .length = 0xB88 }, ++ { .name = "ucode17", .offset = 0x119684, .type = EXT_UCODE_3, .length = 0x9C90 }, ++ { .name = "sslpn1bsinitvals20", .offset = 0xD7058, .type = EXT_IV, .length = 0x0 }, ++ { .name = "ucode14", .offset = 0xF6C1C, .type = EXT_UCODE_2, .length = 0x6518 }, ++ { .name = "a0g0initvals5", .offset = 0xCC088, .type = EXT_IV, .length = 0xA08 }, ++ /* ERROR: Could not guess data type for: sampleucode16 */ ++ { .name = "lp0bsinitvals16", .offset = 0xD6F10, .type = EXT_IV, .length = 0x118 }, ++/* { .name = "pcm4", .offset = 0x136610, .type = EXT_PCM, .length = 0x520 }, */ ++ { .name = "a0g1bsinitvals5", .offset = 0xCD5C8, .type = EXT_IV, .length = 0x118 }, ++ { .name = "n0bsinitvals11", .offset = 0xD06C0, .type = EXT_IV, .length = 0x118 }, ++ { .name = "n0absinitvals11", .offset = 0xD07E0, .type = EXT_IV, .length = 0x118 }, ++ /* ucode minor version at offset 0xc97f4 */ ++ { .name = "a0g1bsinitvals13", .offset = 0xD35F0, .type = EXT_IV, .length = 0x118 }, ++ { .name = "sslpn4initvals22", .offset = 0xD7060, .type = EXT_IV, .length = 0x0 }, ++ { .name = "pcm5", .offset = 0x136B34, .type = EXT_PCM, .length = 0x520 }, ++ /* ucode minor version at offset 0x1374f4 */ ++ { .name = "ucode9", .offset = 0xE17B0, .type = EXT_UCODE_2, .length = 0x6338 }, ++ { .name = "a0g0bsinitvals9", .offset = 0xCF8C0, .type = EXT_IV, .length = 0x118 }, ++/* { .name = "a0g0bsinitvals4", .offset = 0xCB520, .type = EXT_IV, .length = 0x30 }, */ ++ { .name = "ucode20", .offset = 0x12C704, .type = EXT_UCODE_3, .length = 0x9F00 }, ++ { .name = "a0g1initvals5", .offset = 0xCCA98, .type = EXT_IV, .length = 0xA08 }, ++ { .name = "n0bsinitvals16", .offset = 0xD5FF8, .type = EXT_IV, .length = 0x118 }, ++/* { .name = "b0g0bsinitvals4", .offset = 0xCA670, .type = EXT_IV, .length = 0x30 }, */ ++ { .name = "lp0initvals15", .offset = 0xD4358, .type = EXT_IV, .length = 0xD90 }, ++ { .name = "b0g0initvals5", .offset = 0xCB558, .type = EXT_IV, .length = 0xA08 }, ++/* { .name = "a0g0initvals4", .offset = 0xCA6A8, .type = EXT_IV, .length = 0xE70 }, */ ++ { .name = "sslpn0initvals16", .offset = 0xD6118, .type = EXT_IV, .length = 0x0 }, ++ { .name = "a0g1initvals13", .offset = 0xD2A60, .type = EXT_IV, .length = 0xB88 }, ++ { .name = "sslpn2initvals19", .offset = 0xD7040, .type = EXT_IV, .length = 0x0 }, ++ /* ucode major version at offset 0xc97f0 */ ++ { .name = "a0g1initvals9", .offset = 0xCEDD8, .type = EXT_IV, .length = 0xAE0 }, ++ { .name = "ucode5", .offset = 0xDBFC4, .type = EXT_UCODE_2, .length = 0x57E8 }, ++ { .name = "lp0bsinitvals13", .offset = 0xD1C90, .type = EXT_IV, .length = 0x118 }, ++ { .name = "n0initvals16", .offset = 0xD5210, .type = EXT_IV, .length = 0xDE0 }, ++ /* ucode major version at offset 0x1374f0 */ ++ { .name = "b0g0bsinitvals9", .offset = 0xCE1D0, .type = EXT_IV, .length = 0x118 }, ++ { .name = "ucode11", .offset = 0xE7AEC, .type = EXT_UCODE_2, .length = 0x7F48 }, ++ { .name = "lp0initvals16", .offset = 0xD6128, .type = EXT_IV, .length = 0xDE0 }, ++ { .name = "ucode16_mimo", .offset = 0x10FCE0, .type = EXT_UCODE_3, .length = 0x99A0 }, ++ { .name = "a0g0initvals9", .offset = 0xCE2F0, .type = EXT_IV, .length = 0xAE0 }, ++ { .name = "lp0initvals13", .offset = 0xD0900, .type = EXT_IV, .length = 0x1388 }, ++ { .name = "a0g0bsinitvals5", .offset = 0xCD4A8, .type = EXT_IV, .length = 0x118 }, ++ { .name = "ucode13", .offset = 0xEFA38, .type = EXT_UCODE_2, .length = 0x71E0 }, ++ { .name = "sslpn2bsinitvals19", .offset = 0xD7048, .type = EXT_IV, .length = 0x0 }, ++ { .name = "ucode15", .offset = 0xFD138, .type = EXT_UCODE_3, .length = 0x8D88 }, ++ { .name = "lp0bsinitvals15", .offset = 0xD50F0, .type = EXT_IV, .length = 0x118 }, ++ { .name = "n0initvals11", .offset = 0xCFB00, .type = EXT_IV, .length = 0xBB8 }, ++ { .name = "sslpn0bsinitvals16", .offset = 0xD6120, .type = EXT_IV, .length = 0x0 }, ++ { .name = "sslpn1initvals20", .offset = 0xD7050, .type = EXT_IV, .length = 0x0 }, ++ EXTRACT_LIST_END ++}; ++ ++static struct extract _68f38d139b1f69f3ea12393fb645c6f9[] = ++{ ++ { .name = "lp0initvals14", .offset = 0x1DBB68, .type = EXT_IV, .length = 0x0 }, ++ { .name = "lcn0bsinitvals25", .offset = 0x13FC40, .type = EXT_IV, .length = 0x118 }, ++ { .name = "n0bsinitvals25", .offset = 0x142B68, .type = EXT_IV, .length = 0x118 }, ++ /* ucode major version at offset 0x193a10 */ ++ { .name = "n0bsinitvals17", .offset = 0x1977A0, .type = EXT_IV, .length = 0x118 }, ++ { .name = "ucode17_mimo", .offset = 0x1BA904, .type = EXT_UCODE_3, .length = 0x9140 }, ++ { .name = "ucode16_lp", .offset = 0x198870, .type = EXT_UCODE_3, .length = 0x8728 }, ++ { .name = "sslpn1initvals27", .offset = 0x146C88, .type = EXT_IV, .length = 0x0 }, ++ { .name = "lp2bsinitvals19", .offset = 0x1978E8, .type = EXT_IV, .length = 0x0 }, ++ { .name = "sslpn3bsinitvals21", .offset = 0x198720, .type = EXT_IV, .length = 0x118 }, ++ { .name = "ucode16_sslpn", .offset = 0x1A0F9C, .type = EXT_UCODE_3, .length = 0x8959 }, ++ { .name = "ucode25_lcn", .offset = 0x164EC0, .type = EXT_UCODE_3, .length = 0x8975 }, ++ { .name = "ucode21_sslpn", .offset = 0x1C3A68, .type = EXT_UCODE_3, .length = 0x8A78 }, ++ { .name = "lp0bsinitvals14", .offset = 0x1DBB70, .type = EXT_IV, .length = 0x0 }, ++ { .name = "b0g0initvals9", .offset = 0x1D5AF8, .type = EXT_IV, .length = 0xAE8 }, ++ { .name = "ucode20_sslpn", .offset = 0x1C3A58, .type = EXT_UCODE_3, .length = 0x1 }, ++ /* ucode minor version at offset 0x193a14 */ ++ { .name = "a0g1bsinitvals9", .offset = 0x1D7E08, .type = EXT_IV, .length = 0x118 }, ++ { .name = "lp1initvals20", .offset = 0x197910, .type = EXT_IV, .length = 0x0 }, ++ { .name = "b0g0bsinitvals13", .offset = 0x1DAD88, .type = EXT_IV, .length = 0x118 }, ++ { .name = "lp2initvals19", .offset = 0x1978E0, .type = EXT_IV, .length = 0x0 }, ++ { .name = "n2bsinitvals19", .offset = 0x1978C8, .type = EXT_IV, .length = 0x0 }, ++ { .name = "sslpn4bsinitvals22", .offset = 0x198858, .type = EXT_IV, .length = 0x0 }, ++ { .name = "ucode16_sslpn_nobt", .offset = 0x1A98FC, .type = EXT_UCODE_3, .length = 0x72B5 }, ++ { .name = "n1bsinitvals20", .offset = 0x1978F8, .type = EXT_IV, .length = 0x0 }, ++ { .name = "n1initvals20", .offset = 0x1978F0, .type = EXT_IV, .length = 0x0 }, ++ { .name = "b0g0bsinitvals5", .offset = 0x1D4378, .type = EXT_IV, .length = 0x118 }, ++ { .name = "ucode22_sslpn", .offset = 0x1D392C, .type = EXT_UCODE_3, .length = 0x1 }, ++/* { .name = "ucode4", .offset = 0x1DCAC0, .type = EXT_UCODE_1, .length = 0x4 }, */ ++/* { .name = "b0g0initvals4", .offset = 0x1D3948, .type = EXT_IV, .length = 0x0 }, */ ++ { .name = "b0g0initvals13", .offset = 0x1DA1E8, .type = EXT_IV, .length = 0xB98 }, ++ { .name = "ht0initvals26", .offset = 0x145C88, .type = EXT_IV, .length = 0xED8 }, ++ /* ucode major version at offset 0x13ae80 */ ++ { .name = "ucode33_lcn40", .offset = 0x193A08, .type = EXT_UCODE_3, .length = 0x1 }, ++ { .name = "sslpn1bsinitvals20", .offset = 0x197908, .type = EXT_IV, .length = 0x0 }, ++ { .name = "lcn400bsinitvals33", .offset = 0x148C48, .type = EXT_IV, .length = 0x0 }, ++ { .name = "ucode14", .offset = 0x1F76A8, .type = EXT_UCODE_2, .length = 0x4 }, ++ /* ucode major version at offset 0x1d3940 */ ++ { .name = "a0g0initvals5", .offset = 0x1D4498, .type = EXT_IV, .length = 0xA08 }, ++ { .name = "lp1bsinitvals22", .offset = 0x198868, .type = EXT_IV, .length = 0x0 }, ++ { .name = "n16initvals30", .offset = 0x147CD0, .type = EXT_IV, .length = 0xE38 }, ++ { .name = "lp0bsinitvals16", .offset = 0x196940, .type = EXT_IV, .length = 0x118 }, ++ { .name = "lcn1bsinitvals25", .offset = 0x140BF8, .type = EXT_IV, .length = 0x118 }, ++/* { .name = "pcm4", .offset = 0x20090C, .type = EXT_PCM, .length = 0x4 }, */ ++ { .name = "lcn400initvals33", .offset = 0x148C40, .type = EXT_IV, .length = 0x0 }, ++ { .name = "n0bsinitvals24", .offset = 0x13EC88, .type = EXT_IV, .length = 0x118 }, ++ { .name = "lcn2bsinitvals26", .offset = 0x145B68, .type = EXT_IV, .length = 0x118 }, ++ { .name = "lcn1initvals26", .offset = 0x143C88, .type = EXT_IV, .length = 0xED8 }, ++ { .name = "n0bsinitvals22", .offset = 0x198848, .type = EXT_IV, .length = 0x0 }, ++ { .name = "n18initvals32", .offset = 0x148C30, .type = EXT_IV, .length = 0x0 }, ++ { .name = "lcn2initvals26", .offset = 0x144C88, .type = EXT_IV, .length = 0xED8 }, ++ { .name = "a0g1bsinitvals5", .offset = 0x1D59D8, .type = EXT_IV, .length = 0x118 }, ++ { .name = "n0bsinitvals11", .offset = 0x1D8AE8, .type = EXT_IV, .length = 0x118 }, ++ { .name = "lcn2initvals24", .offset = 0x13CE18, .type = EXT_IV, .length = 0xEA0 }, ++ { .name = "lcn0initvals26", .offset = 0x142C88, .type = EXT_IV, .length = 0xED8 }, ++ { .name = "n0absinitvals11", .offset = 0x1D8C08, .type = EXT_IV, .length = 0x118 }, ++ { .name = "ucode21_sslpn_nobt", .offset = 0x1CC4E4, .type = EXT_UCODE_3, .length = 0x7444 }, ++ { .name = "ucode26_mimo", .offset = 0x16D83C, .type = EXT_UCODE_3, .length = 0x9E00 }, ++ { .name = "n2initvals19", .offset = 0x1978C0, .type = EXT_IV, .length = 0x0 }, ++ { .name = "sslpn3initvals21", .offset = 0x197920, .type = EXT_IV, .length = 0xDF8 }, ++ { .name = "a0g1bsinitvals13", .offset = 0x1DBA48, .type = EXT_IV, .length = 0x118 }, ++ { .name = "sslpn4initvals22", .offset = 0x198850, .type = EXT_IV, .length = 0x0 }, ++ { .name = "pcm5", .offset = 0x200914, .type = EXT_PCM, .length = 0x520 }, ++ { .name = "ucode29_lcn", .offset = 0x181464, .type = EXT_UCODE_3, .length = 0x8729 }, ++ { .name = "ucode22_mimo", .offset = 0x1D3934, .type = EXT_UCODE_3, .length = 0x4 }, ++ { .name = "ucode9", .offset = 0x1E226C, .type = EXT_UCODE_2, .length = 0x63A8 }, ++ { .name = "lcn2initvals25", .offset = 0x140D18, .type = EXT_IV, .length = 0xE90 }, ++ { .name = "lp1initvals22", .offset = 0x198860, .type = EXT_IV, .length = 0x0 }, ++ { .name = "sslpn1bsinitvals27", .offset = 0x146C90, .type = EXT_IV, .length = 0x0 }, ++ { .name = "lcn0initvals24", .offset = 0x13AE88, .type = EXT_IV, .length = 0xEA0 }, ++ { .name = "ucode32_mimo", .offset = 0x193A00, .type = EXT_UCODE_3, .length = 0x4 }, ++ { .name = "a0g0bsinitvals9", .offset = 0x1D7CE8, .type = EXT_IV, .length = 0x118 }, ++ { .name = "n18bsinitvals32", .offset = 0x148C38, .type = EXT_IV, .length = 0x0 }, ++ { .name = "n0initvals24", .offset = 0x13DDE0, .type = EXT_IV, .length = 0xEA0 }, ++/* { .name = "a0g0bsinitvals4", .offset = 0x1D3960, .type = EXT_IV, .length = 0x0 }, */ ++ { .name = "n0initvals25", .offset = 0x141CD0, .type = EXT_IV, .length = 0xE90 }, ++ { .name = "a0g1initvals5", .offset = 0x1D4EA8, .type = EXT_IV, .length = 0xA08 }, ++ { .name = "ucode24_lcn", .offset = 0x15297C, .type = EXT_UCODE_3, .length = 0x8991 }, ++ { .name = "n0initvals17", .offset = 0x196A60, .type = EXT_IV, .length = 0xD38 }, ++ { .name = "n0bsinitvals16", .offset = 0x194910, .type = EXT_IV, .length = 0x118 }, ++/* { .name = "b0g0bsinitvals4", .offset = 0x1D3950, .type = EXT_IV, .length = 0x0 }, */ ++ { .name = "lp0initvals15", .offset = 0x1DBB78, .type = EXT_IV, .length = 0xE20 }, ++ { .name = "b0g0initvals5", .offset = 0x1D3968, .type = EXT_IV, .length = 0xA08 }, ++/* { .name = "a0g0initvals4", .offset = 0x1D3958, .type = EXT_IV, .length = 0x0 }, */ ++ { .name = "ucode20_sslpn_nobt", .offset = 0x1C3A60, .type = EXT_UCODE_3, .length = 0x1 }, ++ { .name = "lcn1initvals24", .offset = 0x13BE50, .type = EXT_IV, .length = 0xEA0 }, ++ { .name = "sslpn0initvals16", .offset = 0x194A30, .type = EXT_IV, .length = 0xEF0 }, ++ { .name = "a0g1initvals13", .offset = 0x1DAEA8, .type = EXT_IV, .length = 0xB98 }, ++ { .name = "lp1bsinitvals20", .offset = 0x197918, .type = EXT_IV, .length = 0x0 }, ++ { .name = "sslpn2initvals19", .offset = 0x1978D0, .type = EXT_IV, .length = 0x0 }, ++ { .name = "a0g1initvals9", .offset = 0x1D71F8, .type = EXT_IV, .length = 0xAE8 }, ++ { .name = "lcn1bsinitvals24", .offset = 0x13CCF8, .type = EXT_IV, .length = 0x118 }, ++ { .name = "ucode5", .offset = 0x1DCAC8, .type = EXT_UCODE_2, .length = 0x57A0 }, ++ { .name = "lcn2bsinitvals24", .offset = 0x13DCC0, .type = EXT_IV, .length = 0x118 }, ++ { .name = "lp0bsinitvals13", .offset = 0x1DA0C8, .type = EXT_IV, .length = 0x118 }, ++ { .name = "n0initvals16", .offset = 0x193A18, .type = EXT_IV, .length = 0xEF0 }, ++ { .name = "ucode19_sslpn_nobt", .offset = 0x1C3A50, .type = EXT_UCODE_3, .length = 0x1 }, ++ { .name = "b0g0bsinitvals9", .offset = 0x1D65E8, .type = EXT_IV, .length = 0x118 }, ++ { .name = "ucode11", .offset = 0x1E8618, .type = EXT_UCODE_2, .length = 0x7DE0 }, ++ { .name = "lp0initvals16", .offset = 0x195A48, .type = EXT_IV, .length = 0xEF0 }, ++ { .name = "ucode16_mimo", .offset = 0x1B0BB8, .type = EXT_UCODE_3, .length = 0x9D48 }, ++ { .name = "lcn0bsinitvals26", .offset = 0x143B68, .type = EXT_IV, .length = 0x118 }, ++ { .name = "ht0initvals29", .offset = 0x146C98, .type = EXT_IV, .length = 0xF10 }, ++ { .name = "lcn2bsinitvals25", .offset = 0x141BB0, .type = EXT_IV, .length = 0x118 }, ++ { .name = "a0g0initvals9", .offset = 0x1D6708, .type = EXT_IV, .length = 0xAE8 }, ++ { .name = "ucode29_mimo", .offset = 0x177648, .type = EXT_UCODE_3, .length = 0x9E18 }, ++ { .name = "lcn0bsinitvals24", .offset = 0x13BD30, .type = EXT_IV, .length = 0x118 }, ++ { .name = "ucode19_sslpn", .offset = 0x1C3A48, .type = EXT_UCODE_3, .length = 0x1 }, ++ { .name = "lcn1initvals25", .offset = 0x13FD60, .type = EXT_IV, .length = 0xE90 }, ++ { .name = "ucode30_mimo", .offset = 0x189B94, .type = EXT_UCODE_3, .length = 0x9E68 }, ++ { .name = "n16bsinitvals30", .offset = 0x148B10, .type = EXT_IV, .length = 0x118 }, ++ /* ucode minor version at offset 0x13ae84 */ ++ { .name = "ucode25_mimo", .offset = 0x15B314, .type = EXT_UCODE_3, .length = 0x9BA8 }, ++ { .name = "ucode24_mimo", .offset = 0x148C50, .type = EXT_UCODE_3, .length = 0x9D28 }, ++ { .name = "ucode27_sslpn", .offset = 0x177640, .type = EXT_UCODE_3, .length = 0x1 }, ++ { .name = "lp0initvals13", .offset = 0x1D8D28, .type = EXT_IV, .length = 0x1398 }, ++ { .name = "a0g0bsinitvals5", .offset = 0x1D58B8, .type = EXT_IV, .length = 0x118 }, ++ /* ucode minor version at offset 0x1d3944 */ ++ { .name = "ht0bsinitvals26", .offset = 0x146B68, .type = EXT_IV, .length = 0x118 }, ++ { .name = "ucode13", .offset = 0x1F03FC, .type = EXT_UCODE_2, .length = 0x72A8 }, ++ { .name = "sslpn2bsinitvals19", .offset = 0x1978D8, .type = EXT_IV, .length = 0x0 }, ++ { .name = "ucode15", .offset = 0x1F76B0, .type = EXT_UCODE_3, .length = 0x9258 }, ++ { .name = "lp0bsinitvals15", .offset = 0x1DC9A0, .type = EXT_IV, .length = 0x118 }, ++ { .name = "n0initvals11", .offset = 0x1D7F28, .type = EXT_IV, .length = 0xBB8 }, ++ { .name = "lcn0initvals25", .offset = 0x13EDA8, .type = EXT_IV, .length = 0xE90 }, ++ { .name = "sslpn0bsinitvals16", .offset = 0x195928, .type = EXT_IV, .length = 0x118 }, ++ { .name = "sslpn1initvals20", .offset = 0x197900, .type = EXT_IV, .length = 0x0 }, ++ { .name = "lcn1bsinitvals26", .offset = 0x144B68, .type = EXT_IV, .length = 0x118 }, ++ { .name = "n0initvals22", .offset = 0x198840, .type = EXT_IV, .length = 0x0 }, ++ { .name = "ht0bsinitvals29", .offset = 0x147BB0, .type = EXT_IV, .length = 0x118 }, ++ EXTRACT_LIST_END ++}; ++ ++static struct extract _e1b05e268bcdbfef3560c28fc161f30e[] = ++{ ++ { .name = "lp0initvals14", .offset = 0x1F17C8, .type = EXT_IV, .length = 0x0 }, ++ { .name = "lcn0bsinitvals25", .offset = 0x1601D0, .type = EXT_IV, .length = 0x118 }, ++ { .name = "n0bsinitvals25", .offset = 0x1635A8, .type = EXT_IV, .length = 0x118 }, ++ /* ucode major version at offset 0x1aad60 */ ++ { .name = "n0bsinitvals17", .offset = 0x1AEB10, .type = EXT_IV, .length = 0x118 }, ++ { .name = "ucode17_mimo", .offset = 0x1D0F48, .type = EXT_UCODE_3, .length = 0x8D70 }, ++ { .name = "ucode16_lp", .offset = 0x1AFBE8, .type = EXT_UCODE_3, .length = 0x83A8 }, ++ { .name = "sslpn1initvals27", .offset = 0x167628, .type = EXT_IV, .length = 0x0 }, ++ { .name = "lp2bsinitvals19", .offset = 0x1AEC58, .type = EXT_IV, .length = 0x0 }, ++ { .name = "sslpn3bsinitvals21", .offset = 0x1AFA98, .type = EXT_IV, .length = 0x118 }, ++ { .name = "ucode16_sslpn", .offset = 0x1B7F94, .type = EXT_UCODE_3, .length = 0x8688 }, ++ { .name = "ucode25_lcn", .offset = 0x1853E0, .type = EXT_UCODE_3, .length = 0x8817 }, ++ { .name = "ucode21_sslpn", .offset = 0x1D9CDC, .type = EXT_UCODE_3, .length = 0x87A7 }, ++ { .name = "lp0bsinitvals14", .offset = 0x1F17D0, .type = EXT_IV, .length = 0x0 }, ++ { .name = "b0g0initvals9", .offset = 0x1EB788, .type = EXT_IV, .length = 0xAD8 }, ++ { .name = "ucode20_sslpn", .offset = 0x1D9CCC, .type = EXT_UCODE_3, .length = 0x1 }, ++ /* ucode minor version at offset 0x1aad64 */ ++ { .name = "a0g1bsinitvals9", .offset = 0x1EDA68, .type = EXT_IV, .length = 0x118 }, ++ { .name = "lp1initvals20", .offset = 0x1AEC80, .type = EXT_IV, .length = 0x0 }, ++ { .name = "b0g0bsinitvals13", .offset = 0x1F09E8, .type = EXT_IV, .length = 0x118 }, ++ { .name = "lp2initvals19", .offset = 0x1AEC50, .type = EXT_IV, .length = 0x0 }, ++ { .name = "n2bsinitvals19", .offset = 0x1AEC38, .type = EXT_IV, .length = 0x0 }, ++ { .name = "sslpn4bsinitvals22", .offset = 0x1AFBD0, .type = EXT_IV, .length = 0x0 }, ++ { .name = "ucode16_sslpn_nobt", .offset = 0x1C0620, .type = EXT_UCODE_3, .length = 0x6FA5 }, ++ { .name = "n1bsinitvals20", .offset = 0x1AEC68, .type = EXT_IV, .length = 0x0 }, ++ { .name = "n1initvals20", .offset = 0x1AEC60, .type = EXT_IV, .length = 0x0 }, ++ { .name = "b0g0bsinitvals5", .offset = 0x1EA008, .type = EXT_IV, .length = 0x118 }, ++ { .name = "ucode22_sslpn", .offset = 0x1E95C0, .type = EXT_UCODE_3, .length = 0x1 }, ++/* { .name = "ucode4", .offset = 0x1F2710, .type = EXT_UCODE_1, .length = 0x4 }, */ ++/* { .name = "b0g0initvals4", .offset = 0x1E95D8, .type = EXT_IV, .length = 0x0 }, */ ++ { .name = "b0g0initvals13", .offset = 0x1EFE48, .type = EXT_IV, .length = 0xB98 }, ++ { .name = "ht0initvals26", .offset = 0x166650, .type = EXT_IV, .length = 0xEB0 }, ++ /* ucode major version at offset 0x15ac20 */ ++ { .name = "ucode33_lcn40", .offset = 0x1AAD50, .type = EXT_UCODE_3, .length = 0x1 }, ++ { .name = "sslpn1bsinitvals20", .offset = 0x1AEC78, .type = EXT_IV, .length = 0x0 }, ++ { .name = "lcn400bsinitvals33", .offset = 0x1695F8, .type = EXT_IV, .length = 0x0 }, ++ { .name = "ucode14", .offset = 0x20BD30, .type = EXT_UCODE_2, .length = 0x4 }, ++ /* ucode major version at offset 0x1e95d0 */ ++ { .name = "a0g0initvals5", .offset = 0x1EA128, .type = EXT_IV, .length = 0xA08 }, ++ { .name = "lp1bsinitvals22", .offset = 0x1AFBE0, .type = EXT_IV, .length = 0x0 }, ++ { .name = "n16initvals30", .offset = 0x168648, .type = EXT_IV, .length = 0xE70 }, ++ { .name = "lp0bsinitvals16", .offset = 0x1ADCA8, .type = EXT_IV, .length = 0x118 }, ++ { .name = "lcn1bsinitvals25", .offset = 0x161318, .type = EXT_IV, .length = 0x118 }, ++/* { .name = "pcm4", .offset = 0x2147EC, .type = EXT_PCM, .length = 0x4 }, */ ++ { .name = "lcn400initvals33", .offset = 0x1695F0, .type = EXT_IV, .length = 0x0 }, ++ { .name = "n0bsinitvals24", .offset = 0x15F088, .type = EXT_IV, .length = 0x118 }, ++ { .name = "lcn2bsinitvals26", .offset = 0x166530, .type = EXT_IV, .length = 0x118 }, ++ { .name = "lcn1initvals26", .offset = 0x1646A0, .type = EXT_IV, .length = 0xEB0 }, ++ { .name = "n0bsinitvals22", .offset = 0x1AFBC0, .type = EXT_IV, .length = 0x0 }, ++ { .name = "n18initvals32", .offset = 0x1695E0, .type = EXT_IV, .length = 0x0 }, ++ { .name = "lcn2initvals26", .offset = 0x165678, .type = EXT_IV, .length = 0xEB0 }, ++ { .name = "a0g1bsinitvals5", .offset = 0x1EB668, .type = EXT_IV, .length = 0x118 }, ++ { .name = "n0bsinitvals11", .offset = 0x1EE748, .type = EXT_IV, .length = 0x118 }, ++ { .name = "lcn2initvals24", .offset = 0x15CEE8, .type = EXT_IV, .length = 0x1038 }, ++ { .name = "lcn0initvals26", .offset = 0x1636C8, .type = EXT_IV, .length = 0xEB0 }, ++ { .name = "n0absinitvals11", .offset = 0x1EE868, .type = EXT_IV, .length = 0x118 }, ++ { .name = "ucode21_sslpn_nobt", .offset = 0x1E2488, .type = EXT_UCODE_3, .length = 0x7134 }, ++ { .name = "ucode26_mimo", .offset = 0x18DBFC, .type = EXT_UCODE_3, .length = 0x9B28 }, ++ { .name = "n2initvals19", .offset = 0x1AEC30, .type = EXT_IV, .length = 0x0 }, ++ { .name = "sslpn3initvals21", .offset = 0x1AEC90, .type = EXT_IV, .length = 0xE00 }, ++ { .name = "a0g1bsinitvals13", .offset = 0x1F16A8, .type = EXT_IV, .length = 0x118 }, ++ { .name = "sslpn4initvals22", .offset = 0x1AFBC8, .type = EXT_IV, .length = 0x0 }, ++ { .name = "pcm5", .offset = 0x2147F4, .type = EXT_PCM, .length = 0x520 }, ++ { .name = "ucode22_mimo", .offset = 0x1E95C8, .type = EXT_UCODE_3, .length = 0x4 }, ++ { .name = "ucode9", .offset = 0x1F7A64, .type = EXT_UCODE_2, .length = 0x5AD0 }, ++ { .name = "lcn2initvals25", .offset = 0x161438, .type = EXT_IV, .length = 0x1020 }, ++ { .name = "lp1initvals22", .offset = 0x1AFBD8, .type = EXT_IV, .length = 0x0 }, ++ { .name = "sslpn1bsinitvals27", .offset = 0x167630, .type = EXT_IV, .length = 0x0 }, ++ { .name = "lcn0initvals24", .offset = 0x15AC28, .type = EXT_IV, .length = 0x1038 }, ++ { .name = "ucode32_mimo", .offset = 0x1AAD48, .type = EXT_UCODE_3, .length = 0x4 }, ++ { .name = "a0g0bsinitvals9", .offset = 0x1ED948, .type = EXT_IV, .length = 0x118 }, ++ { .name = "n18bsinitvals32", .offset = 0x1695E8, .type = EXT_IV, .length = 0x0 }, ++ { .name = "n0initvals24", .offset = 0x15E048, .type = EXT_IV, .length = 0x1038 }, ++/* { .name = "a0g0bsinitvals4", .offset = 0x1E95F0, .type = EXT_IV, .length = 0x0 }, */ ++ { .name = "n0initvals25", .offset = 0x162580, .type = EXT_IV, .length = 0x1020 }, ++ { .name = "a0g1initvals5", .offset = 0x1EAB38, .type = EXT_IV, .length = 0xA08 }, ++ { .name = "ucode24_lcn", .offset = 0x17314C, .type = EXT_UCODE_3, .length = 0x89BB }, ++ { .name = "n0initvals17", .offset = 0x1ADDC8, .type = EXT_IV, .length = 0xD40 }, ++ { .name = "n0bsinitvals16", .offset = 0x1ABC68, .type = EXT_IV, .length = 0x118 }, ++/* { .name = "b0g0bsinitvals4", .offset = 0x1E95E0, .type = EXT_IV, .length = 0x0 }, */ ++ { .name = "lp0initvals15", .offset = 0x1F17D8, .type = EXT_IV, .length = 0xE10 }, ++ { .name = "b0g0initvals5", .offset = 0x1E95F8, .type = EXT_IV, .length = 0xA08 }, ++/* { .name = "a0g0initvals4", .offset = 0x1E95E8, .type = EXT_IV, .length = 0x0 }, */ ++ { .name = "ucode20_sslpn_nobt", .offset = 0x1D9CD4, .type = EXT_UCODE_3, .length = 0x1 }, ++ { .name = "lcn1initvals24", .offset = 0x15BD88, .type = EXT_IV, .length = 0x1038 }, ++ { .name = "sslpn0initvals16", .offset = 0x1ABD88, .type = EXT_IV, .length = 0xEF8 }, ++ { .name = "a0g1initvals13", .offset = 0x1F0B08, .type = EXT_IV, .length = 0xB98 }, ++ { .name = "lp1bsinitvals20", .offset = 0x1AEC88, .type = EXT_IV, .length = 0x0 }, ++ { .name = "sslpn2initvals19", .offset = 0x1AEC40, .type = EXT_IV, .length = 0x0 }, ++ { .name = "a0g1initvals9", .offset = 0x1ECE68, .type = EXT_IV, .length = 0xAD8 }, ++ { .name = "lcn1bsinitvals24", .offset = 0x15CDC8, .type = EXT_IV, .length = 0x118 }, ++ { .name = "ucode5", .offset = 0x1F2718, .type = EXT_UCODE_2, .length = 0x5348 }, ++ { .name = "lcn2bsinitvals24", .offset = 0x15DF28, .type = EXT_IV, .length = 0x118 }, ++ { .name = "lp0bsinitvals13", .offset = 0x1EFD28, .type = EXT_IV, .length = 0x118 }, ++ { .name = "n0initvals16", .offset = 0x1AAD68, .type = EXT_IV, .length = 0xEF8 }, ++ { .name = "ucode19_sslpn_nobt", .offset = 0x1D9CC4, .type = EXT_UCODE_3, .length = 0x1 }, ++ { .name = "b0g0bsinitvals9", .offset = 0x1EC268, .type = EXT_IV, .length = 0x118 }, ++ { .name = "ucode11", .offset = 0x1FD538, .type = EXT_UCODE_2, .length = 0x79C0 }, ++ { .name = "lp0initvals16", .offset = 0x1ACDA8, .type = EXT_IV, .length = 0xEF8 }, ++ { .name = "ucode16_mimo", .offset = 0x1C75CC, .type = EXT_UCODE_3, .length = 0x9978 }, ++ { .name = "lcn0bsinitvals26", .offset = 0x164580, .type = EXT_IV, .length = 0x118 }, ++ { .name = "ht0initvals29", .offset = 0x167638, .type = EXT_IV, .length = 0xEE8 }, ++ { .name = "lcn2bsinitvals25", .offset = 0x162460, .type = EXT_IV, .length = 0x118 }, ++ { .name = "a0g0initvals9", .offset = 0x1EC388, .type = EXT_IV, .length = 0xAD8 }, ++ { .name = "ucode29_mimo", .offset = 0x197730, .type = EXT_UCODE_3, .length = 0x9B48 }, ++ { .name = "lcn0bsinitvals24", .offset = 0x15BC68, .type = EXT_IV, .length = 0x118 }, ++ { .name = "ucode19_sslpn", .offset = 0x1D9CBC, .type = EXT_UCODE_3, .length = 0x1 }, ++ { .name = "lcn1initvals25", .offset = 0x1602F0, .type = EXT_IV, .length = 0x1020 }, ++ { .name = "ucode30_mimo", .offset = 0x1A127C, .type = EXT_UCODE_3, .length = 0x9AC8 }, ++ { .name = "n16bsinitvals30", .offset = 0x1694C0, .type = EXT_IV, .length = 0x118 }, ++ /* ucode minor version at offset 0x15ac24 */ ++ { .name = "ucode25_mimo", .offset = 0x17BB0C, .type = EXT_UCODE_3, .length = 0x98D0 }, ++ { .name = "ucode24_mimo", .offset = 0x169600, .type = EXT_UCODE_3, .length = 0x9B48 }, ++ { .name = "ucode27_sslpn", .offset = 0x197728, .type = EXT_UCODE_3, .length = 0x1 }, ++ { .name = "lp0initvals13", .offset = 0x1EE988, .type = EXT_IV, .length = 0x1398 }, ++ { .name = "a0g0bsinitvals5", .offset = 0x1EB548, .type = EXT_IV, .length = 0x118 }, ++ /* ucode minor version at offset 0x1e95d4 */ ++ { .name = "ht0bsinitvals26", .offset = 0x167508, .type = EXT_IV, .length = 0x118 }, ++ { .name = "ucode13", .offset = 0x204EFC, .type = EXT_UCODE_2, .length = 0x6E30 }, ++ { .name = "sslpn2bsinitvals19", .offset = 0x1AEC48, .type = EXT_IV, .length = 0x0 }, ++ { .name = "ucode15", .offset = 0x20BD38, .type = EXT_UCODE_3, .length = 0x8AB0 }, ++ { .name = "lp0bsinitvals15", .offset = 0x1F25F0, .type = EXT_IV, .length = 0x118 }, ++ { .name = "n0initvals11", .offset = 0x1EDB88, .type = EXT_IV, .length = 0xBB8 }, ++ { .name = "lcn0initvals25", .offset = 0x15F1A8, .type = EXT_IV, .length = 0x1020 }, ++ { .name = "sslpn0bsinitvals16", .offset = 0x1ACC88, .type = EXT_IV, .length = 0x118 }, ++ { .name = "sslpn1initvals20", .offset = 0x1AEC70, .type = EXT_IV, .length = 0x0 }, ++ { .name = "lcn1bsinitvals26", .offset = 0x165558, .type = EXT_IV, .length = 0x118 }, ++ { .name = "n0initvals22", .offset = 0x1AFBB8, .type = EXT_IV, .length = 0x0 }, ++ { .name = "ht0bsinitvals29", .offset = 0x168528, .type = EXT_IV, .length = 0x118 }, + EXTRACT_LIST_END + }; + +@@ -246,7 +779,6 @@ static const struct file files[] = + { + { + .name = "wl_apsta.o", +- .id = "FW10", + .ucode_version = "295.14", + .md5 = "e08665c5c5b66beb9c3b2dd54aa80cb3", + .flags = FW_FLAG_LE, +@@ -256,7 +788,6 @@ static const struct file files[] = + /* http://downloads.openwrt.org/sources/broadcom-wl-4.80.53.0.tar.bz2 */ + /* This firmware has the old TX header. */ + .name = "wl_apsta.o", +- .id = "FW11", + .ucode_version = "351.126", + .md5 = "9207bc565c2fc9fa1591f6c7911d3fc0", + .flags = FW_FLAG_LE | FW_FLAG_V4, +@@ -266,7 +797,6 @@ static const struct file files[] = + /* http://downloads.openwrt.org/sources/broadcom-wl-4.80.53.0.tar.bz2 */ + /* This firmware has the old TX header. */ + .name = "wl_apsta_mimo.o", +- .id = "FW11", + .ucode_version = "351.126", + .md5 = "722e2e0d8cc04b8f118bb5afe6829ff9", + .flags = FW_FLAG_LE | FW_FLAG_V4, +@@ -275,7 +805,6 @@ static const struct file files[] = + { + /* ftp://ftp.linksys.com/opensourcecode/wrt150nv11/1.51.3/ */ + .name = "wl_ap.o", +- .id = "FW12", + .ucode_version = "410.2160", + .md5 = "1e4763b4cb8cfbaae43e5c6d3d6b2ae7", .flags = FW_FLAG_LE | FW_FLAG_V4 | FW_FLAG_UNSUPPORTED, - .extract = _2dd738b8feb8b3559fd9d8fbaf3bfffc, +@@ -284,22 +813,66 @@ static const struct file files[] = + { + /* http://mirror2.openwrt.org/sources/broadcom-wl-4.150.10.5.tar.bz2 */ + .name = "wl_apsta_mimo.o", +- .id = "FW13", + .ucode_version = "410.2160", + .md5 = "cb8d70972b885b1f8883b943c0261a3c", + .flags = FW_FLAG_LE | FW_FLAG_V4, + .extract = _cb8d70972b885b1f8883b943c0261a3c, }, -+ { -+ /* ftp://downloads.netgear.com/files/GPL/WNDR3300-V1.0.29_gpl_src.zip */ -+ .name = "wl_apsta.o", -+ .id = "FW15", -+ .ucode_version = "478.104", -+ .md5 = "1a258b2d93efa641c32ddf3c3a962028", -+ .flags = FW_FLAG_LE | FW_FLAG_V4, -+ .extract = _1a258b2d93efa641c32ddf3c3a962028, -+ }, -+ { + { +- /* ftp://ftp.linksys.com/opensourcecode/wrt610n/1.00.00.018/wrt610n_v1.00.00.018_us.tgz */ +- .name = "wl.o", +- .id = "FW14", + /* http://downloads.openwrt.org/sources/broadcom-wl-4.178.10.4.tar.bz2 */ + .name = "wl_apsta.o", -+ .id = "FW15", -+ .ucode_version = "478.104", + .ucode_version = "478.104", +- .md5 = "2dd738b8feb8b3559fd9d8fbaf3bfffc", +- .flags = FW_FLAG_LE | FW_FLAG_V4 | FW_FLAG_UNSUPPORTED, +- .extract = _2dd738b8feb8b3559fd9d8fbaf3bfffc, + .md5 = "bb8537e3204a1ea5903fe3e66b5e2763", + .flags = FW_FLAG_LE | FW_FLAG_V4, + .extract = _bb8537e3204a1ea5903fe3e66b5e2763, + }, ++ { ++ /* http://mirror2.openwrt.org/sources/broadcom-wl-5.10.56.27.3_mipsel.tar.bz2 */ ++ .name = "wl_prebuilt.o", ++ .ucode_version = "508.1084", ++ .md5 = "490d4e149ecc45eb1a91f06aa75be071", ++ .flags = FW_FLAG_LE | FW_FLAG_V4, ++ .extract = _490d4e149ecc45eb1a91f06aa75be071, ++ }, ++ { ++ /* http://www.lwfinger.com/b43-firmware/broadcom-wl-5.10.56.51.tar.bz2 */ ++ .name = "wl_apsta.o", ++ .ucode_version = "508.1107", ++ .md5 = "f06c8aa30ea549ce21872d10ee9a7d48", ++ .flags = FW_FLAG_LE | FW_FLAG_V4, ++ .extract = _f06c8aa30ea549ce21872d10ee9a7d48, ++ }, ++ { ++ /* http://www.lwfinger.com/b43-firmware/broadcom-wl-5.10.56.2808.tar.bz2 */ ++ .name = "wl_apsta.o", ++ .ucode_version = "508.10872", ++ .md5 = "e413c0017b99195f3231201c53f314d1", ++ .flags = FW_FLAG_LE | FW_FLAG_V4, ++ .extract = _e413c0017b99195f3231201c53f314d1, ++ }, ++ { ++ /* http://www.lwfinger.com/b43-firmware/broadcom-wl-5.10.144.3.tar.bz2 */ ++ .name = "wl_apsta.o", ++ .ucode_version = "508.154", ++ .md5 = "023fafbe4918e384dd531a046dbc03e8", ++ .flags = FW_FLAG_LE | FW_FLAG_V4, ++ .extract = _023fafbe4918e384dd531a046dbc03e8, ++ }, ++ { ++ /* http://www.lwfinger.com/b43-firmware/broadcom-wl-5.100.104.2.tar.bz2 */ ++ .name = "wl_apsta.o", ++ .ucode_version = "644.1001", ++ .md5 = "68f38d139b1f69f3ea12393fb645c6f9", ++ .flags = FW_FLAG_LE | FW_FLAG_V4, ++ .extract = _68f38d139b1f69f3ea12393fb645c6f9, ++ }, ++ { ++ /* http://www.lwfinger.com/b43-firmware/broadcom-wl-5.100.138.tar.bz2 */ ++ .name = "wl_apsta.o", ++ .ucode_version = "666.2", ++ .md5 = "e1b05e268bcdbfef3560c28fc161f30e", ++ .flags = FW_FLAG_LE | FW_FLAG_V4, ++ .extract = _e1b05e268bcdbfef3560c28fc161f30e, + }, }; - #define FILES (sizeof(files) / sizeof(files[0])) -diff --git fwcutter.c fwcutter.c -index 5d5aa80..0d82806 100644 ---- fwcutter.c +-#define FILES (sizeof(files) / sizeof(files[0])) +- +Index: fwcutter.c +=================================================================== +--- fwcutter.c.orig +++ fwcutter.c -@@ -462,10 +462,10 @@ static void print_supported_files(void) - "\t" +@@ -2,7 +2,7 @@ + * firmware cutter for broadcom 43xx wireless driver files + * + * Copyright (c) 2005 Martin Langer , +- * 2005-2007 Michael Buesch ++ * 2005-2007 Michael Buesch + * 2005 Alex Beregszaszi + * 2007 Johannes Berg + * +@@ -38,7 +38,7 @@ + #include + #include + +-#ifdef __DragonFly__ ++#if defined(__DragonFly__) || defined(__FreeBSD__) + #include + #else + #include +@@ -48,7 +48,7 @@ + #include "fwcutter.h" + #include "fwcutter_list.h" + +-#ifdef __DragonFly__ ++#if defined(__DragonFly__) || defined(__FreeBSD__) + #define V3_FW_DIRNAME "v3" + #define V4_FW_DIRNAME "v4" + #else +@@ -65,18 +65,6 @@ static int file_ok(const struct file *f) + return !(f->flags & FW_FLAG_UNSUPPORTED) || cmdargs.unsupported; + } + +-/* Convert a CPU-endian 16bit integer to Big-Endian */ +-static be16_t to_be16(uint16_t v) +-{ +- uint8_t ret[2]; +- +- ret[0] = (v & 0xFF00) >> 8; +- ret[1] = (v & 0x00FF); +- +- return *((be16_t *)ret); +-} +- +-#if 0 + /* Convert a Big-Endian 16bit integer to CPU-endian */ + static uint16_t from_be16(be16_t v) + { +@@ -87,19 +75,11 @@ static uint16_t from_be16(be16_t v) + + return ret; + } +-#endif + +-/* Convert a CPU-endian 32bit integer to Big-Endian */ +-static be32_t to_be32(uint32_t v) ++/* Convert a CPU-endian 16bit integer to Big-Endian */ ++static be16_t to_be16(uint16_t v) + { +- uint8_t ret[4]; +- +- ret[0] = (v & 0xFF000000) >> 24; +- ret[1] = (v & 0x00FF0000) >> 16; +- ret[2] = (v & 0x0000FF00) >> 8; +- ret[3] = (v & 0x000000FF); +- +- return *((be32_t *)ret); ++ return (be16_t)from_be16((be16_t)v); + } + + /* Convert a Big-Endian 32bit integer to CPU-endian */ +@@ -115,6 +95,12 @@ static uint32_t from_be32(be32_t v) + return ret; + } + ++/* Convert a CPU-endian 32bit integer to Big-Endian */ ++static be32_t to_be32(uint32_t v) ++{ ++ return (be32_t)from_be32((be32_t)v); ++} ++ + /* tiny disassembler */ + static void print_ucode_version(struct insn *insn) + { +@@ -439,8 +425,6 @@ static void print_file(const struct file + printf("%s\t", file->ucode_version); + if (strlen(file->ucode_version) < 8) printf("\t"); + +- printf("%s\t", file->id); +- + printf("%s\n", file->md5); + } + +@@ -451,21 +435,16 @@ static void print_supported_files(void) + print_banner(); + printf("\nExtracting firmware is possible " + "from these binary driver files.\n" +- "The column shows the unique identifier string " +- "for your firmware.\nYou must select the firmware with the " +- "same ID as printed by the kernel driver on modprobe.\n" +- "Note that only recent drivers print such a message on modprobe.\n" + "Please read http://linuxwireless.org/en/users/Drivers/b43#devicefirmware\n\n"); + printf("\t" + "\t\t" + "\t" +- "\t" "\n\n"); /* print for legacy driver first */ - for (i = 0; i < FILES; i++) @@ -152,7 +876,7 @@ index 5d5aa80..0d82806 100644 if (file_ok(&files[i]) && files[i].flags & FW_FLAG_V4) print_file(&files[i]); printf("\n"); -@@ -491,7 +491,7 @@ static const struct file *find_file(FILE *fd) +@@ -491,11 +470,10 @@ static const struct file *find_file(FILE signature[8], signature[9], signature[10], signature[11], signature[12], signature[13], signature[14], signature[15]); @@ -161,11 +885,20 @@ index 5d5aa80..0d82806 100644 if (file_ok(&files[i]) && strcasecmp(md5sig, files[i].md5) == 0) { printf("This file is recognised as:\n"); -diff --git fwcutter.h fwcutter.h -index ac2df63..4a887b6 100644 ---- fwcutter.h +- printf(" ID : %s\n", files[i].id); + printf(" filename : %s\n", files[i].name); + printf(" version : %s\n", files[i].ucode_version); + printf(" MD5 : %s\n", files[i].md5); +@@ -709,3 +687,4 @@ out_close: + + return err; + } ++ +Index: fwcutter.h +=================================================================== +--- fwcutter.h.orig +++ fwcutter.h -@@ -9,6 +9,9 @@ +@@ -9,10 +9,13 @@ #define fwcutter_stringify(x) fwcutter_stringify_1(x) #define FWCUTTER_VERSION fwcutter_stringify(FWCUTTER_VERSION_) @@ -175,42 +908,31 @@ index ac2df63..4a887b6 100644 typedef uint16_t be16_t; /* Big-endian 16bit */ typedef uint32_t be32_t; /* Big-endian 32bit */ -diff --git fwcutter_list.h fwcutter_list.h -index 65c8671..5175bbd 100644 ---- fwcutter_list.h -+++ fwcutter_list.h -@@ -287,6 +287,7 @@ static struct extract _1a258b2d93efa641c32ddf3c3a962028[] = - { .name = "sslpn0bsinitvals16", .offset = 0xAF048, .type = EXT_IV, .length = 0x0 }, - EXTRACT_LIST_END - }; +-#ifdef __DragonFly__ ++#if defined(__DragonFly__) || defined(__FreeBSD__) + #define bswap_16 bswap16 + #define bswap_32 bswap32 + #endif +@@ -65,7 +68,6 @@ struct extract { + + struct file { + const char *name; +- const char *id; + const char *ucode_version; + const char *md5; + const struct extract *extract; +@@ -104,3 +106,4 @@ struct b43_iv { + + + #endif /* _FWCUTTER_H_ */ + - static struct extract _bb8537e3204a1ea5903fe3e66b5e2763[] = - { - /* ucode major version at offset 0xa8b70 */ -@@ -337,7 +338,9 @@ static struct extract _bb8537e3204a1ea5903fe3e66b5e2763[] = - { .name = "sslpn0bsinitvals16", .offset = 0xB5348, .type = EXT_IV, .length = 0x0 }, - { .name = "lp0bsinitvals16", .offset = 0xB5FE8, .type = EXT_IV, .length = 0x118 }, - EXTRACT_LIST_END --};/* -+}; -+ -+/* - * Links change, so let's not put them into the README. - * I still put them here so we know where the file was obtained. - */ -@@ -417,6 +420,3 @@ static const struct file files[] = - .extract = _bb8537e3204a1ea5903fe3e66b5e2763, - }, - }; -- --#define FILES (sizeof(files) / sizeof(files[0])) -- -diff --git Makefile Makefile -index 2eb2e84..197ddef 100644 ---- Makefile +Index: Makefile +=================================================================== +--- Makefile.orig +++ Makefile -@@ -1,34 +1,63 @@ - VERSION = 012 +@@ -1,34 +1,64 @@ +-VERSION = 012 ++VERSION = 015 -CC ?= cc -PREFIX ?= /usr/local @@ -229,7 +951,7 @@ index 2eb2e84..197ddef 100644 +ifeq ($(C),1) +QUIET_SPARSE = $(Q:@=@echo ' SPARSE '$@;)$(SPARSE) +else -+QUIET_SPARSE = @/bin/true ++QUIET_SPARSE = @true +endif +PREFIX ?= /usr/local @@ -244,20 +966,20 @@ index 2eb2e84..197ddef 100644 CFLAGS += -DFWCUTTER_VERSION_=$(VERSION) -all: $(BIN) +- +-fwcutter.o: fwcutter.h fwcutter_list.h md5.h +.SUFFIXES: +.PHONY: all install clean distclean +.DEFAULT_GOAL := all + +DEPS = $(sort $(patsubst %.c,dep/%.d,$(1))) +OBJS = $(sort $(patsubst %.c,obj/%.o,$(1))) - --fwcutter.o: fwcutter.h fwcutter_list.h md5.h ++ +# Generate dependencies -+$(call DEPS,$(SRCS)): dep/%.d: %.c ++$(call DEPS,$(SRCS)): dep/%.d: %.c + @mkdir -p $(dir $@) -+ $(QUIET_DEPEND) -o $@.tmp -MM -MG -MT "$@ $(patsubst dep/%.d,obj/%.o,$@)" $(CFLAGS) $< && mv -f $@.tmp $@ - --md5.o: md5.h ++ $(QUIET_DEPEND) -o $@.tmp -MM -MT "$@ $(patsubst dep/%.d,obj/%.o,$@)" $(CFLAGS) $< && mv -f $@.tmp $@ ++ +-include $(call DEPS,$(SRCS)) + +# Generate object files @@ -265,7 +987,8 @@ index 2eb2e84..197ddef 100644 + @mkdir -p $(dir $@) + $(QUIET_SPARSE) $(SPARSEFLAGS) $< + $(QUIET_CC) -o $@ -c $(CFLAGS) $< -+ + +-md5.o: md5.h +all: $(BIN) -$(BIN): $(OBJECTS) @@ -278,10 +1001,10 @@ index 2eb2e84..197ddef 100644 - -install -o 0 -g 0 -m 755 $(BIN) $(PREFIX)/bin/ - -install -d -o 0 -g 0 -m 755 $(PREFIX)/man/man1/ - -install -o 0 -g 0 -m 644 $(BIN).1 $(PREFIX)/man/man1/ -+ install -d $(PREFIX)/bin/ -+ install $(BIN) $(PREFIX)/bin/ -+ install -d $(PREFIX)/share/man/man1/ -+ install -m 444 $(BIN).1 $(PREFIX)/share/man/man1/ ++ install -d -o 0 -g 0 -m 755 $(PREFIX)/bin/ ++ install -o 0 -g 0 -m 755 $(BIN) $(PREFIX)/bin/ ++ install -d -o 0 -g 0 -m 755 $(PREFIX)/man/man1/ ++ install -o 0 -g 0 -m 644 $(BIN).1 $(PREFIX)/man/man1/ clean: - -rm -f *.o $(BIN) @@ -290,4 +1013,4 @@ index 2eb2e84..197ddef 100644 distclean: clean - -rm -f *.fw *.orig *.rej *~ + -rm -f *.fw $(BIN) - ++ diff --git a/b43-fwcutter.spec b/b43-fwcutter.spec index ae18975..952729c 100644 --- a/b43-fwcutter.spec +++ b/b43-fwcutter.spec @@ -1,7 +1,7 @@ # -# spec file for package b43-fwcutter (Version 012) +# spec file for package b43-fwcutter # -# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -15,56 +15,44 @@ # Please submit bugfixes or comments via http://bugs.opensuse.org/ # -# norootforbuild - - Name: b43-fwcutter -Group: Hardware/Wifi -AutoReqProv: on -Summary: Tool for extracting firmware from newer Broadcom WLAN drivers Version: 012 -Release: 2 +Release: 3 +License: BSD3c(or similar) ; BSD4c(or similar) +Summary: Tool for extracting firmware from newer Broadcom WLAN drivers +Url: http://linuxwireless.org/en/users/Drivers/b43 +Group: Hardware/Wifi Source: %{name}-%{version}.tar.bz2 Patch0: %{name}.diff Source1: install_bcm43xx_firmware -Url: http://linuxwireless.org/en/users/Drivers/b43 -License: BSD3c(or similar) ; BSD4c(or similar) -BuildRoot: %{_tmppath}/%{name}-%{version}-build Requires: curl -Obsoletes: bcm43xx-fwcutter -Provides: bcm43xx-fwcutter Supplements: modalias(pci:v000014E4d000043*sv*sd*bc*sc*i*) -%define prefix /usr +Obsoletes: bcm43xx-fwcutter < %{version} +Provides: bcm43xx-fwcutter = %{version} +BuildRoot: %{_tmppath}/%{name}-%{version}-build %description b43-fwcutter can be used to extract firmware from Windows WLAN drivers for Broadcom bcm43xx devices. The firmware is necessary to run such a card under Linux using the b43 or b43legacy driver. - - -Authors: --------- - Martin Langer , - Michael Buesch - Alex Beregszaszi - Johannes Berg - %prep %setup -q %patch0 %build -make CFLAGS="$RPM_OPT_FLAGS" +make CFLAGS="%{optflags}" %install -make PREFIX=%{buildroot}/usr \ - MANDIR=%{buildroot}/%{_mandir} install -mkdir -p %{buildroot}/usr/sbin -install -m 755 %SOURCE1 %{buildroot}/usr/sbin/ +#make PREFIX=%{buildroot}/usr \ +# MANDIR=%{buildroot}/%{_mandir} install +mkdir -p %{buildroot}%{_prefix}/bin +mkdir -p %{buildroot}%{_prefix}/sbin +install -m 755 b43-fwcutter %{buildroot}%{_bindir}/ +install -m 755 %{SOURCE1} %{buildroot}%{_sbindir}/ mkdir -p %{buildroot}/lib/firmware/b43/ mkdir -p %{buildroot}/lib/firmware/b43legacy/ -for i in a0g0bsinitvals4.fw a0g0bsinitvals5.fw a0g0bsinitvals9.fw a0g0initvals4.fw a0g0initvals5.fw a0g0initvals9.fw a0g1bsinitvals13.fw a0g1bsinitvals5.fw a0g1bsinitvals9.fw a0g1initvals13.fw a0g1initvals5.fw a0g1initvals9.fw b0g0bsinitvals13.fw b0g0bsinitvals4.fw b0g0bsinitvals5.fw b0g0bsinitvals9.fw b0g0initvals13.fw b0g0initvals4.fw b0g0initvals5.fw b0g0initvals9.fw lp0bsinitvals13.fw lp0bsinitvals14.fw lp0bsinitvals15.fw lp0initvals13.fw lp0initvals14.fw lp0initvals15.fw n0absinitvals11.fw n0bsinitvals11.fw n0initvals11.fw pcm4.fw pcm5.fw ucode11.fw ucode13.fw ucode14.fw ucode15.fw ucode4.fw ucode5.fw ucode9.fw +for i in a0g0bsinitvals5.fw a0g0bsinitvals9.fw a0g0initvals5.fw a0g0initvals9.fw a0g1bsinitvals13.fw a0g1bsinitvals5.fw a0g1bsinitvals9.fw a0g1initvals13.fw a0g1initvals5.fw a0g1initvals9.fw b0g0bsinitvals13.fw b0g0bsinitvals5.fw b0g0bsinitvals9.fw b0g0initvals13.fw b0g0initvals5.fw b0g0initvals9.fw lp0bsinitvals13.fw lp0bsinitvals14.fw lp0bsinitvals15.fw lp0bsinitvals16.fw lp0initvals13.fw lp0initvals14.fw lp0initvals15.fw lp0initvals16.fw n0absinitvals11.fw n0bsinitvals11.fw n0bsinitvals16.fw n0initvals11.fw n0initvals16.fw pcm5.fw sslpn0bsinitvals16.fw sslpn0initvals16.fw sslpn1bsinitvals20.fw sslpn1initvals20.fw sslpn2bsinitvals17.fw sslpn2bsinitvals19.fw sslpn2initvals17.fw sslpn2initvals19.fw sslpn4bsinitvals22.fw sslpn4initvals22.fw ucode11.fw ucode13.fw ucode14.fw ucode15.fw ucode16_lp.fw ucode16_mimo.fw ucode16_sslpn.fw ucode16_sslpn_nobt.fw ucode17.fw ucode19.fw ucode20.fw ucode22_sslpn.fw ucode5.fw ucode9.fw do touch %{buildroot}/lib/firmware/b43/$i done @@ -74,54 +62,71 @@ do done %clean -%__rm -rf %{buildroot} +rm -rf %{buildroot} %files %defattr(-, root, root) %doc README %{_bindir}/b43-fwcutter -/usr/sbin/install_bcm43xx_firmware -%{_mandir}/man1/b43-fwcutter.1* +%{_sbindir}/install_bcm43xx_firmware +#%{_mandir}/man1/b43-fwcutter.1.gz +#/usr/man/man1/b43-fwcutter.1.gz %dir /lib/firmware/b43 %dir /lib/firmware/b43legacy # ghost b43 firmware -%ghost /lib/firmware/b43/a0g0bsinitvals4.fw -%ghost /lib/firmware/b43/a0g0bsinitvals5.fw -%ghost /lib/firmware/b43/a0g0bsinitvals9.fw -%ghost /lib/firmware/b43/a0g0initvals4.fw -%ghost /lib/firmware/b43/a0g0initvals5.fw -%ghost /lib/firmware/b43/a0g0initvals9.fw -%ghost /lib/firmware/b43/a0g1bsinitvals13.fw -%ghost /lib/firmware/b43/a0g1bsinitvals5.fw -%ghost /lib/firmware/b43/a0g1bsinitvals9.fw -%ghost /lib/firmware/b43/a0g1initvals13.fw -%ghost /lib/firmware/b43/a0g1initvals5.fw -%ghost /lib/firmware/b43/a0g1initvals9.fw -%ghost /lib/firmware/b43/b0g0bsinitvals13.fw -%ghost /lib/firmware/b43/b0g0bsinitvals4.fw -%ghost /lib/firmware/b43/b0g0bsinitvals5.fw -%ghost /lib/firmware/b43/b0g0bsinitvals9.fw -%ghost /lib/firmware/b43/b0g0initvals13.fw -%ghost /lib/firmware/b43/b0g0initvals4.fw -%ghost /lib/firmware/b43/b0g0initvals5.fw -%ghost /lib/firmware/b43/b0g0initvals9.fw -%ghost /lib/firmware/b43/lp0bsinitvals13.fw -%ghost /lib/firmware/b43/lp0bsinitvals14.fw -%ghost /lib/firmware/b43/lp0bsinitvals15.fw -%ghost /lib/firmware/b43/lp0initvals13.fw -%ghost /lib/firmware/b43/lp0initvals14.fw -%ghost /lib/firmware/b43/lp0initvals15.fw -%ghost /lib/firmware/b43/n0absinitvals11.fw -%ghost /lib/firmware/b43/n0bsinitvals11.fw -%ghost /lib/firmware/b43/n0initvals11.fw -%ghost /lib/firmware/b43/pcm4.fw -%ghost /lib/firmware/b43/pcm5.fw -%ghost /lib/firmware/b43/ucode11.fw -%ghost /lib/firmware/b43/ucode13.fw -%ghost /lib/firmware/b43/ucode14.fw -%ghost /lib/firmware/b43/ucode15.fw -%ghost /lib/firmware/b43/ucode4.fw -%ghost /lib/firmware/b43/ucode5.fw +%ghost /lib/firmware/b43/a0g0bsinitvals5.fw +%ghost /lib/firmware/b43/a0g0bsinitvals9.fw +%ghost /lib/firmware/b43/a0g0initvals5.fw +%ghost /lib/firmware/b43/a0g0initvals9.fw +%ghost /lib/firmware/b43/a0g1bsinitvals13.fw +%ghost /lib/firmware/b43/a0g1bsinitvals5.fw +%ghost /lib/firmware/b43/a0g1bsinitvals9.fw +%ghost /lib/firmware/b43/a0g1initvals13.fw +%ghost /lib/firmware/b43/a0g1initvals5.fw +%ghost /lib/firmware/b43/a0g1initvals9.fw +%ghost /lib/firmware/b43/b0g0bsinitvals13.fw +%ghost /lib/firmware/b43/b0g0bsinitvals5.fw +%ghost /lib/firmware/b43/b0g0bsinitvals9.fw +%ghost /lib/firmware/b43/b0g0initvals13.fw +%ghost /lib/firmware/b43/b0g0initvals5.fw +%ghost /lib/firmware/b43/b0g0initvals9.fw +%ghost /lib/firmware/b43/lp0bsinitvals13.fw +%ghost /lib/firmware/b43/lp0bsinitvals14.fw +%ghost /lib/firmware/b43/lp0bsinitvals15.fw +%ghost /lib/firmware/b43/lp0bsinitvals16.fw +%ghost /lib/firmware/b43/lp0initvals13.fw +%ghost /lib/firmware/b43/lp0initvals14.fw +%ghost /lib/firmware/b43/lp0initvals15.fw +%ghost /lib/firmware/b43/lp0initvals16.fw +%ghost /lib/firmware/b43/n0absinitvals11.fw +%ghost /lib/firmware/b43/n0bsinitvals11.fw +%ghost /lib/firmware/b43/n0bsinitvals16.fw +%ghost /lib/firmware/b43/n0initvals11.fw +%ghost /lib/firmware/b43/n0initvals16.fw +%ghost /lib/firmware/b43/pcm5.fw +%ghost /lib/firmware/b43/sslpn0bsinitvals16.fw +%ghost /lib/firmware/b43/sslpn0initvals16.fw +%ghost /lib/firmware/b43/sslpn1bsinitvals20.fw +%ghost /lib/firmware/b43/sslpn1initvals20.fw +%ghost /lib/firmware/b43/sslpn2bsinitvals17.fw +%ghost /lib/firmware/b43/sslpn2bsinitvals19.fw +%ghost /lib/firmware/b43/sslpn2initvals17.fw +%ghost /lib/firmware/b43/sslpn2initvals19.fw +%ghost /lib/firmware/b43/sslpn4bsinitvals22.fw +%ghost /lib/firmware/b43/sslpn4initvals22.fw +%ghost /lib/firmware/b43/ucode11.fw +%ghost /lib/firmware/b43/ucode13.fw +%ghost /lib/firmware/b43/ucode14.fw +%ghost /lib/firmware/b43/ucode15.fw +%ghost /lib/firmware/b43/ucode16_lp.fw +%ghost /lib/firmware/b43/ucode16_mimo.fw +%ghost /lib/firmware/b43/ucode16_sslpn.fw +%ghost /lib/firmware/b43/ucode16_sslpn_nobt.fw +%ghost /lib/firmware/b43/ucode17.fw +%ghost /lib/firmware/b43/ucode19.fw +%ghost /lib/firmware/b43/ucode20.fw +%ghost /lib/firmware/b43/ucode22_sslpn.fw +%ghost /lib/firmware/b43/ucode5.fw %ghost /lib/firmware/b43/ucode9.fw # ghost b43legacy firmware %ghost /lib/firmware/b43legacy/a0g0bsinitvals2.fw diff --git a/install_bcm43xx_firmware b/install_bcm43xx_firmware index c2d92f1..9e82702 100644 --- a/install_bcm43xx_firmware +++ b/install_bcm43xx_firmware @@ -6,9 +6,9 @@ # WLAN cards using Broadcom's bcm43xx chips. # firmware for b43 -URL1=http://mirror2.openwrt.org/sources -FILE1=broadcom-wl-4.178.10.4.tar.bz2 -FIRMWARE1=broadcom-wl-4.178.10.4/linux/wl_apsta.o +URL1=http://www.lwfinger.com/b43-firmware +FILE1=broadcom-wl-5.10.144.3.tar.bz2 +FIRMWARE1=broadcom-wl-5.10.144.3/linux/wl_apsta.o # firmware for b43legacy URL2=http://downloads.openwrt.org/sources @@ -45,11 +45,15 @@ fi echo if [ -d /lib/firmware/b43 ] ; then echo "b43 firmware successfully installed." + /sbin/modprobe -r b43 + /sbin/modprobe b43 else echo "b43 firmware installation failed." fi if [ -d /lib/firmware/b43legacy ] ; then echo "b43legacy firmware successfully installed." + /sbin/modprobe -r b43legacy + /sbin/modprobe b43legacy else echo "b43legacy firmware installation failed." fi