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