1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
|
PKG_DRIVERS += \
b43 b43legacy brcmsmac brcmfmac brcmutil
PKG_CONFIG_DEPENDS += \
CONFIG_PACKAGE_B43_DEBUG \
CONFIG_PACKAGE_B43_PIO \
CONFIG_PACKAGE_B43_PHY_G \
CONFIG_PACKAGE_B43_PHY_N \
CONFIG_PACKAGE_B43_PHY_LP \
CONFIG_PACKAGE_B43_PHY_HT \
CONFIG_PACKAGE_B43_BUSES_BCMA_AND_SSB \
CONFIG_PACKAGE_B43_BUSES_BCMA \
CONFIG_PACKAGE_B43_BUSES_SSB \
CONFIG_PACKAGE_BRCM80211_DEBUG
config-$(call config_package,b43) += B43
config-$(CONFIG_PACKAGE_B43_BUSES_BCMA_AND_SSB) += B43_BUSES_BCMA_AND_SSB
config-$(CONFIG_PACKAGE_B43_BUSES_BCMA) += B43_BUSES_BCMA
config-$(CONFIG_PACKAGE_B43_BUSES_SSB) += B43_BUSES_SSB
config-$(CONFIG_PACKAGE_B43_PHY_G) += B43_PHY_G
config-$(CONFIG_PACKAGE_B43_PHY_N) += B43_PHY_N
config-$(CONFIG_PACKAGE_B43_PHY_LP) += B43_PHY_LP
config-$(CONFIG_PACKAGE_B43_PHY_HT) += B43_PHY_HT
config-$(CONFIG_PACKAGE_B43_PIO) += B43_PIO
config-$(CONFIG_PACKAGE_B43_DEBUG) += B43_DEBUG
config-$(call config_package,b43legacy) += B43LEGACY
config-y += B43LEGACY_DMA_MODE
config-$(call config_package,brcmutil) += BRCMUTIL
config-$(call config_package,brcmsmac) += BRCMSMAC
config-$(call config_package,brcmfmac) += BRCMFMAC
config-$(CONFIG_BRCMFMAC_SDIO) += BRCMFMAC_SDIO
config-$(CONFIG_BRCMFMAC_USB) += BRCMFMAC_USB
config-$(CONFIG_BRCMFMAC_PCIE) += BRCMFMAC_PCIE
config-$(CONFIG_PACKAGE_BRCM80211_DEBUG) += BRCMDBG
config-$(CONFIG_LEDS_TRIGGERS) += B43_LEDS B43LEGACY_LEDS
#Broadcom firmware
ifneq ($(CONFIG_B43_FW_6_30),)
PKG_B43_FWV4_NAME:=broadcom-wl
PKG_B43_FWV4_VERSION:=6.30.163.46
PKG_B43_FWV4_OBJECT:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION).wl_apsta.o
PKG_B43_FWV4_SOURCE:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION).tar.bz2
PKG_B43_FWV4_SOURCE_URL:=http://www.lwfinger.com/b43-firmware/
PKG_B43_FWV4_HASH:=a07c3b6b277833c7dbe61daa511f908cd66c5e2763eb7a0859abc36cd9335c2d
else
ifneq ($(CONFIG_B43_FW_5_10),)
PKG_B43_FWV4_NAME:=broadcom-wl
PKG_B43_FWV4_VERSION:=5.10.56.27.3
PKG_B43_FWV4_OBJECT:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION)/driver/wl_apsta/wl_prebuilt.o
PKG_B43_FWV4_SOURCE:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION)_mipsel.tar.bz2
PKG_B43_FWV4_SOURCE_URL:=http://mirror2.openwrt.org/sources/
PKG_B43_FWV4_HASH:=26a8c370f48fc129d0731cfd751c36cae1419b0bc8ca35781126744e60eae009
else
ifneq ($(CONFIG_B43_FW_4_178),)
PKG_B43_FWV4_NAME:=broadcom-wl
PKG_B43_FWV4_VERSION:=4.178.10.4
PKG_B43_FWV4_OBJECT:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION)/linux/wl_apsta.o
PKG_B43_FWV4_SOURCE:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION).tar.bz2
PKG_B43_FWV4_SOURCE_URL:=http://mirror2.openwrt.org/sources/
PKG_B43_FWV4_HASH:=32f6ad98facbb9045646fdc8b54bb03086d204153253f9c65d0234a5d90ae53f
else
ifneq ($(CONFIG_B43_FW_5_100_138),)
PKG_B43_FWV4_NAME:=broadcom-wl
PKG_B43_FWV4_VERSION:=5.100.138
PKG_B43_FWV4_OBJECT:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION)/linux/wl_apsta.o
PKG_B43_FWV4_SOURCE:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION).tar.bz2
PKG_B43_FWV4_SOURCE_URL:=http://www.lwfinger.com/b43-firmware/
PKG_B43_FWV4_HASH:=f1e7067aac5b62b67b8b6e4c517990277804339ac16065eb13c731ff909ae46f
else
PKG_B43_FWV4_NAME:=broadcom-wl
PKG_B43_FWV4_VERSION:=4.150.10.5
PKG_B43_FWV4_OBJECT:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION)/driver/wl_apsta_mimo.o
PKG_B43_FWV4_SOURCE:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION).tar.bz2
PKG_B43_FWV4_SOURCE_URL:=http://mirror2.openwrt.org/sources/
PKG_B43_FWV4_HASH:=a9f4e276a4d8d3a1cd0f2eb87080ae89b77f0a7140f06d4e9e2135fc44fdd533
endif
endif
endif
endif
ifneq ($(CONFIG_B43_OPENFIRMWARE),)
PKG_B43_FWV4_NAME:=broadcom-wl
PKG_B43_FWV4_VERSION:=5.2
PKG_B43_FWV4_OBJECT:=openfwwf-$(PKG_B43_FWV4_VERSION)
PKG_B43_FWV4_SOURCE:=openfwwf-$(PKG_B43_FWV4_VERSION).tar.gz
PKG_B43_FWV4_SOURCE_URL:=http://netweb.ing.unibs.it/~openfwwf/firmware
PKG_B43_FWV4_HASH:=9de03320083201080b2e94b81637ac07a159cf4e6f3481383e1a217e627bc0dc
endif
define Download/b43
FILE:=$(PKG_B43_FWV4_SOURCE)
URL:=$(PKG_B43_FWV4_SOURCE_URL)
HASH:=$(PKG_B43_FWV4_HASH)
endef
$(eval $(call Download,b43))
define KernelPackage/b43
$(call KernelPackage/mac80211/Default)
TITLE:=Broadcom 43xx wireless support
URL:=https://wireless.wiki.kernel.org/en/users/drivers/b43
KCONFIG:= \
CONFIG_HW_RANDOM=y
# Depend on PCI_SUPPORT to make sure we can select kmod-bcma or kmod-ssb
DEPENDS += \
@PCI_SUPPORT +kmod-mac80211 +kmod-lib-cordic \
$(if $(CONFIG_PACKAGE_B43_USE_SSB),+kmod-ssb) \
$(if $(CONFIG_PACKAGE_B43_USE_BCMA),+kmod-bcma)
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/broadcom/b43/b43.ko
AUTOLOAD:=$(call AutoProbe,b43)
MENU:=1
endef
define KernelPackage/b43/config
config PACKAGE_B43_USE_SSB
select PACKAGE_kmod-ssb
tristate
depends on !TARGET_brcm47xx && !TARGET_brcm63xx
default PACKAGE_kmod-b43 if PACKAGE_B43_BUSES_BCMA_AND_SSB
default PACKAGE_kmod-b43 if PACKAGE_B43_BUSES_SSB
config PACKAGE_B43_USE_BCMA
select PACKAGE_kmod-bcma
tristate
depends on !TARGET_brcm47xx && !TARGET_bcm53xx
default PACKAGE_kmod-b43 if PACKAGE_B43_BUSES_BCMA_AND_SSB
default PACKAGE_kmod-b43 if PACKAGE_B43_BUSES_BCMA
if PACKAGE_kmod-b43
choice
prompt "b43 firmware version"
default B43_FW_5_100_138
help
This option allows you to select the version of the b43 firmware.
config B43_FW_4_150
bool "Firmware 410.2160 from driver 4.150.10.5 (old stable)"
help
Old stable firmware for BCM43xx devices.
If unsure, select this.
config B43_FW_4_178
bool "Firmware 478.104 from driver 4.178.10.4"
help
Older firmware for BCM43xx devices.
If unsure, select the "stable" firmware.
config B43_FW_5_10
bool "Firmware 508.1084 from driver 5.10.56.27"
help
Older firmware for BCM43xx devices.
If unsure, select the "stable" firmware.
config B43_FW_5_100_138
bool "Firmware 666.2 from driver 5.100.138 (stable)"
help
The currently default firmware for BCM43xx devices.
This firmware currently gets most of the testing and is needed for some N-PHY devices.
If unsure, select the this firmware.
config B43_FW_6_30
bool "Firmware 784.2 from driver 6.30.163.46 (experimental)"
help
Newer experimental firmware for BCM43xx devices.
This firmware is mostly untested.
If unsure, select the "stable" firmware.
config B43_OPENFIRMWARE
bool "Open FirmWare for WiFi networks"
help
Opensource firmware for BCM43xx devices.
Do _not_ select this, unless you know what you are doing.
The Opensource firmware is not suitable for embedded devices, yet.
It does not support QoS, which is bad for AccessPoints.
It does not support hardware crypto acceleration, which is a showstopper
for embedded devices with low CPU resources.
If unsure, select the "stable" firmware.
endchoice
config B43_FW_SQUASH
bool "Remove unnecessary firmware files"
depends on !B43_OPENFIRMWARE
default y
help
This options allows you to remove unnecessary b43 firmware files
from the final rootfs image. This can reduce the rootfs size by
up to 200k.
If unsure, say Y.
config B43_FW_SQUASH_COREREVS
string "Core revisions to include"
depends on B43_FW_SQUASH
default "5,6,7,8,9,10,11,13,15" if TARGET_brcm47xx_legacy
default "16,28,29,30" if TARGET_brcm47xx_mips74k
default "5,6,7,8,9,10,11,13,15,16,28,29,30"
help
This is a comma seperated list of core revision numbers.
Example (keep files for rev5 only):
5
Example (keep files for rev5 and rev11):
5,11
config B43_FW_SQUASH_PHYTYPES
string "PHY types to include"
depends on B43_FW_SQUASH
default "G,N,LP" if TARGET_brcm47xx_legacy
default "N,HT" if TARGET_brcm47xx_mips74k
default "G,N,LP,HT"
help
This is a comma seperated list of PHY types:
A => A-PHY
AG => Dual A-PHY G-PHY
G => G-PHY
LP => LP-PHY
N => N-PHY
HT => HT-PHY
LCN => LCN-PHY
LCN40 => LCN40-PHY
AC => AC-PHY
Example (keep files for G-PHY only):
G
Example (keep files for G-PHY and N-PHY):
G,N
choice
prompt "Supported buses"
default PACKAGE_B43_BUSES_BCMA_AND_SSB
help
This allows choosing buses that b43 should support.
config PACKAGE_B43_BUSES_BCMA_AND_SSB
depends on !TARGET_brcm47xx_legacy && !TARGET_brcm47xx_mips74k && !TARGET_bcm53xx
bool "BCMA and SSB"
config PACKAGE_B43_BUSES_BCMA
depends on !TARGET_brcm47xx_legacy
bool "BCMA only"
config PACKAGE_B43_BUSES_SSB
depends on !TARGET_brcm47xx_mips74k && !TARGET_bcm53xx
bool "SSB only"
endchoice
config PACKAGE_B43_DEBUG
bool "Enable debug output and debugfs for b43"
default n
help
Enable additional debug output and runtime sanity checks for b43
and enables the debugfs interface.
If unsure, say N.
config PACKAGE_B43_PIO
bool "Enable support for PIO transfer mode"
default n
help
Enable support for using PIO instead of DMA. Unless you have DMA
transfer problems you don't need this.
If unsure, say N.
config PACKAGE_B43_PHY_G
bool "Enable support for G-PHYs"
default n if TARGET_brcm47xx_mips74k
default y
help
Enable support for G-PHY. This includes support for the following devices:
PCI: BCM4306, BCM4311, BCM4318
SoC: BCM5352E, BCM4712
If unsure, say Y.
config PACKAGE_B43_PHY_N
bool "Enable support for N-PHYs"
default y
help
Enable support for N-PHY. This includes support for the following devices:
PCI: BCM4321, BCM4322, BCM43222, BCM43224, BCM43225
SoC: BCM4716, BCM4717, BCM4718
Currently only 11g speed is available.
If unsure, say Y.
config PACKAGE_B43_PHY_LP
bool "Enable support for LP-PHYs"
default n if TARGET_brcm47xx_mips74k
default y
help
Enable support for LP-PHY. This includes support for the following devices:
PCI: BCM4312
SoC: BCM5354
If unsure, say Y.
config PACKAGE_B43_PHY_HT
bool "Enable support for HT-PHYs"
default n if TARGET_brcm47xx_legacy
default y
help
Enable support for HT-PHY. This includes support for the following devices:
PCI: BCM4331
Currently only 11g speed is available.
If unsure, say Y.
config PACKAGE_B43_PHY_LCN
bool "Enable support for LCN-PHYs"
depends on BROKEN
default n
help
Currently broken.
If unsure, say N.
endif
endef
define KernelPackage/b43/description
Kernel module for Broadcom 43xx wireless support (mac80211 stack) new
endef
define KernelPackage/b43legacy
$(call KernelPackage/mac80211/Default)
TITLE:=Broadcom 43xx-legacy wireless support
URL:=https://wireless.wiki.kernel.org/en/users/drivers/b43
KCONFIG:= \
CONFIG_HW_RANDOM=y
DEPENDS+= +kmod-mac80211 +!(TARGET_brcm47xx||TARGET_brcm63xx):kmod-ssb @!TARGET_brcm47xx_mips74k +b43legacy-firmware
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/broadcom/b43legacy/b43legacy.ko
AUTOLOAD:=$(call AutoProbe,b43legacy)
MENU:=1
endef
define KernelPackage/b43legacy/description
Kernel module for Broadcom 43xx-legacy wireless support (mac80211 stack) new
endef
define KernelPackage/brcmutil
$(call KernelPackage/mac80211/Default)
TITLE:=Broadcom IEEE802.11n common driver parts
URL:=https://wireless.wiki.kernel.org/en/users/drivers/brcm80211
DEPENDS+=@PCI_SUPPORT||USB_SUPPORT
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil.ko
AUTOLOAD:=$(call AutoProbe,brcmutil)
MENU:=1
endef
define KernelPackage/brcmutil/description
This module contains some common parts needed by Broadcom Wireless drivers brcmsmac and brcmfmac.
endef
define KernelPackage/brcmutil/config
if PACKAGE_kmod-brcmutil
config PACKAGE_BRCM80211_DEBUG
bool "Broadcom wireless driver debugging"
help
Say Y, if you want to debug brcmsmac and brcmfmac wireless driver.
endif
endef
PKG_BRCMSMAC_FW_NAME:=broadcom-wl
PKG_BRCMSMAC_FW_VERSION:=5.100.138
PKG_BRCMSMAC_FW_OBJECT:=$(PKG_BRCMSMAC_FW_NAME)-$(PKG_BRCMSMAC_FW_VERSION)/linux/wl_apsta.o
PKG_BRCMSMAC_FW_SOURCE:=$(PKG_BRCMSMAC_FW_NAME)-$(PKG_BRCMSMAC_FW_VERSION).tar.bz2
PKG_BRCMSMAC_FW_SOURCE_URL:=http://www.lwfinger.com/b43-firmware/
PKG_BRCMSMAC_FW_HASH:=f1e7067aac5b62b67b8b6e4c517990277804339ac16065eb13c731ff909ae46f
define Download/brcmsmac
FILE:=$(PKG_BRCMSMAC_FW_SOURCE)
URL:=$(PKG_BRCMSMAC_FW_SOURCE_URL)
HASH:=$(PKG_BRCMSMAC_FW_HASH)
endef
$(eval $(call Download,brcmsmac))
define KernelPackage/brcmsmac
$(call KernelPackage/mac80211/Default)
TITLE:=Broadcom IEEE802.11n PCIe SoftMAC WLAN driver
URL:=https://wireless.wiki.kernel.org/en/users/drivers/brcm80211
DEPENDS+= +kmod-mac80211 +@DRIVER_11N_SUPPORT +!TARGET_brcm47xx:kmod-bcma +kmod-lib-cordic +kmod-lib-crc8 +kmod-brcmutil +!BRCMSMAC_USE_FW_FROM_WL:brcmsmac-firmware
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/broadcom/brcm80211/brcmsmac/brcmsmac.ko
AUTOLOAD:=$(call AutoProbe,brcmsmac)
MENU:=1
endef
define KernelPackage/brcmsmac/description
Kernel module for Broadcom IEEE802.11n PCIe Wireless cards
endef
define KernelPackage/brcmsmac/config
if PACKAGE_kmod-brcmsmac
config BRCMSMAC_USE_FW_FROM_WL
bool "Use firmware extracted from broadcom proprietary driver"
default y
help
Instead of using the official brcmsmac firmware a firmware
version 666.2 extracted from the proprietary Broadcom driver
is used. This is needed to get core rev 17 used in bcm4716
to work.
If unsure, say Y.
endif
endef
define KernelPackage/brcmfmac
$(call KernelPackage/mac80211/Default)
TITLE:=Broadcom IEEE802.11n USB FullMAC WLAN driver
URL:=https://wireless.wiki.kernel.org/en/users/drivers/brcm80211
DEPENDS+= @USB_SUPPORT +kmod-cfg80211 +@DRIVER_11N_SUPPORT +@DRIVER_11AC_SUPPORT +@DRIVER_11W_SUPPORT \
+kmod-brcmutil +BRCMFMAC_SDIO:kmod-mmc @!TARGET_uml \
+BRCMFMAC_USB:kmod-usb-core +BRCMFMAC_USB:brcmfmac-firmware-usb
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko
AUTOLOAD:=$(call AutoProbe,brcmfmac)
endef
define KernelPackage/brcmfmac/description
Kernel module for Broadcom IEEE802.11n USB Wireless cards
endef
define KernelPackage/brcmfmac/config
if PACKAGE_kmod-brcmfmac
config BRCMFMAC_SDIO
bool "Enable SDIO bus interface support"
default y if TARGET_brcm2708
default y if TARGET_sunxi
default n
help
Enable support for cards attached to an SDIO bus.
Select this option only if you are sure that your
board has a Broadcom wireless chip atacched to
that bus.
config BRCMFMAC_USB
bool "Enable USB bus interface support"
depends on USB_SUPPORT
default y
help
Supported USB connected chipsets:
BCM43235, BCM43236, BCM43238 (all in revision 3 only)
BCM43143, BCM43242, BCM43566, BCM43569
config BRCMFMAC_PCIE
bool "Enable PCIE bus interface support"
depends on PCI_SUPPORT
default y
help
Supported PCIe connected chipsets:
BCM4354, BCM4356, BCM43567, BCM43570, BCM43602
endif
endef
define KernelPackage/brcmsmac/install
$(INSTALL_DIR) $(1)/lib/firmware/brcm
ifeq ($(CONFIG_BRCMSMAC_USE_FW_FROM_WL),y)
tar xjf "$(DL_DIR)/$(PKG_BRCMSMAC_FW_SOURCE)" -C "$(PKG_BUILD_DIR)"
b43-fwcutter --brcmsmac -w $(1)/lib/firmware/ $(PKG_BUILD_DIR)/$(PKG_BRCMSMAC_FW_OBJECT)
endif
endef
|