mac80211: add support for firmware 666.2 for b43 devices
[openwrt.git] / package / mac80211 / Makefile
1 #
2 # Copyright (C) 2007-2011 OpenWrt.org
3 #
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
6 #
7
8 include $(TOPDIR)/rules.mk
9 include $(INCLUDE_DIR)/kernel.mk
10
11 PKG_NAME:=mac80211
12
13 PKG_VERSION:=2011-12-01
14 PKG_RELEASE:=1
15 PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources
16 PKG_MD5SUM:=8d1fe2fd6bbabc4fbbf31dfbf015c62c
17
18 PKG_SOURCE:=compat-wireless-$(PKG_VERSION).tar.bz2
19 PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/compat-wireless-$(PKG_VERSION)
20 PKG_BUILD_PARALLEL:=1
21
22 PKG_DRIVERS = \
23         ath5k libertas-usb libertas-sd p54-common p54-pci p54-usb p54-spi \
24         rt2x00-lib rt2x00-pci rt2x00-usb rt2x00-soc rt2800-lib rt2400-pci \
25         rt2500-pci rt2500-usb rt61-pci rt73-usb rt2800-pci rt2800-usb \
26         rtl8180 rtl8187 zd1211rw mac80211-hwsim carl9170 b43 b43legacy \
27         ath9k-common ath9k ath9k-htc ath net-libipw net-ipw2100 net-ipw2200 \
28         mwl8k net-hermes net-hermes-pci net-hermes-plx net-hermes-pcmcia \
29         iwl-legacy iwl3945 iwl4965 iwlagn lib80211
30
31 PKG_CONFIG_DEPENDS:= \
32         CONFIG_PACKAGE_kmod-mac80211 \
33         $(patsubst %,CONFIG_PACKAGE_kmod-%,$(PKG_DRIVERS)) \
34         CONFIG_PACKAGE_MAC80211_DEBUGFS \
35         CONFIG_PACKAGE_ATH_DEBUG \
36         CONFIG_PACKAGE_B43_DEBUG \
37         CONFIG_PACKAGE_B43_PIO \
38         CONFIG_PACKAGE_B43_N_PHY \
39         CONFIG_ATH_USER_REGD \
40
41 CARL9170_FW_VERSION:=1.9.4
42
43 include $(INCLUDE_DIR)/package.mk
44
45 WMENU:=Wireless Drivers
46
47 define KernelPackage/mac80211/Default
48   SUBMENU:=$(WMENU)
49   URL:=http://linuxwireless.org/
50   MAINTAINER:=Felix Fietkau <nbd@openwrt.org>
51   DEPENDS:=@(!(TARGET_avr32||TARGET_ep93xx||TARGET_ps3||TARGET_pxcab||LINUX_3_2)||BROKEN)
52 endef
53
54 define KernelPackage/cfg80211
55   $(call KernelPackage/mac80211/Default)
56   TITLE:=cfg80211 - wireless configuration API
57   DEPENDS+= +wireless-tools +iw +crda
58   FILES:= \
59         $(PKG_BUILD_DIR)/compat/compat.ko \
60         $(PKG_BUILD_DIR)/net/wireless/cfg80211.ko
61   AUTOLOAD:=$(call AutoLoad,20,compat cfg80211)
62 endef
63
64 define KernelPackage/cfg80211/description
65 cfg80211 is the Linux wireless LAN (802.11) configuration API.
66 endef
67
68 define KernelPackage/mac80211
69   $(call KernelPackage/mac80211/Default)
70   TITLE:=Linux 802.11 Wireless Networking Stack
71   DEPENDS+= +kmod-crypto-core +kmod-crypto-arc4 +kmod-crypto-aes +kmod-cfg80211
72   KCONFIG:=\
73         CONFIG_AVERAGE=y
74   FILES:= $(PKG_BUILD_DIR)/net/mac80211/mac80211.ko
75   AUTOLOAD:=$(call AutoLoad,21,mac80211)
76   MENU:=1
77 endef
78
79 define KernelPackage/mac80211/config
80         menu "Configuration"
81                 depends on PACKAGE_kmod-mac80211
82
83         config PACKAGE_MAC80211_DEBUGFS
84                 bool "Export mac80211 internals in DebugFS"
85                 default y
86                 help
87                   Select this to see extensive information about
88                   the internal state of mac80211 in debugfs.
89
90                   Say N unless you know you need this.
91
92         endmenu
93 endef
94
95 define KernelPackage/mac80211/description
96 Generic IEEE 802.11 Networking Stack (mac80211)
97 endef
98
99 PKG_LINUX_FIRMWARE_NAME:=linux-firmware
100 PKG_LINUX_FIRMWARE_VERSION:=d543c1d98fc240267ee59fff93f7a0f36d9e2fc3
101 PKG_LINUX_FIRMWARE_SOURCE:=$(PKG_LINUX_FIRMWARE_NAME)-$(PKG_LINUX_FIRMWARE_VERSION).tar.bz2
102 PKG_LINUX_FIRMWARE_PROTO:=git
103 # PKG_LINUX_FIRMWARE_SOURCE_URL:=git://git.kernel.org/pub/scm/linux/kernel/git/dwmw2/linux-firmware.git
104 PKG_LINUX_FIRMWARE_SOURCE_URL:=git://git.infradead.org/users/dwmw2/linux-firmware.git
105 PKG_LINUX_FIRMWARE_SUBDIR:=$(PKG_LINUX_FIRMWARE_NAME)-$(PKG_LINUX_FIRMWARE_VERSION)
106
107 define Download/linux-firmware
108   FILE:=$(PKG_LINUX_FIRMWARE_SOURCE)
109   URL:=$(PKG_LINUX_FIRMWARE_SOURCE_URL)
110   MD5SUM:=$(PKG_LINUX_FIRMWARE_MD5SUM)
111   PROTO:=$(PKG_LINUX_FIRMWARE_PROTO)
112   VERSION:=$(PKG_LINUX_FIRMWARE_VERSION)
113   SUBDIR:=$(PKG_LINUX_FIRMWARE_SUBDIR)
114 endef
115 $(eval $(call Download,linux-firmware))
116
117 # Prism54 drivers
118 P54PCIFW:=2.13.12.0.arm
119 P54USBFW:=2.13.24.0.lm87.arm
120 P54SPIFW:=2.13.0.0.a.13.14.arm
121 CARL9170_FW:=carl9170-1.fw
122
123 define Download/p54usb
124   FILE:=$(P54USBFW)
125   URL:=http://daemonizer.de/prism54/prism54-fw/fw-usb
126   MD5SUM:=8e8ab005a4f8f0123bcdc51bc25b47f6
127 endef
128 $(eval $(call Download,p54usb))
129
130 define Download/p54pci
131   FILE:=$(P54PCIFW)
132   URL:=http://daemonizer.de/prism54/prism54-fw/fw-softmac
133   MD5SUM:=ff7536af2092b1c4b21315bd103ef4c4
134 endef
135 $(eval $(call Download,p54pci))
136
137 define Download/p54spi
138   FILE:=$(P54SPIFW)
139   URL:=http://daemonizer.de/prism54/prism54-fw/stlc4560
140   MD5SUM:=42661f8ecbadd88012807493f596081d
141 endef
142 $(eval $(call Download,p54spi))
143
144 define Download/carl9170
145   FILE:=$(CARL9170_FW)-$(CARL9170_FW_VERSION)
146   URL:=http://downloads.openwrt.org/sources/
147   MD5SUM:=30e2ae80c33b3008d271556d1a14e3ea
148 endef
149 $(eval $(call Download,carl9170))
150
151 define KernelPackage/p54/Default
152   $(call KernelPackage/mac80211/Default)
153   TITLE:=Prism54 Drivers
154 endef
155
156 define KernelPackage/p54/description
157   Kernel module for Prism54 chipsets (mac80211)
158 endef
159
160 define KernelPackage/p54-common
161   $(call KernelPackage/p54/Default)
162   DEPENDS+= @PCI_SUPPORT||@USB_SUPPORT||@TARGET_omap24xx +kmod-mac80211 +kmod-lib-crc-ccitt
163   TITLE+= (COMMON)
164   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/p54/p54common.ko
165   AUTOLOAD:=$(call AutoLoad,30,p54common)
166 endef
167
168 define KernelPackage/p54-pci
169   $(call KernelPackage/p54/Default)
170   TITLE+= (PCI)
171   DEPENDS+= @PCI_SUPPORT +kmod-p54-common
172   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/p54/p54pci.ko
173   AUTOLOAD:=$(call AutoLoad,31,p54pci)
174 endef
175
176 define KernelPackage/p54-usb
177   $(call KernelPackage/p54/Default)
178   TITLE+= (USB)
179   DEPENDS+= @USB_SUPPORT +kmod-usb-core +kmod-p54-common
180   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/p54/p54usb.ko
181   AUTOLOAD:=$(call AutoLoad,31,p54usb)
182 endef
183
184 define KernelPackage/p54-spi
185   $(call KernelPackage/p54/Default)
186   TITLE+= (SPI)
187   DEPENDS+= @TARGET_omap24xx +kmod-p54-common
188   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/p54/p54spi.ko
189   AUTOLOAD:=$(call AutoLoad,31,p54spi)
190 endef
191
192 NEED_RT2X00_LIB_CRYPTO:=y
193 NEED_RT2X00_LIB_FIRMWARE:=y
194 NEED_RT2X00_LIB_EEPROM:=y
195 NEED_RT2X00_LIB_HT:=y
196 NEED_RT2X00_LIB_LEDS:=y
197
198 define KernelPackage/rt2x00/Default
199   $(call KernelPackage/mac80211/Default)
200   TITLE:=Ralink Drivers for RT2x00 cards
201 endef
202
203 define KernelPackage/rt2x00-lib
204 $(call KernelPackage/rt2x00/Default)
205   DEPENDS+= @(PCI_SUPPORT||USB_SUPPORT||TARGET_ramips) +kmod-mac80211 +kmod-lib-crc-itu-t
206   TITLE+= (LIB)
207   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2x00lib.ko
208   AUTOLOAD:=$(call AutoLoad,25,rt2x00lib)
209   MENU:=1
210 endef
211
212 define KernelPackage/rt2x00-lib/config
213         menu "Configuration"
214                 depends PACKAGE_kmod-rt2x00-lib
215
216         config PACKAGE_RT2X00_LIB_DEBUGFS
217                 bool "Enable rt2x00 debugfs support"
218                 depends PACKAGE_MAC80211_DEBUGFS
219                 help
220                   Enable creation of debugfs files for the rt2x00 drivers.
221                   These debugfs files support both reading and writing of the
222                   most important register types of the rt2x00 hardware.
223
224         config PACKAGE_RT2X00_DEBUG
225                 bool "Enable rt2x00 debug output"
226                 help
227                   Enable debugging output for all rt2x00 modules
228
229         endmenu
230 endef
231
232 define KernelPackage/rt2x00-pci
233 $(call KernelPackage/rt2x00/Default)
234   DEPENDS+= @(PCI_SUPPORT||TARGET_ramips) +kmod-rt2x00-lib +kmod-eeprom-93cx6
235   TITLE+= (PCI)
236   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2x00pci.ko
237   AUTOLOAD:=$(call AutoLoad,26,rt2x00pci)
238 endef
239
240 define KernelPackage/rt2x00-usb
241 $(call KernelPackage/rt2x00/Default)
242   DEPENDS+= @USB_SUPPORT +kmod-rt2x00-lib +kmod-usb-core
243   TITLE+= (USB)
244   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2x00usb.ko
245   AUTOLOAD:=$(call AutoLoad,26,rt2x00usb)
246 endef
247
248 define KernelPackage/rt2x00-soc
249 $(call KernelPackage/rt2x00/Default)
250   DEPENDS+= @TARGET_ramips +kmod-rt2x00-lib
251   TITLE+= (SoC)
252   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2x00soc.ko
253   AUTOLOAD:=$(call AutoLoad,26,rt2x00soc)
254 endef
255
256 define KernelPackage/rt2800-lib
257 $(call KernelPackage/rt2x00/Default)
258   DEPENDS+= @(PCI_SUPPORT||USB_SUPPORT||TARGET_ramips) +kmod-rt2x00-lib +TARGET_ramips:kmod-rt2x00-soc +@DRIVER_11N_SUPPORT
259   TITLE+= (rt2800 LIB)
260   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2800lib.ko
261   AUTOLOAD:=$(call AutoLoad,27,rt2800lib)
262 endef
263
264 define KernelPackage/rt2400-pci
265 $(call KernelPackage/rt2x00/Default)
266   DEPENDS+= @PCI_SUPPORT +kmod-rt2x00-pci
267   TITLE+= (RT2400 PCI)
268   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2400pci.ko
269   AUTOLOAD:=$(call AutoLoad,27,rt2400pci)
270 endef
271
272 define KernelPackage/rt2500-pci
273 $(call KernelPackage/rt2x00/Default)
274   DEPENDS+= @PCI_SUPPORT +kmod-rt2x00-pci
275   TITLE+= (RT2500 PCI)
276   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2500pci.ko
277   AUTOLOAD:=$(call AutoLoad,27,rt2500pci)
278 endef
279
280 define KernelPackage/rt2500-usb
281 $(call KernelPackage/rt2x00/Default)
282   DEPENDS+= @USB_SUPPORT +kmod-rt2x00-usb
283   TITLE+= (RT2500 USB)
284   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2500usb.ko
285   AUTOLOAD:=$(call AutoLoad,27,rt2500usb)
286 endef
287
288 define KernelPackage/rt61-pci
289 $(call KernelPackage/rt2x00/Default)
290   DEPENDS+= @PCI_SUPPORT +kmod-rt2x00-pci
291   TITLE+= (RT2x61 PCI)
292   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt61pci.ko
293   AUTOLOAD:=$(call AutoLoad,27,rt61pci)
294 endef
295
296 define KernelPackage/rt73-usb
297   $(call KernelPackage/rt2x00/Default)
298   DEPENDS+= @USB_SUPPORT +kmod-rt2x00-usb
299   TITLE+= (RT73 USB)
300   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt73usb.ko
301   AUTOLOAD:=$(call AutoLoad,27,rt73usb)
302 endef
303
304 define KernelPackage/rt2800-pci
305 $(call KernelPackage/rt2x00/Default)
306   DEPENDS+= @(PCI_SUPPORT||TARGET_ramips) +kmod-rt2x00-pci +kmod-rt2800-lib +kmod-lib-crc-ccitt +TARGET_ramips:kmod-rt2x00-soc
307   TITLE+= (RT2860 PCI)
308   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2800pci.ko
309   AUTOLOAD:=$(call AutoLoad,28,rt2800pci)
310 endef
311
312 define KernelPackage/rt2800-usb
313 $(call KernelPackage/rt2x00/Default)
314   DEPENDS+= @USB_SUPPORT +kmod-rt2x00-usb +kmod-rt2800-lib +kmod-lib-crc-ccitt
315   TITLE+= (RT2870 USB)
316   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2800usb.ko
317   AUTOLOAD:=$(call AutoLoad,28,rt2800usb)
318 endef
319
320 define KernelPackage/rtl818x/Default
321   $(call KernelPackage/mac80211/Default)
322   TITLE:=Realtek Drivers for RTL818x devices
323   URL:=http://wireless.kernel.org/en/users/Drivers/rtl8187
324   DEPENDS+= +kmod-eeprom-93cx6 +kmod-mac80211
325 endef
326
327 define KernelPackage/rtl8180
328   $(call KernelPackage/rtl818x/Default)
329   DEPENDS+= @PCI_SUPPORT
330   TITLE+= (RTL8180 PCI)
331   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rtl818x/rtl8180/rtl8180.ko
332   AUTOLOAD:=$(call AutoLoad,27,rtl8180)
333 endef
334
335 define KernelPackage/rtl8187
336 $(call KernelPackage/rtl818x/Default)
337   DEPENDS+= @USB_SUPPORT +kmod-usb-core
338   TITLE+= (RTL8187 USB)
339   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rtl818x/rtl8187/rtl8187.ko
340   AUTOLOAD:=$(call AutoLoad,27,rtl8187)
341 endef
342
343 ZD1211FW_NAME:=zd1211-firmware
344 ZD1211FW_VERSION:=1.4
345 define Download/zd1211rw
346   FILE:=$(ZD1211FW_NAME)-$(ZD1211FW_VERSION).tar.bz2
347   URL:=@SF/zd1211/
348   MD5SUM:=19f28781d76569af8551c9d11294c870
349 endef
350 $(eval $(call Download,zd1211rw))
351
352 define KernelPackage/zd1211rw
353   $(call KernelPackage/mac80211/Default)
354   TITLE:=Zydas ZD1211 support
355   DEPENDS+= @USB_SUPPORT +kmod-usb-core +kmod-mac80211
356   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/zd1211rw/zd1211rw.ko
357   AUTOLOAD:=$(call AutoLoad,60,zd1211rw)
358 endef
359
360 define KernelPackage/ath/config
361         menu "Configuration"
362                 depends on PACKAGE_kmod-ath
363
364         config ATH_USER_REGD
365                 bool "Force Atheros drivers to respect the user's regdomain settings"
366                 help
367                   Atheros' idea of regulatory handling is that the EEPROM of the card defines
368                   the regulatory limits and the user is only allowed to restrict the settings
369                   even further, even if the country allows frequencies or power levels that
370                   are forbidden by the EEPROM settings.
371
372                   Select this option if you want the driver to respect the user's decision about
373                   regulatory settings.
374
375         config PACKAGE_ATH_DEBUG
376                 bool "Atheros wireless debugging"
377                 help
378                   Say Y, if you want to debug atheros wireless drivers.
379                   Right now only ath9k makes use of this.
380
381         endmenu
382 endef
383
384 define KernelPackage/ath
385   $(call KernelPackage/mac80211/Default)
386   TITLE:=Atheros common driver part
387   DEPENDS+= @PCI_SUPPORT||USB_SUPPORT||TARGET_ar71xx +kmod-mac80211
388   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath.ko
389   AUTOLOAD:=$(call AutoLoad,26,ath)
390   MENU:=1
391 endef
392
393 define KernelPackage/ath/description
394  This module contains some common parts needed by Atheros Wireless drivers.
395 endef
396
397 define KernelPackage/ath5k
398   $(call KernelPackage/mac80211/Default)
399   TITLE:=Atheros 5xxx wireless cards support
400   URL:=http://linuxwireless.org/en/users/Drivers/ath5k
401   DEPENDS+= @PCI_SUPPORT||@TARGET_atheros +kmod-ath
402   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath5k/ath5k.ko
403   AUTOLOAD:=$(call AutoLoad,27,ath5k)
404 endef
405
406 define KernelPackage/ath5k/description
407  This module adds support for wireless adapters based on
408  Atheros 5xxx chipset.
409 endef
410
411 define KernelPackage/ath9k-common
412   $(call KernelPackage/mac80211/Default)
413   TITLE:=Atheros 802.11n wireless devices (common code for ath9k and ath9k_htc)
414   URL:=http://linuxwireless.org/en/users/Drivers/ath9k
415   DEPENDS+= @PCI_SUPPORT||USB_SUPPORT||TARGET_ar71xx +kmod-ath +@DRIVER_11N_SUPPORT
416   FILES:= \
417         $(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath9k/ath9k_common.ko \
418         $(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath9k/ath9k_hw.ko
419   AUTOLOAD:=$(call AutoLoad,27,ath9k_hw ath9k_common)
420 endef
421
422 define KernelPackage/ath9k
423   $(call KernelPackage/mac80211/Default)
424   TITLE:=Atheros 802.11n PCI wireless cards support
425   URL:=http://linuxwireless.org/en/users/Drivers/ath9k
426   DEPENDS+= @PCI_SUPPORT||TARGET_ar71xx +kmod-ath9k-common
427   FILES:= \
428         $(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath9k/ath9k.ko
429   AUTOLOAD:=$(call AutoLoad,28,ath9k)
430 endef
431
432 define KernelPackage/ath9k/description
433 This module adds support for wireless adapters based on
434 Atheros IEEE 802.11n AR5008 and AR9001 family of chipsets.
435 endef
436
437 define KernelPackage/ath9k-htc
438   $(call KernelPackage/mac80211/Default)
439   TITLE:=Atheros 802.11n USB device support
440   URL:=http://linuxwireless.org/en/users/Drivers/ath9k
441   DEPENDS+= @USB_SUPPORT +kmod-ath9k-common +kmod-usb-core
442   FILES:= \
443         $(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath9k/ath9k_htc.ko
444   AUTOLOAD:=$(call AutoLoad,55,ath9k_htc)
445 endef
446
447 define KernelPackage/ath9k-htc/description
448 This module adds support for wireless adapters based on
449 Atheros USB AR9271 and AR7010 family of chipsets.
450 endef
451
452 define KernelPackage/carl9170
453   $(call KernelPackage/mac80211/Default)
454   TITLE:=Driver for Atheros AR9170 USB sticks
455   DEPENDS:=@USB_SUPPORT +kmod-mac80211 +kmod-ath +kmod-usb-core +kmod-input-core +@DRIVER_11N_SUPPORT
456   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/carl9170/carl9170.ko
457   AUTOLOAD:=$(call AutoLoad,60,carl9170)
458 endef
459
460 define KernelPackage/carl9170/install
461         $(INSTALL_DIR) $(1)/lib/firmware
462         $(INSTALL_DATA) $(DL_DIR)/$(CARL9170_FW)-$(CARL9170_FW_VERSION) $(1)/lib/firmware/$(CARL9170_FW)
463 endef
464
465 define KernelPackage/lib80211
466   $(call KernelPackage/mac80211/Default)
467   TITLE:=802.11 Networking stack
468   FILES:= \
469         $(PKG_BUILD_DIR)/net/wireless/lib80211.ko \
470         $(PKG_BUILD_DIR)/net/wireless/lib80211_crypt_wep.ko \
471         $(PKG_BUILD_DIR)/net/wireless/lib80211_crypt_ccmp.ko \
472         $(PKG_BUILD_DIR)/net/wireless/lib80211_crypt_tkip.ko
473   AUTOLOAD:=$(call AutoLoad,10, \
474         lib80211 \
475         lib80211_crypt_wep \
476         lib80211_crypt_ccmp \
477         lib80211_crypt_tkip \
478   )
479 endef
480
481 define KernelPackage/lib80211/description
482  Kernel modules for 802.11 Networking stack
483  Includes:
484  - lib80211
485  - lib80211_crypt_wep
486  - lib80211_crypt_tkip
487  - lib80211_crytp_ccmp
488 endef
489
490 define KernelPackage/libertas-usb
491   $(call KernelPackage/mac80211/Default)
492   DEPENDS+= @USB_SUPPORT +kmod-cfg80211 +kmod-usb-core +kmod-lib80211 +@DRIVER_WEXT_SUPPORT
493   TITLE:=Marvell 88W8015 Wireless Driver
494   FILES:= \
495         $(PKG_BUILD_DIR)/drivers/net/wireless/libertas/libertas.ko \
496         $(PKG_BUILD_DIR)/drivers/net/wireless/libertas/usb8xxx.ko
497   AUTOLOAD:=$(call AutoLoad,27,libertas usb8xxx)
498 endef
499
500 define KernelPackage/libertas-sd
501   $(call KernelPackage/mac80211/Default)
502   DEPENDS+= +kmod-cfg80211 +kmod-lib80211 +@DRIVER_WEXT_SUPPORT
503   TITLE:=Marvell 88W8686 Wireless Driver
504   FILES:= \
505         $(PKG_BUILD_DIR)/drivers/net/wireless/libertas/libertas.ko \
506         $(PKG_BUILD_DIR)/drivers/net/wireless/libertas/libertas_sdio.ko
507   AUTOLOAD:=$(call AutoLoad,91,libertas libertas_sdio)
508 endef
509
510 define KernelPackage/mac80211-hwsim
511   $(call KernelPackage/mac80211/Default)
512   TITLE:=mac80211 HW simulation device
513   DEPENDS+= +kmod-mac80211
514   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/mac80211_hwsim.ko
515   AUTOLOAD:=$(call AutoLoad,60,mac80211_hwsim)
516 endef
517
518 define KernelPackage/net-libipw
519   $(call KernelPackage/mac80211/Default)
520   TITLE:=libipw for ipw2100 and ipw2200
521   DEPENDS:=@PCI_SUPPORT +kmod-crypto-core +kmod-crypto-arc4 +kmod-crypto-aes +kmod-crypto-michael-mic +kmod-lib80211 +kmod-cfg80211 +@DRIVER_WEXT_SUPPORT
522   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ipw2x00/libipw.ko
523   AUTOLOAD:=$(call AutoLoad,49,libipw)
524 endef
525
526 define KernelPackage/net-libipw/description
527  Hardware independent IEEE 802.11 networking stack for ipw2100 and ipw2200.
528 endef
529
530 IPW2100_NAME:=ipw2100-fw
531 IPW2100_VERSION:=1.3
532
533 define Download/net-ipw2100
534   URL:=http://bughost.org/firmware/
535   FILE:=$(IPW2100_NAME)-$(IPW2100_VERSION).tgz
536   MD5SUM=46aa75bcda1a00efa841f9707bbbd113
537 endef
538 $(eval $(call Download,net-ipw2100))
539
540 define KernelPackage/net-ipw2100
541   $(call KernelPackage/mac80211/Default)
542   TITLE:=Intel IPW2100 driver
543   DEPENDS:=@PCI_SUPPORT +kmod-net-libipw
544   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ipw2x00/ipw2100.ko
545   AUTOLOAD:=$(call AutoLoad,50,ipw2100)
546 endef
547
548 define KernelPackage/net-ipw2100/description
549  Kernel support for Intel IPW2100
550  Includes:
551  - ipw2100
552 endef
553
554 IPW2200_NAME:=ipw2200-fw
555 IPW2200_VERSION:=3.1
556
557 define Download/net-ipw2200
558   URL:=http://bughost.org/firmware/
559   FILE:=$(IPW2200_NAME)-$(IPW2200_VERSION).tgz
560   MD5SUM=eaba788643c7cc7483dd67ace70f6e99
561 endef
562 $(eval $(call Download,net-ipw2200))
563
564 define KernelPackage/net-ipw2200
565   $(call KernelPackage/mac80211/Default)
566   TITLE:=Intel IPW2200 driver
567   DEPENDS:=@PCI_SUPPORT +kmod-net-libipw
568   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ipw2x00/ipw2200.ko
569   AUTOLOAD:=$(call AutoLoad,50,ipw2200)
570 endef
571
572 define KernelPackage/net-ipw2200/description
573  Kernel support for Intel IPW2200
574  Includes:
575  - ipw2200
576 endef
577
578
579 define KernelPackage/net-hermes
580   $(call KernelPackage/mac80211/Default)
581   TITLE:=Hermes 802.11b chipset support
582   DEPENDS:=@PCI_SUPPORT||PCMCIA_SUPPORT +kmod-cfg80211 +@DRIVER_WEXT_SUPPORT
583   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/orinoco/orinoco.ko
584   AUTOLOAD:=$(call AutoLoad,50,orinoco)
585 endef
586
587 define KernelPackage/net-hermes/description
588  Kernel support for Hermes 802.11b chipsets
589 endef
590
591 define KernelPackage/net-hermes-pci
592   $(call KernelPackage/mac80211/Default)
593   TITLE:=Intersil Prism 2.5 PCI support
594   DEPENDS:=@PCI_SUPPORT +kmod-net-hermes
595   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/orinoco/orinoco_pci.ko
596   AUTOLOAD:=$(call AutoLoad,55,orinoco_pci)
597 endef
598
599 define KernelPackage/net-hermes-pci/description
600  Kernel modules for Intersil Prism 2.5 PCI support
601 endef
602
603 define KernelPackage/net-hermes-plx
604   $(call KernelPackage/mac80211/Default)
605   TITLE:=PLX9052 based PCI adaptor
606   DEPENDS:=@PCI_SUPPORT +kmod-net-hermes
607   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/orinoco/orinoco_plx.ko
608   AUTOLOAD:=$(call AutoLoad,55,orinoco_plx)
609 endef
610
611 define KernelPackage/net-hermes-plx/description
612  Kernel modules for Hermes in PLX9052 based PCI adaptors
613 endef
614
615 define KernelPackage/net-hermes-pcmcia
616   $(call KernelPackage/mac80211/Default)
617   TITLE:=Hermes based PCMCIA adaptors
618   DEPENDS:=@PCMCIA_SUPPORT +kmod-net-hermes @BROKEN
619   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/orinoco/orinoco_cs.ko
620   AUTOLOAD:=$(call AutoLoad,55,orinoco_cs)
621 endef
622
623 define KernelPackage/net-hermes-pcmcia/description
624  Kernel modules for Hermes based PCMCIA adaptors
625 endef
626
627 define KernelPackage/iwlagn
628   $(call KernelPackage/mac80211/Default)
629   DEPENDS:= +kmod-mac80211 @PCI_SUPPORT
630   TITLE:=Intel AGN Wireless support
631   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/iwlwifi/iwlwifi.ko
632   AUTOLOAD:=$(call AutoLoad,60,iwlagn)
633   MENU:=1
634 endef
635
636 define KernelPackage/iwlagn/description
637  iwlagn kernel module for Intel 5000/5150/1000/6000/6050/6005/6030/100 support
638 endef
639
640 define KernelPackage/iwlagn/config
641         menu "Configuration"
642                 depends on PACKAGE_kmod-iwlagn
643
644         config IWL5000_FW
645                 bool "Intel 5000 Firmware"
646                 default y
647                 help
648                   Download and install firmware for:
649                     Intel 5000 wireless card into /lib/firmware.
650
651         config IWL5150_FW
652                 bool "Intel 5150 Firmware"
653                 default y
654                 help
655                   Download and install firmware for:
656                     Intel 5150 wireless card into /lib/firmware.
657
658         config IWL1000_FW
659                 bool "Intel 1000 Firmware"
660                 default y
661                 help
662                   Download and install firmware for:
663                     Intel 1000 wireless card into /lib/firmware.
664
665         config IWL6000_FW
666                 bool "Intel 6000 Firmware"
667                 default y
668                 help
669                   Download and install firmware for:
670                     Intel 6000 wireless card into /lib/firmware.
671
672         config IWL6050_FW
673                 bool "Intel 6050 Firmware"
674                 default y
675                 help
676                   Download and install firmware for:
677                     Intel 6050 wireless card into /lib/firmware.
678
679         config IWL6005_FW
680                 bool "Intel 6005 Firmware"
681                 default y
682                 help
683                   Download and install firmware for:
684                     Intel 6005 wireless card into /lib/firmware.
685
686         config IWL6030_FW
687                 bool "Intel 6030 Firmware"
688                 default y
689                 help
690                   Download and install firmware for:
691                     Intel 6030 wireless card into /lib/firmware.
692
693         config IWL100_FW
694                 bool "Intel 100 Firmware"
695                 default y
696                 help
697                   Download and install firmware for:
698                     Intel 100 wireless card into /lib/firmware.
699
700         endmenu
701 endef
702
703 define KernelPackage/iwl-legacy
704   $(call KernelPackage/mac80211/Default)
705   DEPENDS:= +kmod-mac80211 @PCI_SUPPORT
706   TITLE:=Intel legacy Wireless support
707   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/iwlegacy/iwlegacy.ko
708   AUTOLOAD:=$(call AutoLoad,60,iwl-legacy)
709 endef
710
711 define KernelPackage/iwl-legacy/description
712  iwl-legacy kernel module for legacy Intel wireless support
713 endef
714
715 define KernelPackage/iwl3945
716   $(call KernelPackage/mac80211/Default)
717   DEPENDS:= +kmod-mac80211 +kmod-iwl-legacy
718   TITLE:=Intel iwl3945 Wireless support
719   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/iwlegacy/iwl3945.ko
720   AUTOLOAD:=$(call AutoLoad,61,iwl3945)
721 endef
722
723 define KernelPackage/iwl3945/description
724  iwl3945 kernel module for Intel 3945 support
725 endef
726
727 define KernelPackage/iwl4965
728   $(call KernelPackage/mac80211/Default)
729   DEPENDS:= +kmod-mac80211 +kmod-iwl-legacy
730   TITLE:=Intel iwl4965 Wireless support
731   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/iwlegacy/iwl4965.ko
732   AUTOLOAD:=$(call AutoLoad,61,iwl4965)
733 endef
734
735 define KernelPackage/iwl4965/description
736  iwl4965 kernel module for Intel 4965 support
737 endef
738
739
740 define KernelPackage/mwl8k
741   $(call KernelPackage/mac80211/Default)
742   TITLE:=Driver for Marvell TOPDOG 802.11 Wireless cards
743   URL:=http://wireless.kernel.org/en/users/Drivers/mwl8k
744   DEPENDS+= @PCI_SUPPORT +kmod-mac80211
745   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/mwl8k.ko
746   AUTOLOAD:=$(call AutoLoad,27,mwl8k)
747 endef
748
749 define KernelPackage/mwl8k/description
750  Kernel modules for Marvell TOPDOG 802.11 Wireless cards
751 endef
752
753 #Broadcom firmware
754 ifneq ($(CONFIG_B43_FW_5_10),)
755   PKG_B43_FWV4_NAME:=broadcom-wl
756   PKG_B43_FWV4_VERSION:=5.10.56.27.3
757   PKG_B43_FWV4_OBJECT:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION)/driver/wl_apsta/wl_prebuilt.o
758   PKG_B43_FWV4_SOURCE:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION)_mipsel.tar.bz2
759   PKG_B43_FWV4_SOURCE_URL:=http://mirror2.openwrt.org/sources/
760   PKG_B43_FWV4_MD5SUM:=3363e3a6b3d9d73c49dea870c7834eac
761 else
762 ifneq ($(CONFIG_B43_FW_4_178),)
763   PKG_B43_FWV4_NAME:=broadcom-wl
764   PKG_B43_FWV4_VERSION:=4.178.10.4
765   PKG_B43_FWV4_OBJECT:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION)/linux/wl_apsta.o
766   PKG_B43_FWV4_SOURCE:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION).tar.bz2
767   PKG_B43_FWV4_SOURCE_URL:=http://mirror2.openwrt.org/sources/
768   PKG_B43_FWV4_MD5SUM:=14477e8cbbb91b11896affac9b219fdb
769 else
770 ifneq ($(CONFIG_B43_FW_5_100_138),)
771   PKG_B43_FWV4_NAME:=broadcom-wl
772   PKG_B43_FWV4_VERSION:=5.100.138
773   PKG_B43_FWV4_OBJECT:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION)/linux/wl_apsta.o
774   PKG_B43_FWV4_SOURCE:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION).tar.bz2
775   PKG_B43_FWV4_SOURCE_URL:=http://www.lwfinger.com/b43-firmware/
776   PKG_B43_FWV4_MD5SUM:=f4e357b09eaf5d8b1f1920cf3493a555
777 else
778   PKG_B43_FWV4_NAME:=broadcom-wl
779   PKG_B43_FWV4_VERSION:=4.150.10.5
780   PKG_B43_FWV4_OBJECT:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION)/driver/wl_apsta_mimo.o
781   PKG_B43_FWV4_SOURCE:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION).tar.bz2
782   PKG_B43_FWV4_SOURCE_URL:=http://mirror2.openwrt.org/sources/
783   PKG_B43_FWV4_MD5SUM:=0c6ba9687114c6b598e8019e262d9a60
784 endif
785 endif
786 endif
787 ifneq ($(CONFIG_B43_OPENFIRMWARE),)
788   PKG_B43_FWV4_NAME:=broadcom-wl
789   PKG_B43_FWV4_VERSION:=5.2
790   PKG_B43_FWV4_OBJECT:=openfwwf-$(PKG_B43_FWV4_VERSION)
791   PKG_B43_FWV4_SOURCE:=openfwwf-$(PKG_B43_FWV4_VERSION).tar.gz
792   PKG_B43_FWV4_SOURCE_URL:=http://www.ing.unibs.it/openfwwf/firmware/
793   PKG_B43_FWV4_MD5SUM:=e045a135453274e439ae183f8498b0fa
794 endif
795
796
797 PKG_B43_FWV3_NAME:=wl_apsta
798 PKG_B43_FWV3_VERSION:=3.130.20.0
799 PKG_B43_FWV3_SOURCE:=$(PKG_B43_FWV3_NAME)-$(PKG_B43_FWV3_VERSION).o
800 PKG_B43_FWV3_SOURCE_URL:=http://downloads.openwrt.org/sources/
801 PKG_B43_FWV3_MD5SUM:=e08665c5c5b66beb9c3b2dd54aa80cb3
802
803 ifeq ($(CONFIG_B43_OPENFIRMWARE),y)
804   PKG_B43_FWCUTTER_NAME:=b43-fwcutter
805   PKG_B43_FWCUTTER_VERSION:=3e69531aa65b8f664a0ab00dfc3e2eefeb0cb417
806   PKG_B43_FWCUTTER_SOURCE:=$(PKG_B43_FWCUTTER_NAME)-$(PKG_B43_FWCUTTER_VERSION).tar.bz2
807   PKG_B43_FWCUTTER_PROTO:=git
808   PKG_B43_FWCUTTER_SOURCE_URL:=http://git.bu3sch.de/git/b43-tools.git
809   PKG_B43_FWCUTTER_SUBDIR:=$(PKG_B43_FWCUTTER_NAME)-$(PKG_B43_FWCUTTER_VERSION)
810   PKG_B43_FWCUTTER_OBJECT:=$(PKG_B43_FWCUTTER_NAME)-$(PKG_B43_FWCUTTER_VERSION)/fwcutter/
811 else
812   PKG_B43_FWCUTTER_NAME:=b43-fwcutter
813   PKG_B43_FWCUTTER_VERSION:=015
814   PKG_B43_FWCUTTER_SOURCE:=$(PKG_B43_FWCUTTER_NAME)-$(PKG_B43_FWCUTTER_VERSION).tar.bz2
815   PKG_B43_FWCUTTER_PROTO:=default
816   PKG_B43_FWCUTTER_SOURCE_URL:=http://bu3sch.de/b43/fwcutter/
817   PKG_B43_FWCUTTER_MD5SUM:=628e030565222a107bc40300313cbe76
818   PKG_B43_FWCUTTER_SUBDIR:=b43-fwcutter-$(PKG_B43_FWCUTTER_VERSION)
819   PKG_B43_FWCUTTER_OBJECT:=$(PKG_B43_FWCUTTER_NAME)-$(PKG_B43_FWCUTTER_VERSION)/
820 endif
821
822 define Download/b43-common
823   FILE:=$(PKG_B43_FWCUTTER_SOURCE)
824   URL:=$(PKG_B43_FWCUTTER_SOURCE_URL)
825   MD5SUM:=$(PKG_B43_FWCUTTER_MD5SUM)
826   PROTO:=$(PKG_B43_FWCUTTER_PROTO)
827   VERSION:=$(PKG_B43_FWCUTTER_VERSION)
828   SUBDIR:=$(PKG_B43_FWCUTTER_SUBDIR)
829 endef
830 $(eval $(call Download,b43-common))
831
832 define Download/b43
833   FILE:=$(PKG_B43_FWV4_SOURCE)
834   URL:=$(PKG_B43_FWV4_SOURCE_URL)
835   MD5SUM:=$(PKG_B43_FWV4_MD5SUM)
836 endef
837 $(eval $(call Download,b43))
838
839 define Download/b43legacy
840   FILE:=$(PKG_B43_FWV3_SOURCE)
841   URL:=$(PKG_B43_FWV3_SOURCE_URL)
842   MD5SUM:=$(PKG_B43_FWV3_MD5SUM)
843 endef
844 $(eval $(call Download,b43legacy))
845
846 define KernelPackage/b43-common
847   $(call KernelPackage/mac80211/Default)
848   TITLE:=Generic stuff for Broadcom wireless devices
849   URL:=http://linuxwireless.org/en/users/Drivers/b43
850   KCONFIG:= \
851         CONFIG_HW_RANDOM=y
852   DEPENDS+= +kmod-mac80211 +!(TARGET_brcm47xx||TARGET_brcm63xx):kmod-ssb
853 endef
854
855 define KernelPackage/b43
856 $(call KernelPackage/b43-common)
857   DEPENDS+= +@DRIVER_11N_SUPPORT +!TARGET_brcm47xx:kmod-bcma
858   TITLE:=Broadcom 43xx wireless support
859   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/b43/b43.ko
860   AUTOLOAD:=$(call AutoLoad,30,b43)
861   MENU:=1
862 endef
863
864 define KernelPackage/b43/config
865         menu "Configuration"
866                 depends on PACKAGE_kmod-b43
867
868         choice
869                 prompt "b43 firmware version"
870                 default B43_FW_5_10
871                 help
872                   This option allows you to select the version of the b43 firmware.
873
874         config B43_FW_4_150
875                 bool "Firmware 410.2160 from driver 4.150.10.5 (stable)"
876                 help
877                   Stable firmware for BCM43xx devices.
878
879                   If unsure, select this.
880
881         config B43_FW_4_178
882                 bool "Firmware 478.104 from driver 4.178.10.4"
883                 help
884                   Experimental firmware for BCM43xx devices.
885
886                   This firmware is not tested as much as the "stable" firmware.
887
888                   If unsure, select the "stable" firmware.
889
890         config B43_FW_5_10
891                 bool "Firmware 508.1084 from driver 5.10.56.27"
892                 help
893                   Newer experimental firmware for BCM43xx devices.
894
895                   This firmware is mostly untested. It is needed for some N-PHY devices.
896
897                   If unsure, select the "stable" firmware.
898    
899         config B43_FW_5_100_138
900                 bool "Firmware 666.2 from driver 5.100.138"
901                 help
902                   Newer experimental firmware for BCM43xx devices.
903
904                   This firmware is mostly untested. It is needed for some N-PHY devices.
905
906                   If unsure, select the "stable" firmware.
907
908         config B43_OPENFIRMWARE
909                 bool "Open FirmWare for WiFi networks"
910                 help
911                   Opensource firmware for BCM43xx devices.
912
913                   Do _not_ select this, unless you know what you are doing.
914                   The Opensource firmware is not suitable for embedded devices, yet.
915                   It does not support QoS, which is bad for AccessPoints.
916                   It does not support hardware crypto acceleration, which is a showstopper
917                   for embedded devices with low CPU resources.
918
919                   If unsure, select the "stable" firmware.
920
921         endchoice
922
923         config B43_FW_SQUASH
924                 bool "Remove unnecessary firmware files"
925                 depends on !B43_OPENFIRMWARE
926                 default y
927                 help
928                   This options allows you to remove unnecessary b43 firmware files
929                   from the final rootfs image. This can reduce the rootfs size by
930                   up to 200k.
931
932                   If unsure, say Y.
933
934         config B43_FW_SQUASH_COREREVS
935                 string "Core revisions to include"
936                 depends on B43_FW_SQUASH
937                 default "5,6,7,8,9,10,11,13,14,15,16"
938                 help
939                   This is a comma seperated list of core revision numbers.
940
941                   Example (keep files for rev5 only):
942                     5
943
944                   Example (keep files for rev5 and rev11):
945                     5,11
946
947         config B43_FW_SQUASH_PHYTYPES
948                 string "PHY types to include"
949                 depends on B43_FW_SQUASH
950                 default "G,LP,N"
951                 help
952                   This is a comma seperated list of PHY types:
953                     A  => A-PHY
954                     AG => Dual A-PHY G-PHY
955                     G  => G-PHY
956                     LP => LP-PHY
957                     N  => N-PHY
958
959                   Example (keep files for G-PHY only):
960                     G
961
962                   Example (keep files for G-PHY and N-PHY):
963                     G,N
964
965         config PACKAGE_B43_DEBUG
966                 bool "Enable debug output and debugfs for b43"
967                 default n
968                 help
969                   Enable additional debug output and runtime sanity checks for b43
970                   and enables the debugfs interface.
971
972                   If unsure, say N.
973
974         config PACKAGE_B43_PIO
975                 bool "Enable support for PIO transfer mode"
976                 default n
977                 help
978                   Enable support for using PIO instead of DMA. Unless you have DMA
979                   transfer problems you don't need this.
980
981                   If unsure, say N.
982
983         config PACKAGE_B43_PHY_N
984                 bool "Enable support for N-PHYs"
985                 select B43_FW_5_100_138
986                 default y
987                 help
988                   Enable support for BCM4321 and BCM4322.
989
990                   Currently only 11g speed is available.
991
992                   If unsure, say Y.
993
994         config PACKAGE_B43_PHY_HT
995                 bool "Enable support for HT-PHYs"
996                 select B43_FW_5_100_138
997                 default n
998                 help
999                   Currently broken.
1000
1001                   If unsure, say N.
1002
1003         config PACKAGE_B43_PHY_LCN
1004                 bool "Enable support for LCN-PHYs"
1005                 depends on BROKEN
1006                 select B43_FW_5_100_138
1007                 default n
1008                 help
1009                   Currently broken.
1010
1011                   If unsure, say N.
1012
1013         endmenu
1014 endef
1015
1016 define KernelPackage/b43/description
1017 Kernel module for Broadcom 43xx wireless support (mac80211 stack) new
1018 endef
1019
1020 define KernelPackage/b43legacy
1021 $(call KernelPackage/b43-common)
1022   TITLE:=Broadcom 43xx-legacy wireless support
1023   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/b43legacy/b43legacy.ko
1024   AUTOLOAD:=$(call AutoLoad,30,b43legacy)
1025   MENU:=1
1026 endef
1027
1028 define KernelPackage/b43legacy/config
1029         menu "Configuration"
1030                 depends on PACKAGE_kmod-b43legacy
1031
1032         config B43LEGACY_FW_SQUASH
1033                 bool "Remove unnecessary firmware files"
1034                 default y
1035                 help
1036                   This options allows you to remove unnecessary b43legacy firmware files
1037                   from the final rootfs image. This can reduce the rootfs size by
1038                   up to 50k.
1039
1040                   If unsure, say Y.
1041
1042         config B43LEGACY_FW_SQUASH_COREREVS
1043                 string "Core revisions to include"
1044                 depends on B43LEGACY_FW_SQUASH
1045                 default "1,2,3,4"
1046                 help
1047                   This is a comma seperated list of core revision numbers.
1048
1049                   Example (keep files for rev4 only):
1050                     4
1051
1052                   Example (keep files for rev2 and rev4):
1053                     2,4
1054
1055         endmenu
1056 endef
1057
1058 define KernelPackage/b43legacy/description
1059 Kernel module for Broadcom 43xx-legacy wireless support (mac80211 stack) new
1060 endef
1061
1062 BUILDFLAGS:= \
1063         -I$(PKG_BUILD_DIR)/include \
1064         $(foreach opt,$(CONFOPTS),-DCONFIG_$(opt)) \
1065         $(if $(CONFIG_PCI),-DCONFIG_B43_PCI_AUTOSELECT -DCONFIG_B43_PCICORE_AUTOSELECT) \
1066         $(if $(CONFIG_LEDS_TRIGGERS), -DCONFIG_MAC80211_LEDS -DCONFIG_LEDS_TRIGGERS -DCONFIG_B43_LEDS -DCONFIG_B43LEGACY_LEDS) \
1067         -DCONFIG_B43_HWRNG -DCONFIG_B43LEGACY_HWRNG \
1068         $(if $(CONFIG_PCI),-DCONFIG_ATH9K_PCI) \
1069         $(if $(CONFIG_TARGET_ar71xx),-DCONFIG_ATH9K_AHB) \
1070         $(if $(CONFIG_PACKAGE_MAC80211_DEBUGFS), -DCONFIG_CFG80211_DEBUGFS -DCONFIG_MAC80211_DEBUGFS -DCONFIG_ATH9K_DEBUGFS -DCONFIG_CARL9170_DEBUGFS -DCONFIG_ATH9K_HTC_DEBUGFS -DCONFIG_ATH5K_DEBUG) \
1071         $(if $(CONFIG_PACKAGE_ATH_DEBUG),-DCONFIG_ATH_DEBUG -DCONFIG_ATH9K_PKTLOG) \
1072         -D__CONFIG_MAC80211_RC_DEFAULT=minstrel \
1073         -DCONFIG_MAC80211_RC_MINSTREL_HT \
1074         $(if $(CONFIG_ATH_USER_REGD),-DATH_USER_REGD=1) \
1075         $(if $(CONFIG_PACKAGE_B43_DEBUG),-DCONFIG_B43_DEBUG) \
1076         $(if $(CONFIG_PACKAGE_B43_PIO),-DCONFIG_B43_PIO) \
1077         $(if $(CONFIG_PACKAGE_B43_PIO),-DCONFIG_B43_BCMA_PIO) \
1078         $(if $(CONFIG_PACKAGE_B43_PHY_N),-DCONFIG_B43_PHY_N) \
1079         $(if $(CONFIG_PACKAGE_B43_PHY_HT),-DCONFIG_B43_PHY_HT) \
1080         $(if $(CONFIG_PACKAGE_B43_PHY_LCN),-DCONFIG_B43_PHY_LCN) \
1081         -DCONFIG_B43_BCMA \
1082         -DCONFIG_B43_SSB \
1083         $(if $(CONFIG_PACKAGE_RT2X00_LIB_DEBUGFS),-DCONFIG_RT2X00_LIB_DEBUGFS) \
1084         $(if $(CONFIG_PACKAGE_RT2X00_DEBUG),-DCONFIG_RT2X00_DEBUG) \
1085         $(if $(NEED_RT2X00_LIB_HT),-DCONFIG_RT2X00_LIB_HT) \
1086         $(if $(NEED_RT2X00_LIB_CRYPTO),-DCONFIG_RT2X00_LIB_CRYPTO) \
1087         $(if $(NEED_RT2X00_LIB_FIRMWARE),-DCONFIG_RT2X00_LIB_FIRMWARE) \
1088         $(if $(NEED_RT2X00_LIB_EEPROM),-DCONFIG_RT2X00_LIB_EEPROM) \
1089         $(if $(NEED_RT2X00_LIB_LEDS),-DCONFIG_RT2X00_LIB_LEDS) \
1090         $(if $(CONFIG_PACKAGE_kmod-rt2x00-pci),-DCONFIG_RT2X00_LIB_PCI) \
1091         $(if $(CONFIG_PACKAGE_kmod-rt2x00-usb),-DCONFIG_RT2X00_LIB_USB) \
1092         $(if $(CONFIG_PACKAGE_kmod-rt2x00-soc),-DCONFIG_RT2X00_LIB_SOC) \
1093         $(if $(CONFIG_TARGET_atheros),-DCONFIG_ATH5K_AHB,-DCONFIG_ATH5K_PCI) \
1094         $(if $(CONFIG_PACKAGE_kmod-iwl3945),-DCONFIG_IWL3945) \
1095         $(if $(CONFIG_PACKAGE_kmod-iwl4965),-DCONFIG_COMPAT_IWL4965)
1096
1097 MAKE_OPTS:= \
1098         CROSS_COMPILE="$(KERNEL_CROSS)" \
1099         ARCH="$(LINUX_KARCH)" \
1100         EXTRA_CFLAGS="$(BUILDFLAGS)" \
1101         $(foreach opt,$(CONFOPTS),CONFIG_$(opt)=m) \
1102         CONFIG_CFG80211=$(if $(CONFIG_PACKAGE_kmod-cfg80211),m) \
1103         CONFIG_MAC80211=$(if $(CONFIG_PACKAGE_kmod-mac80211),m) \
1104         CONFIG_MAC80211_RC_MINSTREL=y \
1105         CONFIG_MAC80211_LEDS=$(CONFIG_LEDS_TRIGGERS) \
1106         CONFIG_CFG80211_DEBUGFS=$(if $(CONFIG_PACKAGE_MAC80211_DEBUGFS),y) \
1107         CONFIG_MAC80211_DEBUGFS=$(if $(CONFIG_PACKAGE_MAC80211_DEBUGFS),y) \
1108         CONFIG_B43_PCMCIA=n CONFIG_B43_PIO=n \
1109         CONFIG_B43_PCI_AUTOSELECT=$(if $(CONFIG_PCI),y) \
1110         CONFIG_B43_PCICORE_AUTOSELECT=$(if $(CONFIG_PCI),y) \
1111         CONFIG_B43LEGACY_LEDS=$(CONFIG_LEDS_TRIGGERS) \
1112         CONFIG_B43_LEDS=$(CONFIG_LEDS_TRIGGERS) \
1113         CONFIG_B43_HWRNG=$(if $(CONFIG_HW_RANDOM),y) \
1114         CONFIG_B43LEGACY_HWRNG=$(if $(CONFIG_HW_RANDOM),y) \
1115         CONFIG_B43=$(if $(CONFIG_PACKAGE_kmod-b43),m) \
1116         CONFIG_B43LEGACY=$(if $(CONFIG_PACKAGE_kmod-b43legacy),m) \
1117         CONFIG_B43_DEBUG=$(if $(CONFIG_PACKAGE_B43_DEBUG),y) \
1118         CONFIG_B43_PIO=$(if $(CONFIG_PACKAGE_B43_PIO),y) \
1119         CONFIG_B43_BCMA_PIO=$(if $(CONFIG_PACKAGE_B43_PIO),y) \
1120         CONFIG_B43_PHY_N=$(if $(CONFIG_PACKAGE_B43_PHY_N),y) \
1121         CONFIG_B43_PHY_HT=$(if $(CONFIG_PACKAGE_B43_PHY_HT),y) \
1122         CONFIG_B43_PHY_LCN=$(if $(CONFIG_PACKAGE_B43_PHY_LCN),y) \
1123         CONFIG_B43_BCMA=y \
1124         CONFIG_B43_SSB=y \
1125         CONFIG_ATH_COMMON=$(if $(CONFIG_PACKAGE_kmod-ath),m) \
1126         CONFIG_ATH_DEBUG=$(if $(CONFIG_PACKAGE_ATH_DEBUG),y) \
1127         CONFIG_ATH9K_PKTLOG=$(if $(CONFIG_PACKAGE_ATH_DEBUG),y) \
1128         CONFIG_ATH5K=$(if $(CONFIG_PACKAGE_kmod-ath5k),m) \
1129         CONFIG_ATH5K_PCI=$(if $(CONFIG_TARGET_atheros),,y) \
1130         CONFIG_ATH5K_AHB=$(if $(CONFIG_TARGET_atheros),y) \
1131         CONFIG_ATH5K_DEBUG=$(if $(CONFIG_PACKAGE_MAC80211_DEBUGFS),y) \
1132         CONFIG_ATH9K=$(if $(CONFIG_PACKAGE_kmod-ath9k),m) \
1133         CONFIG_ATH9K_PCI=$(CONFIG_PCI) \
1134         CONFIG_ATH9K_AHB=$(if $(CONFIG_TARGET_ar71xx),y) \
1135         CONFIG_ATH9K_HTC=$(if $(CONFIG_PACKAGE_kmod-ath9k-htc),m) \
1136         CONFIG_ATH9K_HTC_DEBUGFS=$(if $(CONFIG_PACKAGE_MAC80211_DEBUGFS),y) \
1137         CONFIG_ATH9K_HW=$(if $(CONFIG_PACKAGE_kmod-ath9k-common),m) \
1138         CONFIG_ATH9K_COMMON=$(if $(CONFIG_PACKAGE_kmod-ath9k-common),m) \
1139         CONFIG_ATH9K_DEBUGFS=$(if $(CONFIG_PACKAGE_MAC80211_DEBUGFS),y) \
1140         CONFIG_CARL9170=$(if $(CONFIG_PACKAGE_kmod-carl9170),m) \
1141         CONFIG_CARL9170_DEBUGFS=$(if $(CONFIG_PACKAGE_MAC80211_DEBUGFS),y) \
1142         CONFIG_COMPAT_ZD1211RW=$(if $(CONFIG_PACKAGE_kmod-zd1211rw),m) \
1143         CONFIG_P54_COMMON=$(if $(CONFIG_PACKAGE_kmod-p54-common),m) \
1144         CONFIG_P54_PCI=$(if $(CONFIG_PACKAGE_kmod-p54-pci),m) \
1145         CONFIG_P54_USB=$(if $(CONFIG_PACKAGE_kmod-p54-usb),m) \
1146         CONFIG_P54_SPI=$(if $(CONFIG_PACKAGE_kmod-p54-spi),m) \
1147         CONFIG_P54_SPI_DEFAULT_EEPROM=n \
1148         CONFIG_RT2X00=$(if $(CONFIG_PACKAGE_kmod-rt2x00-lib),m) \
1149         CONFIG_RT2X00_LIB=$(if $(CONFIG_PACKAGE_kmod-rt2x00-lib),m) \
1150         CONFIG_RT2X00_LIB_PCI=$(if $(CONFIG_PACKAGE_kmod-rt2x00-pci),m) \
1151         CONFIG_RT2X00_LIB_USB=$(if $(CONFIG_PACKAGE_kmod-rt2x00-usb),m) \
1152         CONFIG_RT2X00_LIB_SOC=$(if $(CONFIG_PACKAGE_kmod-rt2x00-soc),m) \
1153         CONFIG_RT2X00_LIB_DEBUGFS=$(CONFIG_PACKAGE_RT2X00_LIB_DEBUGFS) \
1154         CONFIG_RT2X00_LIB_CRYPTO=$(NEED_RT2X00_LIB_CRYPTO) \
1155         CONFIG_RT2X00_LIB_FIRMWARE=$(NEED_RT2X00_LIB_FIRMWARE) \
1156         CONFIG_RT2X00_LIB_EEPROM=$(NEED_RT2X00_LIB_EEPROM) \
1157         CONFIG_RT2X00_LIB_HT=$(NEED_RT2X00_LIB_HT) \
1158         CONFIG_RT2X00_LIB_LEDS=$(NEED_RT2X00_LIB_LEDS) \
1159         CONFIG_RT2400PCI=$(if $(CONFIG_PACKAGE_kmod-rt2400-pci),m) \
1160         CONFIG_RT2500PCI=$(if $(CONFIG_PACKAGE_kmod-rt2500-pci),m) \
1161         CONFIG_RT2500USB=$(if $(CONFIG_PACKAGE_kmod-rt2500-usb),m) \
1162         CONFIG_RT61PCI=$(if $(CONFIG_PACKAGE_kmod-rt61-pci),m) \
1163         CONFIG_RT73USB=$(if $(CONFIG_PACKAGE_kmod-rt73-usb),m) \
1164         CONFIG_RT2800_LIB=$(if $(CONFIG_PACKAGE_kmod-rt2800-lib),m) \
1165         CONFIG_RT2800PCI=$(if $(CONFIG_PACKAGE_kmod-rt2800-pci),m) \
1166         CONFIG_RT2800USB=$(if $(CONFIG_PACKAGE_kmod-rt2800-usb),m) \
1167         CONFIG_RT2800USB_RT53XX=$(if $(CONFIG_PACKAGE_kmod-rt2800-usb),y) \
1168         CONFIG_RTL8180=$(if $(CONFIG_PACKAGE_kmod-rtl8180),m) \
1169         CONFIG_RTL8187=$(if $(CONFIG_PACKAGE_kmod-rtl8187),m) \
1170         CONFIG_RTL8192CE= \
1171         CONFIG_RTLWIFI= \
1172         CONFIG_MAC80211_HWSIM=$(if $(CONFIG_PACKAGE_kmod-mac80211-hwsim),m) \
1173         CONFIG_PCMCIA= \
1174         CONFIG_LIBIPW=$(if $(CONFIG_PACKAGE_kmod-net-libipw),m) \
1175         CONFIG_LIBERTAS=$(if $(CONFIG_PACKAGE_kmod-libertas-sd)$(CONFIG_PACKAGE_kmod-libertas-usb),m) \
1176         CONFIG_LIBERTAS_CS= \
1177         CONFIG_LIBERTAS_SPI= \
1178         CONFIG_COMPAT_LIBERTAS_SDIO=$(if $(CONFIG_PACKAGE_kmod-libertas-sd),m) \
1179         CONFIG_LIBERTAS_THINFIRM= \
1180         CONFIG_LIBERTAS_USB=$(if $(CONFIG_PACKAGE_kmod-libertas-usb),m) \
1181         CONFIG_IPW2100=$(if $(CONFIG_PACKAGE_kmod-net-ipw2100),m) \
1182         CONFIG_IPW2200=$(if $(CONFIG_PACKAGE_kmod-net-ipw2200),m) \
1183         CONFIG_NL80211=y \
1184         CONFIG_LIB80211=$(if $(CONFIG_PACKAGE_kmod-lib80211),m) \
1185         CONFIG_LIB80211_CRYPT_WEP=$(if $(CONFIG_PACKAGE_kmod-lib80211),m) \
1186         CONFIG_LIB80211_CRYPT_CCMP=$(if $(CONFIG_PACKAGE_kmod-lib80211),m) \
1187         CONFIG_LIB80211_CRYPT_TKIP=$(if $(CONFIG_PACKAGE_kmod-lib80211),m) \
1188         CONFIG_IWLWIFI=$(if $(CONFIG_PACKAGE_kmod-iwlagn),m) \
1189         CONFIG_IWLEGACY=$(if $(CONFIG_PACKAGE_kmod-iwl-legacy),m) \
1190         CONFIG_COMPAT_IWL4965=$(if $(CONFIG_PACKAGE_kmod-iwl4965),m) \
1191         CONFIG_IWL3945=$(if $(CONFIG_PACKAGE_kmod-iwl3945),m) \
1192         CONFIG_MWL8K=$(if $(CONFIG_PACKAGE_kmod-mwl8k),m) \
1193         CONFIG_ATMEL= \
1194         CONFIG_PCMCIA_ATMEL= \
1195         CONFIG_ADM8211= \
1196         CONFIG_USB_NET_RNDIS_HOST= \
1197         CONFIG_USB_NET_RNDIS_WLAN= \
1198         CONFIG_USB_NET_CDCETHER= \
1199         CONFIG_USB_USBNET= \
1200         CONFIG_AT76C50X_USB= \
1201         CONFIG_WL12XX= \
1202         CONFIG_EEPROM_93CX6= \
1203         CONFIG_HERMES=$(if $(CONFIG_PACKAGE_kmod-net-hermes),m) \
1204         CONFIG_HERMES_CACHE_FW_ON_INIT= \
1205         CONFIG_PCI_HERMES=$(if $(CONFIG_PACKAGE_kmod-net-hermes-pci),m) \
1206         CONFIG_PLX_HERMES=$(if $(CONFIG_PACKAGE_kmod-net-hermes-plx),m) \
1207         CONFIG_PCMCIA_HERMES=$(if $(CONFIG_PACKAGE_kmod-net-hermes-pcmcia),m) \
1208         CONFIG_HERMES_PRISM= \
1209         CONFIG_APPLE_AIRPORT= \
1210         CONFIG_TMD_HERMES= \
1211         CONFIG_NORTEL_HERMES= \
1212         CONFIG_PCMCIA_SPECTRUM= \
1213         CONFIG_ORINOCO_USB= \
1214         CONFIG_IWM= \
1215         CONFIG_MWIFIEX= \
1216         CONFIG_MAC80211_RC_MINSTREL_HT=y \
1217         MADWIFI= \
1218         CONFIG_B44= \
1219         CONFIG_ATL1= \
1220         CONFIG_ATL2= \
1221         CONFIG_ATL1E= \
1222         CONFIG_ATL1C= \
1223         CONFIG_BRCMFMAC= \
1224         CONFIG_BRCMUMAC= \
1225         CONFIG_BRCMSMAC= \
1226         KLIB_BUILD="$(LINUX_DIR)" \
1227         MODPROBE=: \
1228         KLIB=$(TARGET_MODULES_DIR) \
1229         KERNEL_SUBLEVEL=$(lastword $(subst ., ,$(KERNEL_PATCHVER))) \
1230         KBUILD_LDFLAGS_MODULE_PREREQ=
1231
1232 ifeq ($(CONFIG_PACKAGE_kmod-libertas-sd)$(CONFIG_PACKAGE_kmod-libertas-usb)$(CONFIG_PACKAGE_kmod-rt2x00-lib),)
1233   MAKE_OPTS += CONFIG_COMPAT_KFIFO=
1234 endif
1235
1236 define Build/Prepare
1237         rm -rf $(PKG_BUILD_DIR)
1238         mkdir -p $(PKG_BUILD_DIR)
1239         $(PKG_UNPACK)
1240         $(Build/Patch)
1241         $(TAR) -C $(PKG_BUILD_DIR) -xzf $(DL_DIR)/$(IPW2100_NAME)-$(IPW2100_VERSION).tgz
1242         $(TAR) -C $(PKG_BUILD_DIR) -xzf $(DL_DIR)/$(IPW2200_NAME)-$(IPW2200_VERSION).tgz
1243         $(TAR) -C $(PKG_BUILD_DIR) -xjf $(DL_DIR)/$(ZD1211FW_NAME)-$(ZD1211FW_VERSION).tar.bz2
1244         $(TAR) -C $(PKG_BUILD_DIR) -xjf $(DL_DIR)/$(PKG_LINUX_FIRMWARE_SOURCE)
1245         rm -rf $(PKG_BUILD_DIR)/include/linux/ssb
1246         rm -rf $(PKG_BUILD_DIR)/include/linux/bcma
1247         rm -f $(PKG_BUILD_DIR)/include/net/ieee80211.h
1248 endef
1249
1250 ifneq ($(CONFIG_PACKAGE_kmod-cfg80211)$(CONFIG_PACKAGE_kmod-lib80211),)
1251  define Build/Compile/kmod
1252         rm -rf $(PKG_BUILD_DIR)/modules
1253         $(MAKE) $(PKG_JOBS) -C "$(PKG_BUILD_DIR)" $(MAKE_OPTS) all
1254  endef
1255 endif
1256
1257 define Build/Compile
1258         $(call Build/Compile/kmod)
1259 endef
1260
1261 define Build/InstallDev
1262         mkdir -p \
1263                 $(1)/usr/include/mac80211 \
1264                 $(1)/usr/include/mac80211/ath \
1265                 $(1)/usr/include/net/mac80211
1266         $(CP) $(PKG_BUILD_DIR)/net/mac80211/*.h $(PKG_BUILD_DIR)/include/* $(1)/usr/include/mac80211/
1267         $(CP) $(PKG_BUILD_DIR)/net/mac80211/rate.h $(1)/usr/include/net/mac80211/
1268         $(CP) $(PKG_BUILD_DIR)/drivers/net/wireless/ath/*.h $(1)/usr/include/mac80211/ath/
1269 endef
1270
1271 define KernelPackage/libertas-usb/install
1272         $(INSTALL_DIR) $(1)/lib/firmware
1273         $(INSTALL_DATA) \
1274                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/libertas/usb8388_v9.bin \
1275                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/libertas/usb8388_v5.bin \
1276                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/libertas/usb8682.bin \
1277                 $(1)/lib/firmware/
1278 endef
1279
1280 define KernelPackage/libertas-sd/install
1281         $(INSTALL_DIR) $(1)/lib/firmware/libertas
1282         $(INSTALL_DATA) \
1283                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/libertas/sd8385_helper.bin \
1284                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/libertas/sd8385.bin \
1285                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/libertas/sd8686_v9_helper.bin \
1286                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/libertas/sd8686_v9.bin \
1287                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/libertas/sd8686_v8_helper.bin \
1288                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/libertas/sd8686_v8.bin \
1289                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/libertas/sd8688_helper.bin \
1290                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/libertas/sd8688.bin \
1291                 $(1)/lib/firmware/libertas
1292 endef
1293
1294 define KernelPackage/cfg80211/install
1295         $(INSTALL_DIR) $(1)/lib/wifi
1296         $(INSTALL_DATA) ./files/lib/wifi/mac80211.sh $(1)/lib/wifi
1297 endef
1298
1299 define KernelPackage/p54-pci/install
1300         $(INSTALL_DIR) $(1)/lib/firmware
1301         $(INSTALL_DATA) $(DL_DIR)/$(P54PCIFW) $(1)/lib/firmware/isl3886pci
1302 endef
1303
1304 define KernelPackage/p54-usb/install
1305         $(INSTALL_DIR) $(1)/lib/firmware
1306         $(INSTALL_DATA) $(DL_DIR)/$(P54USBFW) $(1)/lib/firmware/isl3887usb
1307 endef
1308
1309 define KernelPackage/p54-spi/install
1310         $(INSTALL_DIR) $(1)/lib/firmware
1311         $(INSTALL_DATA) $(DL_DIR)/$(P54SPIFW) $(1)/lib/firmware/3826.arm
1312 endef
1313
1314 define KernelPackage/rt61-pci/install
1315         $(INSTALL_DIR) $(1)/lib/firmware
1316         $(INSTALL_DATA) \
1317                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/rt2561.bin \
1318                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/rt2561s.bin \
1319                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/rt2661.bin \
1320                 $(1)/lib/firmware/
1321 endef
1322
1323 define KernelPackage/rt73-usb/install
1324         $(INSTALL_DIR) $(1)/lib/firmware
1325         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/rt73.bin $(1)/lib/firmware/
1326 endef
1327
1328 define KernelPackage/rt2800-pci/install
1329         $(INSTALL_DIR) $(1)/lib/firmware
1330         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/rt2860.bin $(1)/lib/firmware/
1331 endef
1332
1333 define KernelPackage/rt2800-usb/install
1334         $(INSTALL_DIR) $(1)/lib/firmware
1335         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/rt2870.bin $(1)/lib/firmware/
1336 endef
1337
1338 define KernelPackage/zd1211rw/install
1339         $(INSTALL_DIR) $(1)/lib/firmware/zd1211
1340         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(ZD1211FW_NAME)/zd1211* $(1)/lib/firmware/zd1211
1341 endef
1342
1343 define KernelPackage/ath9k-htc/install
1344         $(INSTALL_DIR) $(1)/lib/firmware
1345         $(INSTALL_DATA) \
1346                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/htc_9271.fw \
1347                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/htc_7010.fw \
1348                 $(1)/lib/firmware/
1349 endef
1350
1351 define KernelPackage/mwl8k/install
1352         $(INSTALL_DIR) $(1)/lib/firmware
1353         $(INSTALL_DATA) \
1354                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/mwl8k/fmimage_8366_ap-2.fw \
1355                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/mwl8k/fmimage_8366.fw \
1356                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/mwl8k/helper_8366.fw \
1357                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/mwl8k/fmimage_8687.fw \
1358                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/mwl8k/helper_8687.fw \
1359                 $(1)/lib/firmware/
1360 endef
1361
1362 define KernelPackage/net-ipw2100/install
1363         $(INSTALL_DIR) $(1)/lib/firmware
1364         $(INSTALL_DATA) $(PKG_BUILD_DIR)/ipw2100-$(IPW2100_VERSION)*.fw $(1)/lib/firmware
1365 endef
1366
1367 define KernelPackage/net-ipw2200/install
1368         $(INSTALL_DIR) $(1)/lib/firmware
1369         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(IPW2200_NAME)-$(IPW2200_VERSION)/ipw2200*.fw $(1)/lib/firmware
1370 endef
1371
1372 define KernelPackage/iwlagn/install
1373         $(INSTALL_DIR) $(1)/lib/firmware
1374 ifneq ($(CONFIG_IWL5000_FW),)
1375         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-5000-5.ucode $(1)/lib/firmware
1376 endif
1377 ifneq ($(CONFIG_IWL5150_FW),)
1378         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-5150-2.ucode $(1)/lib/firmware
1379 endif
1380 ifneq ($(CONFIG_IWL1000_FW),)
1381         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-1000-5.ucode $(1)/lib/firmware
1382 endif
1383 ifneq ($(CONFIG_IWL6000_FW),)
1384         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-6000-4.ucode $(1)/lib/firmware
1385 endif
1386 ifneq ($(CONFIG_IWL6050_FW),)
1387         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-6050-5.ucode $(1)/lib/firmware
1388 endif
1389 ifneq ($(CONFIG_IWL6005_FW),)
1390         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-6000g2a-5.ucode $(1)/lib/firmware
1391 endif
1392 ifneq ($(CONFIG_IWL6030_FW),)
1393         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-6000g2b-5.ucode $(1)/lib/firmware
1394 endif
1395 ifneq ($(CONFIG_IWL100_FW),)
1396         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-100-5.ucode $(1)/lib/firmware
1397 endif
1398 endef
1399
1400 define KernelPackage/iwl3945/install
1401         $(INSTALL_DIR) $(1)/lib/firmware
1402         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-3945-2.ucode $(1)/lib/firmware
1403 endef
1404
1405 define KernelPackage/iwl4965/install
1406         $(INSTALL_DIR) $(1)/lib/firmware
1407         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-4965-2.ucode $(1)/lib/firmware
1408 endef
1409
1410 define Build/b43-common
1411         tar xjf "$(DL_DIR)/$(PKG_B43_FWCUTTER_SOURCE)" -C "$(PKG_BUILD_DIR)"
1412         patch -p1 -d  "$(PKG_BUILD_DIR)/$(PKG_B43_FWCUTTER_OBJECT)" < ./files/b43-fwcutter-fw-dirname.patch
1413         $(MAKE) -C "$(PKG_BUILD_DIR)/$(PKG_B43_FWCUTTER_OBJECT)" \
1414                 CFLAGS="-I$(STAGING_DIR_HOST)/include -include endian.h" \
1415                 QUIET_SPARSE=:
1416         $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(PKG_B43_FWCUTTER_OBJECT)/b43-fwcutter $(STAGING_DIR_HOST)/bin/
1417 ifeq ($(CONFIG_B43_OPENFIRMWARE),y)
1418         $(INSTALL_DIR) $(STAGING_DIR_HOST)/bin/
1419         $(MAKE) -C "$(PKG_BUILD_DIR)/$(PKG_B43_FWCUTTER_SUBDIR)/assembler/"
1420         $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(PKG_B43_FWCUTTER_SUBDIR)/assembler/b43-asm $(STAGING_DIR_HOST)/bin/
1421         $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(PKG_B43_FWCUTTER_SUBDIR)/assembler/b43-asm.bin $(STAGING_DIR_HOST)/bin/
1422 endif
1423         $(INSTALL_BIN) ./files/host_bin/b43-fwsquash.py $(STAGING_DIR_HOST)/bin/
1424 endef
1425
1426 define KernelPackage/b43/install
1427         rm -rf $(1)/lib/firmware/
1428         $(call Build/b43-common)
1429 ifeq ($(CONFIG_B43_OPENFIRMWARE),y)
1430         tar xzf "$(DL_DIR)/$(PKG_B43_FWV4_SOURCE)" -C "$(PKG_BUILD_DIR)"
1431 else
1432         tar xjf "$(DL_DIR)/$(PKG_B43_FWV4_SOURCE)" -C "$(PKG_BUILD_DIR)"
1433 endif
1434         $(INSTALL_DIR) $(1)/lib/firmware/
1435 ifeq ($(CONFIG_B43_OPENFIRMWARE),y)
1436         $(MAKE) -C "$(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)/"
1437         $(INSTALL_DIR) $(1)/lib/firmware/b43-open/
1438         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)/ucode5.fw $(1)/lib/firmware/b43-open/ucode5.fw
1439         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)/b0g0bsinitvals5.fw $(1)/lib/firmware/b43-open/b0g0bsinitvals5.fw
1440         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)/b0g0initvals5.fw $(1)/lib/firmware/b43-open/b0g0initvals5.fw
1441 else
1442         b43-fwcutter -w $(1)/lib/firmware/ $(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)
1443 endif
1444 ifneq ($(CONFIG_B43_FW_SQUASH),)
1445         b43-fwsquash.py "$(CONFIG_B43_FW_SQUASH_PHYTYPES)" "$(CONFIG_B43_FW_SQUASH_COREREVS)" "$(1)/lib/firmware/b43"
1446 endif
1447 endef
1448
1449 define KernelPackage/b43legacy/install
1450         $(call Build/b43-common)
1451         $(INSTALL_DIR) $(1)/lib/firmware/
1452
1453         b43-fwcutter --unsupported -w $(1)/lib/firmware/ $(DL_DIR)/$(PKG_B43_FWV3_SOURCE)
1454 ifneq ($(CONFIG_B43LEGACY_FW_SQUASH),)
1455         b43-fwsquash.py "G" "$(CONFIG_B43LEGACY_FW_SQUASH_COREREVS)" "$(1)/lib/firmware/b43legacy"
1456 endif
1457 endef
1458
1459 $(eval $(call KernelPackage,ath5k))
1460 $(eval $(call KernelPackage,lib80211))
1461 $(eval $(call KernelPackage,libertas-usb))
1462 $(eval $(call KernelPackage,libertas-sd))
1463 $(eval $(call KernelPackage,cfg80211))
1464 $(eval $(call KernelPackage,mac80211))
1465 $(eval $(call KernelPackage,p54-common))
1466 $(eval $(call KernelPackage,p54-pci))
1467 $(eval $(call KernelPackage,p54-usb))
1468 $(eval $(call KernelPackage,p54-spi))
1469 $(eval $(call KernelPackage,rt2x00-lib))
1470 $(eval $(call KernelPackage,rt2x00-pci))
1471 $(eval $(call KernelPackage,rt2x00-usb))
1472 $(eval $(call KernelPackage,rt2x00-soc))
1473 $(eval $(call KernelPackage,rt2800-lib))
1474 $(eval $(call KernelPackage,rt2400-pci))
1475 $(eval $(call KernelPackage,rt2500-pci))
1476 $(eval $(call KernelPackage,rt2500-usb))
1477 $(eval $(call KernelPackage,rt61-pci))
1478 $(eval $(call KernelPackage,rt73-usb))
1479 $(eval $(call KernelPackage,rt2800-pci))
1480 $(eval $(call KernelPackage,rt2800-usb))
1481 $(eval $(call KernelPackage,rtl8180))
1482 $(eval $(call KernelPackage,rtl8187))
1483 $(eval $(call KernelPackage,zd1211rw))
1484 $(eval $(call KernelPackage,mac80211-hwsim))
1485 $(eval $(call KernelPackage,ath9k-common))
1486 $(eval $(call KernelPackage,ath9k))
1487 $(eval $(call KernelPackage,ath9k-htc))
1488 $(eval $(call KernelPackage,ath))
1489 $(eval $(call KernelPackage,carl9170))
1490 $(eval $(call KernelPackage,b43))
1491 $(eval $(call KernelPackage,b43legacy))
1492 $(eval $(call KernelPackage,net-libipw))
1493 $(eval $(call KernelPackage,net-ipw2100))
1494 $(eval $(call KernelPackage,net-ipw2200))
1495 $(eval $(call KernelPackage,iwlagn))
1496 $(eval $(call KernelPackage,iwl-legacy))
1497 $(eval $(call KernelPackage,iwl4965))
1498 $(eval $(call KernelPackage,iwl3945))
1499 $(eval $(call KernelPackage,mwl8k))
1500 $(eval $(call KernelPackage,net-hermes))
1501 $(eval $(call KernelPackage,net-hermes-pci))
1502 $(eval $(call KernelPackage,net-hermes-plx))
1503 $(eval $(call KernelPackage,net-hermes-pcmcia))