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