From: hauke <hauke@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Date: Sat, 26 Dec 2009 23:15:16 +0000 (+0000)
Subject: [mac80211] b43 and b43legacy: squash firmware
X-Git-Url: https://git.rohieb.name/openwrt.git/commitdiff_plain/73ee554b8e686ebe39b5e67244bff2db075f902b

[mac80211] b43 and b43legacy: squash firmware

Only G and L-PHY are supportted by b43 driver
Add squash firmware for b43legacy


git-svn-id: svn://svn.openwrt.org/openwrt/trunk@18947 3c298f89-4303-0410-b956-a3cf2f4a3e73
---

diff --git a/package/mac80211/Config.in.b43 b/package/mac80211/Config.in.b43
index 04576a81a..e1f4d37d7 100644
--- a/package/mac80211/Config.in.b43
+++ b/package/mac80211/Config.in.b43
@@ -47,10 +47,7 @@ config B43_FW_SQUASH
 	  from the final rootfs image. This can reduce the rootfs size by
 	  up to 200k.
 
-	  Do _NOT_ use this option, if you don't know the core revision
-	  and/or PHY type of your wireless chip.
-
-	  If unsure, say N.
+	  If unsure, say Y.
 
 config B43_FW_SQUASH_COREREVS
 	string "Core revisions to include"
@@ -66,7 +63,7 @@ config B43_FW_SQUASH_COREREVS
 config B43_FW_SQUASH_PHYTYPES
 	string "PHY types to include"
 	depends on PACKAGE_kmod-b43 && B43_FW_SQUASH
-	default "A,AG,G,LP"
+	default "G,LP"
 	help
 	  This is a comma seperated list of PHY types:
 	  A         => A-PHY
diff --git a/package/mac80211/Config.in.b43legacy b/package/mac80211/Config.in.b43legacy
new file mode 100644
index 000000000..2e2f06e5a
--- /dev/null
+++ b/package/mac80211/Config.in.b43legacy
@@ -0,0 +1,24 @@
+# B43 configuration
+
+config B43LEGACY_FW_SQUASH
+	bool "Remove unnecessary firmware files"
+	depends on PACKAGE_kmod-b43legacy
+	default y
+	help
+	  This options allows you to remove unnecessary b43legacy firmware files
+	  from the final rootfs image. This can reduce the rootfs size by
+	  up to 50k.
+
+	  If unsure, say Y.
+
+config B43LEGACY_FW_SQUASH_COREREVS
+	string "Core revisions to include"
+	depends on PACKAGE_kmod-b43legacy && B43LEGACY_FW_SQUASH
+	default "1,2,3,4"
+	help
+	  This is a comma seperated list of core revision numbers.
+	  Example (keep files for rev4 only):
+	         4
+	  Example (keep files for rev2 and rev4):
+	         2,4
+
diff --git a/package/mac80211/Makefile b/package/mac80211/Makefile
index 4cef28594..d500ed9b2 100644
--- a/package/mac80211/Makefile
+++ b/package/mac80211/Makefile
@@ -489,6 +489,10 @@ $(call KernelPackage/b43-common)
   AUTOLOAD:=$(call AutoLoad,30,b43legacy)
 endef
 
+define KernelPackage/b43legacy/config
+	source "$(SOURCE)/Config.in.b43legacy"
+endef
+
 define KernelPackage/b43legacy/description
 Kernel module for Broadcom 43xx-legacy wireless support (mac80211 stack) new
 endef
@@ -712,6 +716,9 @@ define KernelPackage/b43legacy/install
 	$(INSTALL_DIR) $(1)/lib/firmware/
 
 	b43-fwcutter --unsupported -w $(1)/lib/firmware/ $(DL_DIR)/$(PKG_B43_FWV3_SOURCE)
+ifneq ($(CONFIG_B43LEGACY_FW_SQUASH),)
+	b43-fwsquash.py "G" "$(CONFIG_B43LEGACY_FW_SQUASH_COREREVS)" "$(1)/lib/firmware/b43legacy"
+endif
 endef
 
 $(eval $(call KernelPackage,ath5k))
diff --git a/package/mac80211/files/host_bin/b43-fwsquash.py b/package/mac80211/files/host_bin/b43-fwsquash.py
index 088ed4845..34e6ed3c0 100755
--- a/package/mac80211/files/host_bin/b43-fwsquash.py
+++ b/package/mac80211/files/host_bin/b43-fwsquash.py
@@ -62,17 +62,21 @@ def phytypes_match(types_a, types_b):
 	return False
 
 revmapping = {
+	"ucode2.fw"		: (2,),
+	"ucode4.fw"		: (4,),
 	"ucode5.fw"		: (5,6,7,8,9,10,),
 	"ucode11.fw"		: (11,12,),
 	"ucode13.fw"		: (13,),
 	"ucode14.fw"		: (14,),
 	"ucode15.fw"		: (15,),
+	"pcm4.fw"		: (1,2,3,4,),
 	"pcm5.fw"		: (5,6,7,8,9,10,),
 }
 
 initvalmapping = {
 	"a0g1initvals5.fw"	: ( (5,6,7,8,9,10,),	("AG",), ),
 	"a0g0initvals5.fw"	: ( (5,6,7,8,9,10,),	("A", "AG",), ),
+	"b0g0initvals2.fw"	: ( (2,4,),		("G",), ),
 	"b0g0initvals5.fw"	: ( (5,6,7,8,9,10,),	("G",), ),
 	"b0g0initvals13.fw"	: ( (13,),		("G",), ),
 	"n0initvals11.fw"	: ( (11,12,),		("N",), ),