X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=fwcutter%2Ffwcutter_list.h;h=5175bbd72f7168a48a12ec58f6107f7da70a0a0d;hb=58f016da560c96ca5ef4b344952dc8cd73dece5c;hp=e7493ec2b6fb00cdaa71c3edeeba3a21245517d1;hpb=c1fb7fc217aa2c0496cf611c7df32b91d9e0923a;p=b43-tools.git diff --git a/fwcutter/fwcutter_list.h b/fwcutter/fwcutter_list.h index e7493ec..5175bbd 100644 --- a/fwcutter/fwcutter_list.h +++ b/fwcutter/fwcutter_list.h @@ -1,3 +1,10 @@ +/* + * Extraction of core 4 firmware from V4 drivers has been commented out as these + * cores will not work with driver b43. + * + * In contrast, extraction of core 5 firmware from V3 drivers should be retained + * as those devices will work with b43legacy and are useful for testing. + */ /* file member lists */ static struct extract _e08665c5c5b66beb9c3b2dd54aa80cb3[] = @@ -23,16 +30,22 @@ static struct extract _e08665c5c5b66beb9c3b2dd54aa80cb3[] = static struct extract _9207bc565c2fc9fa1591f6c7911d3fc0[] = { - { .name = "ucode4", .offset = 0x66220 + 0x7ad8, .length = 0x4e68, .type = EXT_UCODE_1, }, +/* + * { .name = "ucode4", .offset = 0x66220 + 0x7ad8, .length = 0x4e68, .type = EXT_UCODE_1, }, + */ { .name = "ucode5", .offset = 0x66220 + 0xc944, .length = 0x5640, .type = EXT_UCODE_2, }, { .name = "ucode11", .offset = 0x66220 + 0x11f90, .length = 0x67e0, .type = EXT_UCODE_2, }, { .name = "ucode13", .offset = 0x66220 + 0x18774, .length = 0x5f60, .type = EXT_UCODE_2, }, - { .name = "pcm4", .offset = 0x66220 + 0x1e6d8, .length = 0x520, .type = EXT_PCM, }, +/* + * { .name = "pcm4", .offset = 0x66220 + 0x1e6d8, .length = 0x520, .type = EXT_PCM, }, + */ { .name = "pcm5", .offset = 0x66220 + 0x1ebfc, .length = 0x520, .type = EXT_PCM, }, - { .name = "b0g0initvals4", .offset = 0x66220 + 0x1710, .length = 0xe90 - 8, .type = EXT_IV, }, - { .name = "b0g0bsinitvals4", .offset = 0x66220 + 0x25a0, .length = 0x18 - 8, .type = EXT_IV, }, - { .name = "a0g0initvals4", .offset = 0x66220 + 0x25b8, .length = 0xe90 - 8, .type = EXT_IV, }, - { .name = "a0g0bsinitvals4", .offset = 0x66220 + 0x3448, .length = 0x18 - 8, .type = EXT_IV, }, +/* + * { .name = "b0g0initvals4", .offset = 0x66220 + 0x1710, .length = 0xe90 - 8, .type = EXT_IV, }, + * { .name = "b0g0bsinitvals4", .offset = 0x66220 + 0x25a0, .length = 0x18 - 8, .type = EXT_IV, }, + * { .name = "a0g0initvals4", .offset = 0x66220 + 0x25b8, .length = 0xe90 - 8, .type = EXT_IV, }, + * { .name = "a0g0bsinitvals4", .offset = 0x66220 + 0x3448, .length = 0x18 - 8, .type = EXT_IV, }, + */ { .name = "b0g0initvals5", .offset = 0x66220 + 0x3460, .length = 0xa28 - 8, .type = EXT_IV, }, { .name = "b0g0bsinitvals5", .offset = 0x66220 + 0x3e88, .length = 0x100 - 8, .type = EXT_IV, }, { .name = "a0g0initvals5", .offset = 0x66220 + 0x3f88, .length = 0xa28 - 8, .type = EXT_IV, }, @@ -50,16 +63,22 @@ static struct extract _9207bc565c2fc9fa1591f6c7911d3fc0[] = static struct extract _722e2e0d8cc04b8f118bb5afe6829ff9[] = { - { .name = "ucode4", .offset = 0x76a10 + 0x8960, .length = 0x4e68, .type = EXT_UCODE_1, }, +/* + * { .name = "ucode4", .offset = 0x76a10 + 0x8960, .length = 0x4e68, .type = EXT_UCODE_1, }, + */ { .name = "ucode5", .offset = 0x76a10 + 0xd7cc, .length = 0x5640, .type = EXT_UCODE_2, }, { .name = "ucode11", .offset = 0x76a10 + 0x12e18, .length = 0x67e0, .type = EXT_UCODE_2, }, { .name = "ucode13", .offset = 0x76a10 + 0x195fc, .length = 0x5f60, .type = EXT_UCODE_2, }, - { .name = "pcm4", .offset = 0x76a10 + 0x1f560, .length = 0x520, .type = EXT_PCM, }, +/* + * { .name = "pcm4", .offset = 0x76a10 + 0x1f560, .length = 0x520, .type = EXT_PCM, }, + */ { .name = "pcm5", .offset = 0x76a10 + 0x1fa84, .length = 0x520, .type = EXT_PCM, }, - { .name = "b0g0initvals4", .offset = 0x76a10 + 0x1840, .length = 0xe90 - 8, .type = EXT_IV, }, - { .name = "b0g0bsinitvals4", .offset = 0x76a10 + 0x26d0, .length = 0x18 - 8, .type = EXT_IV, }, - { .name = "a0g0initvals4", .offset = 0x76a10 + 0x26e8, .length = 0xe90 - 8, .type = EXT_IV, }, - { .name = "a0g0bsinitvals4", .offset = 0x76a10 + 0x3578, .length = 0x18 - 8, .type = EXT_IV, }, +/* + * { .name = "b0g0initvals4", .offset = 0x76a10 + 0x1840, .length = 0xe90 - 8, .type = EXT_IV, }, + * { .name = "b0g0bsinitvals4", .offset = 0x76a10 + 0x26d0, .length = 0x18 - 8, .type = EXT_IV, }, + * { .name = "a0g0initvals4", .offset = 0x76a10 + 0x26e8, .length = 0xe90 - 8, .type = EXT_IV, }, + * { .name = "a0g0bsinitvals4", .offset = 0x76a10 + 0x3578, .length = 0x18 - 8, .type = EXT_IV, }, + */ { .name = "b0g0initvals5", .offset = 0x76a10 + 0x3590, .length = 0xa28 - 8, .type = EXT_IV, }, { .name = "b0g0bsinitvals5", .offset = 0x76a10 + 0x3fb8, .length = 0x100 - 8, .type = EXT_IV, }, { .name = "a0g0initvals5", .offset = 0x76a10 + 0x40b8, .length = 0xa28 - 8, .type = EXT_IV, }, @@ -116,14 +135,18 @@ static struct extract _1e4763b4cb8cfbaae43e5c6d3d6b2ae7[] = static struct extract _cb8d70972b885b1f8883b943c0261a3c[] = { { .name = "pcm5", .offset = 0x8e554, .type = EXT_PCM, .length = 0x520 }, - { .name = "pcm4", .offset = 0x8ea78, .type = EXT_PCM, .length = 0x520 }, +/* + * { .name = "pcm4", .offset = 0x8ea78, .type = EXT_PCM, .length = 0x520 }, + */ { .name = "ucode15", .offset = 0x8ef9c, .type = EXT_UCODE_3, .length = 0x7710 }, { .name = "ucode14", .offset = 0x966b0, .type = EXT_UCODE_2, .length = 0x7a90 }, { .name = "ucode13", .offset = 0x9e144, .type = EXT_UCODE_2, .length = 0x7de0 }, { .name = "ucode11", .offset = 0xa5f28, .type = EXT_UCODE_2, .length = 0x74a0 }, { .name = "ucode9", .offset = 0xad3cc, .type = EXT_UCODE_2, .length = 0x6240 }, { .name = "ucode5", .offset = 0xb3610, .type = EXT_UCODE_2, .length = 0x5768 }, - { .name = "ucode4", .offset = 0xb8d7c, .type = EXT_UCODE_1, .length = 0x4ec8 }, +/* + * { .name = "ucode4", .offset = 0xb8d7c, .type = EXT_UCODE_1, .length = 0x4ec8 }, + */ { .name = "lp0bsinitvals15", .offset = 0xbdc44, .type = EXT_IV, .length = 0xf8 }, { .name = "lp0initvals15", .offset = 0xbdd44, .type = EXT_IV, .length = 0xb30 }, { .name = "lp0bsinitvals14", .offset = 0xbe87c, .type = EXT_IV, .length = 0xf8 }, @@ -149,10 +172,12 @@ static struct extract _cb8d70972b885b1f8883b943c0261a3c[] = { .name = "a0g0initvals5", .offset = 0xc5f24, .type = EXT_IV, .length = 0xa08 }, { .name = "b0g0bsinitvals5", .offset = 0xc6934, .type = EXT_IV, .length = 0xf8 }, { .name = "b0g0initvals5", .offset = 0xc6a34, .type = EXT_IV, .length = 0xa08 }, - { .name = "a0g0bsinitvals4", .offset = 0xc7444, .type = EXT_IV, .length = 0x10 }, - { .name = "a0g0initvals4", .offset = 0xc745c, .type = EXT_IV, .length = 0xe88 }, - { .name = "b0g0bsinitvals4", .offset = 0xc82ec, .type = EXT_IV, .length = 0x10 }, - { .name = "b0g0initvals4", .offset = 0xc8304, .type = EXT_IV, .length = 0xe8c }, +/* + * { .name = "a0g0bsinitvals4", .offset = 0xc7444, .type = EXT_IV, .length = 0x10 }, + * { .name = "a0g0initvals4", .offset = 0xc745c, .type = EXT_IV, .length = 0xe88 }, + * { .name = "b0g0bsinitvals4", .offset = 0xc82ec, .type = EXT_IV, .length = 0x10 }, + * { .name = "b0g0initvals4", .offset = 0xc8304, .type = EXT_IV, .length = 0xe8c }, + */ EXTRACT_LIST_END }; @@ -213,6 +238,108 @@ static struct extract _2dd738b8feb8b3559fd9d8fbaf3bfffc[] = 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 _bb8537e3204a1ea5903fe3e66b5e2763[] = +{ + /* ucode major version at offset 0xa8b70 */ + /* ucode minor version at offset 0xa8b74 */ + /* { .name = "ucode4", .offset = 0xB6108, .type = EXT_UCODE_1, .length = 0x4EA0 }, */ + /* { .name = "pcm4", .offset = 0xEF2E0, .type = EXT_PCM, .length = 0x520 }, */ + /* { .name = "b0g0initvals4", .offset = 0xA8B78, .type = EXT_IV, .length = 0xE80 }, */ + /* { .name = "a0g0bsinitvals4", .offset = 0xAA8C0, .type = EXT_IV, .length = 0x30 }, */ + /* { .name = "b0g0bsinitvals4", .offset = 0xA9A00, .type = EXT_IV, .length = 0x30 }, */ + /* { .name = "a0g0initvals4", .offset = 0xA9A38, .type = EXT_IV, .length = 0xE80 }, */ + { .name = "ucode5", .offset = 0xBAFAC, .type = EXT_UCODE_2, .length = 0x56F0 }, + { .name = "pcm5", .offset = 0xEF804, .type = EXT_PCM, .length = 0x520 }, + { .name = "b0g0bsinitvals5", .offset = 0xAB318, .type = EXT_IV, .length = 0x118 }, + { .name = "a0g0bsinitvals5", .offset = 0xAC878, .type = EXT_IV, .length = 0x118 }, + { .name = "b0g0initvals5", .offset = 0xAA8F8, .type = EXT_IV, .length = 0xA18 }, + { .name = "a0g1initvals5", .offset = 0xABE58, .type = EXT_IV, .length = 0xA18 }, + { .name = "a0g0initvals5", .offset = 0xAB438, .type = EXT_IV, .length = 0xA18 }, + { .name = "a0g1bsinitvals5", .offset = 0xAC998, .type = EXT_IV, .length = 0x118 }, + { .name = "ucode9", .offset = 0xC06A0, .type = EXT_UCODE_2, .length = 0x6248 }, + { .name = "a0g1initvals9", .offset = 0xAE1C8, .type = EXT_IV, .length = 0xAF0 }, + { .name = "a0g0bsinitvals9", .offset = 0xAECC0, .type = EXT_IV, .length = 0x118 }, + { .name = "b0g0bsinitvals9", .offset = 0xAD5B0, .type = EXT_IV, .length = 0x118 }, + { .name = "b0g0initvals9", .offset = 0xACAB8, .type = EXT_IV, .length = 0xAF0 }, + { .name = "a0g1bsinitvals9", .offset = 0xAEDE0, .type = EXT_IV, .length = 0x118 }, + { .name = "a0g0initvals9", .offset = 0xAD6D0, .type = EXT_IV, .length = 0xAF0 }, + { .name = "ucode11", .offset = 0xC68EC, .type = EXT_UCODE_2, .length = 0x8000 }, + { .name = "n0bsinitvals11", .offset = 0xAFAD0, .type = EXT_IV, .length = 0x118 }, + { .name = "n0absinitvals11", .offset = 0xAFBF0, .type = EXT_IV, .length = 0x118 }, + { .name = "n0initvals11", .offset = 0xAEF00, .type = EXT_IV, .length = 0xBC8 }, + { .name = "ucode13", .offset = 0xCE8F0, .type = EXT_UCODE_2, .length = 0x7AC8 }, + { .name = "b0g0initvals13", .offset = 0xB11D0, .type = EXT_IV, .length = 0xB98 }, + { .name = "a0g1bsinitvals13", .offset = 0xB2A30, .type = EXT_IV, .length = 0x118 }, + { .name = "a0g1initvals13", .offset = 0xB1E90, .type = EXT_IV, .length = 0xB98 }, + { .name = "lp0bsinitvals13", .offset = 0xB10B0, .type = EXT_IV, .length = 0x118 }, + { .name = "b0g0bsinitvals13", .offset = 0xB1D70, .type = EXT_IV, .length = 0x118 }, + { .name = "lp0initvals13", .offset = 0xAFD10, .type = EXT_IV, .length = 0x1398 }, + { .name = "ucode14", .offset = 0xD63BC, .type = EXT_UCODE_2, .length = 0x7910 }, + { .name = "lp0initvals14", .offset = 0xB2B50, .type = EXT_IV, .length = 0xB80 }, + { .name = "lp0bsinitvals14", .offset = 0xB36D8, .type = EXT_IV, .length = 0x118 }, + { .name = "ucode15", .offset = 0xDDCD0, .type = EXT_UCODE_3, .length = 0x8768 }, + { .name = "lp0bsinitvals15", .offset = 0xB4468, .type = EXT_IV, .length = 0x118 }, + { .name = "lp0initvals15", .offset = 0xB37F8, .type = EXT_IV, .length = 0xC68 }, + { .name = "ucode16", .offset = 0xE643C, .type = EXT_UCODE_3, .length = 0x8EA0 }, + { .name = "n0bsinitvals16", .offset = 0xB5220, .type = EXT_IV, .length = 0x118 }, + { .name = "sslpn0initvals16", .offset = 0xB5340, .type = EXT_IV, .length = 0x0 }, + { .name = "n0initvals16", .offset = 0xB4588, .type = EXT_IV, .length = 0xC90 }, + { .name = "lp0initvals16", .offset = 0xB5350, .type = EXT_IV, .length = 0xC90 }, + { .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. @@ -274,7 +401,22 @@ static const struct file files[] = .flags = FW_FLAG_LE | FW_FLAG_V4 | FW_FLAG_UNSUPPORTED, .extract = _2dd738b8feb8b3559fd9d8fbaf3bfffc, }, + { + /* 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, + }, + { + /* http://downloads.openwrt.org/sources/broadcom-wl-4.178.10.4.tar.bz2 */ + .name = "wl_apsta.o", + .id = "FW15", + .ucode_version = "478.104", + .md5 = "bb8537e3204a1ea5903fe3e66b5e2763", + .flags = FW_FLAG_LE | FW_FLAG_V4, + .extract = _bb8537e3204a1ea5903fe3e66b5e2763, + }, }; - -#define FILES (sizeof(files) / sizeof(files[0])) -