Hi,
I'm a b43 noob, but have been playing around with b43-fwcutter and found
a couple more versions of the firmware distributed by Linksys which I
can extract with mklist.py.

Both of these firmwares work on my BCM4311 laptop card in managed and
monitor modes.  When loaded, they identify themselves as newer firmware
revisions than anything that b43-fwcutter currently knows about:

      * 508.1107 (2009-06-26 19:16:02), extracted from
        
http://downloads.linksysbycisco.com/downloads/wrt610n_v2.00.00.05_us.tar,0.gz
      * 508.102 (2008-10-16 18:23:25), extracted from
        
http://downloads.linksysbycisco.com/downloads/wrt610n_v1.00.03.15_us.tar,0.gz

I was particularly interested in these because I believe the Linksys
WRT610N uses an LP PHY, and I know that those are actively worked on by
the b43 developers.  I'm not sure if these are useful to the project
but... *if* anyone is interested, here is a patch to fwcutter_list.h
that adds these firmware versions.  Apologies for naming them "FW15" and
"FW16" in the patch, but I really don't understand the naming convention
used.

Anyway, I hope these can be useful.  Thanks for an amazing b43 driver!

Dan
diff -ur b43-fwcutter-012.orig/fwcutter_list.h b43-fwcutter-012/fwcutter_list.h
--- b43-fwcutter-012.orig/fwcutter_list.h	2009-06-02 11:52:55.000000000 -0400
+++ b43-fwcutter-012/fwcutter_list.h	2009-09-03 16:02:37.000000000 -0400
@@ -1,3 +1,5 @@
+
+
 /*
  * Extraction of core 4 firmware from V4 drivers has been commented out as these
  * cores will not work with driver b43.
@@ -238,6 +240,164 @@
 	EXTRACT_LIST_END
 };
 
+static struct extract _e71e88acec75eaeb27244c0a355c99b7[] =
+{
+	{ .name = "ucode19", .offset = 0x10D884, .type = EXT_UCODE_3, .length = 0x4 },
+	{ .name = "lp0initvals14", .offset = 0xAD978, .type = EXT_IV, .length = 0xB20 },
+	{ .name = "ucode16_lp", .offset = 0xE06FC, .type = EXT_UCODE_3, .length = 0x9FD0 },
+	/* ERROR: Could not guess data type for: ucode_2w16_sslpn_nobt */
+	{ .name = "ucode16_sslpn", .offset = 0xEA6D0, .type = EXT_UCODE_3, .length = 0x8B43 },
+	{ .name = "lp0bsinitvals14", .offset = 0xAE4A0, .type = EXT_IV, .length = 0x118 },
+	{ .name = "b0g0initvals9", .offset = 0xA79B8, .type = EXT_IV, .length = 0xAE0 },
+	{ .name = "sslpn2bsinitvals17", .offset = 0xB2C10, .type = EXT_IV, .length = 0x118 },
+	{ .name = "a0g1bsinitvals9", .offset = 0xA9CB0, .type = EXT_IV, .length = 0x118 },
+	{ .name = "b0g0bsinitvals13", .offset = 0xACBB0, .type = EXT_IV, .length = 0x118 },
+	{ .name = "ucode16_sslpn_nobt", .offset = 0xF3218, .type = EXT_UCODE_3, .length = 0x7620 },
+	{ .name = "b0g0bsinitvals5", .offset = 0xA6238, .type = EXT_IV, .length = 0x118 },
+	{ .name = "sslpn2initvals17", .offset = 0xB1F60, .type = EXT_IV, .length = 0xCA8 },
+	{ .name = "ucode4", .offset = 0xB2D50, .type = EXT_UCODE_1, .length = 0x4E60 },
+	{ .name = "b0g0initvals4", .offset = 0xA3AC8, .type = EXT_IV, .length = 0xE70 },
+	{ .name = "b0g0initvals13", .offset = 0xAC028, .type = EXT_IV, .length = 0xB80 },
+	{ .name = "ucode17", .offset = 0x1040C0, .type = EXT_UCODE_3, .length = 0x97C0 },
+	/* ERROR: Could not guess data type for: ucode_2w17 */
+	{ .name = "sslpn1bsinitvals20", .offset = 0xB2D48, .type = EXT_IV, .length = 0x0 },
+	/* ERROR: Could not guess data type for: ucode_2w16_mimo */
+	{ .name = "ucode14", .offset = 0xD19EC, .type = EXT_UCODE_2, .length = 0x6460 },
+	{ .name = "a0g0initvals5", .offset = 0xA6358, .type = EXT_IV, .length = 0xA08 },
+	{ .name = "lp0bsinitvals16", .offset = 0xB1E40, .type = EXT_IV, .length = 0x118 },
+	{ .name = "pcm4", .offset = 0x10D894, .type = EXT_PCM, .length = 0x520 },
+	{ .name = "a0g1bsinitvals5", .offset = 0xA7898, .type = EXT_IV, .length = 0x118 },
+	{ .name = "n0bsinitvals11", .offset = 0xAA940, .type = EXT_IV, .length = 0x118 },
+	{ .name = "n0absinitvals11", .offset = 0xAAA60, .type = EXT_IV, .length = 0x118 },
+	/* ERROR: Could not guess data type for: ucode_bomminor */
+	{ .name = "a0g1bsinitvals13", .offset = 0xAD858, .type = EXT_IV, .length = 0x118 },
+	{ .name = "pcm5", .offset = 0x10DDB8, .type = EXT_PCM, .length = 0x520 },
+	/* ERROR: Could not guess data type for: ucode_2w_bomminor */
+	{ .name = "ucode9", .offset = 0xBD2A8, .type = EXT_UCODE_2, .length = 0x6248 },
+	{ .name = "a0g0bsinitvals9", .offset = 0xA9B90, .type = EXT_IV, .length = 0x118 },
+	{ .name = "a0g0bsinitvals4", .offset = 0xA57F0, .type = EXT_IV, .length = 0x30 },
+	{ .name = "ucode20", .offset = 0x10D88C, .type = EXT_UCODE_3, .length = 0x4 },
+	/* ERROR: Could not guess data type for: ucode_2w16_sslpn */
+	{ .name = "a0g1initvals5", .offset = 0xA6D68, .type = EXT_IV, .length = 0xA08 },
+	{ .name = "n0bsinitvals16", .offset = 0xB0160, .type = EXT_IV, .length = 0x118 },
+	{ .name = "b0g0bsinitvals4", .offset = 0xA4940, .type = EXT_IV, .length = 0x30 },
+	{ .name = "lp0initvals15", .offset = 0xAE5C0, .type = EXT_IV, .length = 0xD28 },
+	{ .name = "b0g0initvals5", .offset = 0xA5828, .type = EXT_IV, .length = 0xA08 },
+	/* ERROR: Could not guess data type for: ucode_2w19 */
+	{ .name = "a0g0initvals4", .offset = 0xA4978, .type = EXT_IV, .length = 0xE70 },
+	{ .name = "sslpn0initvals16", .offset = 0xB0280, .type = EXT_IV, .length = 0xD48 },
+	{ .name = "a0g1initvals13", .offset = 0xACCD0, .type = EXT_IV, .length = 0xB80 },
+	/* ERROR: Could not guess data type for: ucode_2w11 */
+	{ .name = "sslpn2initvals19", .offset = 0xB2D30, .type = EXT_IV, .length = 0x0 },
+	/* ERROR: Could not guess data type for: ucode_bommajor */
+	{ .name = "a0g1initvals9", .offset = 0xA90A8, .type = EXT_IV, .length = 0xAE0 },
+	{ .name = "ucode5", .offset = 0xB7BB4, .type = EXT_UCODE_2, .length = 0x56F0 },
+	{ .name = "lp0bsinitvals13", .offset = 0xABF08, .type = EXT_IV, .length = 0x118 },
+	{ .name = "n0initvals16", .offset = 0xAF410, .type = EXT_IV, .length = 0xD48 },
+	/* ERROR: Could not guess data type for: ucode_2w_bommajor */
+	{ .name = "b0g0bsinitvals9", .offset = 0xA84A0, .type = EXT_IV, .length = 0x118 },
+	{ .name = "ucode11", .offset = 0xC34F4, .type = EXT_UCODE_2, .length = 0x73E8 },
+	{ .name = "lp0initvals16", .offset = 0xB10F0, .type = EXT_IV, .length = 0xD48 },
+	{ .name = "ucode16_mimo", .offset = 0xFA83C, .type = EXT_UCODE_3, .length = 0x9880 },
+	/* ERROR: Could not guess data type for: ucode_2w15 */
+	{ .name = "a0g0initvals9", .offset = 0xA85C0, .type = EXT_IV, .length = 0xAE0 },
+	{ .name = "lp0initvals13", .offset = 0xAAB80, .type = EXT_IV, .length = 0x1380 },
+	{ .name = "a0g0bsinitvals5", .offset = 0xA7778, .type = EXT_IV, .length = 0x118 },
+	{ .name = "ucode13", .offset = 0xCA8E0, .type = EXT_UCODE_2, .length = 0x7108 },
+	/* ERROR: Could not guess data type for: ucode_2w16_lp */
+	/* ERROR: Could not guess data type for: ucode_2w13 */
+	{ .name = "sslpn2bsinitvals19", .offset = 0xB2D38, .type = EXT_IV, .length = 0x0 },
+	{ .name = "ucode15", .offset = 0xD7E50, .type = EXT_UCODE_3, .length = 0x88A8 },
+	{ .name = "lp0bsinitvals15", .offset = 0xAF2F0, .type = EXT_IV, .length = 0x118 },
+	{ .name = "n0initvals11", .offset = 0xA9DD0, .type = EXT_IV, .length = 0xB68 },
+	{ .name = "sslpn0bsinitvals16", .offset = 0xB0FD0, .type = EXT_IV, .length = 0x118 },
+	/* ERROR: Could not guess data type for: ucode_2w20 */
+	{ .name = "sslpn1initvals20", .offset = 0xB2D40, .type = EXT_IV, .length = 0x0 },
+	EXTRACT_LIST_END
+};
+
+static struct extract _236823782dfd04e58ef5ee4389d7ba99[] =
+{
+	{ .name = "ucode19", .offset = 0x11BA00, .type = EXT_UCODE_3, .length = 0x9B30 },
+	{ .name = "lp0initvals14", .offset = 0xB8858, .type = EXT_IV, .length = 0xB20 },
+	{ .name = "ucode16_lp", .offset = 0xEE3A4, .type = EXT_UCODE_3, .length = 0x9EB0 },
+	/* ERROR: Could not guess data type for: ucode_2w16_sslpn_nobt */
+	{ .name = "sslpn3bsinitvals21", .offset = 0xC05D0, .type = EXT_IV, .length = 0x118 },
+	{ .name = "ucode16_sslpn", .offset = 0xF8258, .type = EXT_UCODE_3, .length = 0x8BE4 },
+	{ .name = "lp0bsinitvals14", .offset = 0xB9380, .type = EXT_IV, .length = 0x118 },
+	{ .name = "b0g0initvals9", .offset = 0xB2888, .type = EXT_IV, .length = 0xAE0 },
+	{ .name = "sslpn2bsinitvals17", .offset = 0xBDB60, .type = EXT_IV, .length = 0x118 },
+	{ .name = "a0g1bsinitvals9", .offset = 0xB4B80, .type = EXT_IV, .length = 0x118 },
+	{ .name = "b0g0bsinitvals13", .offset = 0xB7A90, .type = EXT_IV, .length = 0x118 },
+	{ .name = "ucode16_sslpn_nobt", .offset = 0x100E40, .type = EXT_UCODE_3, .length = 0x76C1 },
+	{ .name = "b0g0bsinitvals5", .offset = 0xB1108, .type = EXT_IV, .length = 0x118 },
+	{ .name = "sslpn2initvals17", .offset = 0xBCEA0, .type = EXT_IV, .length = 0xCB8 },
+	{ .name = "ucode4", .offset = 0xC06F0, .type = EXT_UCODE_1, .length = 0x4EB0 },
+	{ .name = "b0g0initvals4", .offset = 0xAE998, .type = EXT_IV, .length = 0xE70 },
+	{ .name = "b0g0initvals13", .offset = 0xB6F08, .type = EXT_IV, .length = 0xB80 },
+	{ .name = "ucode17", .offset = 0x111FFC, .type = EXT_UCODE_3, .length = 0x9A00 },
+	/* ERROR: Could not guess data type for: ucode_2w17 */
+	{ .name = "sslpn1bsinitvals20", .offset = 0xBF7B0, .type = EXT_IV, .length = 0x118 },
+	/* ERROR: Could not guess data type for: ucode_2w16_mimo */
+	{ .name = "ucode14", .offset = 0xDF5BC, .type = EXT_UCODE_2, .length = 0x6498 },
+	{ .name = "a0g0initvals5", .offset = 0xB1228, .type = EXT_IV, .length = 0xA08 },
+	{ .name = "lp0bsinitvals16", .offset = 0xBCD80, .type = EXT_IV, .length = 0x118 },
+	{ .name = "pcm4", .offset = 0x136990, .type = EXT_PCM, .length = 0x520 },
+	{ .name = "a0g1bsinitvals5", .offset = 0xB2768, .type = EXT_IV, .length = 0x118 },
+	{ .name = "n0bsinitvals11", .offset = 0xB5820, .type = EXT_IV, .length = 0x118 },
+	{ .name = "n0absinitvals11", .offset = 0xB5940, .type = EXT_IV, .length = 0x118 },
+	{ .name = "ucode21_sslpn_nobt", .offset = 0x12F4C0, .type = EXT_UCODE_3, .length = 0x74C9 },
+	/* ERROR: Could not guess data type for: ucode_bomminor */
+	{ .name = "sslpn3initvals21", .offset = 0xBF8D0, .type = EXT_IV, .length = 0xCF8 },
+	{ .name = "a0g1bsinitvals13", .offset = 0xB8738, .type = EXT_IV, .length = 0x118 },
+	{ .name = "pcm5", .offset = 0x136EB4, .type = EXT_PCM, .length = 0x520 },
+	/* ERROR: Could not guess data type for: ucode_2w_bomminor */
+	{ .name = "ucode9", .offset = 0xCACE8, .type = EXT_UCODE_2, .length = 0x6290 },
+	{ .name = "a0g0bsinitvals9", .offset = 0xB4A60, .type = EXT_IV, .length = 0x118 },
+	{ .name = "a0g0bsinitvals4", .offset = 0xB06C0, .type = EXT_IV, .length = 0x30 },
+	{ .name = "ucode20", .offset = 0x125534, .type = EXT_UCODE_3, .length = 0x9F88 },
+	/* ERROR: Could not guess data type for: ucode_2w16_sslpn */
+	{ .name = "a0g1initvals5", .offset = 0xB1C38, .type = EXT_IV, .length = 0xA08 },
+	{ .name = "n0bsinitvals16", .offset = 0xBB060, .type = EXT_IV, .length = 0x118 },
+	{ .name = "b0g0bsinitvals4", .offset = 0xAF810, .type = EXT_IV, .length = 0x30 },
+	{ .name = "lp0initvals15", .offset = 0xB94A0, .type = EXT_IV, .length = 0xD28 },
+	{ .name = "b0g0initvals5", .offset = 0xB06F8, .type = EXT_IV, .length = 0xA08 },
+	/* ERROR: Could not guess data type for: ucode_2w19 */
+	{ .name = "a0g0initvals4", .offset = 0xAF848, .type = EXT_IV, .length = 0xE70 },
+	{ .name = "sslpn0initvals16", .offset = 0xBB180, .type = EXT_IV, .length = 0xD68 },
+	{ .name = "a0g1initvals13", .offset = 0xB7BB0, .type = EXT_IV, .length = 0xB80 },
+	/* ERROR: Could not guess data type for: ucode_2w11 */
+	{ .name = "sslpn2initvals19", .offset = 0xBDC80, .type = EXT_IV, .length = 0xCA8 },
+	/* ERROR: Could not guess data type for: ucode_bommajor */
+	{ .name = "a0g1initvals9", .offset = 0xB3F78, .type = EXT_IV, .length = 0xAE0 },
+	{ .name = "ucode5", .offset = 0xC55A4, .type = EXT_UCODE_2, .length = 0x5740 },
+	{ .name = "lp0bsinitvals13", .offset = 0xB6DE8, .type = EXT_IV, .length = 0x118 },
+	{ .name = "n0initvals16", .offset = 0xBA2F0, .type = EXT_IV, .length = 0xD68 },
+	/* ERROR: Could not guess data type for: ucode_2w_bommajor */
+	{ .name = "b0g0bsinitvals9", .offset = 0xB3370, .type = EXT_IV, .length = 0x118 },
+	{ .name = "ucode11", .offset = 0xD0F7C, .type = EXT_UCODE_2, .length = 0x74F8 },
+	{ .name = "lp0initvals16", .offset = 0xBC010, .type = EXT_IV, .length = 0xD68 },
+	{ .name = "ucode16_mimo", .offset = 0x108508, .type = EXT_UCODE_3, .length = 0x9AF0 },
+	/* ERROR: Could not guess data type for: ucode_2w15 */
+	{ .name = "a0g0initvals9", .offset = 0xB3490, .type = EXT_IV, .length = 0xAE0 },
+	{ .name = "lp0initvals13", .offset = 0xB5A60, .type = EXT_IV, .length = 0x1380 },
+	{ .name = "a0g0bsinitvals5", .offset = 0xB2648, .type = EXT_IV, .length = 0x118 },
+	{ .name = "ucode13", .offset = 0xD8478, .type = EXT_UCODE_2, .length = 0x7140 },
+	/* ERROR: Could not guess data type for: ucode_2w16_lp */
+	/* ERROR: Could not guess data type for: ucode_2w13 */
+	{ .name = "sslpn2bsinitvals19", .offset = 0xBE930, .type = EXT_IV, .length = 0x118 },
+	{ .name = "ucode15", .offset = 0xE5A58, .type = EXT_UCODE_3, .length = 0x8948 },
+	{ .name = "lp0bsinitvals15", .offset = 0xBA1D0, .type = EXT_IV, .length = 0x118 },
+	{ .name = "n0initvals11", .offset = 0xB4CA0, .type = EXT_IV, .length = 0xB78 },
+	{ .name = "sslpn0bsinitvals16", .offset = 0xBBEF0, .type = EXT_IV, .length = 0x118 },
+	/* ERROR: Could not guess data type for: ucode_2w20 */
+	{ .name = "sslpn1initvals20", .offset = 0xBEA50, .type = EXT_IV, .length = 0xD58 },
+	/* ERROR: Could not guess data type for: ucode_2w21_sslpn_nobt */
+	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 +459,24 @@
 		.flags		= FW_FLAG_LE | FW_FLAG_V4 | FW_FLAG_UNSUPPORTED,
 		.extract	= _2dd738b8feb8b3559fd9d8fbaf3bfffc,
 	},
+	{
+		/* http://downloads.linksysbycisco.com/downloads/wrt610n_v1.00.03.15_us.tar,0.gz */
+		.name		= "wl.o",
+		.id		= "FW15",
+		.ucode_version	= "508.102",
+		.md5		= "e71e88acec75eaeb27244c0a355c99b7",
+		.flags		= FW_FLAG_LE | FW_FLAG_V4 | FW_FLAG_UNSUPPORTED,
+		.extract	= _e71e88acec75eaeb27244c0a355c99b7,
+	},
+        {
+                /* http://downloads.linksysbycisco.com/downloads/wrt610n_v2.00.00.05_us.tar,0.gz */
+		.name		= "wl.o",
+		.id		= "FW16",
+		.ucode_version	= "508.1107",
+		.md5		= "236823782dfd04e58ef5ee4389d7ba99",
+		.flags		= FW_FLAG_LE | FW_FLAG_V4 | FW_FLAG_UNSUPPORTED,
+		.extract	= _236823782dfd04e58ef5ee4389d7ba99,
+	},
 };
 
 #define FILES (sizeof(files) / sizeof(files[0]))
_______________________________________________
Bcm43xx-dev mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev

Reply via email to