[mac80211] b43 and b43legacy: squash firmware
authorHauke Mehrtens <hauke@hauke-m.de>
Sat, 26 Dec 2009 23:15:16 +0000 (23:15 +0000)
committerHauke Mehrtens <hauke@hauke-m.de>
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

SVN-Revision: 18947

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.
 
          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"
 
 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
 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
        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
 
   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
 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)
        $(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))
 endef
 
 $(eval $(call KernelPackage,ath5k))
index 088ed484500c823da04a0fa6b5a059361bb41edd..34e6ed3c051acc6c23dffdd45f9b5546700f4d60 100755 (executable)
@@ -62,17 +62,21 @@ def phytypes_match(types_a, types_b):
        return False
 
 revmapping = {
        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,),
        "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",), ),
        "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",), ),
        "b0g0initvals5.fw"      : ( (5,6,7,8,9,10,),    ("G",), ),
        "b0g0initvals13.fw"     : ( (13,),              ("G",), ),
        "n0initvals11.fw"       : ( (11,12,),           ("N",), ),