Makefile 26 KB

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