[mac80211] b43 and b43legacy: squash firmware
authorhauke <hauke@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Sat, 26 Dec 2009 23:15:16 +0000 (23:15 +0000)
committerhauke <hauke@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Sat, 26 Dec 2009 23:15:16 +0000 (23:15 +0000)
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

package/mac80211/Config.in.b43
package/mac80211/Config.in.b43legacy [new file with mode: 0644]
package/mac80211/Makefile
package/mac80211/files/host_bin/b43-fwsquash.py

index 04576a81aa100acbefe329fff006f583a86d28ef..e1f4d37d72e287b2bc80baa4450a646271f00143 100644 (file)
@@ -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 (file)
index 0000000..2e2f06e
--- /dev/null
@@ -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
+
index 4cef2859423bf91c2e9b9bf999764d5b2443f1cb..d500ed9b2e1ce7db543d7d0ccdd9074197cade1e 100644 (file)
@@ -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))
index 088ed484500c823da04a0fa6b5a059361bb41edd..34e6ed3c051acc6c23dffdd45f9b5546700f4d60 100755 (executable)
@@ -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",), ),