diff --git a/b43-fwcutter-0001-fwcutter-Add-firmware-9.10.178.27.patch b/b43-fwcutter-0001-fwcutter-Add-firmware-9.10.178.27.patch new file mode 100644 index 0000000..f6ce7ce --- /dev/null +++ b/b43-fwcutter-0001-fwcutter-Add-firmware-9.10.178.27.patch @@ -0,0 +1,272 @@ +From: Sam Edwards +Date: Mon, 11 Sep 2017 17:46:39 -0600 +Subject: [PATCH] fwcutter: Add firmware 9.10.178.27 + +This firmware version was found in ASUS's GPL-released sources for the +Asus RT-AC1200G+ Wireless AC1200 Dual-Band Router. + +diff --git a/fwcutter/fwcutter_list.h b/fwcutter/fwcutter_list.h +index 6d87601..1f467a8 100644 +--- a/fwcutter/fwcutter_list.h ++++ b/fwcutter/fwcutter_list.h +@@ -944,6 +944,246 @@ static struct extract _29c8a47094fbae342902d84881a465ff[] = + EXTRACT_LIST_END + }; + ++static struct extract _97c20a19cc67f72db1904ec81c0722cc[] = ++{ ++ { .name = "lcn1bsinitvals26", .offset = 0x2EBA24, .type = EXT_IV, .length = 0x118 }, ++ { .name = "n0bsinitvals22", .offset = 0x3950F0, .type = EXT_IV, .length = 0x0 }, ++ { .name = "ac6bsinitvals46", .offset = 0x3344BC, .type = EXT_IV, .length = 0x0 }, ++ { .name = "lcn0bsinitvals26", .offset = 0x2EA9B4, .type = EXT_IV, .length = 0x118 }, ++ { .name = "ucode54", .offset = 0x3788A0, .type = EXT_UCODE_3, .length = 0x4 }, ++ { .name = "ac1bsinitvals42", .offset = 0x334254, .type = EXT_IV, .length = 0x248 }, ++ { .name = "ucode24_lcn", .offset = 0x2F9B00, .type = EXT_UCODE_3, .length = 0x88CD }, ++ /* ucode minor version at offset 0x38ff6c */ ++ { .name = "ht0bsinitvals26", .offset = 0x2EDB04, .type = EXT_IV, .length = 0x118 }, ++ { .name = "ucode24_mimo", .offset = 0x2EFDEC, .type = EXT_UCODE_3, .length = 0x9D10 }, ++ { .name = "ac33initvals65", .offset = 0x33B9AC, .type = EXT_IV, .length = 0x0 }, ++ { .name = "n20initvals36", .offset = 0x2EFD7C, .type = EXT_IV, .length = 0x0 }, ++ { .name = "ac8initvals48", .offset = 0x3344D4, .type = EXT_IV, .length = 0x1450 }, ++ { .name = "ucode50", .offset = 0x36B26C, .type = EXT_UCODE_3, .length = 0xD630 }, ++ { .name = "ucode15", .offset = 0x3F0318, .type = EXT_UCODE_3, .length = 0x71A0 }, ++ { .name = "ac27initvals58", .offset = 0x33B94C, .type = EXT_IV, .length = 0x0 }, ++ { .name = "ac32initvals64", .offset = 0x33B98C, .type = EXT_IV, .length = 0x0 }, ++ { .name = "b0g0bsinitvals9", .offset = 0x3D0788, .type = EXT_IV, .length = 0x118 }, ++ { .name = "lcn405initvals35", .offset = 0x2EFD6C, .type = EXT_IV, .length = 0x0 }, ++ { .name = "ac1initvals42", .offset = 0x332F4C, .type = EXT_IV, .length = 0x1300 }, ++ { .name = "ac7initvals47", .offset = 0x3344C4, .type = EXT_IV, .length = 0x0 }, ++ { .name = "lp0bsinitvals13", .offset = 0x3D42F8, .type = EXT_IV, .length = 0x118 }, ++ { .name = "b0g0bsinitvals5", .offset = 0x3CE528, .type = EXT_IV, .length = 0x118 }, ++ { .name = "ucode43", .offset = 0x352884, .type = EXT_UCODE_3, .length = 0x4 }, ++ { .name = "lp0initvals16", .offset = 0x392100, .type = EXT_IV, .length = 0xFA0 }, ++ { .name = "lp1bsinitvals20", .offset = 0x394120, .type = EXT_IV, .length = 0x0 }, ++ { .name = "lcn1initvals25", .offset = 0x2E6464, .type = EXT_IV, .length = 0x10D8 }, ++ { .name = "ucode49", .offset = 0x35FA50, .type = EXT_UCODE_3, .length = 0xB818 }, ++ { .name = "lcn407bsinitvals39", .offset = 0x2EFDC4, .type = EXT_IV, .length = 0x0 }, ++ { .name = "b0g0initvals13", .offset = 0x3D4418, .type = EXT_IV, .length = 0xBF0 }, ++ { .name = "lcn407initvals39", .offset = 0x2EFDBC, .type = EXT_IV, .length = 0x0 }, ++ { .name = "ac24initvals55", .offset = 0x33896C, .type = EXT_IV, .length = 0x1430 }, ++ { .name = "lcn402initvals33", .offset = 0x2EFD1C, .type = EXT_IV, .length = 0x0 }, ++ { .name = "sslpn3bsinitvals21", .offset = 0x394FC8, .type = EXT_IV, .length = 0x118 }, ++ { .name = "ac24bsinitvals55core1", .offset = 0x33A1AC, .type = EXT_IV, .length = 0x0 }, ++ { .name = "ac12bsinitvals50core1", .offset = 0x338954, .type = EXT_IV, .length = 0x0 }, ++ { .name = "ht0initvals29", .offset = 0x2EDC34, .type = EXT_IV, .length = 0xF98 }, ++ /* ERROR: Could not guess data type for: ucodex64 */ ++ { .name = "ac24initvals59", .offset = 0x33B96C, .type = EXT_IV, .length = 0x0 }, ++ { .name = "n2bsinitvals19", .offset = 0x3940D0, .type = EXT_IV, .length = 0x0 }, ++ { .name = "ac32bsinitvalsx64", .offset = 0x33B9A4, .type = EXT_IV, .length = 0x0 }, ++ { .name = "sslpn1bsinitvals20", .offset = 0x394110, .type = EXT_IV, .length = 0x0 }, ++ { .name = "ucode25_lcn", .offset = 0x30A730, .type = EXT_UCODE_3, .length = 0x8983 }, ++ { .name = "lcn0initvals24", .offset = 0x2E0A04, .type = EXT_IV, .length = 0x10F0 }, ++ { .name = "ac33initvalsx65", .offset = 0x33B9BC, .type = EXT_IV, .length = 0x0 }, ++ { .name = "ac36bsinitvals60", .offset = 0x33B984, .type = EXT_IV, .length = 0x0 }, ++ { .name = "lcn404initvals33", .offset = 0x2EFD3C, .type = EXT_IV, .length = 0x0 }, ++ { .name = "sslpn1bsinitvals27", .offset = 0x2EDC2C, .type = EXT_IV, .length = 0x0 }, ++ { .name = "a0g0bsinitvals4", .offset = 0x3CDB10, .type = EXT_IV, .length = 0x0 }, ++ { .name = "lcn404bsinitvals33", .offset = 0x2EFD44, .type = EXT_IV, .length = 0x0 }, ++ { .name = "ucode22_sslpn", .offset = 0x3CDAE0, .type = EXT_UCODE_3, .length = 0x1 }, ++ { .name = "lcn1bsinitvals25", .offset = 0x2E7544, .type = EXT_IV, .length = 0x118 }, ++ { .name = "lcn406initvals37", .offset = 0x2EFD9C, .type = EXT_IV, .length = 0x0 }, ++ { .name = "ac3initvals43", .offset = 0x3344A4, .type = EXT_IV, .length = 0x0 }, ++ { .name = "lcn2initvals26", .offset = 0x2EBB44, .type = EXT_IV, .length = 0xF48 }, ++ { .name = "b0g0initvals4", .offset = 0x3CDAF8, .type = EXT_IV, .length = 0x0 }, ++ { .name = "ucode20_sslpn", .offset = 0x3BF0F0, .type = EXT_UCODE_3, .length = 0x1 }, ++ { .name = "lcn403bsinitvals33", .offset = 0x2EFD34, .type = EXT_IV, .length = 0x0 }, ++ { .name = "a0g0bsinitvals9", .offset = 0x3D1E68, .type = EXT_IV, .length = 0x118 }, ++ { .name = "n0initvals17", .offset = 0x3931C8, .type = EXT_IV, .length = 0xDD8 }, ++ { .name = "ht0bsinitvals29", .offset = 0x2EEBD4, .type = EXT_IV, .length = 0x118 }, ++ { .name = "ucode21_sslpn", .offset = 0x3BF100, .type = EXT_UCODE_3, .length = 0x74EC }, ++ { .name = "ac6initvals46", .offset = 0x3344B4, .type = EXT_IV, .length = 0x0 }, ++ { .name = "ucode55", .offset = 0x3788A8, .type = EXT_UCODE_3, .length = 0xDEF0 }, ++ { .name = "sslpn1initvals20", .offset = 0x394108, .type = EXT_IV, .length = 0x0 }, ++ { .name = "sslpn0initvals16", .offset = 0x391038, .type = EXT_IV, .length = 0xFA0 }, ++ { .name = "lcn0initvals26", .offset = 0x2E9A64, .type = EXT_IV, .length = 0xF48 }, ++ { .name = "ucode27_sslpn", .offset = 0x31CF8C, .type = EXT_UCODE_3, .length = 0x1 }, ++ { .name = "ucode29_mimo", .offset = 0x31CF94, .type = EXT_UCODE_3, .length = 0xAAF8 }, ++ { .name = "ucode21_sslpn_nobt", .offset = 0x3C65F0, .type = EXT_UCODE_3, .length = 0x74EC }, ++ { .name = "lp0initvals15", .offset = 0x3D5E58, .type = EXT_IV, .length = 0xE68 }, ++ { .name = "ucode19_sslpn", .offset = 0x3BF0E0, .type = EXT_UCODE_3, .length = 0x1 }, ++ { .name = "lcn1bsinitvals24", .offset = 0x2E2D14, .type = EXT_IV, .length = 0x118 }, ++ { .name = "lcn401bsinitvals33", .offset = 0x2EFD14, .type = EXT_IV, .length = 0x0 }, ++ { .name = "ucode39_lcn40", .offset = 0x331A0C, .type = EXT_UCODE_3, .length = 0x1 }, ++ { .name = "lp0bsinitvals14", .offset = 0x3D5E50, .type = EXT_IV, .length = 0x0 }, ++ { .name = "b0g0bsinitvals4", .offset = 0x3CDB00, .type = EXT_IV, .length = 0x0 }, ++ { .name = "ucode16_sslpn_nobt", .offset = 0x3A5A40, .type = EXT_UCODE_3, .length = 0x6F4A }, ++ { .name = "n16bsinitvals30", .offset = 0x2EFBBC, .type = EXT_IV, .length = 0x118 }, ++ { .name = "a0g1bsinitvals13", .offset = 0x3D5D28, .type = EXT_IV, .length = 0x118 }, ++ { .name = "lcn402bsinitvals33", .offset = 0x2EFD24, .type = EXT_IV, .length = 0x0 }, ++ { .name = "ac20initvals54", .offset = 0x33895C, .type = EXT_IV, .length = 0x0 }, ++ { .name = "ucode19_sslpn_nobt", .offset = 0x3BF0E8, .type = EXT_UCODE_3, .length = 0x1 }, ++ { .name = "ucode40", .offset = 0x33B9CC, .type = EXT_UCODE_3, .length = 0xB660 }, ++ { .name = "lcn1initvals24", .offset = 0x2E1C1C, .type = EXT_IV, .length = 0x10F0 }, ++ { .name = "sslpn2initvals19", .offset = 0x3940D8, .type = EXT_IV, .length = 0x0 }, ++ { .name = "ac26initvals58", .offset = 0x33B95C, .type = EXT_IV, .length = 0x0 }, ++ { .name = "ac2initvals41", .offset = 0x332F3C, .type = EXT_IV, .length = 0x0 }, ++ { .name = "ac7bsinitvals47", .offset = 0x3344CC, .type = EXT_IV, .length = 0x0 }, ++ { .name = "ac33bsinitvals65", .offset = 0x33B9B4, .type = EXT_IV, .length = 0x0 }, ++ { .name = "n16initvals30", .offset = 0x2EECF4, .type = EXT_IV, .length = 0xEC0 }, ++ { .name = "ucode16_lp", .offset = 0x395118, .type = EXT_UCODE_3, .length = 0x8300 }, ++ { .name = "ac32bsinitvals64", .offset = 0x33B994, .type = EXT_IV, .length = 0x0 }, ++ { .name = "n0initvals22", .offset = 0x3950E8, .type = EXT_IV, .length = 0x0 }, ++ { .name = "ucode58_D11a", .offset = 0x38FF38, .type = EXT_UCODE_3, .length = 0x4 }, ++ { .name = "lcn201bsinitvals39", .offset = 0x2EFDE4, .type = EXT_IV, .length = 0x0 }, ++ { .name = "sslpn3initvals21", .offset = 0x394128, .type = EXT_IV, .length = 0xE98 }, ++ { .name = "lp1initvals22", .offset = 0x395108, .type = EXT_IV, .length = 0x0 }, ++ { .name = "ac2bsinitvals41", .offset = 0x332F44, .type = EXT_IV, .length = 0x0 }, ++ { .name = "ucode39_lcn20", .offset = 0x331A14, .type = EXT_UCODE_3, .length = 0x1 }, ++ { .name = "a0g1bsinitvals9", .offset = 0x3D1F88, .type = EXT_IV, .length = 0x118 }, ++ { .name = "n0bsinitvals11", .offset = 0x3D2CC0, .type = EXT_IV, .length = 0x118 }, ++ { .name = "ucode58_D11b", .offset = 0x38FF30, .type = EXT_UCODE_3, .length = 0x4 }, ++ /* ERROR: Could not guess data type for: ucodex65 */ ++ { .name = "lcn200initvals39", .offset = 0x2EFDCC, .type = EXT_IV, .length = 0x0 }, ++ { .name = "a0g1bsinitvals5", .offset = 0x3CFB88, .type = EXT_IV, .length = 0x118 }, ++ { .name = "lcn2bsinitvals26", .offset = 0x2ECA94, .type = EXT_IV, .length = 0x118 }, ++ { .name = "ac20bsinitvals54", .offset = 0x338964, .type = EXT_IV, .length = 0x0 }, ++ { .name = "ucode34_mimo", .offset = 0x3319E4, .type = EXT_UCODE_3, .length = 0x4 }, ++ { .name = "ucode65", .offset = 0x38FF58, .type = EXT_UCODE_3, .length = 0x4 }, ++ { .name = "n1initvals20", .offset = 0x3940F8, .type = EXT_IV, .length = 0x0 }, ++ { .name = "lcn2initvals25", .offset = 0x2E7664, .type = EXT_IV, .length = 0x10D8 }, ++ { .name = "ucode37_lcn40", .offset = 0x3319FC, .type = EXT_UCODE_3, .length = 0x1 }, ++ { .name = "n0initvals16", .offset = 0x38FF70, .type = EXT_IV, .length = 0xFA0 }, ++ { .name = "ac32initvalsx64", .offset = 0x33B99C, .type = EXT_IV, .length = 0x0 }, ++ { .name = "n0bsinitvals24", .offset = 0x2E5144, .type = EXT_IV, .length = 0x118 }, ++ { .name = "n1bsinitvals20", .offset = 0x394100, .type = EXT_IV, .length = 0x0 }, ++ { .name = "b0g0initvals5", .offset = 0x3CDB18, .type = EXT_IV, .length = 0xA08 }, ++ { .name = "ac9initvals49", .offset = 0x335B7C, .type = EXT_IV, .length = 0x13B8 }, ++ { .name = "b0g0initvals9", .offset = 0x3CFCA8, .type = EXT_IV, .length = 0xAD8 }, ++ { .name = "lcn0bsinitvals24", .offset = 0x2E1AFC, .type = EXT_IV, .length = 0x118 }, ++ { .name = "ac12initvals50core1", .offset = 0x33854C, .type = EXT_IV, .length = 0x1B0 }, ++ { .name = "lcn2bsinitvals25", .offset = 0x2E8744, .type = EXT_IV, .length = 0x118 }, ++ { .name = "ac9bsinitvals49", .offset = 0x336F3C, .type = EXT_IV, .length = 0x248 }, ++ { .name = "sslpn4bsinitvals22", .offset = 0x395100, .type = EXT_IV, .length = 0x0 }, ++ { .name = "ac27bsinitvals58", .offset = 0x33B954, .type = EXT_IV, .length = 0x0 }, ++ { .name = "ucode11", .offset = 0x3E1DD0, .type = EXT_UCODE_2, .length = 0x7868 }, ++ { .name = "ucode56", .offset = 0x38679C, .type = EXT_UCODE_3, .length = 0x9788 }, ++ { .name = "n2initvals19", .offset = 0x3940C8, .type = EXT_IV, .length = 0x0 }, ++ { .name = "a0g0initvals4", .offset = 0x3CDB08, .type = EXT_IV, .length = 0x0 }, ++ { .name = "pcm4", .offset = 0x3F74BC, .type = EXT_PCM, .length = 0x4 }, ++ { .name = "ucode13", .offset = 0x3E963C, .type = EXT_UCODE_2, .length = 0x6CD0 }, ++ { .name = "lcn0initvals25", .offset = 0x2E5264, .type = EXT_IV, .length = 0x10D8 }, ++ { .name = "ac33bsinitvalsx65", .offset = 0x33B9C4, .type = EXT_IV, .length = 0x0 }, ++ { .name = "sslpn1initvals27", .offset = 0x2EDC24, .type = EXT_IV, .length = 0x0 }, ++ { .name = "ac8bsinitvals48", .offset = 0x33592C, .type = EXT_IV, .length = 0x248 }, ++ { .name = "lp0bsinitvals15", .offset = 0x3D6CC8, .type = EXT_IV, .length = 0x118 }, ++ { .name = "lp0initvals14", .offset = 0x3D5E48, .type = EXT_IV, .length = 0x0 }, ++ { .name = "ac12bsinitvals50", .offset = 0x338704, .type = EXT_IV, .length = 0x248 }, ++ { .name = "lp1bsinitvals22", .offset = 0x395110, .type = EXT_IV, .length = 0x0 }, ++ { .name = "n18initvals32", .offset = 0x2EFCEC, .type = EXT_IV, .length = 0x0 }, ++ { .name = "lcn405bsinitvals35", .offset = 0x2EFD74, .type = EXT_IV, .length = 0x0 }, ++ { .name = "ucode41", .offset = 0x347030, .type = EXT_UCODE_3, .length = 0x4 }, ++ { .name = "lcn400initvals33", .offset = 0x2EFCFC, .type = EXT_IV, .length = 0x0 }, ++ { .name = "sslpn0bsinitvals16", .offset = 0x391FE0, .type = EXT_IV, .length = 0x118 }, ++ { .name = "ucode47", .offset = 0x352894, .type = EXT_UCODE_3, .length = 0x4 }, ++ { .name = "lcn201initvals39", .offset = 0x2EFDDC, .type = EXT_IV, .length = 0x0 }, ++ /* ucode minor version at offset 0x3cdaf4 */ ++ { .name = "lcn401initvals33", .offset = 0x2EFD0C, .type = EXT_IV, .length = 0x0 }, ++ { .name = "ucode33_lcn40", .offset = 0x3319DC, .type = EXT_UCODE_3, .length = 0x1 }, ++ { .name = "a0g1initvals9", .offset = 0x3D1388, .type = EXT_IV, .length = 0xAD8 }, ++ { .name = "ucode32_mimo", .offset = 0x3319D4, .type = EXT_UCODE_3, .length = 0x4 }, ++ { .name = "lcn400bsinitvals33", .offset = 0x2EFD04, .type = EXT_IV, .length = 0x0 }, ++ { .name = "lcn404bsinitvals35", .offset = 0x2EFD64, .type = EXT_IV, .length = 0x0 }, ++ /* ucode major version at offset 0x2e09fc */ ++ { .name = "n19initvals34", .offset = 0x2EFD4C, .type = EXT_IV, .length = 0x0 }, ++ { .name = "ac3bsinitvals43", .offset = 0x3344AC, .type = EXT_IV, .length = 0x0 }, ++ { .name = "ucode31_mimo", .offset = 0x3319CC, .type = EXT_UCODE_3, .length = 0x4 }, ++ { .name = "n0initvals25", .offset = 0x2E8864, .type = EXT_IV, .length = 0x10D8 }, ++ { .name = "ac12initvals50", .offset = 0x33718C, .type = EXT_IV, .length = 0x13B8 }, ++ { .name = "ucode26_mimo", .offset = 0x3130B8, .type = EXT_UCODE_3, .length = 0x9ED0 }, ++ { .name = "n0bsinitvals16", .offset = 0x390F18, .type = EXT_IV, .length = 0x118 }, ++ { .name = "lcn404initvals35", .offset = 0x2EFD5C, .type = EXT_IV, .length = 0x0 }, ++ { .name = "lp2bsinitvals19", .offset = 0x3940F0, .type = EXT_IV, .length = 0x0 }, ++ { .name = "n22bsinitvals36", .offset = 0x2EFD94, .type = EXT_IV, .length = 0x0 }, ++ { .name = "ucode60", .offset = 0x38FF40, .type = EXT_UCODE_3, .length = 0x4 }, ++ { .name = "ac24initvals55core1", .offset = 0x339DA4, .type = EXT_IV, .length = 0x1B0 }, ++ { .name = "n19bsinitvals34", .offset = 0x2EFD54, .type = EXT_IV, .length = 0x0 }, ++ { .name = "ucode4", .offset = 0x3D6DE8, .type = EXT_UCODE_1, .length = 0x4 }, ++ { .name = "ucode64", .offset = 0x38FF48, .type = EXT_UCODE_3, .length = 0x4 }, ++ { .name = "ucode20_sslpn_nobt", .offset = 0x3BF0F8, .type = EXT_UCODE_3, .length = 0x1 }, ++ { .name = "ac0bsinitvals40", .offset = 0x332CEC, .type = EXT_IV, .length = 0x248 }, ++ { .name = "lcn2initvals24", .offset = 0x2E2E34, .type = EXT_IV, .length = 0x10F0 }, ++ { .name = "sslpn4initvals22", .offset = 0x3950F8, .type = EXT_IV, .length = 0x0 }, ++ /* ucode major version at offset 0x38ff68 */ ++ { .name = "sslpn2bsinitvals19", .offset = 0x3940E0, .type = EXT_IV, .length = 0x0 }, ++ { .name = "n0bsinitvals25", .offset = 0x2E9944, .type = EXT_IV, .length = 0x118 }, ++ { .name = "lp2initvals19", .offset = 0x3940E8, .type = EXT_IV, .length = 0x0 }, ++ { .name = "n18bsinitvals32", .offset = 0x2EFCF4, .type = EXT_IV, .length = 0x0 }, ++ { .name = "lcn0bsinitvals25", .offset = 0x2E6344, .type = EXT_IV, .length = 0x118 }, ++ { .name = "n0initvals11", .offset = 0x3D20A8, .type = EXT_IV, .length = 0xC10 }, ++ { .name = "lcn2bsinitvals24", .offset = 0x2E3F2C, .type = EXT_IV, .length = 0x118 }, ++ /* ucode major version at offset 0x3cdaf0 */ ++ { .name = "n0absinitvals11", .offset = 0x3D2DE0, .type = EXT_IV, .length = 0x118 }, ++ { .name = "a0g0initvals5", .offset = 0x3CE648, .type = EXT_IV, .length = 0xA08 }, ++ { .name = "a0g1initvals13", .offset = 0x3D5130, .type = EXT_IV, .length = 0xBF0 }, ++ { .name = "pcm5", .offset = 0x3F74C4, .type = EXT_PCM, .length = 0x520 }, ++ { .name = "ucode35_lcn40", .offset = 0x3319EC, .type = EXT_UCODE_3, .length = 0x1 }, ++ { .name = "ucode14", .offset = 0x3F0310, .type = EXT_UCODE_2, .length = 0x4 }, ++ { .name = "ucode36_mimo", .offset = 0x3319F4, .type = EXT_UCODE_3, .length = 0x4 }, ++ { .name = "a0g0initvals9", .offset = 0x3D08A8, .type = EXT_IV, .length = 0xAD8 }, ++ { .name = "ucode59", .offset = 0x38FF28, .type = EXT_UCODE_3, .length = 0x4 }, ++ { .name = "ucode17_mimo", .offset = 0x3B62DC, .type = EXT_UCODE_3, .length = 0x8E00 }, ++ { .name = "lp0initvals13", .offset = 0x3D2F00, .type = EXT_IV, .length = 0x13F0 }, ++ { .name = "ucode25_mimo", .offset = 0x3023D4, .type = EXT_UCODE_3, .length = 0x8358 }, ++ { .name = "lp0bsinitvals16", .offset = 0x3930A8, .type = EXT_IV, .length = 0x118 }, ++ { .name = "lcn406bsinitvals37", .offset = 0x2EFDA4, .type = EXT_IV, .length = 0x0 }, ++ { .name = "ac0initvals40", .offset = 0x331A24, .type = EXT_IV, .length = 0x12C0 }, ++ { .name = "ucode30_mimo", .offset = 0x327A90, .type = EXT_UCODE_3, .length = 0x9F38 }, ++ { .name = "b0g0bsinitvals13", .offset = 0x3D5010, .type = EXT_IV, .length = 0x118 }, ++ { .name = "n20bsinitvals36", .offset = 0x2EFD84, .type = EXT_IV, .length = 0x0 }, ++ { .name = "ucode42", .offset = 0x347038, .type = EXT_UCODE_3, .length = 0xB848 }, ++ /* ucode minor version at offset 0x331a20 */ ++ { .name = "ucode46", .offset = 0x35288C, .type = EXT_UCODE_3, .length = 0x4 }, ++ { .name = "ac24bsinitvals56core1", .offset = 0x33B944, .type = EXT_IV, .length = 0x0 }, ++ /* ucode major version at offset 0x331a1c */ ++ { .name = "ucode48", .offset = 0x35289C, .type = EXT_UCODE_3, .length = 0xD1B0 }, ++ { .name = "lcn407initvals38", .offset = 0x2EFDAC, .type = EXT_IV, .length = 0x0 }, ++ { .name = "lcn1initvals26", .offset = 0x2EAAD4, .type = EXT_IV, .length = 0xF48 }, ++ { .name = "ht0initvals26", .offset = 0x2ECBB4, .type = EXT_IV, .length = 0xF48 }, ++ { .name = "ac26bsinitvals58", .offset = 0x33B964, .type = EXT_IV, .length = 0x0 }, ++ { .name = "ucode38_lcn40", .offset = 0x331A04, .type = EXT_UCODE_3, .length = 0x1 }, ++ { .name = "ac24bsinitvals55", .offset = 0x339F5C, .type = EXT_IV, .length = 0x248 }, ++ { .name = "lcn407bsinitvals38", .offset = 0x2EFDB4, .type = EXT_IV, .length = 0x0 }, ++ { .name = "ac24initvals56core1", .offset = 0x33B53C, .type = EXT_IV, .length = 0x1B0 }, ++ { .name = "lcn403initvals33", .offset = 0x2EFD2C, .type = EXT_IV, .length = 0x0 }, ++ { .name = "ac24bsinitvals59", .offset = 0x33B974, .type = EXT_IV, .length = 0x0 }, ++ { .name = "ac24bsinitvals56", .offset = 0x33B6F4, .type = EXT_IV, .length = 0x248 }, ++ { .name = "ucode16_sslpn", .offset = 0x39D41C, .type = EXT_UCODE_3, .length = 0x861F }, ++ { .name = "ucode16_mimo", .offset = 0x3AC990, .type = EXT_UCODE_3, .length = 0x9948 }, ++ /* ucode minor version at offset 0x2e0a00 */ ++ { .name = "ac36initvals60", .offset = 0x33B97C, .type = EXT_IV, .length = 0x0 }, ++ { .name = "ac24initvals56", .offset = 0x33A1B4, .type = EXT_IV, .length = 0x1380 }, ++ { .name = "n0bsinitvals17", .offset = 0x393FA8, .type = EXT_IV, .length = 0x118 }, ++ { .name = "n22initvals36", .offset = 0x2EFD8C, .type = EXT_IV, .length = 0x0 }, ++ { .name = "a0g1initvals5", .offset = 0x3CF058, .type = EXT_IV, .length = 0xA08 }, ++ { .name = "n0initvals24", .offset = 0x2E404C, .type = EXT_IV, .length = 0x10F0 }, ++ { .name = "lp1initvals20", .offset = 0x394118, .type = EXT_IV, .length = 0x0 }, ++ { .name = "lcn200bsinitvals39", .offset = 0x2EFDD4, .type = EXT_IV, .length = 0x0 }, ++ { .name = "a0g0bsinitvals5", .offset = 0x3CFA68, .type = EXT_IV, .length = 0x118 }, ++ { .name = "ucode9", .offset = 0x3DBFD4, .type = EXT_UCODE_2, .length = 0x5DF8 }, ++ { .name = "ucode5", .offset = 0x3D6DF0, .type = EXT_UCODE_2, .length = 0x51E0 }, ++ { .name = "ucode22_mimo", .offset = 0x3CDAE8, .type = EXT_UCODE_3, .length = 0x4 }, ++ { .name = "n22bsinitvals31", .offset = 0x2EFCE4, .type = EXT_IV, .length = 0x0 }, ++ { .name = "n22initvals31", .offset = 0x2EFCDC, .type = EXT_IV, .length = 0x0 }, ++ 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. +@@ -1056,4 +1296,13 @@ static const struct file files[] = + .flags = FW_FLAG_LE | FW_FLAG_V4, + .extract = _29c8a47094fbae342902d84881a465ff, + }, ++ { ++ /* http://dlcdnet.asus.com/pub/ASUS/wireless/RT-AC1200G+/GPL_RT_AC1200G_Plus_30043807743.zip */ ++ /* contains firmware 9.10.178.27 */ ++ .name = "wl_apsta.o", ++ .ucode_version = "1058.102", ++ .md5 = "97c20a19cc67f72db1904ec81c0722cc", ++ .flags = FW_FLAG_LE | FW_FLAG_V4, ++ .extract = _97c20a19cc67f72db1904ec81c0722cc, ++ }, + }; diff --git a/b43-fwcutter-0002-fwcutter-make-Avoid-_DEFAULT_SOURCE-warning.patch b/b43-fwcutter-0002-fwcutter-make-Avoid-_DEFAULT_SOURCE-warning.patch new file mode 100644 index 0000000..b1a22bf --- /dev/null +++ b/b43-fwcutter-0002-fwcutter-make-Avoid-_DEFAULT_SOURCE-warning.patch @@ -0,0 +1,19 @@ +From: Michael Buesch +Date: Wed, 13 Sep 2017 18:05:19 +0200 +Subject: [PATCH] fwcutter/make: Avoid _DEFAULT_SOURCE warning + +Signed-off-by: Michael Buesch + +diff --git a/fwcutter/Makefile b/fwcutter/Makefile +index 264b97d..5a5b8ec 100644 +--- a/fwcutter/Makefile ++++ b/fwcutter/Makefile +@@ -17,7 +17,7 @@ endif + + PREFIX ?= /usr/local + CFLAGS ?= -Os -fomit-frame-pointer +-CFLAGS += -std=c99 -Wall -pedantic -D_BSD_SOURCE ++CFLAGS += -std=c99 -Wall -pedantic -D_BSD_SOURCE -D_DEFAULT_SOURCE + LDFLAGS ?= + + SRCS = fwcutter.c md5.c diff --git a/b43-fwcutter.spec b/b43-fwcutter.spec index 69f1e46..192154c 100644 --- a/b43-fwcutter.spec +++ b/b43-fwcutter.spec @@ -1,13 +1,13 @@ Name: b43-fwcutter Version: 019 -Release: 26%{?dist} +Release: %autorelease Summary: Firmware extraction tool for Broadcom wireless driver - License: BSD URL: http://bues.ch/b43/fwcutter/ Source0: http://bues.ch/b43/fwcutter/%{name}-%{version}.tar.bz2 Source1: README.too - +Patch1: b43-fwcutter-0001-fwcutter-Add-firmware-9.10.178.27.patch +Patch2: b43-fwcutter-0002-fwcutter-make-Avoid-_DEFAULT_SOURCE-warning.patch BuildRequires: gcc BuildRequires: make @@ -19,7 +19,7 @@ See the README.too file shipped in the package's documentation for instructions on using this tool. %prep -%setup -q +%autosetup -p1 cp %{SOURCE1} . diff --git a/sources b/sources index d00f1dd..76b428e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -19d1f4226a625756726bdf7ed5dc2a0a b43-fwcutter-019.tar.bz2 +SHA512 (b43-fwcutter-019.tar.bz2) = 2a439d1583d1ee7b13dd6a7526b78b216073e044c3934adf6615b8d2ca9a4b8c74db9791182d27baf1690b5c5ff6ce1a9c8dd4fb796e47939d055fef5bb37960