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