mac80211: reconfigure in Build/Compile instead of Build/Configure to catch kernel...
[openwrt.git] / package / kernel / mac80211 / Makefile
1 #
2 # Copyright (C) 2007-2012 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:=2013-06-27
14 PKG_RELEASE:=1
15 PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources
16 PKG_BACKPORT_VERSION:=.1
17 PKG_MD5SUM:=73bd220c64c5c6fdc22b3bb7f180644f
18
19 PKG_SOURCE:=compat-wireless-$(PKG_VERSION)$(PKG_BACKPORT_VERSION).tar.bz2
20 PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/compat-wireless-$(PKG_VERSION)
21 PKG_BUILD_PARALLEL:=1
22
23 PKG_MAINTAINER:=Felix Fietkau <nbd@openwrt.org>
24
25 PKG_DRIVERS = \
26         adm8211 ath5k libertas-usb libertas-sd p54-common p54-pci p54-usb p54-spi \
27         rt2x00-lib rt2x00-pci rt2x00-usb rt2x00-soc rt2800-lib rt2400-pci \
28         rt2500-pci rt2500-usb rt61-pci rt73-usb rt2800-pci rt2800-usb \
29         rtl8180 rtl8187 zd1211rw mac80211-hwsim carl9170 b43 b43legacy \
30         ath9k-common ath9k ath9k-htc ath net-libipw net-ipw2100 net-ipw2200 \
31         mwl8k net-hermes net-hermes-pci net-hermes-plx net-hermes-pcmcia \
32         iwl-legacy iwl3945 iwl4965 iwlagn wl12xx lib80211
33
34 PKG_CONFIG_DEPENDS:= \
35         CONFIG_PACKAGE_kmod-mac80211 \
36         $(patsubst %,CONFIG_PACKAGE_kmod-%,$(PKG_DRIVERS)) \
37         CONFIG_PACKAGE_MAC80211_DEBUGFS \
38         CONFIG_PACKAGE_MAC80211_MESH \
39         CONFIG_PACKAGE_ATH_DEBUG \
40         CONFIG_PACKAGE_B43_DEBUG \
41         CONFIG_PACKAGE_B43_PIO \
42         CONFIG_PACKAGE_B43_N_PHY \
43         CONFIG_ATH_USER_REGD \
44
45 CARL9170_FW_VERSION:=1.9.6
46
47 include $(INCLUDE_DIR)/package.mk
48
49 WMENU:=Wireless Drivers
50
51 define KernelPackage/mac80211/Default
52   SUBMENU:=$(WMENU)
53   URL:=http://linuxwireless.org/
54   MAINTAINER:=Felix Fietkau <nbd@openwrt.org>
55   DEPENDS:=@(!(TARGET_avr32||TARGET_ps3||TARGET_pxcab)||BROKEN)
56 endef
57
58 define KernelPackage/cfg80211
59   $(call KernelPackage/mac80211/Default)
60   TITLE:=cfg80211 - wireless configuration API
61   DEPENDS+= +iw
62   FILES:= \
63         $(PKG_BUILD_DIR)/compat/compat.ko \
64         $(PKG_BUILD_DIR)/net/wireless/cfg80211.ko
65   AUTOLOAD:=$(call AutoLoad,20,compat cfg80211)
66 endef
67
68 define KernelPackage/cfg80211/description
69 cfg80211 is the Linux wireless LAN (802.11) configuration API.
70 endef
71
72 define KernelPackage/mac80211
73   $(call KernelPackage/mac80211/Default)
74   TITLE:=Linux 802.11 Wireless Networking Stack
75   DEPENDS+= +kmod-crypto-core +kmod-crypto-arc4 +kmod-crypto-aes +kmod-cfg80211
76   KCONFIG:=\
77         CONFIG_AVERAGE=y
78   FILES:= $(PKG_BUILD_DIR)/net/mac80211/mac80211.ko
79   AUTOLOAD:=$(call AutoLoad,21,mac80211)
80   MENU:=1
81 endef
82
83 define KernelPackage/mac80211/config
84   if PACKAGE_kmod-mac80211
85
86         config PACKAGE_MAC80211_DEBUGFS
87                 bool "Export mac80211 internals in DebugFS"
88                 select KERNEL_DEBUG_FS
89                 select KERNEL_RELAY if PACKAGE_kmod-ath9k-common
90                 default y
91                 help
92                   Select this to see extensive information about
93                   the internal state of mac80211 in debugfs.
94
95         config PACKAGE_MAC80211_MESH
96                 bool "Enable 802.11s mesh support"
97                 default y
98
99   endif
100 endef
101
102 define KernelPackage/mac80211/description
103 Generic IEEE 802.11 Networking Stack (mac80211)
104 endef
105
106 PKG_LINUX_FIRMWARE_NAME:=linux-firmware
107 PKG_LINUX_FIRMWARE_VERSION:=6942dba419d2ebf8c15514972e89734fd7a8cebc
108 PKG_LINUX_FIRMWARE_SOURCE:=$(PKG_LINUX_FIRMWARE_NAME)-$(PKG_LINUX_FIRMWARE_VERSION).tar.bz2
109 PKG_LINUX_FIRMWARE_PROTO:=git
110 PKG_LINUX_FIRMWARE_SOURCE_URL:=git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
111 PKG_LINUX_FIRMWARE_SUBDIR:=$(PKG_LINUX_FIRMWARE_NAME)-$(PKG_LINUX_FIRMWARE_VERSION)
112 PKG_LINUX_FIRMWARE_MIRROR_MD5SUM:=a5f8c27af9e43f0ad24d7f821c5a781e
113
114 define Download/linux-firmware
115   FILE:=$(PKG_LINUX_FIRMWARE_SOURCE)
116   URL:=$(PKG_LINUX_FIRMWARE_SOURCE_URL)
117   MD5SUM:=$(PKG_LINUX_FIRMWARE_MD5SUM)
118   PROTO:=$(PKG_LINUX_FIRMWARE_PROTO)
119   VERSION:=$(PKG_LINUX_FIRMWARE_VERSION)
120   SUBDIR:=$(PKG_LINUX_FIRMWARE_SUBDIR)
121   MIRROR_MD5SUM:=$(PKG_LINUX_FIRMWARE_MIRROR_MD5SUM)
122 endef
123 $(eval $(call Download,linux-firmware))
124
125 # Prism54 drivers
126 P54PCIFW:=2.13.12.0.arm
127 P54USBFW:=2.13.24.0.lm87.arm
128 P54SPIFW:=2.13.0.0.a.13.14.arm
129 CARL9170_FW:=carl9170-1.fw
130
131 define Download/p54usb
132   FILE:=$(P54USBFW)
133   URL:=http://daemonizer.de/prism54/prism54-fw/fw-usb
134   MD5SUM:=8e8ab005a4f8f0123bcdc51bc25b47f6
135 endef
136 $(eval $(call Download,p54usb))
137
138 define Download/p54pci
139   FILE:=$(P54PCIFW)
140   URL:=http://daemonizer.de/prism54/prism54-fw/fw-softmac
141   MD5SUM:=ff7536af2092b1c4b21315bd103ef4c4
142 endef
143 $(eval $(call Download,p54pci))
144
145 define Download/p54spi
146   FILE:=$(P54SPIFW)
147   URL:=http://daemonizer.de/prism54/prism54-fw/stlc4560
148   MD5SUM:=42661f8ecbadd88012807493f596081d
149 endef
150 $(eval $(call Download,p54spi))
151
152 define Download/carl9170
153   FILE:=$(CARL9170_FW)-$(CARL9170_FW_VERSION)
154   URL:=http://downloads.openwrt.org/sources/
155   MD5SUM:=2fa6ed98d53d0b5fbcc136d1cf5e9609
156 endef
157 $(eval $(call Download,carl9170))
158
159 define KernelPackage/p54/Default
160   $(call KernelPackage/mac80211/Default)
161   TITLE:=Prism54 Drivers
162 endef
163
164 define KernelPackage/p54/description
165   Kernel module for Prism54 chipsets (mac80211)
166 endef
167
168 define KernelPackage/p54-common
169   $(call KernelPackage/p54/Default)
170   DEPENDS+= @PCI_SUPPORT||@USB_SUPPORT||@TARGET_omap24xx +kmod-mac80211 +kmod-lib-crc-ccitt
171   TITLE+= (COMMON)
172   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/p54/p54common.ko
173   AUTOLOAD:=$(call AutoLoad,30,p54common)
174 endef
175
176 define KernelPackage/p54-pci
177   $(call KernelPackage/p54/Default)
178   TITLE+= (PCI)
179   DEPENDS+= @PCI_SUPPORT +kmod-p54-common
180   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/p54/p54pci.ko
181   AUTOLOAD:=$(call AutoLoad,31,p54pci)
182 endef
183
184 define KernelPackage/p54-usb
185   $(call KernelPackage/p54/Default)
186   TITLE+= (USB)
187   DEPENDS+= @USB_SUPPORT +kmod-usb-core +kmod-p54-common
188   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/p54/p54usb.ko
189   AUTOLOAD:=$(call AutoLoad,31,p54usb)
190 endef
191
192 define KernelPackage/p54-spi
193   $(call KernelPackage/p54/Default)
194   TITLE+= (SPI)
195   DEPENDS+= @TARGET_omap24xx +kmod-p54-common
196   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/p54/p54spi.ko
197   AUTOLOAD:=$(call AutoLoad,31,p54spi)
198 endef
199
200 define KernelPackage/rt2x00/Default
201   $(call KernelPackage/mac80211/Default)
202   TITLE:=Ralink Drivers for RT2x00 cards
203 endef
204
205 define KernelPackage/rt2x00-lib
206 $(call KernelPackage/rt2x00/Default)
207   DEPENDS+= @(PCI_SUPPORT||USB_SUPPORT||TARGET_ramips) +kmod-mac80211 +kmod-lib-crc-itu-t
208   TITLE+= (LIB)
209   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2x00lib.ko
210   AUTOLOAD:=$(call AutoLoad,24,rt2x00lib)
211   MENU:=1
212 endef
213
214 define KernelPackage/rt2x00-lib/config
215   if PACKAGE_kmod-rt2x00-lib
216
217         config PACKAGE_RT2X00_LIB_DEBUGFS
218                 bool "Enable rt2x00 debugfs support"
219                 depends on PACKAGE_MAC80211_DEBUGFS
220                 help
221                   Enable creation of debugfs files for the rt2x00 drivers.
222                   These debugfs files support both reading and writing of the
223                   most important register types of the rt2x00 hardware.
224
225         config PACKAGE_RT2X00_DEBUG
226                 bool "Enable rt2x00 debug output"
227                 help
228                   Enable debugging output for all rt2x00 modules
229
230   endif
231 endef
232
233 define KernelPackage/rt2x00-mmio
234 $(call KernelPackage/rt2x00/Default)
235   DEPENDS+= @(PCI_SUPPORT||TARGET_ramips) +kmod-rt2x00-lib +kmod-eeprom-93cx6
236   TITLE+= (MMIO)
237   FILES:= $(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2x00mmio.ko
238   AUTOLOAD:=$(call AutoLoad,25,rt2x00mmio)
239 endef
240
241 define KernelPackage/rt2x00-pci
242 $(call KernelPackage/rt2x00/Default)
243   DEPENDS+= @PCI_SUPPORT +kmod-rt2x00-mmio +kmod-rt2x00-lib
244   TITLE+= (PCI)
245   FILES:= $(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2x00pci.ko
246   AUTOLOAD:=$(call AutoLoad,26,rt2x00pci)
247 endef
248
249 define KernelPackage/rt2x00-usb
250 $(call KernelPackage/rt2x00/Default)
251   DEPENDS+= @USB_SUPPORT +kmod-rt2x00-lib +kmod-usb-core
252   TITLE+= (USB)
253   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2x00usb.ko
254   AUTOLOAD:=$(call AutoLoad,26,rt2x00usb)
255 endef
256
257 define KernelPackage/rt2x00-soc
258 $(call KernelPackage/rt2x00/Default)
259   DEPENDS+= @TARGET_ramips @!TARGET_ramips_mt7620a @!TARGET_ramips_rt3883 +kmod-rt2x00-mmio +kmod-rt2x00-lib
260   TITLE+= (SoC)
261   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2x00soc.ko
262   AUTOLOAD:=$(call AutoLoad,26,rt2x00soc)
263 endef
264
265 define KernelPackage/rt2800-lib
266 $(call KernelPackage/rt2x00/Default)
267   DEPENDS+= @(PCI_SUPPORT||USB_SUPPORT||TARGET_ramips) +kmod-rt2x00-lib +TARGET_ramips:kmod-rt2x00-soc +@DRIVER_11N_SUPPORT
268   TITLE+= (rt2800 LIB)
269   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2800lib.ko
270   AUTOLOAD:=$(call AutoLoad,27,rt2800lib)
271 endef
272
273 define KernelPackage/rt2400-pci
274 $(call KernelPackage/rt2x00/Default)
275   DEPENDS+= @PCI_SUPPORT +kmod-rt2x00-pci
276   TITLE+= (RT2400 PCI)
277   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2400pci.ko
278   AUTOLOAD:=$(call AutoLoad,27,rt2400pci)
279 endef
280
281 define KernelPackage/rt2500-pci
282 $(call KernelPackage/rt2x00/Default)
283   DEPENDS+= @PCI_SUPPORT +kmod-rt2x00-pci
284   TITLE+= (RT2500 PCI)
285   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2500pci.ko
286   AUTOLOAD:=$(call AutoLoad,27,rt2500pci)
287 endef
288
289 define KernelPackage/rt2500-usb
290 $(call KernelPackage/rt2x00/Default)
291   DEPENDS+= @USB_SUPPORT +kmod-rt2x00-usb
292   TITLE+= (RT2500 USB)
293   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2500usb.ko
294   AUTOLOAD:=$(call AutoLoad,27,rt2500usb)
295 endef
296
297 define KernelPackage/rt61-pci
298 $(call KernelPackage/rt2x00/Default)
299   DEPENDS+= @PCI_SUPPORT +kmod-rt2x00-pci
300   TITLE+= (RT2x61 PCI)
301   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt61pci.ko
302   AUTOLOAD:=$(call AutoLoad,27,rt61pci)
303 endef
304
305 define KernelPackage/rt73-usb
306   $(call KernelPackage/rt2x00/Default)
307   DEPENDS+= @USB_SUPPORT +kmod-rt2x00-usb
308   TITLE+= (RT73 USB)
309   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt73usb.ko
310   AUTOLOAD:=$(call AutoLoad,27,rt73usb)
311 endef
312
313 define KernelPackage/rt2800-pci
314 $(call KernelPackage/rt2x00/Default)
315   DEPENDS+= @(PCI_SUPPORT||TARGET_ramips) +PCI_SUPPORT:kmod-rt2x00-pci +kmod-rt2800-lib +kmod-lib-crc-ccitt +TARGET_ramips:kmod-rt2x00-soc
316   TITLE+= (RT2860 PCI)
317   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2800pci.ko
318   AUTOLOAD:=$(call AutoLoad,28,rt2800pci)
319 endef
320
321 define KernelPackage/rt2800-usb
322 $(call KernelPackage/rt2x00/Default)
323   DEPENDS+= @USB_SUPPORT +kmod-rt2x00-usb +kmod-rt2800-lib +kmod-lib-crc-ccitt
324   TITLE+= (RT2870 USB)
325   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2800usb.ko
326   AUTOLOAD:=$(call AutoLoad,28,rt2800usb)
327 endef
328
329 define KernelPackage/rtl818x/Default
330   $(call KernelPackage/mac80211/Default)
331   TITLE:=Realtek Drivers for RTL818x devices
332   URL:=http://wireless.kernel.org/en/users/Drivers/rtl8187
333   DEPENDS+= +kmod-eeprom-93cx6 +kmod-mac80211
334 endef
335
336 define KernelPackage/rtl8180
337   $(call KernelPackage/rtl818x/Default)
338   DEPENDS+= @PCI_SUPPORT
339   TITLE+= (RTL8180 PCI)
340   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rtl818x/rtl8180/rtl8180.ko
341   AUTOLOAD:=$(call AutoLoad,27,rtl8180)
342 endef
343
344 define KernelPackage/rtl8187
345 $(call KernelPackage/rtl818x/Default)
346   DEPENDS+= @USB_SUPPORT +kmod-usb-core
347   TITLE+= (RTL8187 USB)
348   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rtl818x/rtl8187/rtl8187.ko
349   AUTOLOAD:=$(call AutoLoad,27,rtl8187)
350 endef
351
352 ZD1211FW_NAME:=zd1211-firmware
353 ZD1211FW_VERSION:=1.4
354 define Download/zd1211rw
355   FILE:=$(ZD1211FW_NAME)-$(ZD1211FW_VERSION).tar.bz2
356   URL:=@SF/zd1211/
357   MD5SUM:=19f28781d76569af8551c9d11294c870
358 endef
359 $(eval $(call Download,zd1211rw))
360
361 define KernelPackage/zd1211rw
362   $(call KernelPackage/mac80211/Default)
363   TITLE:=Zydas ZD1211 support
364   DEPENDS+= @USB_SUPPORT +kmod-usb-core +kmod-mac80211
365   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/zd1211rw/zd1211rw.ko
366   AUTOLOAD:=$(call AutoLoad,60,zd1211rw)
367 endef
368
369 define KernelPackage/adm8211
370   $(call KernelPackage/mac80211/Default)
371   TITLE:=ADMTek 8211 support
372   DEPENDS+=@PCI_SUPPORT +kmod-mac80211 +kmod-eeprom-93cx6
373   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/adm8211.ko
374   AUTOLOAD:=$(call AutoLoad,60,adm8211)
375 endef
376
377 define KernelPackage/ath/config
378   if PACKAGE_kmod-ath
379         config ATH_USER_REGD
380                 bool "Force Atheros drivers to respect the user's regdomain settings"
381                 help
382                   Atheros' idea of regulatory handling is that the EEPROM of the card defines
383                   the regulatory limits and the user is only allowed to restrict the settings
384                   even further, even if the country allows frequencies or power levels that
385                   are forbidden by the EEPROM settings.
386
387                   Select this option if you want the driver to respect the user's decision about
388                   regulatory settings.
389
390         config PACKAGE_ATH_DEBUG
391                 bool "Atheros wireless debugging"
392                 help
393                   Say Y, if you want to debug atheros wireless drivers.
394                   Right now only ath9k makes use of this.
395   endif
396 endef
397
398 define KernelPackage/ath
399   $(call KernelPackage/mac80211/Default)
400   TITLE:=Atheros common driver part
401   DEPENDS+= @PCI_SUPPORT||USB_SUPPORT||TARGET_ar71xx||TARGET_atheros +kmod-mac80211
402   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath.ko
403   AUTOLOAD:=$(call AutoLoad,26,ath)
404   MENU:=1
405 endef
406
407 define KernelPackage/ath/description
408  This module contains some common parts needed by Atheros Wireless drivers.
409 endef
410
411 define KernelPackage/ath5k
412   $(call KernelPackage/mac80211/Default)
413   TITLE:=Atheros 5xxx wireless cards support
414   URL:=http://linuxwireless.org/en/users/Drivers/ath5k
415   DEPENDS+= @PCI_SUPPORT||@TARGET_atheros +kmod-ath
416   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath5k/ath5k.ko
417   AUTOLOAD:=$(call AutoLoad,27,ath5k)
418 endef
419
420 define KernelPackage/ath5k/description
421  This module adds support for wireless adapters based on
422  Atheros 5xxx chipset.
423 endef
424
425 define KernelPackage/ath9k-common
426   $(call KernelPackage/mac80211/Default)
427   TITLE:=Atheros 802.11n wireless devices (common code for ath9k and ath9k_htc)
428   URL:=http://linuxwireless.org/en/users/Drivers/ath9k
429   DEPENDS+= @PCI_SUPPORT||USB_SUPPORT||TARGET_ar71xx +kmod-ath +@DRIVER_11N_SUPPORT
430   FILES:= \
431         $(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath9k/ath9k_common.ko \
432         $(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath9k/ath9k_hw.ko
433   AUTOLOAD:=$(call AutoLoad,27,ath9k_hw ath9k_common)
434 endef
435
436 define KernelPackage/ath9k
437   $(call KernelPackage/mac80211/Default)
438   TITLE:=Atheros 802.11n PCI wireless cards support
439   URL:=http://linuxwireless.org/en/users/Drivers/ath9k
440   DEPENDS+= @PCI_SUPPORT||TARGET_ar71xx +kmod-ath9k-common
441   FILES:= \
442         $(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath9k/ath9k.ko
443   AUTOLOAD:=$(call AutoLoad,28,ath9k)
444 endef
445
446 define KernelPackage/ath9k/description
447 This module adds support for wireless adapters based on
448 Atheros IEEE 802.11n AR5008 and AR9001 family of chipsets.
449 endef
450
451 define KernelPackage/ath9k-htc
452   $(call KernelPackage/mac80211/Default)
453   TITLE:=Atheros 802.11n USB device support
454   URL:=http://linuxwireless.org/en/users/Drivers/ath9k
455   DEPENDS+= @USB_SUPPORT +kmod-ath9k-common +kmod-usb-core
456   FILES:= \
457         $(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath9k/ath9k_htc.ko
458   AUTOLOAD:=$(call AutoLoad,55,ath9k_htc)
459 endef
460
461 define KernelPackage/ath9k-htc/description
462 This module adds support for wireless adapters based on
463 Atheros USB AR9271 and AR7010 family of chipsets.
464 endef
465
466 define KernelPackage/carl9170
467   $(call KernelPackage/mac80211/Default)
468   TITLE:=Driver for Atheros AR9170 USB sticks
469   DEPENDS:=@USB_SUPPORT +kmod-mac80211 +kmod-ath +kmod-usb-core +kmod-input-core +@DRIVER_11N_SUPPORT
470   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/carl9170/carl9170.ko
471   AUTOLOAD:=$(call AutoLoad,60,carl9170)
472 endef
473
474 define KernelPackage/carl9170/install
475         $(INSTALL_DIR) $(1)/lib/firmware
476         $(INSTALL_DATA) $(DL_DIR)/$(CARL9170_FW)-$(CARL9170_FW_VERSION) $(1)/lib/firmware/$(CARL9170_FW)
477 endef
478
479 define KernelPackage/lib80211
480   $(call KernelPackage/mac80211/Default)
481   TITLE:=802.11 Networking stack
482   FILES:= \
483         $(PKG_BUILD_DIR)/net/wireless/lib80211.ko \
484         $(PKG_BUILD_DIR)/net/wireless/lib80211_crypt_wep.ko \
485         $(PKG_BUILD_DIR)/net/wireless/lib80211_crypt_ccmp.ko \
486         $(PKG_BUILD_DIR)/net/wireless/lib80211_crypt_tkip.ko
487   AUTOLOAD:=$(call AutoLoad,21, \
488         lib80211 \
489         lib80211_crypt_wep \
490         lib80211_crypt_ccmp \
491         lib80211_crypt_tkip \
492   )
493 endef
494
495 define KernelPackage/lib80211/description
496  Kernel modules for 802.11 Networking stack
497  Includes:
498  - lib80211
499  - lib80211_crypt_wep
500  - lib80211_crypt_tkip
501  - lib80211_crytp_ccmp
502 endef
503
504 define KernelPackage/libertas-usb
505   $(call KernelPackage/mac80211/Default)
506   DEPENDS+= @USB_SUPPORT +kmod-cfg80211 +kmod-usb-core +kmod-lib80211 +@DRIVER_WEXT_SUPPORT
507   TITLE:=Marvell 88W8015 Wireless Driver
508   FILES:= \
509         $(PKG_BUILD_DIR)/drivers/net/wireless/libertas/libertas.ko \
510         $(PKG_BUILD_DIR)/drivers/net/wireless/libertas/usb8xxx.ko
511   AUTOLOAD:=$(call AutoLoad,27,libertas usb8xxx)
512 endef
513
514 define KernelPackage/libertas-sd
515   $(call KernelPackage/mac80211/Default)
516   DEPENDS+= +kmod-cfg80211 +kmod-lib80211 +kmod-mmc +@DRIVER_WEXT_SUPPORT
517   TITLE:=Marvell 88W8686 Wireless Driver
518   FILES:= \
519         $(PKG_BUILD_DIR)/drivers/net/wireless/libertas/libertas.ko \
520         $(PKG_BUILD_DIR)/drivers/net/wireless/libertas/libertas_sdio.ko
521   AUTOLOAD:=$(call AutoLoad,91,libertas libertas_sdio)
522 endef
523
524 define KernelPackage/mac80211-hwsim
525   $(call KernelPackage/mac80211/Default)
526   TITLE:=mac80211 HW simulation device
527   DEPENDS+= +kmod-mac80211
528   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/mac80211_hwsim.ko
529   AUTOLOAD:=$(call AutoLoad,60,mac80211_hwsim)
530 endef
531
532 define KernelPackage/net-libipw
533   $(call KernelPackage/mac80211/Default)
534   TITLE:=libipw for ipw2100 and ipw2200
535   DEPENDS:=@PCI_SUPPORT +kmod-crypto-core +kmod-crypto-arc4 +kmod-crypto-aes +kmod-crypto-michael-mic +kmod-lib80211 +kmod-cfg80211 +@DRIVER_WEXT_SUPPORT
536   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ipw2x00/libipw.ko
537   AUTOLOAD:=$(call AutoLoad,49,libipw)
538 endef
539
540 define KernelPackage/net-libipw/description
541  Hardware independent IEEE 802.11 networking stack for ipw2100 and ipw2200.
542 endef
543
544 IPW2100_NAME:=ipw2100-fw
545 IPW2100_VERSION:=1.3
546
547 define Download/net-ipw2100
548   URL:=http://bughost.org/firmware/
549   FILE:=$(IPW2100_NAME)-$(IPW2100_VERSION).tgz
550   MD5SUM=46aa75bcda1a00efa841f9707bbbd113
551 endef
552 $(eval $(call Download,net-ipw2100))
553
554 define KernelPackage/net-ipw2100
555   $(call KernelPackage/mac80211/Default)
556   TITLE:=Intel IPW2100 driver
557   DEPENDS:=@PCI_SUPPORT +kmod-net-libipw
558   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ipw2x00/ipw2100.ko
559   AUTOLOAD:=$(call AutoLoad,50,ipw2100)
560 endef
561
562 define KernelPackage/net-ipw2100/description
563  Kernel support for Intel IPW2100
564  Includes:
565  - ipw2100
566 endef
567
568 IPW2200_NAME:=ipw2200-fw
569 IPW2200_VERSION:=3.1
570
571 define Download/net-ipw2200
572   URL:=http://bughost.org/firmware/
573   FILE:=$(IPW2200_NAME)-$(IPW2200_VERSION).tgz
574   MD5SUM=eaba788643c7cc7483dd67ace70f6e99
575 endef
576 $(eval $(call Download,net-ipw2200))
577
578 define KernelPackage/net-ipw2200
579   $(call KernelPackage/mac80211/Default)
580   TITLE:=Intel IPW2200 driver
581   DEPENDS:=@PCI_SUPPORT +kmod-net-libipw
582   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ipw2x00/ipw2200.ko
583   AUTOLOAD:=$(call AutoLoad,50,ipw2200)
584 endef
585
586 define KernelPackage/net-ipw2200/description
587  Kernel support for Intel IPW2200
588  Includes:
589  - ipw2200
590 endef
591
592
593 define KernelPackage/net-hermes
594   $(call KernelPackage/mac80211/Default)
595   TITLE:=Hermes 802.11b chipset support
596   DEPENDS:=@PCI_SUPPORT||PCMCIA_SUPPORT +kmod-cfg80211 +@DRIVER_WEXT_SUPPORT
597   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/orinoco/orinoco.ko
598   AUTOLOAD:=$(call AutoLoad,50,orinoco)
599 endef
600
601 define KernelPackage/net-hermes/description
602  Kernel support for Hermes 802.11b chipsets
603 endef
604
605 define KernelPackage/net-hermes-pci
606   $(call KernelPackage/mac80211/Default)
607   TITLE:=Intersil Prism 2.5 PCI support
608   DEPENDS:=@PCI_SUPPORT +kmod-net-hermes
609   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/orinoco/orinoco_pci.ko
610   AUTOLOAD:=$(call AutoLoad,55,orinoco_pci)
611 endef
612
613 define KernelPackage/net-hermes-pci/description
614  Kernel modules for Intersil Prism 2.5 PCI support
615 endef
616
617 define KernelPackage/net-hermes-plx
618   $(call KernelPackage/mac80211/Default)
619   TITLE:=PLX9052 based PCI adaptor
620   DEPENDS:=@PCI_SUPPORT +kmod-net-hermes
621   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/orinoco/orinoco_plx.ko
622   AUTOLOAD:=$(call AutoLoad,55,orinoco_plx)
623 endef
624
625 define KernelPackage/net-hermes-plx/description
626  Kernel modules for Hermes in PLX9052 based PCI adaptors
627 endef
628
629 define KernelPackage/net-hermes-pcmcia
630   $(call KernelPackage/mac80211/Default)
631   TITLE:=Hermes based PCMCIA adaptors
632   DEPENDS:=@PCMCIA_SUPPORT +kmod-net-hermes @BROKEN
633   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/orinoco/orinoco_cs.ko
634   AUTOLOAD:=$(call AutoLoad,55,orinoco_cs)
635 endef
636
637 define KernelPackage/net-hermes-pcmcia/description
638  Kernel modules for Hermes based PCMCIA adaptors
639 endef
640
641 define KernelPackage/iwlagn
642   $(call KernelPackage/mac80211/Default)
643   DEPENDS:= +kmod-mac80211 @PCI_SUPPORT +@DRIVER_11N_SUPPORT
644   TITLE:=Intel AGN Wireless support
645   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/iwlwifi/iwlwifi.ko
646   AUTOLOAD:=$(call AutoLoad,60,iwlwifi)
647   MENU:=1
648 endef
649
650 define KernelPackage/iwlagn/description
651  iwlagn kernel module for Intel 5000/5150/1000/6000/6050/6005/6030/100 support
652 endef
653
654 define KernelPackage/iwlagn/config
655   if PACKAGE_kmod-iwlagn
656
657         config IWL5000_FW
658                 bool "Intel 5000 Firmware"
659                 default y
660                 help
661                   Download and install firmware for:
662                     Intel Wireless WiFi 5100AGN, 5300AGN, and 5350AGN
663
664         config IWL5150_FW
665                 bool "Intel 5150 Firmware"
666                 default y
667                 help
668                   Download and install firmware for:
669                     Intel Wireless WiFi 5150AGN
670
671         config IWL1000_FW
672                 bool "Intel 1000 Firmware"
673                 default y
674                 help
675                   Download and install firmware for:
676                     Intel Centrino Wireless-N 1000
677
678         config IWL6000_FW
679                 bool "Intel 6000 Firmware"
680                 default y
681                 help
682                   Download and install firmware for:
683                     Intel Centrino Ultimate-N 6300 and Advanced-N 6200
684
685         config IWL6050_FW
686                 bool "Intel 6050 Firmware"
687                 default y
688                 help
689                   Download and install firmware for:
690                     Intel Centrino Advanced-N + WiMAX 6250 and Wireless-N + WiMAX 6150
691
692         config IWL6005_FW
693                 bool "Intel 6005 Firmware"
694                 default y
695                 help
696                   Download and install firmware for:
697                     Intel Centrino Advanced-N 6205
698
699         config IWL6030_FW
700                 bool "Intel 6030 Firmware"
701                 default y
702                 help
703                   Download and install firmware for:
704                     Intel Centrino Advanced-N 6230, Wireless-N 1030, Wireless-N 130 and Advanced-N 6235
705
706         config IWL100_FW
707                 bool "Intel 100 Firmware"
708                 default y
709                 help
710                   Download and install firmware for:
711                     Intel Centrino Wireless-N 100
712
713         config IWL2000_FW
714                 bool "Intel 2000 Firmware"
715                 default y
716                 help
717                   Download and install firmware for:
718                     Intel Centrino Wireless-N 2200
719
720         config IWL2030_FW
721                 bool "Intel 2030 Firmware"
722                 default y
723                 help
724                   Download and install firmware for:
725                     Intel Centrino Wireless-N 2230
726
727         config IWL105_FW
728                 bool "Intel 105 Firmware"
729                 default y
730                 help
731                   Download and install firmware for:
732                     Intel Centrino Wireless-N 105
733
734         config IWL135_FW
735                 bool "Intel 135 Firmware"
736                 default y
737                 help
738                   Download and install firmware for:
739                     Intel Centrino Wireless-N 135
740   endif
741 endef
742
743 define KernelPackage/iwl-legacy
744   $(call KernelPackage/mac80211/Default)
745   DEPENDS:= +kmod-mac80211 @PCI_SUPPORT
746   TITLE:=Intel legacy Wireless support
747   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/iwlegacy/iwlegacy.ko
748   AUTOLOAD:=$(call AutoLoad,60,iwlegacy)
749 endef
750
751 define KernelPackage/iwl-legacy/description
752  iwl-legacy kernel module for legacy Intel wireless support
753 endef
754
755 define KernelPackage/iwl3945
756   $(call KernelPackage/mac80211/Default)
757   DEPENDS:= +kmod-mac80211 +kmod-iwl-legacy
758   TITLE:=Intel iwl3945 Wireless support
759   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/iwlegacy/iwl3945.ko
760   AUTOLOAD:=$(call AutoLoad,61,iwl3945)
761 endef
762
763 define KernelPackage/iwl3945/description
764  iwl3945 kernel module for Intel 3945 support
765 endef
766
767 define KernelPackage/iwl4965
768   $(call KernelPackage/mac80211/Default)
769   DEPENDS:= +kmod-mac80211 +kmod-iwl-legacy +@DRIVER_11N_SUPPORT
770   TITLE:=Intel iwl4965 Wireless support
771   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/iwlegacy/iwl4965.ko
772   AUTOLOAD:=$(call AutoLoad,61,iwl4965)
773 endef
774
775 define KernelPackage/iwl4965/description
776  iwl4965 kernel module for Intel 4965 support
777 endef
778
779
780 define KernelPackage/mwl8k
781   $(call KernelPackage/mac80211/Default)
782   TITLE:=Driver for Marvell TOPDOG 802.11 Wireless cards
783   URL:=http://wireless.kernel.org/en/users/Drivers/mwl8k
784   DEPENDS+= @PCI_SUPPORT +kmod-mac80211 +@DRIVER_11N_SUPPORT
785   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/mwl8k.ko
786   AUTOLOAD:=$(call AutoLoad,27,mwl8k)
787 endef
788
789 define KernelPackage/mwl8k/description
790  Kernel modules for Marvell TOPDOG 802.11 Wireless cards
791 endef
792
793
794 define KernelPackage/wl12xx
795   $(call KernelPackage/mac80211/Default)
796   TITLE:=Driver for TI WL12xx
797   URL:=http://wireless.kernel.org/en/users/Drivers/wl12xx
798   DEPENDS+= @TARGET_omap4 +kmod-mac80211
799   FILES:= \
800         $(PKG_BUILD_DIR)/drivers/net/wireless/ti/wl12xx/wl12xx.ko \
801         $(PKG_BUILD_DIR)/drivers/net/wireless/ti/wlcore/wlcore.ko \
802         $(PKG_BUILD_DIR)/drivers/net/wireless/ti/wlcore/wlcore_sdio.ko
803   AUTOLOAD:=$(call AutoLoad,61,wlcore wlcore_sdio wl12xx)
804 endef
805
806 define KernelPackage/wl12xx/description
807  Kernel modules for TI WL12xx
808 endef
809
810 #Broadcom firmware
811 ifneq ($(CONFIG_B43_FW_5_10),)
812   PKG_B43_FWV4_NAME:=broadcom-wl
813   PKG_B43_FWV4_VERSION:=5.10.56.27.3
814   PKG_B43_FWV4_OBJECT:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION)/driver/wl_apsta/wl_prebuilt.o
815   PKG_B43_FWV4_SOURCE:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION)_mipsel.tar.bz2
816   PKG_B43_FWV4_SOURCE_URL:=http://mirror2.openwrt.org/sources/
817   PKG_B43_FWV4_MD5SUM:=3363e3a6b3d9d73c49dea870c7834eac
818 else
819 ifneq ($(CONFIG_B43_FW_4_178),)
820   PKG_B43_FWV4_NAME:=broadcom-wl
821   PKG_B43_FWV4_VERSION:=4.178.10.4
822   PKG_B43_FWV4_OBJECT:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION)/linux/wl_apsta.o
823   PKG_B43_FWV4_SOURCE:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION).tar.bz2
824   PKG_B43_FWV4_SOURCE_URL:=http://mirror2.openwrt.org/sources/
825   PKG_B43_FWV4_MD5SUM:=14477e8cbbb91b11896affac9b219fdb
826 else
827 ifneq ($(CONFIG_B43_FW_5_100_138),)
828   PKG_B43_FWV4_NAME:=broadcom-wl
829   PKG_B43_FWV4_VERSION:=5.100.138
830   PKG_B43_FWV4_OBJECT:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION)/linux/wl_apsta.o
831   PKG_B43_FWV4_SOURCE:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION).tar.bz2
832   PKG_B43_FWV4_SOURCE_URL:=http://www.lwfinger.com/b43-firmware/
833   PKG_B43_FWV4_MD5SUM:=f4e357b09eaf5d8b1f1920cf3493a555
834 else
835   PKG_B43_FWV4_NAME:=broadcom-wl
836   PKG_B43_FWV4_VERSION:=4.150.10.5
837   PKG_B43_FWV4_OBJECT:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION)/driver/wl_apsta_mimo.o
838   PKG_B43_FWV4_SOURCE:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION).tar.bz2
839   PKG_B43_FWV4_SOURCE_URL:=http://mirror2.openwrt.org/sources/
840   PKG_B43_FWV4_MD5SUM:=0c6ba9687114c6b598e8019e262d9a60
841 endif
842 endif
843 endif
844 ifneq ($(CONFIG_B43_OPENFIRMWARE),)
845   PKG_B43_FWV4_NAME:=broadcom-wl
846   PKG_B43_FWV4_VERSION:=5.2
847   PKG_B43_FWV4_OBJECT:=openfwwf-$(PKG_B43_FWV4_VERSION)
848   PKG_B43_FWV4_SOURCE:=openfwwf-$(PKG_B43_FWV4_VERSION).tar.gz
849   PKG_B43_FWV4_SOURCE_URL:=http://www.ing.unibs.it/openfwwf/firmware/
850   PKG_B43_FWV4_MD5SUM:=e045a135453274e439ae183f8498b0fa
851 endif
852
853
854 PKG_B43_FWV3_NAME:=wl_apsta
855 PKG_B43_FWV3_VERSION:=3.130.20.0
856 PKG_B43_FWV3_SOURCE:=$(PKG_B43_FWV3_NAME)-$(PKG_B43_FWV3_VERSION).o
857 PKG_B43_FWV3_SOURCE_URL:=http://downloads.openwrt.org/sources/
858 PKG_B43_FWV3_MD5SUM:=e08665c5c5b66beb9c3b2dd54aa80cb3
859
860 define Download/b43
861   FILE:=$(PKG_B43_FWV4_SOURCE)
862   URL:=$(PKG_B43_FWV4_SOURCE_URL)
863   MD5SUM:=$(PKG_B43_FWV4_MD5SUM)
864 endef
865 $(eval $(call Download,b43))
866
867 define Download/b43legacy
868   FILE:=$(PKG_B43_FWV3_SOURCE)
869   URL:=$(PKG_B43_FWV3_SOURCE_URL)
870   MD5SUM:=$(PKG_B43_FWV3_MD5SUM)
871 endef
872 $(eval $(call Download,b43legacy))
873
874
875 define KernelPackage/b43
876   $(call KernelPackage/mac80211/Default)
877   TITLE:=Broadcom 43xx wireless support
878   URL:=http://linuxwireless.org/en/users/Drivers/b43
879   KCONFIG:= \
880         CONFIG_HW_RANDOM=y
881   DEPENDS+= +kmod-mac80211 +!TARGET_brcm47xx:kmod-bcma +!(TARGET_brcm47xx||TARGET_brcm63xx):kmod-ssb
882   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/b43/b43.ko
883   AUTOLOAD:=$(call AutoLoad,30,b43)
884   MENU:=1
885 endef
886
887 define KernelPackage/b43/config
888   if PACKAGE_kmod-b43
889
890         choice
891                 prompt "b43 firmware version"
892                 default B43_FW_5_100_138
893                 help
894                   This option allows you to select the version of the b43 firmware.
895
896         config B43_FW_4_150
897                 bool "Firmware 410.2160 from driver 4.150.10.5 (old stable)"
898                 help
899                   Stable firmware for BCM43xx devices.
900
901                   If unsure, select this.
902
903         config B43_FW_4_178
904                 bool "Firmware 478.104 from driver 4.178.10.4"
905                 help
906                   Experimental firmware for BCM43xx devices.
907
908                   This firmware is not tested as much as the "stable" firmware.
909
910                   If unsure, select the "stable" firmware.
911
912         config B43_FW_5_10
913                 bool "Firmware 508.1084 from driver 5.10.56.27"
914                 help
915                   Newer experimental firmware for BCM43xx devices.
916
917                   This firmware is mostly untested. It is needed for some N-PHY devices.
918
919                   If unsure, select the "stable" firmware.
920
921         config B43_FW_5_100_138
922                 bool "Firmware 666.2 from driver 5.100.138 (stable)"
923                 help
924                   Newer experimental firmware for BCM43xx devices.
925
926                   This firmware is mostly untested. It is needed for some N-PHY devices.
927
928                   If unsure, select the "stable" firmware.
929
930         config B43_OPENFIRMWARE
931                 bool "Open FirmWare for WiFi networks"
932                 help
933                   Opensource firmware for BCM43xx devices.
934
935                   Do _not_ select this, unless you know what you are doing.
936                   The Opensource firmware is not suitable for embedded devices, yet.
937                   It does not support QoS, which is bad for AccessPoints.
938                   It does not support hardware crypto acceleration, which is a showstopper
939                   for embedded devices with low CPU resources.
940
941                   If unsure, select the "stable" firmware.
942
943         endchoice
944
945         config B43_FW_SQUASH
946                 bool "Remove unnecessary firmware files"
947                 depends on !B43_OPENFIRMWARE
948                 default y
949                 help
950                   This options allows you to remove unnecessary b43 firmware files
951                   from the final rootfs image. This can reduce the rootfs size by
952                   up to 200k.
953
954                   If unsure, say Y.
955
956         config B43_FW_SQUASH_COREREVS
957                 string "Core revisions to include"
958                 depends on B43_FW_SQUASH
959                 default "5,6,7,8,9,10,11,13,15,16,29"
960                 help
961                   This is a comma seperated list of core revision numbers.
962
963                   Example (keep files for rev5 only):
964                     5
965
966                   Example (keep files for rev5 and rev11):
967                     5,11
968
969         config B43_FW_SQUASH_PHYTYPES
970                 string "PHY types to include"
971                 depends on B43_FW_SQUASH
972                 default "G,LP,N,HT"
973                 help
974                   This is a comma seperated list of PHY types:
975                     A  => A-PHY
976                     AG => Dual A-PHY G-PHY
977                     G  => G-PHY
978                     LP => LP-PHY
979                     N  => N-PHY
980                     HT  => HT-PHY
981                     LCN  => LCN-PHY
982
983                   Example (keep files for G-PHY only):
984                     G
985
986                   Example (keep files for G-PHY and N-PHY):
987                     G,N
988
989         config PACKAGE_B43_DEBUG
990                 bool "Enable debug output and debugfs for b43"
991                 default n
992                 help
993                   Enable additional debug output and runtime sanity checks for b43
994                   and enables the debugfs interface.
995
996                   If unsure, say N.
997
998         config PACKAGE_B43_PIO
999                 bool "Enable support for PIO transfer mode"
1000                 default n
1001                 help
1002                   Enable support for using PIO instead of DMA. Unless you have DMA
1003                   transfer problems you don't need this.
1004
1005                   If unsure, say N.
1006
1007         config PACKAGE_B43_PHY_N
1008                 bool "Enable support for N-PHYs"
1009                 default y
1010                 help
1011                   Enable support for N-PHY. This includes support for the following devices:
1012                   PCI: BCM4321, BCM4322, BCM43222, BCM43224, BCM43225
1013                   SoC: BCM4716, BCM4717, BCM4718
1014
1015                   Currently only 11g speed is available.
1016
1017                   If unsure, say Y.
1018
1019         config PACKAGE_B43_PHY_HT
1020                 bool "Enable support for HT-PHYs"
1021                 default y
1022                 help
1023                   Enable support for HT-PHY. This includes support for the following devices:
1024                   PCI: BCM4331
1025
1026                   Currently only 11g speed is available.
1027
1028                   If unsure, say Y.
1029
1030         config PACKAGE_B43_PHY_LCN
1031                 bool "Enable support for LCN-PHYs"
1032                 depends on BROKEN
1033                 default n
1034                 help
1035                   Currently broken.
1036
1037                   If unsure, say N.
1038
1039   endif
1040 endef
1041
1042 define KernelPackage/b43/description
1043 Kernel module for Broadcom 43xx wireless support (mac80211 stack) new
1044 endef
1045
1046 define KernelPackage/b43legacy
1047   $(call KernelPackage/mac80211/Default)
1048   TITLE:=Broadcom 43xx-legacy wireless support
1049   URL:=http://linuxwireless.org/en/users/Drivers/b43
1050   KCONFIG:= \
1051         CONFIG_HW_RANDOM=y
1052   DEPENDS+= +kmod-mac80211 +!(TARGET_brcm47xx||TARGET_brcm63xx):kmod-ssb
1053   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/b43legacy/b43legacy.ko
1054   AUTOLOAD:=$(call AutoLoad,30,b43legacy)
1055   MENU:=1
1056 endef
1057
1058 define KernelPackage/b43legacy/config
1059   if PACKAGE_kmod-b43legacy
1060
1061         config B43LEGACY_FW_SQUASH
1062                 bool "Remove unnecessary firmware files"
1063                 default y
1064                 help
1065                   This options allows you to remove unnecessary b43legacy firmware files
1066                   from the final rootfs image. This can reduce the rootfs size by
1067                   up to 50k.
1068
1069                   If unsure, say Y.
1070
1071         config B43LEGACY_FW_SQUASH_COREREVS
1072                 string "Core revisions to include"
1073                 depends on B43LEGACY_FW_SQUASH
1074                 default "1,2,3,4"
1075                 help
1076                   This is a comma seperated list of core revision numbers.
1077
1078                   Example (keep files for rev4 only):
1079                     4
1080
1081                   Example (keep files for rev2 and rev4):
1082                     2,4
1083
1084   endif
1085 endef
1086
1087 define KernelPackage/b43legacy/description
1088 Kernel module for Broadcom 43xx-legacy wireless support (mac80211 stack) new
1089 endef
1090
1091
1092 define KernelPackage/brcmutil
1093   $(call KernelPackage/mac80211/Default)
1094   TITLE:=Broadcom IEEE802.11n common driver parts
1095   URL:=http://linuxwireless.org/en/users/Drivers/brcm80211
1096   DEPENDS+=@PCI_SUPPORT||USB_SUPPORT
1097   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/brcm80211/brcmutil/brcmutil.ko
1098   AUTOLOAD:=$(call AutoLoad,30,brcmutil)
1099   MENU:=1
1100 endef
1101
1102 define KernelPackage/brcmutil/description
1103  This module contains some common parts needed by Broadcom Wireless drivers brcmsmac and brcmfmac.
1104 endef
1105
1106 define KernelPackage/brcmutil/config
1107   if PACKAGE_kmod-brcmutil
1108
1109         config PACKAGE_BRCM80211_DEBUG
1110                 bool "Broadcom wireless driver debugging"
1111                 help
1112                   Say Y, if you want to debug brcmsmac and brcmfmac wireless driver.
1113
1114   endif
1115 endef
1116
1117 PKG_BRCMSMAC_FW_NAME:=broadcom-wl
1118 PKG_BRCMSMAC_FW_VERSION:=5.100.138
1119 PKG_BRCMSMAC_FW_OBJECT:=$(PKG_BRCMSMAC_FW_NAME)-$(PKG_BRCMSMAC_FW_VERSION)/linux/wl_apsta.o
1120 PKG_BRCMSMAC_FW_SOURCE:=$(PKG_BRCMSMAC_FW_NAME)-$(PKG_BRCMSMAC_FW_VERSION).tar.bz2
1121 PKG_BRCMSMAC_FW_SOURCE_URL:=http://www.lwfinger.com/b43-firmware/
1122 PKG_BRCMSMAC_FW_MD5SUM:=f4e357b09eaf5d8b1f1920cf3493a555
1123
1124 define Download/brcmsmac
1125   FILE:=$(PKG_BRCMSMAC_FW_SOURCE)
1126   URL:=$(PKG_BRCMSMAC_FW_SOURCE_URL)
1127   MD5SUM:=$(PKG_BRCMSMAC_FW_MD5SUM)
1128 endef
1129 $(eval $(call Download,brcmsmac))
1130
1131 define KernelPackage/brcmsmac
1132   $(call KernelPackage/mac80211/Default)
1133   TITLE:=Broadcom IEEE802.11n PCIe SoftMAC WLAN driver
1134   URL:=http://linuxwireless.org/en/users/Drivers/brcm80211
1135   DEPENDS+= +kmod-mac80211 +@DRIVER_11N_SUPPORT +!TARGET_brcm47xx:kmod-bcma +kmod-lib-cordic +kmod-lib-crc8 +kmod-brcmutil
1136   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/brcm80211/brcmsmac/brcmsmac.ko
1137   AUTOLOAD:=$(call AutoLoad,31,brcmsmac)
1138   MENU:=1
1139 endef
1140
1141 define KernelPackage/brcmsmac/description
1142  Kernel module for Broadcom IEEE802.11n PCIe Wireless cards
1143 endef
1144
1145 define KernelPackage/brcmsmac/config
1146   if PACKAGE_kmod-brcmsmac
1147
1148         config BRCMSMAC_USE_FW_FROM_WL
1149                 bool "Use firmware extracted from broadcom proprietary driver"
1150                 default y
1151                 help
1152                   Instead of using the official brcmsmac firmware a firmware
1153                   version 666.2 extracted from the proprietary Broadcom driver
1154                   is used. This is needed to get core rev 17 used in bcm4716
1155                   to work.
1156
1157                   If unsure, say Y.
1158
1159   endif
1160 endef
1161
1162
1163 define KernelPackage/brcmfmac
1164   $(call KernelPackage/mac80211/Default)
1165   TITLE:=Broadcom IEEE802.11n USB FullMAC WLAN driver
1166   URL:=http://linuxwireless.org/en/users/Drivers/brcm80211
1167   DEPENDS+= @USB_SUPPORT +kmod-usb-core +kmod-cfg80211 +@DRIVER_11N_SUPPORT +kmod-brcmutil
1168   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/brcm80211/brcmfmac/brcmfmac.ko
1169   AUTOLOAD:=$(call AutoLoad,60,brcmfmac)
1170 endef
1171
1172 define KernelPackage/brcmfmac/description
1173  Kernel module for Broadcom IEEE802.11n USB Wireless cards
1174 endef
1175
1176 config_package=$(if $(CONFIG_PACKAGE_kmod-$(1)),m)
1177
1178 config-y:= \
1179         WLAN \
1180         NL80211_TESTMODE \
1181         CFG80211_WEXT \
1182         CFG80211_INTERNAL_REGDB \
1183         MAC80211_RC_MINSTREL \
1184         MAC80211_RC_MINSTREL_HT \
1185         MAC80211_RC_DEFAULT_MINSTREL \
1186
1187 config-$(call config_package,cfg80211) += CFG80211
1188
1189 config-$(call config_package,mac80211) += MAC80211
1190 config-$(CONFIG_PACKAGE_MAC80211_MESH) += MAC80211_MESH
1191 ifdef CONFIG_PACKAGE_MAC80211_DEBUGFS
1192   config-y += \
1193         CFG80211_DEBUGFS \
1194         MAC80211_DEBUGFS \
1195         ATH9K_DEBUGFS \
1196         ATH9K_HTC_DEBUGFS \
1197         CARL9170_DEBUGFS \
1198         ATH5K_DEBUG
1199 endif
1200
1201 config-$(call config_package,lib80211) += LIB80211 LIB80211_CRYPT_WEP LIB80211_CRYPT_CCMP LIB80211_CRYPT_TKIP
1202
1203 config-$(call config_package,ath) += ATH_CARDS ATH_COMMON
1204 config-$(CONFIG_PACKAGE_ATH_DEBUG) += ATH_DEBUG
1205
1206 config-$(call config_package,ath9k) += ATH9K
1207 config-$(call config_package,ath9k-common) += ATH9K_COMMON
1208 config-$(CONFIG_TARGET_ar71xx) += ATH9K_AHB
1209 config-$(CONFIG_PCI) += ATH9K_PCI
1210 config-$(CONFIG_ATH_USER_REGD) += ATH_USER_REGD
1211
1212 config-$(call config_package,ath9k-htc) += ATH9K_HTC
1213
1214 config-$(call config_package,ath5k) += ATH5K
1215 ifdef CONFIG_TARGET_atheros
1216   config-y += ATH5K_AHB
1217 else
1218   config-y += ATH5K_PCI
1219 endif
1220
1221 config-$(call config_package,carl9170) += CARL9170
1222
1223 config-$(call config_package,b43) += B43
1224 config-y += B43_SSB B43_BCMA B43_BCMA_EXTRA
1225 config-$(CONFIG_PACKAGE_B43_PHY_N) += B43_PHY_N
1226 config-$(CONFIG_PACKAGE_B43_PHY_LP) += B43_PHY_LP
1227 config-$(CONFIG_PACKAGE_B43_PHY_HT) += B43_PHY_HT
1228 config-$(CONFIG_PACKAGE_B43_PIO) += B43_PIO
1229 config-$(CONFIG_PACKAGE_B43_DEBUG) += B43_DEBUG
1230
1231 config-$(call config_package,b43legacy) += B43LEGACY
1232 config-y += B43LEGACY_DMA_MODE
1233
1234 config-$(call config_package,brcmutil) += BRCMUTIL
1235 config-$(call config_package,brcmsmac) += BRCMSMAC
1236 config-$(call config_package,brcmfmac) += BRCMFMAC BRCMFMAC_USB
1237 config-$(CONFIG_PACKAGE_BRCM80211_DEBUG) += BRCMDBG
1238
1239 config-$(call config_package,mac80211-hwsim) += MAC80211_HWSIM
1240
1241 config-$(call config_package,rt2x00-lib) += RT2X00 RT2X00_LIB
1242 config-$(call config_package,rt2x00-pci) += RT2X00_LIB_PCI
1243 config-$(call config_package,rt2x00-mmio) += RT2X00_LIB_MMIO
1244 config-$(call config_package,rt2x00-usb) += RT2X00_LIB_USB
1245 config-$(call config_package,rt2x00-soc) += RT2X00_LIB_SOC
1246 config-$(CONFIG_PACKAGE_RT2X00_LIB_DEBUGFS) += RT2X00_LIB_DEBUGFS
1247 config-$(CONFIG_PACKAGE_RT2X00_DEBUG) += RT2X00_DEBUG
1248
1249 config-$(call config_package,rt2400-pci) += RT2400PCI
1250 config-$(call config_package,rt2500-pci) += RT2500PCI
1251 config-$(call config_package,rt2500-usb) += RT2500USB
1252 config-$(call config_package,rt61-pci) += RT61PCI
1253 config-$(call config_package,rt73-usb) += RT73USB
1254
1255 config-$(call config_package,rt2800-lib) += RT2800_LIB
1256 config-y += RT2800PCI_RT33XX RT2800PCI_RT35XX RT2800PCI_RT53XX RT2800PCI_RT3290
1257
1258 config-$(call config_package,rt2800-pci) += RT2800PCI
1259 config-$(call config_package,rt2800-usb) += RT2800USB
1260
1261 config-$(call config_package,iwl-legacy) += IWLEGACY
1262 config-$(call config_package,iwl3945) += IWL3945
1263 config-$(call config_package,iwl4965) += IWL4965
1264 config-$(call config_package,iwlagn) += IWLWIFI
1265
1266 config-$(call config_package,net-libipw) += LIBIPW
1267 config-$(call config_package,net-ipw2100) += IPW2100
1268 config-$(call config_package,net-ipw2200) += IPW2200
1269
1270 config-$(call config_package,p54-common) += P54_COMMON
1271 config-$(call config_package,p54-pci) += P54_PCI
1272 config-$(call config_package,p54-usb) += P54_USB
1273 config-$(call config_package,p54-spi) += P54_SPI
1274
1275 config-$(call config_package,net-hermes) += HERMES
1276 config-$(call config_package,net-hermes-pci) += PCI_HERMES
1277 config-$(call config_package,net-hermes-plx) += PLX_HERMES
1278 config-$(call config_package,net-hermes-pcmcia) += PCMCIA_HERMES
1279 config-y += HERMES_PRISM
1280
1281 config-$(call config_package,adm8211) += ADM8211
1282 config-$(call config_package,libertas-sd) += LIBERTAS LIBERTAS_SDIO
1283 config-$(call config_package,libertas-usb) += LIBERTAS LIBERTAS_USB
1284 config-$(call config_package,mwl8k) += MWL8K
1285 config-$(call config_package,rtl8180) += RTL8180
1286 config-$(call config_package,rtl8187) += RTL8187
1287 config-$(call config_package,wl12xx) += WL_TI WLCORE WLCORE_SDIO WL12XX
1288 config-$(call config_package,zd1211rw) += ZD1211RW
1289
1290 config-$(CONFIG_LEDS_TRIGGERS) += MAC80211_LEDS B43_LEDS B43LEGACY_LEDS
1291
1292 MAKE_OPTS:= -C "$(PKG_BUILD_DIR)" \
1293         CROSS_COMPILE="$(KERNEL_CROSS)" \
1294         ARCH="$(LINUX_KARCH)" \
1295         EXTRA_CFLAGS="-I$(PKG_BUILD_DIR)/include" \
1296         KLIB_BUILD="$(LINUX_DIR)" \
1297         MODPROBE=true \
1298         KLIB=$(TARGET_MODULES_DIR) \
1299         KERNEL_SUBLEVEL=$(lastword $(subst ., ,$(KERNEL_PATCHVER))) \
1300         KBUILD_LDFLAGS_MODULE_PREREQ=
1301
1302 define ConfigVars
1303 $(subst $(space),,$(foreach opt,$(config-$(1)),CPTCFG_$(opt)=$(1)
1304 ))
1305 endef
1306
1307 define mac80211_config
1308 $(call ConfigVars,m)$(call ConfigVars,y)
1309 endef
1310 $(eval $(call shexport,mac80211_config))
1311
1312 define Build/Prepare
1313         rm -rf $(PKG_BUILD_DIR)
1314         mkdir -p $(PKG_BUILD_DIR)
1315         $(PKG_UNPACK)
1316         $(Build/Patch)
1317         $(TAR) -C $(PKG_BUILD_DIR) -xzf $(DL_DIR)/$(IPW2100_NAME)-$(IPW2100_VERSION).tgz
1318         $(TAR) -C $(PKG_BUILD_DIR) -xzf $(DL_DIR)/$(IPW2200_NAME)-$(IPW2200_VERSION).tgz
1319         $(TAR) -C $(PKG_BUILD_DIR) -xjf $(DL_DIR)/$(ZD1211FW_NAME)-$(ZD1211FW_VERSION).tar.bz2
1320         $(TAR) -C $(PKG_BUILD_DIR) -xjf $(DL_DIR)/$(PKG_LINUX_FIRMWARE_SOURCE)
1321         rm -rf \
1322                 $(PKG_BUILD_DIR)/include/linux/ssb \
1323                 $(PKG_BUILD_DIR)/include/linux/bcma \
1324                 $(PKG_BUILD_DIR)/include/net/bluetooth
1325
1326         rm -f \
1327                 $(PKG_BUILD_DIR)/include/linux/cordic.h \
1328                 $(PKG_BUILD_DIR)/include/linux/crc8.h \
1329                 $(PKG_BUILD_DIR)/include/linux/eeprom_93cx6.h \
1330                 $(PKG_BUILD_DIR)/include/linux/wl12xx.h \
1331                 $(PKG_BUILD_DIR)/include/linux/spi/libertas_spi.h \
1332                 $(PKG_BUILD_DIR)/include/net/ieee80211.h
1333
1334         echo 'compat-wireless-$(PKG_VERSION)-$(PKG_RELEASE)-$(REVISION)' > $(PKG_BUILD_DIR)/compat_version
1335         $(CP) ./files/regdb.txt $(PKG_BUILD_DIR)/net/wireless/db.txt
1336 endef
1337
1338 ifneq ($(CONFIG_PACKAGE_kmod-cfg80211)$(CONFIG_PACKAGE_kmod-lib80211),)
1339  define Build/Compile/kmod
1340         rm -rf $(PKG_BUILD_DIR)/modules
1341         +$(MAKE) $(PKG_JOBS) $(MAKE_OPTS) modules
1342  endef
1343 endif
1344
1345 define Build/Configure
1346         cmp $(PKG_BUILD_DIR)/include/linux/ath9k_platform.h $(LINUX_DIR)/include/linux/ath9k_platform.h
1347         cmp $(PKG_BUILD_DIR)/include/linux/ath5k_platform.h $(LINUX_DIR)/include/linux/ath5k_platform.h
1348         cmp $(PKG_BUILD_DIR)/include/linux/rt2x00_platform.h $(LINUX_DIR)/include/linux/rt2x00_platform.h
1349 endef
1350
1351 define Build/Compile
1352         $(SH_FUNC) var2file "$(call shvar,mac80211_config)" $(PKG_BUILD_DIR)/.config
1353         $(MAKE) $(MAKE_OPTS) allnoconfig
1354         $(call Build/Compile/kmod)
1355 endef
1356
1357 define Build/InstallDev
1358         mkdir -p \
1359                 $(1)/usr/include/mac80211 \
1360                 $(1)/usr/include/mac80211-backport \
1361                 $(1)/usr/include/mac80211/ath \
1362                 $(1)/usr/include/net/mac80211
1363         $(CP) $(PKG_BUILD_DIR)/net/mac80211/*.h $(PKG_BUILD_DIR)/include/* $(1)/usr/include/mac80211/
1364         $(CP) $(PKG_BUILD_DIR)/backport-include/* $(1)/usr/include/mac80211-backport/
1365         $(CP) $(PKG_BUILD_DIR)/net/mac80211/rate.h $(1)/usr/include/net/mac80211/
1366         $(CP) $(PKG_BUILD_DIR)/drivers/net/wireless/ath/*.h $(1)/usr/include/mac80211/ath/
1367 endef
1368
1369 define KernelPackage/libertas-usb/install
1370         $(INSTALL_DIR) $(1)/lib/firmware/libertas
1371         $(INSTALL_DATA) \
1372                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/libertas/usb8388_v9.bin \
1373                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/libertas/usb8682.bin \
1374                 $(1)/lib/firmware/libertas/
1375 endef
1376
1377 define KernelPackage/libertas-sd/install
1378         $(INSTALL_DIR) $(1)/lib/firmware/libertas
1379         $(INSTALL_DATA) \
1380                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/libertas/sd8385_helper.bin \
1381                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/libertas/sd8385.bin \
1382                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/libertas/sd8686_v9_helper.bin \
1383                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/libertas/sd8686_v9.bin \
1384                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/libertas/sd8688_helper.bin \
1385                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/libertas/sd8688.bin \
1386                 $(1)/lib/firmware/libertas
1387 endef
1388
1389 define KernelPackage/cfg80211/install
1390         $(INSTALL_DIR) $(1)/lib/wifi
1391         $(INSTALL_DATA) ./files/lib/wifi/mac80211.sh $(1)/lib/wifi
1392 endef
1393
1394 define KernelPackage/p54-pci/install
1395         $(INSTALL_DIR) $(1)/lib/firmware
1396         $(INSTALL_DATA) $(DL_DIR)/$(P54PCIFW) $(1)/lib/firmware/isl3886pci
1397 endef
1398
1399 define KernelPackage/p54-usb/install
1400         $(INSTALL_DIR) $(1)/lib/firmware
1401         $(INSTALL_DATA) $(DL_DIR)/$(P54USBFW) $(1)/lib/firmware/isl3887usb
1402 endef
1403
1404 define KernelPackage/p54-spi/install
1405         $(INSTALL_DIR) $(1)/lib/firmware
1406         $(INSTALL_DATA) $(DL_DIR)/$(P54SPIFW) $(1)/lib/firmware/3826.arm
1407 endef
1408
1409 define KernelPackage/rt61-pci/install
1410         $(INSTALL_DIR) $(1)/lib/firmware
1411         $(INSTALL_DATA) \
1412                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/rt2561.bin \
1413                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/rt2561s.bin \
1414                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/rt2661.bin \
1415                 $(1)/lib/firmware/
1416 endef
1417
1418 define KernelPackage/rt73-usb/install
1419         $(INSTALL_DIR) $(1)/lib/firmware
1420         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/rt73.bin $(1)/lib/firmware/
1421 endef
1422
1423 define KernelPackage/rt2800-pci/install
1424         $(INSTALL_DIR) $(1)/lib/firmware
1425         $(INSTALL_DATA) \
1426                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/rt2860.bin \
1427                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/rt3290.bin \
1428                 $(1)/lib/firmware
1429 endef
1430
1431 define KernelPackage/rt2800-usb/install
1432         $(INSTALL_DIR) $(1)/lib/firmware
1433         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/rt2870.bin $(1)/lib/firmware/
1434 endef
1435
1436 define KernelPackage/wl12xx/install
1437         $(INSTALL_DIR) $(1)/lib/firmware/ti-connectivity
1438         $(INSTALL_DATA) \
1439                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/ti-connectivity/wl127x-fw-5-mr.bin \
1440                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/ti-connectivity/wl127x-fw-5-plt.bin \
1441                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/ti-connectivity/wl127x-fw-5-sr.bin \
1442                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/ti-connectivity/wl1271-nvs.bin \
1443                 $(1)/lib/firmware/ti-connectivity
1444 endef
1445
1446
1447 define KernelPackage/zd1211rw/install
1448         $(INSTALL_DIR) $(1)/lib/firmware/zd1211
1449         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(ZD1211FW_NAME)/zd1211* $(1)/lib/firmware/zd1211
1450 endef
1451
1452 define KernelPackage/ath9k-htc/install
1453         $(INSTALL_DIR) $(1)/lib/firmware
1454         $(INSTALL_DATA) \
1455                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/htc_9271.fw \
1456                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/htc_7010.fw \
1457                 $(1)/lib/firmware/
1458 endef
1459
1460 define KernelPackage/mwl8k/install
1461         $(INSTALL_DIR) $(1)/lib/firmware/mwl8k
1462         $(INSTALL_DATA) \
1463                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/mwl8k/fmimage_8366_ap-3.fw \
1464                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/mwl8k/fmimage_8366.fw \
1465                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/mwl8k/helper_8366.fw \
1466                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/mwl8k/fmimage_8687.fw \
1467                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/mwl8k/helper_8687.fw \
1468                 $(1)/lib/firmware/mwl8k/
1469 endef
1470
1471 define KernelPackage/net-ipw2100/install
1472         $(INSTALL_DIR) $(1)/lib/firmware
1473         $(INSTALL_DATA) $(PKG_BUILD_DIR)/ipw2100-$(IPW2100_VERSION)*.fw $(1)/lib/firmware
1474 endef
1475
1476 define KernelPackage/net-ipw2200/install
1477         $(INSTALL_DIR) $(1)/lib/firmware
1478         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(IPW2200_NAME)-$(IPW2200_VERSION)/ipw2200*.fw $(1)/lib/firmware
1479 endef
1480
1481 define KernelPackage/iwlagn/install
1482         $(INSTALL_DIR) $(1)/lib/firmware
1483 ifneq ($(CONFIG_IWL5000_FW),)
1484         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-5000-5.ucode $(1)/lib/firmware
1485 endif
1486 ifneq ($(CONFIG_IWL5150_FW),)
1487         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-5150-2.ucode $(1)/lib/firmware
1488 endif
1489 ifneq ($(CONFIG_IWL1000_FW),)
1490         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-1000-5.ucode $(1)/lib/firmware
1491 endif
1492 ifneq ($(CONFIG_IWL6000_FW),)
1493         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-6000-4.ucode $(1)/lib/firmware
1494 endif
1495 ifneq ($(CONFIG_IWL6050_FW),)
1496         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-6050-5.ucode $(1)/lib/firmware
1497 endif
1498 ifneq ($(CONFIG_IWL6005_FW),)
1499         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-6000g2a-6.ucode $(1)/lib/firmware
1500 endif
1501 ifneq ($(CONFIG_IWL6030_FW),)
1502         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-6000g2b-6.ucode $(1)/lib/firmware
1503 endif
1504 ifneq ($(CONFIG_IWL100_FW),)
1505         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-100-5.ucode $(1)/lib/firmware
1506 endif
1507 ifneq ($(CONFIG_IWL2000_FW),)
1508         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-2000-6.ucode $(1)/lib/firmware
1509 endif
1510 ifneq ($(CONFIG_IWL2030_FW),)
1511         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-2030-6.ucode $(1)/lib/firmware
1512 endif
1513 ifneq ($(CONFIG_IWL105_FW),)
1514         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-105-6.ucode $(1)/lib/firmware
1515 endif
1516 ifneq ($(CONFIG_IWL135_FW),)
1517         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-135-6.ucode $(1)/lib/firmware
1518 endif
1519 endef
1520
1521 define KernelPackage/iwl3945/install
1522         $(INSTALL_DIR) $(1)/lib/firmware
1523         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-3945-2.ucode $(1)/lib/firmware
1524 endef
1525
1526 define KernelPackage/iwl4965/install
1527         $(INSTALL_DIR) $(1)/lib/firmware
1528         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-4965-2.ucode $(1)/lib/firmware
1529 endef
1530
1531 define KernelPackage/b43/install
1532         rm -rf $(1)/lib/firmware/
1533 ifeq ($(CONFIG_B43_OPENFIRMWARE),y)
1534         tar xzf "$(DL_DIR)/$(PKG_B43_FWV4_SOURCE)" -C "$(PKG_BUILD_DIR)"
1535 else
1536         tar xjf "$(DL_DIR)/$(PKG_B43_FWV4_SOURCE)" -C "$(PKG_BUILD_DIR)"
1537 endif
1538         $(INSTALL_DIR) $(1)/lib/firmware/
1539 ifeq ($(CONFIG_B43_OPENFIRMWARE),y)
1540         $(MAKE) -C "$(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)/"
1541         $(INSTALL_DIR) $(1)/lib/firmware/b43-open/
1542         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)/ucode5.fw $(1)/lib/firmware/b43-open/ucode5.fw
1543         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)/b0g0bsinitvals5.fw $(1)/lib/firmware/b43-open/b0g0bsinitvals5.fw
1544         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)/b0g0initvals5.fw $(1)/lib/firmware/b43-open/b0g0initvals5.fw
1545 else
1546         b43-fwcutter -w $(1)/lib/firmware/ $(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)
1547 endif
1548 ifneq ($(CONFIG_B43_FW_SQUASH),)
1549         b43-fwsquash.py "$(CONFIG_B43_FW_SQUASH_PHYTYPES)" "$(CONFIG_B43_FW_SQUASH_COREREVS)" "$(1)/lib/firmware/b43"
1550 endif
1551 endef
1552
1553 define KernelPackage/b43legacy/install
1554         $(INSTALL_DIR) $(1)/lib/firmware/
1555         b43-fwcutter --unsupported -w $(1)/lib/firmware/ $(DL_DIR)/$(PKG_B43_FWV3_SOURCE)
1556 ifneq ($(CONFIG_B43LEGACY_FW_SQUASH),)
1557         b43-fwsquash.py "G" "$(CONFIG_B43LEGACY_FW_SQUASH_COREREVS)" "$(1)/lib/firmware/b43legacy"
1558 endif
1559 endef
1560
1561 define KernelPackage/brcmsmac/install
1562         $(INSTALL_DIR) $(1)/lib/firmware/brcm
1563 ifeq ($(CONFIG_BRCMSMAC_USE_FW_FROM_WL),y)
1564         tar xjf "$(DL_DIR)/$(PKG_BRCMSMAC_FW_SOURCE)" -C "$(PKG_BUILD_DIR)"
1565         b43-fwcutter --brcmsmac -w $(1)/lib/firmware/ $(PKG_BUILD_DIR)/$(PKG_BRCMSMAC_FW_OBJECT)
1566 else
1567         $(INSTALL_DATA) \
1568                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/bcm43xx-0.fw \
1569                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/bcm43xx_hdr-0.fw \
1570                 $(1)/lib/firmware/brcm/
1571 endif
1572 endef
1573
1574 define KernelPackage/brcmfmac/install
1575         $(INSTALL_DIR) $(1)/lib/firmware/brcm
1576         $(INSTALL_DATA) \
1577                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac43236b.bin \
1578                 $(1)/lib/firmware/brcm/
1579 endef
1580
1581 $(eval $(call KernelPackage,adm8211))
1582 $(eval $(call KernelPackage,ath5k))
1583 $(eval $(call KernelPackage,lib80211))
1584 $(eval $(call KernelPackage,libertas-usb))
1585 $(eval $(call KernelPackage,libertas-sd))
1586 $(eval $(call KernelPackage,cfg80211))
1587 $(eval $(call KernelPackage,mac80211))
1588 $(eval $(call KernelPackage,p54-common))
1589 $(eval $(call KernelPackage,p54-pci))
1590 $(eval $(call KernelPackage,p54-usb))
1591 $(eval $(call KernelPackage,p54-spi))
1592 $(eval $(call KernelPackage,rt2x00-lib))
1593 $(eval $(call KernelPackage,rt2x00-mmio))
1594 $(eval $(call KernelPackage,rt2x00-pci))
1595 $(eval $(call KernelPackage,rt2x00-usb))
1596 $(eval $(call KernelPackage,rt2x00-soc))
1597 $(eval $(call KernelPackage,rt2800-lib))
1598 $(eval $(call KernelPackage,rt2400-pci))
1599 $(eval $(call KernelPackage,rt2500-pci))
1600 $(eval $(call KernelPackage,rt2500-usb))
1601 $(eval $(call KernelPackage,rt61-pci))
1602 $(eval $(call KernelPackage,rt73-usb))
1603 $(eval $(call KernelPackage,rt2800-pci))
1604 $(eval $(call KernelPackage,rt2800-usb))
1605 $(eval $(call KernelPackage,rtl8180))
1606 $(eval $(call KernelPackage,rtl8187))
1607 $(eval $(call KernelPackage,zd1211rw))
1608 $(eval $(call KernelPackage,mac80211-hwsim))
1609 $(eval $(call KernelPackage,ath9k-common))
1610 $(eval $(call KernelPackage,ath9k))
1611 $(eval $(call KernelPackage,ath9k-htc))
1612 $(eval $(call KernelPackage,ath))
1613 $(eval $(call KernelPackage,carl9170))
1614 $(eval $(call KernelPackage,b43))
1615 $(eval $(call KernelPackage,b43legacy))
1616 $(eval $(call KernelPackage,brcmutil))
1617 $(eval $(call KernelPackage,brcmsmac))
1618 $(eval $(call KernelPackage,brcmfmac))
1619 $(eval $(call KernelPackage,net-libipw))
1620 $(eval $(call KernelPackage,net-ipw2100))
1621 $(eval $(call KernelPackage,net-ipw2200))
1622 $(eval $(call KernelPackage,iwlagn))
1623 $(eval $(call KernelPackage,iwl-legacy))
1624 $(eval $(call KernelPackage,iwl4965))
1625 $(eval $(call KernelPackage,iwl3945))
1626 $(eval $(call KernelPackage,mwl8k))
1627 $(eval $(call KernelPackage,net-hermes))
1628 $(eval $(call KernelPackage,net-hermes-pci))
1629 $(eval $(call KernelPackage,net-hermes-plx))
1630 $(eval $(call KernelPackage,net-hermes-pcmcia))
1631 $(eval $(call KernelPackage,wl12xx))