[mac80211] add rt2800lib module
[openwrt.git] / package / mac80211 / Makefile
1 #
2 # Copyright (C) 2007-2009 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:=2010-01-25
14 PKG_RELEASE:=2
15 PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources
16 #       http://www.orbit-lab.org/kernel/compat-wireless-2.6/2010/11 \
17 #       http://wireless.kernel.org/download/compat-wireless-2.6
18 PKG_MD5SUM:=66a1d519e7ebcbadd4e47e6e56f705af
19
20 PKG_SOURCE:=compat-wireless-$(PKG_VERSION).tar.bz2
21 PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/compat-wireless-$(PKG_VERSION)
22
23 PKG_CONFIG_DEPENDS:= \
24         CONFIG_PACKAGE_kmod-mac80211 \
25         CONFIG_PACKAGE_MAC80211_DEBUGFS \
26         CONFIG_PACKAGE_ATH_DEBUG \
27         CONFIG_ATH_USER_REGD \
28
29 include $(INCLUDE_DIR)/package.mk
30
31 WMENU:=Wireless Drivers
32
33 define KernelPackage/mac80211/Default
34   SUBMENU:=$(WMENU)
35   URL:=http://linuxwireless.org/
36   DEPENDS:=@LINUX_2_6 @!TARGET_avr32 @(!(TARGET_ep93xx||TARGET_ps3||TARGET_pxcab)||BROKEN)
37 endef
38
39 define KernelPackage/mac80211
40   $(call KernelPackage/mac80211/Default)
41   TITLE:=Linux 802.11 Wireless Networking Stack
42   DEPENDS+= +kmod-crypto-core +kmod-crypto-arc4 +kmod-crypto-aes +wireless-tools +iw @!LINUX_2_6_21 @!LINUX_2_6_25
43   FILES:= \
44         $(PKG_BUILD_DIR)/compat/compat.$(LINUX_KMOD_SUFFIX) \
45         $(PKG_BUILD_DIR)/compat/compat_firmware_class.$(LINUX_KMOD_SUFFIX) \
46         $(PKG_BUILD_DIR)/net/mac80211/mac80211.$(LINUX_KMOD_SUFFIX) \
47         $(PKG_BUILD_DIR)/net/wireless/cfg80211.$(LINUX_KMOD_SUFFIX)
48   AUTOLOAD:=$(call AutoLoad,20,compat compat_firmware_class cfg80211 mac80211)
49 endef
50
51 define KernelPackage/mac80211/config
52         source "$(SOURCE)/Config.in"
53 endef
54
55 define KernelPackage/mac80211/description
56 Linux 802.11 Wireless Networking Stack
57 endef
58
59 # Prism54 drivers
60 P54PCIFW:=2.13.12.0.arm
61 P54USBFW:=2.13.24.0.lm87.arm
62
63 define Download/p54usb
64   FILE:=$(P54USBFW)
65   URL:=http://daemonizer.de/prism54/prism54-fw/fw-usb
66   MD5SUM:=8e8ab005a4f8f0123bcdc51bc25b47f6
67 endef
68 $(eval $(call Download,p54usb))
69
70 define Download/p54pci
71   FILE:=$(P54PCIFW)
72   URL:=http://daemonizer.de/prism54/prism54-fw/fw-softmac
73   MD5SUM:=ff7536af2092b1c4b21315bd103ef4c4
74 endef
75 $(eval $(call Download,p54pci))
76
77 define KernelPackage/p54/Default
78   $(call KernelPackage/mac80211/Default)
79   TITLE:=Prism54 Drivers
80 endef
81
82 define KernelPackage/p54/description
83   Kernel module for Prism54 chipsets (mac80211)
84 endef
85
86 define KernelPackage/p54-common
87   $(call KernelPackage/p54/Default)
88   DEPENDS+= @PCI_SUPPORT||@USB_SUPPORT +kmod-mac80211
89   TITLE+= (COMMON)
90   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/p54/p54common.$(LINUX_KMOD_SUFFIX)
91   AUTOLOAD:=$(call AutoLoad,30,p54common)
92 endef
93
94 define KernelPackage/p54-pci
95   $(call KernelPackage/p54/Default)
96   TITLE+= (PCI)
97   DEPENDS+= @PCI_SUPPORT +kmod-p54-common
98   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/p54/p54pci.$(LINUX_KMOD_SUFFIX)
99   AUTOLOAD:=$(call AutoLoad,31,p54pci)
100 endef
101
102 define KernelPackage/p54-usb
103   $(call KernelPackage/p54/Default)
104   TITLE+= (USB)
105   DEPENDS+= @USB_SUPPORT +kmod-usb-core +kmod-p54-common
106   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/p54/p54usb.$(LINUX_KMOD_SUFFIX)
107   AUTOLOAD:=$(call AutoLoad,31,p54usb)
108 endef
109
110 # Ralink rt2x00 drivers
111 RT61FW:=RT61_Firmware_V1.2.zip
112 RT71FW:=RT71W_Firmware_V1.8.zip
113 RT2860FW:=RT2860_Firmware_V11.zip
114 RT2870FW:=RT2870_Firmware_V8.zip
115
116 define Download/rt61
117   FILE:=$(RT61FW)
118   URL:=http://www.ralinktech.com.tw/data/
119   MD5SUM:=d4c690c93b470bc9a681297c2adc6281
120 endef
121 $(eval $(call Download,rt61))
122
123 define Download/rt71w
124   FILE:=$(RT71FW)
125   URL:=http://www.ralinktech.com.tw/data/
126   MD5SUM:=1e7a5dc574e0268574fcda3fd5cf52f7
127 endef
128 $(eval $(call Download,rt71w))
129
130 define Download/rt2860
131   FILE:=$(RT2860FW)
132   URL:=http://www.ralinktech.com.tw/data/drivers
133   MD5SUM:=440a81756a52c53528f16faa41c40124
134 endef
135 $(eval $(call Download,rt2860))
136
137 define Download/rt2870
138   FILE:=$(RT2870FW)
139   URL:=http://www.ralinktech.com.tw/data/drivers
140   MD5SUM:=a7aae1d8cfd68e4d86a73000df0b6584
141 endef
142 $(eval $(call Download,rt2870))
143
144 AR9170FW:=ar9170.fw
145
146 define Download/ar9170
147   FILE:=$(AR9170FW)
148   URL:=http://www.kernel.org/pub/linux/kernel/people/mcgrof/firmware/ar9170
149   MD5SUM:=34feec4ec0eae3bb92c7c1ea2dfb4530
150 endef
151 $(eval $(call Download,ar9170))
152
153 define KernelPackage/rt2x00/Default
154   $(call KernelPackage/mac80211/Default)
155   TITLE:=Ralink Drivers for RT2x00 cards
156 endef
157
158 define KernelPackage/rt2x00-lib
159 $(call KernelPackage/rt2x00/Default)
160   DEPENDS+= @(PCI_SUPPORT||USB_SUPPORT) +kmod-mac80211 +kmod-crc-itu-t
161   TITLE+= (LIB)
162   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2x00lib.$(LINUX_KMOD_SUFFIX)
163   AUTOLOAD:=$(call AutoLoad,25,rt2x00lib)
164 endef
165
166 define KernelPackage/rt2x00-pci
167 $(call KernelPackage/rt2x00/Default)
168   DEPENDS+= @PCI_SUPPORT +kmod-rt2x00-lib +kmod-eeprom-93cx6
169   TITLE+= (PCI)
170   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2x00pci.$(LINUX_KMOD_SUFFIX)
171   AUTOLOAD:=$(call AutoLoad,26,rt2x00pci)
172 endef
173
174 define KernelPackage/rt2x00-usb
175 $(call KernelPackage/rt2x00/Default)
176   DEPENDS+= @USB_SUPPORT +kmod-rt2x00-lib +kmod-usb-core
177   TITLE+= (USB)
178   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2x00usb.$(LINUX_KMOD_SUFFIX)
179   AUTOLOAD:=$(call AutoLoad,26,rt2x00usb)
180 endef
181
182 define KernelPackage/rt2800-lib
183 $(call KernelPackage/rt2x00/Default)
184   DEPENDS+= @(PCI_SUPPORT||USB_SUPPORT) +kmod-rt2x00-lib
185   TITLE+= (rt2800 LIB)
186   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2800lib.$(LINUX_KMOD_SUFFIX)
187   AUTOLOAD:=$(call AutoLoad,27,rt2800lib)
188 endef
189
190 define KernelPackage/rt2400-pci
191 $(call KernelPackage/rt2x00/Default)
192   DEPENDS+= @PCI_SUPPORT +kmod-rt2x00-pci
193   TITLE+= (RT2400 PCI)
194   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2400pci.$(LINUX_KMOD_SUFFIX)
195   AUTOLOAD:=$(call AutoLoad,27,rt2400pci)
196 endef
197
198 define KernelPackage/rt2500-pci
199 $(call KernelPackage/rt2x00/Default)
200   DEPENDS+= @PCI_SUPPORT +kmod-rt2x00-pci
201   TITLE+= (RT2500 PCI)
202   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2500pci.$(LINUX_KMOD_SUFFIX)
203   AUTOLOAD:=$(call AutoLoad,27,rt2500pci)
204 endef
205
206 define KernelPackage/rt2500-usb
207 $(call KernelPackage/rt2x00/Default)
208   DEPENDS+= @USB_SUPPORT +kmod-rt2x00-usb
209   TITLE+= (RT2500 USB)
210   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2500usb.$(LINUX_KMOD_SUFFIX)
211   AUTOLOAD:=$(call AutoLoad,27,rt2500usb)
212 endef
213
214 define KernelPackage/rt61-pci
215 $(call KernelPackage/rt2x00/Default)
216   DEPENDS+= @PCI_SUPPORT +kmod-rt2x00-pci
217   TITLE+= (RT2x61 PCI)
218   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt61pci.$(LINUX_KMOD_SUFFIX)
219   AUTOLOAD:=$(call AutoLoad,27,rt61pci)
220 endef
221
222 define KernelPackage/rt73-usb
223   $(call KernelPackage/rt2x00/Default)
224   DEPENDS+= @USB_SUPPORT +kmod-rt2x00-usb
225   TITLE+= (RT73 USB)
226   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt73usb.$(LINUX_KMOD_SUFFIX)
227   AUTOLOAD:=$(call AutoLoad,27,rt73usb)
228 endef
229
230 define KernelPackage/rt2800-pci
231 $(call KernelPackage/rt2x00/Default)
232   DEPENDS+= +kmod-rt2x00-pci +kmod-rt2800-lib +kmod-crc-ccitt
233   TITLE+= (RT2860 PCI)
234   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2800pci.$(LINUX_KMOD_SUFFIX)
235   AUTOLOAD:=$(call AutoLoad,28,rt2800pci)
236 endef
237
238 define KernelPackage/rt2800-usb
239 $(call KernelPackage/rt2x00/Default)
240   DEPENDS+= +kmod-rt2x00-usb +kmod-rt2800-lib +kmod-crc-ccitt
241   TITLE+= (RT2870 USB)
242   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2800usb.$(LINUX_KMOD_SUFFIX)
243   AUTOLOAD:=$(call AutoLoad,28,rt2800usb)
244 endef
245
246 define KernelPackage/rtl818x/Default
247   $(call KernelPackage/mac80211/Default)
248   TITLE:=Realtek Drivers for RTL818x devices
249   URL:=http://wireless.kernel.org/en/users/Drivers/rtl8187
250   DEPENDS+= +kmod-eeprom-93cx6 +kmod-mac80211
251 endef
252
253 define KernelPackage/rtl8180
254   $(call KernelPackage/rtl818x/Default)
255   DEPENDS+= @PCI_SUPPORT
256   TITLE+= (RTL8180 PCI)
257   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rtl818x/rtl8180.$(LINUX_KMOD_SUFFIX)
258   AUTOLOAD:=$(call AutoLoad,27,rtl8180)
259 endef
260
261 define KernelPackage/rtl8187
262 $(call KernelPackage/rtl818x/Default)
263   DEPENDS+= @USB_SUPPORT
264   TITLE+= (RTL8187 USB)
265   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rtl818x/rtl8187.$(LINUX_KMOD_SUFFIX)
266   AUTOLOAD:=$(call AutoLoad,27,rtl8187)
267 endef
268
269 ZD1211FW_NAME:=zd1211-firmware
270 ZD1211FW_VERSION:=1.4
271 define Download/zd1211rw
272   FILE:=$(ZD1211FW_NAME)-$(ZD1211FW_VERSION).tar.bz2
273   URL:=@SF/zd1211/
274   MD5SUM:=19f28781d76569af8551c9d11294c870
275 endef
276 $(eval $(call Download,zd1211rw))
277
278 define KernelPackage/zd1211rw
279   $(call KernelPackage/mac80211/Default)
280   TITLE:=Zydas ZD1211 support
281   DEPENDS+= @USB_SUPPORT +kmod-usb-core +kmod-mac80211
282   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/zd1211rw/zd1211rw.$(LINUX_KMOD_SUFFIX)
283   AUTOLOAD:=$(call AutoLoad,60,zd1211rw)
284 endef
285
286 define KernelPackage/ath/config
287
288 config ATH_USER_REGD
289         bool "Force Atheros drivers to respect the user's regdomain settings"
290         depends on PACKAGE_kmod-ath
291         help
292                 Atheros' idea of regulatory handling is that the EEPROM of the card defines
293                 the regulatory limits and the user is only allowed to restrict the settings
294                 even further, even if the country allows frequencies or power levels that
295                 are forbidden by the EEPROM settings.
296                 Select this option if you want the driver to respect the user's decision about
297                 regulatory settings.
298
299 config PACKAGE_ATH_DEBUG
300         bool "Atheros wireless debugging"
301         depends on PACKAGE_kmod-ath
302         help
303                 Say Y, if you want to debug atheros wireless drivers.
304                 Right now only ath9k makes use of this.
305 endef
306
307 define KernelPackage/ath
308   $(call KernelPackage/mac80211/Default)
309   TITLE:=Atheros common driver part
310   DEPENDS+= @PCI_SUPPORT +kmod-mac80211
311   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath.$(LINUX_KMOD_SUFFIX)
312   AUTOLOAD:=$(call AutoLoad,26,ath)
313 endef
314
315 define KernelPackage/ath/description
316  This module contains some common parts needed by Atheros Wireless drivers.
317 endef
318
319 define KernelPackage/ath5k
320   $(call KernelPackage/mac80211/Default)
321   TITLE:=Atheros 5xxx wireless cards support
322   URL:=http://linuxwireless.org/en/users/Drivers/ath5k
323   DEPENDS+= +kmod-ath
324   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath5k/ath5k.$(LINUX_KMOD_SUFFIX)
325   AUTOLOAD:=$(call AutoLoad,27,ath5k)
326 endef
327
328 define KernelPackage/ath5k/description
329  This module adds support for wireless adapters based on
330  Atheros 5xxx chipset.
331 endef
332
333 define KernelPackage/ath9k
334   $(call KernelPackage/mac80211/Default)
335   TITLE:=Atheros 802.11n wireless cards support
336   URL:=http://linuxwireless.org/en/users/Drivers/ath9k
337   DEPENDS+= +kmod-ath
338   FILES:= \
339         $(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath9k/ath9k_common.$(LINUX_KMOD_SUFFIX) \
340         $(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath9k/ath9k_hw.$(LINUX_KMOD_SUFFIX) \
341         $(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath9k/ath9k.$(LINUX_KMOD_SUFFIX)
342   AUTOLOAD:=$(call AutoLoad,27,ath9k_hw ath9k_common ath9k)
343 endef
344
345 define KernelPackage/ath9k/description
346 This module adds support for wireless adapters based on
347 Atheros IEEE 802.11n AR5008 and AR9001 family of chipsets.
348 endef
349
350 define KernelPackage/ath9k/config
351         source "$(SOURCE)/Config.in.ath9k"
352 endef
353
354 USB8388FW_NAME:=usb8388
355 USB8388FW_VERSION:=5.110.22.p23
356
357 define Download/usb8388
358   URL:=http://dev.laptop.org/pub/firmware/libertas/
359   FILE:=$(USB8388FW_NAME)-$(USB8388FW_VERSION).bin
360   MD5SUM=5e38f55719df3d0c58dd3bd02575a09c
361 endef
362 $(eval $(call Download,usb8388))
363
364 define KernelPackage/libertas
365   $(call KernelPackage/mac80211/Default)
366   DEPENDS+= @USB_SUPPORT +kmod-mac80211 +kmod-usb-core +kmod-lib80211
367   TITLE:=Marvell 88W8015 Wireless Driver
368   FILES:= \
369         $(PKG_BUILD_DIR)/drivers/net/wireless/libertas/libertas.$(LINUX_KMOD_SUFFIX) \
370         $(PKG_BUILD_DIR)/drivers/net/wireless/libertas/usb8xxx.$(LINUX_KMOD_SUFFIX)
371   AUTOLOAD:=$(call AutoLoad,27,libertas usb8xxx)
372 endef
373
374
375 define KernelPackage/ar9170
376   $(call KernelPackage/mac80211/Default)
377   TITLE:=Atheros AR9170 802.11n USB support
378   URL:=http://wireless.kernel.org/en/users/Drivers/ar9170
379   DEPENDS+= @USB_SUPPORT @!LINUX_2_6_25 +kmod-ath +kmod-usb-core
380   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/ar9170/ar9170usb.$(LINUX_KMOD_SUFFIX)
381   AUTOLOAD:=$(call AutoLoad,27,ar9170usb)
382 endef
383
384 define KernelPackage/ar9170/description
385  This is a driver for the Atheros "otus" 802.11n USB devices.
386 endef
387
388 define KernelPackage/mac80211-hwsim
389   $(call KernelPackage/mac80211/Default)
390   TITLE:=mac80211 HW simulation device
391   DEPENDS+= +kmod-mac80211
392   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/mac80211_hwsim.$(LINUX_KMOD_SUFFIX)
393   AUTOLOAD:=$(call AutoLoad,60,mac80211_hwsim)
394 endef
395
396 #Broadcom firmware
397 ifneq ($(CONFIG_B43_EXPERIMENTAL),)
398   PKG_B43_FWV4_NAME:=broadcom-wl
399   PKG_B43_FWV4_VERSION:=4.178.10.4
400   PKG_B43_FWV4_OBJECT:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION)/linux/wl.o
401   PKG_B43_FWV4_SOURCE:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION).tar.bz2
402   PKG_B43_FWV4_SOURCE_URL:=http://mirror2.openwrt.org/sources/
403   PKG_B43_FWV4_MD5SUM:=14477e8cbbb91b11896affac9b219fdb
404 else
405   PKG_B43_FWV4_NAME:=broadcom-wl
406   PKG_B43_FWV4_VERSION:=4.150.10.5
407   PKG_B43_FWV4_OBJECT:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION)/driver/wl_apsta_mimo.o
408   PKG_B43_FWV4_SOURCE:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION).tar.bz2
409   PKG_B43_FWV4_SOURCE_URL:=http://mirror2.openwrt.org/sources/
410   PKG_B43_FWV4_MD5SUM:=0c6ba9687114c6b598e8019e262d9a60
411 endif
412 ifneq ($(CONFIG_B43_OPENFIRMWARE),)
413   PKG_B43_FWV4_NAME:=broadcom-wl
414   PKG_B43_FWV4_VERSION:=5.2
415   PKG_B43_FWV4_OBJECT:=openfwwf-$(PKG_B43_FWV4_VERSION)
416   PKG_B43_FWV4_SOURCE:=openfwwf-$(PKG_B43_FWV4_VERSION).tar.gz
417   PKG_B43_FWV4_SOURCE_URL:=http://www.ing.unibs.it/openfwwf/firmware/
418   PKG_B43_FWV4_MD5SUM:=e045a135453274e439ae183f8498b0fa
419 endif
420
421
422 PKG_B43_FWV3_NAME:=wl_apsta
423 PKG_B43_FWV3_VERSION:=3.130.20.0
424 PKG_B43_FWV3_SOURCE:=$(PKG_B43_FWV3_NAME)-$(PKG_B43_FWV3_VERSION).o
425 PKG_B43_FWV3_SOURCE_URL:=http://downloads.openwrt.org/sources/
426 PKG_B43_FWV3_MD5SUM:=e08665c5c5b66beb9c3b2dd54aa80cb3
427
428 ifneq ($(CONFIG_B43_OPENFIRMWARE),)
429   PKG_B43_FWCUTTER_NAME:=b43-fwcutter
430   PKG_B43_FWCUTTER_VERSION:=3e69531aa65b8f664a0ab00dfc3e2eefeb0cb417
431   PKG_B43_FWCUTTER_SOURCE:=$(PKG_B43_FWCUTTER_NAME)-$(PKG_B43_FWCUTTER_VERSION).tar.bz2
432   PKG_B43_FWCUTTER_PROTO:=git
433   PKG_B43_FWCUTTER_SOURCE_URL:=http://git.bu3sch.de/git/b43-tools.git
434   PKG_B43_FWCUTTER_SUBDIR:=$(PKG_B43_FWCUTTER_NAME)-$(PKG_B43_FWCUTTER_VERSION)
435   PKG_B43_FWCUTTER_OBJECT:=$(PKG_B43_FWCUTTER_NAME)-$(PKG_B43_FWCUTTER_VERSION)/fwcutter/
436 else
437   PKG_B43_FWCUTTER_NAME:=b43-fwcutter
438   PKG_B43_FWCUTTER_VERSION:=012
439   PKG_B43_FWCUTTER_SOURCE:=$(PKG_B43_FWCUTTER_NAME)-$(PKG_B43_FWCUTTER_VERSION).tar.bz2
440   PKG_B43_FWCUTTER_PROTO:=default
441   PKG_B43_FWCUTTER_SOURCE_URL:=http://bu3sch.de/b43/fwcutter/
442   PKG_B43_FWCUTTER_MD5SUM:=69eadf67b459f313a8d6b37aaabef96c
443   PKG_B43_FWCUTTER_SUBDIR:=b43-fwcutter-$(PKG_B43_FWCUTTER_VERSION)
444   PKG_B43_FWCUTTER_OBJECT:=$(PKG_B43_FWCUTTER_NAME)-$(PKG_B43_FWCUTTER_VERSION)/
445 endif
446
447 define Download/b43-common
448   FILE:=$(PKG_B43_FWCUTTER_SOURCE)
449   URL:=$(PKG_B43_FWCUTTER_SOURCE_URL)
450   MD5SUM:=$(PKG_B43_FWCUTTER_MD5SUM)
451   PROTO:=$(PKG_B43_FWCUTTER_PROTO)
452   VERSION:=$(PKG_B43_FWCUTTER_VERSION)
453   SUBDIR:=$(PKG_B43_FWCUTTER_SUBDIR)
454 endef
455 $(eval $(call Download,b43-common))
456
457 define Download/b43
458   FILE:=$(PKG_B43_FWV4_SOURCE)
459   URL:=$(PKG_B43_FWV4_SOURCE_URL)
460   MD5SUM:=$(PKG_B43_FWV4_MD5SUM)
461 endef
462 $(eval $(call Download,b43))
463
464 define Download/b43legacy
465   FILE:=$(PKG_B43_FWV3_SOURCE)
466   URL:=$(PKG_B43_FWV3_SOURCE_URL)
467   MD5SUM:=$(PKG_B43_FWV3_MD5SUM)
468 endef
469 $(eval $(call Download,b43legacy))
470
471 define KernelPackage/b43-common
472   $(call KernelPackage/mac80211/Default)
473   TITLE:=Generic stuff for Broadcom wireless devices
474   URL:=http://linuxwireless.org/en/users/Drivers/b43
475   KCONFIG:= \
476         CONFIG_HW_RANDOM=y
477   DEPENDS+= +kmod-mac80211 +!(TARGET_brcm47xx||TARGET_brcm63xx):kmod-ssb
478 endef
479
480 define KernelPackage/b43
481 $(call KernelPackage/b43-common)
482   TITLE:=Broadcom 43xx wireless support
483   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/b43/b43.$(LINUX_KMOD_SUFFIX)
484   AUTOLOAD:=$(call AutoLoad,30,b43)
485 endef
486
487 define KernelPackage/b43/config
488         source "$(SOURCE)/Config.in.b43"
489 endef
490
491 define KernelPackage/b43/description
492 Kernel module for Broadcom 43xx wireless support (mac80211 stack) new
493 endef
494
495 define KernelPackage/b43legacy
496 $(call KernelPackage/b43-common)
497   TITLE:=Broadcom 43xx-legacy wireless support
498   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/b43legacy/b43legacy.$(LINUX_KMOD_SUFFIX)
499   AUTOLOAD:=$(call AutoLoad,30,b43legacy)
500 endef
501
502 define KernelPackage/b43legacy/config
503         source "$(SOURCE)/Config.in.b43legacy"
504 endef
505
506 define KernelPackage/b43legacy/description
507 Kernel module for Broadcom 43xx-legacy wireless support (mac80211 stack) new
508 endef
509
510 BUILDFLAGS:= \
511         -I$(PKG_BUILD_DIR)/include \
512         $(foreach opt,$(CONFOPTS),-DCONFIG_$(opt)) \
513         $(if $(CONFIG_PCI),-DCONFIG_B43_PCI_AUTOSELECT -DCONFIG_B43_PCICORE_AUTOSELECT -DCONFIG_SSB_DRIVER_PCICORE_POSSIBLE -DCONFIG_SSB_DRIVER_PCICORE) \
514         $(if $(CONFIG_PCI),-DCONFIG_SSB_PCIHOST_POSSIBLE -DCONFIG_SSB_PCIHOST) \
515         $(if $(CONFIG_PCI),-DCONFIG_SSB_SPROM) \
516         $(if $(CONFIG_LEDS_TRIGGERS), -DCONFIG_MAC80211_LEDS -DCONFIG_LEDS_TRIGGERS -DCONFIG_B43_LEDS -DCONFIG_B43LEGACY_LEDS -DCONFIG_AR9170_LEDS) \
517         -DCONFIG_B43_HWRNG -DCONFIG_B43LEGACY_HWRNG \
518         $(if $(CONFIG_PACKAGE_MAC80211_DEBUGFS),-DCONFIG_MAC80211_DEBUGFS -DCONFIG_ATH9K_DEBUGFS) \
519         $(if $(CONFIG_PACKAGE_ATH_DEBUG),-DCONFIG_ATH_DEBUG) \
520         -D__CONFIG_MAC80211_RC_DEFAULT=minstrel \
521         $(if $(CONFIG_ATH_USER_REGD),-DATH_USER_REGD=1)
522
523 MAKE_OPTS:= \
524         CROSS_COMPILE="$(KERNEL_CROSS)" \
525         ARCH="$(LINUX_KARCH)" \
526         EXTRA_CFLAGS="$(BUILDFLAGS)" \
527         $(foreach opt,$(CONFOPTS),CONFIG_$(opt)=m) \
528         CONFIG_MAC80211_RC_PID=y \
529         CONFIG_MAC80211_RC_MINSTREL=y \
530         CONFIG_MAC80211_LEDS=$(CONFIG_LEDS_TRIGGERS) \
531         CONFIG_MAC80211_DEBUGFS=$(if $(CONFIG_PACKAGE_MAC80211_DEBUGFS),y) \
532         CONFIG_B43_PCMCIA=n CONFIG_B43_PIO=n \
533         CONFIG_B43_PCI_AUTOSELECT=$(if $(CONFIG_PCI),y) \
534         CONFIG_B43_PCICORE_AUTOSELECT=$(if $(CONFIG_PCI),y) \
535         CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=$(if $(CONFIG_PCI),y) \
536         CONFIG_SSB_DRIVER_PCICORE=$(if $(CONFIG_PCI),y) \
537         CONFIG_SSB_PCIHOST_POSSIBLE=$(if $(CONFIG_PCI),y) \
538         CONFIG_SSB_PCIHOST=$(if $(CONFIG_PCI),y) \
539         CONFIG_B43LEGACY_LEDS=$(CONFIG_LEDS_TRIGGERS) \
540         CONFIG_B43_LEDS=$(CONFIG_LEDS_TRIGGERS) \
541         CONFIG_B43_HWRNG=$(if $(CONFIG_HW_RANDOM),y) \
542         CONFIG_B43LEGACY_HWRNG=$(if $(CONFIG_HW_RANDOM),y) \
543         CONFIG_B43=$(if $(CONFIG_PACKAGE_kmod-b43),m) \
544         CONFIG_B43LEGACY=$(if $(CONFIG_PACKAGE_kmod-b43legacy),m) \
545         CONFIG_ATH_COMMON=$(if $(CONFIG_PACKAGE_kmod-ath),m) \
546         CONFIG_ATH_DEBUG=$(if $(CONFIG_PACKAGE_ATH_DEBUG),y) \
547         CONFIG_ATH5K=$(if $(CONFIG_PACKAGE_kmod-ath5k),m) \
548         CONFIG_ATH9K=$(if $(CONFIG_PACKAGE_kmod-ath9k),m) \
549         CONFIG_ATH9K_DEBUGFS=$(if $(CONFIG_PACKAGE_MAC80211_DEBUGFS),y) \
550         CONFIG_ZD1211RW=$(if $(CONFIG_PACKAGE_kmod-zd1211rw),m) \
551         CONFIG_P54_COMMON=$(if $(CONFIG_PACKAGE_kmod-p54-common),m) \
552         CONFIG_P54_PCI=$(if $(CONFIG_PACKAGE_kmod-p54-pci),m) \
553         CONFIG_P54_USB=$(if $(CONFIG_PACKAGE_kmod-p54-usb),m) \
554         CONFIG_P54_SPI= \
555         CONFIG_RT2X00=$(if $(CONFIG_PACKAGE_kmod-rt2x00-lib),m) \
556         CONFIG_RT2X00_LIB_PCI=$(if $(CONFIG_PACKAGE_kmod-rt2x00-pci),m) \
557         CONFIG_RT2X00_LIB_USB=$(if $(CONFIG_PACKAGE_kmod-rt2x00-usb),m) \
558         CONFIG_RT2400PCI=$(if $(CONFIG_PACKAGE_kmod-rt2400-pci),m) \
559         CONFIG_RT2500PCI=$(if $(CONFIG_PACKAGE_kmod-rt2500-pci),m) \
560         CONFIG_RT2500USB=$(if $(CONFIG_PACKAGE_kmod-rt2500-usb),m) \
561         CONFIG_RT61PCI=$(if $(CONFIG_PACKAGE_kmod-rt61-pci),m) \
562         CONFIG_RT73USB=$(if $(CONFIG_PACKAGE_kmod-rt73-usb),m) \
563         CONFIG_RT2800PCI=$(if $(CONFIG_PACKAGE_kmod-rt2800-pci),m) \
564         CONFIG_RT2800USB=$(if $(CONFIG_PACKAGE_kmod-rt2800-usb),m) \
565         CONFIG_RTL8180=$(if $(CONFIG_PACKAGE_kmod-rtl8180),m) \
566         CONFIG_RTL8187=$(if $(CONFIG_PACKAGE_kmod-rtl8187),m) \
567         CONFIG_MAC80211_HWSIM=$(if $(CONFIG_PACKAGE_kmod-mac80211-hwsim),m) \
568         CONFIG_PCMCIA= \
569         CONFIG_LIBIPW= \
570         CONFIG_LIBERTAS=$(if $(CONFIG_PACKAGE_kmod-libertas),m) \
571         CONFIG_LIBERTAS_CS= \
572         CONFIG_LIBERTAS_SDIO= \
573         CONFIG_LIBERTAS_THINFIRM= \
574         CONFIG_LIBERTAS_USB=$(if $(CONFIG_PACKAGE_kmod-libertas),m) \
575         CONFIG_IPW2100= \
576         CONFIG_IPW2200= \
577         CONFIG_NL80211=y \
578         CONFIG_LIB80211= \
579         CONFIG_LIB80211_CRYPT_WEP= \
580         CONFIG_LIB80211_CRYPT_CCMP= \
581         CONFIG_LIB80211_CRYPT_TKIP= \
582         CONFIG_IWLWIFI= \
583         CONFIG_IWLAGN= \
584         CONFIG_MWL8K= \
585         CONFIG_ATMEL= \
586         CONFIG_PCMCIA_ATMEL= \
587         CONFIG_ADM8211= \
588         CONFIG_USB_NET_RNDIS_HOST= \
589         CONFIG_USB_NET_RNDIS_WLAN= \
590         CONFIG_USB_NET_CDCETHER= \
591         CONFIG_USB_USBNET= \
592         CONFIG_AT76C50X_USB= \
593         CONFIG_WL12XX= \
594         CONFIG_EEPROM_93CX6= \
595         CONFIG_AR9170_USB=$(if $(CONFIG_PACKAGE_kmod-ar9170),m) \
596         CONFIG_AR9170_LEDS=$(CONFIG_LEDS_TRIGGERS) \
597         CONFIG_IWM= \
598         MADWIFI= \
599         OLD_IWL= \
600         KLIB_BUILD="$(LINUX_DIR)" \
601         MODPROBE=: \
602         KLIB=$(TARGET_MODULES_DIR) \
603         KERNEL_SUBLEVEL=$(lastword $(subst ., ,$(KERNEL_PATCHVER)))
604
605 define Build/Prepare
606         rm -rf $(PKG_BUILD_DIR)
607         mkdir -p $(PKG_BUILD_DIR)
608         $(PKG_UNPACK)
609         $(Build/Patch)
610         unzip -jod $(PKG_BUILD_DIR) $(DL_DIR)/$(RT61FW)
611         unzip -jod $(PKG_BUILD_DIR) $(DL_DIR)/$(RT71FW)
612         -unzip -jod $(PKG_BUILD_DIR) $(DL_DIR)/$(RT2860FW)
613         -unzip -jod $(PKG_BUILD_DIR) $(DL_DIR)/$(RT2870FW)
614         $(TAR) -C $(PKG_BUILD_DIR) -xjf $(DL_DIR)/$(ZD1211FW_NAME)-$(ZD1211FW_VERSION).tar.bz2
615         rm -rf $(PKG_BUILD_DIR)/include/linux/ssb
616         rm -f $(PKG_BUILD_DIR)/include/net/ieee80211.h
617         rm $(PKG_BUILD_DIR)/include/linux/eeprom_93cx6.h
618 endef
619
620 ifneq ($(CONFIG_PACKAGE_kmod-mac80211),)
621  define Build/Compile/kmod
622         rm -rf $(PKG_BUILD_DIR)/modules
623         $(MAKE) -C "$(PKG_BUILD_DIR)" $(MAKE_OPTS) all
624  endef
625 endif
626
627 define Build/Compile
628         $(call Build/Compile/kmod)
629 endef
630
631 define Build/InstallDev
632         mkdir -p \
633                 $(1)/usr/include/mac80211 \
634                 $(1)/usr/include/mac80211/ath \
635                 $(1)/usr/include/net/mac80211
636         $(CP) $(PKG_BUILD_DIR)/net/mac80211/*.h $(PKG_BUILD_DIR)/include/* $(1)/usr/include/mac80211/
637         $(CP) $(PKG_BUILD_DIR)/net/mac80211/rate.h $(1)/usr/include/net/mac80211/
638         $(CP) $(PKG_BUILD_DIR)/drivers/net/wireless/ath/*.h $(1)/usr/include/mac80211/ath/
639 endef
640
641 define KernelPackage/libertas/install
642         $(INSTALL_DIR) $(1)/lib/firmware
643         $(INSTALL_DATA) $(DL_DIR)/$(USB8388FW_NAME)-$(USB8388FW_VERSION).bin $(1)/lib/firmware/$(USB8388FW_NAME).bin
644 endef
645
646 define KernelPackage/mac80211/install
647         $(INSTALL_DIR) $(1)/lib/wifi
648         $(INSTALL_DATA) ./files/lib/wifi/mac80211.sh $(1)/lib/wifi
649 endef
650
651 define KernelPackage/p54-pci/install
652         $(INSTALL_DIR) $(1)/lib/firmware
653         $(INSTALL_DATA) $(DL_DIR)/$(P54PCIFW) $(1)/lib/firmware/isl3886pci
654 endef
655
656 define KernelPackage/p54-usb/install
657         $(INSTALL_DIR) $(1)/lib/firmware
658         $(INSTALL_DATA) $(DL_DIR)/$(P54USBFW) $(1)/lib/firmware/isl3887usb
659 endef
660
661 define KernelPackage/rt61-pci/install
662         $(INSTALL_DIR) $(1)/lib/firmware
663         $(INSTALL_DATA) $(PKG_BUILD_DIR)/rt2?61*.bin $(1)/lib/firmware/
664 endef
665
666 define KernelPackage/rt73-usb/install
667         $(INSTALL_DIR) $(1)/lib/firmware
668         $(INSTALL_DATA) $(PKG_BUILD_DIR)/rt73.bin $(1)/lib/firmware/
669 endef
670
671 define KernelPackage/rt2800-pci/install
672         $(INSTALL_DIR) $(1)/lib/firmware
673         $(INSTALL_DATA) $(PKG_BUILD_DIR)/rt2860.bin $(1)/lib/firmware/
674 endef
675
676 define KernelPackage/rt2800-usb/install
677         $(INSTALL_DIR) $(1)/lib/firmware
678         $(INSTALL_DATA) $(PKG_BUILD_DIR)/rt2870.bin $(1)/lib/firmware/
679 endef
680
681 define KernelPackage/zd1211rw/install
682         $(INSTALL_DIR) $(1)/lib/firmware/zd1211
683         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(ZD1211FW_NAME)/zd1211* $(1)/lib/firmware/zd1211
684 endef
685
686 define KernelPackage/ar9170/install
687         $(INSTALL_DIR) $(1)/lib/firmware
688         $(INSTALL_DATA) $(DL_DIR)/$(AR9170FW) $(1)/lib/firmware/
689 endef
690
691 define Build/b43-common
692         tar xjf "$(DL_DIR)/$(PKG_B43_FWCUTTER_SOURCE)" -C "$(PKG_BUILD_DIR)"
693         $(MAKE) -C "$(PKG_BUILD_DIR)/$(PKG_B43_FWCUTTER_OBJECT)" \
694                 CFLAGS="-I$(STAGING_DIR_HOST)/include -include endian.h"
695         $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(PKG_B43_FWCUTTER_OBJECT)/b43-fwcutter $(STAGING_DIR_HOST)/bin/
696 ifneq ($(CONFIG_B43_OPENFIRMWARE),)
697         $(INSTALL_DIR) $(STAGING_DIR_HOST)/bin/
698         $(MAKE) -C "$(PKG_BUILD_DIR)/$(PKG_B43_FWCUTTER_SUBDIR)/assembler/"
699         $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(PKG_B43_FWCUTTER_SUBDIR)/assembler/b43-asm $(STAGING_DIR_HOST)/bin/
700         $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(PKG_B43_FWCUTTER_SUBDIR)/assembler/b43-asm.bin $(STAGING_DIR_HOST)/bin/
701 endif
702         $(INSTALL_BIN) ./files/host_bin/b43-fwsquash.py $(STAGING_DIR_HOST)/bin/
703 endef
704
705 define KernelPackage/b43/install
706         rm -rf $(1)/lib/firmware/
707         $(call Build/b43-common)
708 ifneq ($(CONFIG_B43_OPENFIRMWARE),)
709         tar xzf "$(DL_DIR)/$(PKG_B43_FWV4_SOURCE)" -C "$(PKG_BUILD_DIR)"
710 else
711         tar xjf "$(DL_DIR)/$(PKG_B43_FWV4_SOURCE)" -C "$(PKG_BUILD_DIR)"
712 endif
713         $(INSTALL_DIR) $(1)/lib/firmware/
714 ifneq ($(CONFIG_B43_OPENFIRMWARE),)
715         $(MAKE) -C "$(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)/"
716         $(INSTALL_DIR) $(1)/lib/firmware/b43-open/
717         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)/ucode5.fw $(1)/lib/firmware/b43-open/ucode5.fw
718         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)/b0g0bsinitvals5.fw $(1)/lib/firmware/b43-open/b0g0bsinitvals5.fw
719         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)/b0g0initvals5.fw $(1)/lib/firmware/b43-open/b0g0initvals5.fw
720 else
721         b43-fwcutter --unsupported -w $(1)/lib/firmware/ $(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)
722 endif
723 ifneq ($(CONFIG_B43_FW_SQUASH),)
724         b43-fwsquash.py "$(CONFIG_B43_FW_SQUASH_PHYTYPES)" "$(CONFIG_B43_FW_SQUASH_COREREVS)" "$(1)/lib/firmware/b43"
725 endif
726 endef
727
728 define KernelPackage/b43legacy/install
729         $(call Build/b43-common)
730         $(INSTALL_DIR) $(1)/lib/firmware/
731
732         b43-fwcutter --unsupported -w $(1)/lib/firmware/ $(DL_DIR)/$(PKG_B43_FWV3_SOURCE)
733 ifneq ($(CONFIG_B43LEGACY_FW_SQUASH),)
734         b43-fwsquash.py "G" "$(CONFIG_B43LEGACY_FW_SQUASH_COREREVS)" "$(1)/lib/firmware/b43legacy"
735 endif
736 endef
737
738 $(eval $(call KernelPackage,ath5k))
739 $(eval $(call KernelPackage,libertas))
740 $(eval $(call KernelPackage,mac80211))
741 $(eval $(call KernelPackage,p54-common))
742 $(eval $(call KernelPackage,p54-pci))
743 $(eval $(call KernelPackage,p54-usb))
744 $(eval $(call KernelPackage,rt2x00-lib))
745 $(eval $(call KernelPackage,rt2x00-pci))
746 $(eval $(call KernelPackage,rt2x00-usb))
747 $(eval $(call KernelPackage,rt2800-lib))
748 $(eval $(call KernelPackage,rt2400-pci))
749 $(eval $(call KernelPackage,rt2500-pci))
750 $(eval $(call KernelPackage,rt2500-usb))
751 $(eval $(call KernelPackage,rt61-pci))
752 $(eval $(call KernelPackage,rt73-usb))
753 $(eval $(call KernelPackage,rt2800-pci))
754 $(eval $(call KernelPackage,rt2800-usb))
755 $(eval $(call KernelPackage,rtl8180))
756 $(eval $(call KernelPackage,rtl8187))
757 $(eval $(call KernelPackage,zd1211rw))
758 $(eval $(call KernelPackage,mac80211-hwsim))
759 $(eval $(call KernelPackage,ath9k))
760 $(eval $(call KernelPackage,ath))
761 $(eval $(call KernelPackage,ar9170))
762 $(eval $(call KernelPackage,b43))
763 $(eval $(call KernelPackage,b43legacy))