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