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