1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0-only 2*4882a593Smuzhiyunconfig B43 3*4882a593Smuzhiyun tristate "Broadcom 43xx wireless support (mac80211 stack)" 4*4882a593Smuzhiyun depends on (BCMA_POSSIBLE || SSB_POSSIBLE) && MAC80211 && HAS_DMA 5*4882a593Smuzhiyun select BCMA if B43_BCMA 6*4882a593Smuzhiyun select SSB if B43_SSB 7*4882a593Smuzhiyun select FW_LOADER 8*4882a593Smuzhiyun select CORDIC 9*4882a593Smuzhiyun help 10*4882a593Smuzhiyun b43 is a driver for the Broadcom 43xx series wireless devices. 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun Check "lspci" for something like 13*4882a593Smuzhiyun "Broadcom Corporation BCM43XX 802.11 Wireless LAN Controller" 14*4882a593Smuzhiyun to determine whether you own such a device. 15*4882a593Smuzhiyun 16*4882a593Smuzhiyun This driver supports the new BCM43xx IEEE 802.11G devices, but not 17*4882a593Smuzhiyun the old IEEE 802.11B devices. Old devices are supported by 18*4882a593Smuzhiyun the b43legacy driver. 19*4882a593Smuzhiyun Note that this has nothing to do with the standard that your AccessPoint 20*4882a593Smuzhiyun supports (A, B, G or a combination). 21*4882a593Smuzhiyun IEEE 802.11G devices can talk to IEEE 802.11B AccessPoints. 22*4882a593Smuzhiyun 23*4882a593Smuzhiyun It is safe to include both b43 and b43legacy as the underlying glue 24*4882a593Smuzhiyun layer will automatically load the correct version for your device. 25*4882a593Smuzhiyun 26*4882a593Smuzhiyun This driver uses V4 firmware, which must be installed separately using 27*4882a593Smuzhiyun b43-fwcutter. 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun This driver can be built as a module (recommended) that will be called "b43". 30*4882a593Smuzhiyun If unsure, say M. 31*4882a593Smuzhiyun 32*4882a593Smuzhiyunconfig B43_BCMA 33*4882a593Smuzhiyun bool 34*4882a593Smuzhiyun 35*4882a593Smuzhiyunconfig B43_SSB 36*4882a593Smuzhiyun bool 37*4882a593Smuzhiyun 38*4882a593Smuzhiyunchoice 39*4882a593Smuzhiyun prompt "Supported bus types" 40*4882a593Smuzhiyun depends on B43 41*4882a593Smuzhiyun default B43_BUSES_BCMA_AND_SSB 42*4882a593Smuzhiyun 43*4882a593Smuzhiyunconfig B43_BUSES_BCMA_AND_SSB 44*4882a593Smuzhiyun bool "BCMA and SSB" 45*4882a593Smuzhiyun depends on BCMA_POSSIBLE && SSB_POSSIBLE 46*4882a593Smuzhiyun select B43_BCMA 47*4882a593Smuzhiyun select B43_SSB 48*4882a593Smuzhiyun 49*4882a593Smuzhiyunconfig B43_BUSES_BCMA 50*4882a593Smuzhiyun bool "BCMA only" 51*4882a593Smuzhiyun depends on BCMA_POSSIBLE 52*4882a593Smuzhiyun select B43_BCMA 53*4882a593Smuzhiyun 54*4882a593Smuzhiyunconfig B43_BUSES_SSB 55*4882a593Smuzhiyun bool "SSB only" 56*4882a593Smuzhiyun depends on SSB_POSSIBLE 57*4882a593Smuzhiyun select B43_SSB 58*4882a593Smuzhiyun 59*4882a593Smuzhiyunendchoice 60*4882a593Smuzhiyun 61*4882a593Smuzhiyun# Auto-select SSB PCI-HOST support, if possible 62*4882a593Smuzhiyunconfig B43_PCI_AUTOSELECT 63*4882a593Smuzhiyun bool 64*4882a593Smuzhiyun depends on B43 && SSB_PCIHOST_POSSIBLE 65*4882a593Smuzhiyun select SSB_PCIHOST 66*4882a593Smuzhiyun select SSB_B43_PCI_BRIDGE 67*4882a593Smuzhiyun default y 68*4882a593Smuzhiyun 69*4882a593Smuzhiyun# Auto-select SSB PCICORE driver, if possible 70*4882a593Smuzhiyunconfig B43_PCICORE_AUTOSELECT 71*4882a593Smuzhiyun bool 72*4882a593Smuzhiyun depends on B43 && SSB_DRIVER_PCICORE_POSSIBLE 73*4882a593Smuzhiyun select SSB_DRIVER_PCICORE 74*4882a593Smuzhiyun default y 75*4882a593Smuzhiyun 76*4882a593Smuzhiyunconfig B43_SDIO 77*4882a593Smuzhiyun bool "Broadcom 43xx SDIO device support" 78*4882a593Smuzhiyun depends on B43 && B43_SSB && SSB_SDIOHOST_POSSIBLE 79*4882a593Smuzhiyun select SSB_SDIOHOST 80*4882a593Smuzhiyun help 81*4882a593Smuzhiyun Broadcom 43xx device support for Soft-MAC SDIO devices. 82*4882a593Smuzhiyun 83*4882a593Smuzhiyun With this config option you can drive Soft-MAC b43 cards with a 84*4882a593Smuzhiyun Secure Digital I/O interface. 85*4882a593Smuzhiyun This includes the WLAN daughter card found on the Nintendo Wii 86*4882a593Smuzhiyun video game console. 87*4882a593Smuzhiyun Note that this does not support Broadcom 43xx Full-MAC devices. 88*4882a593Smuzhiyun 89*4882a593Smuzhiyun It's safe to select Y here, even if you don't have a B43 SDIO device. 90*4882a593Smuzhiyun 91*4882a593Smuzhiyun If unsure, say N. 92*4882a593Smuzhiyun 93*4882a593Smuzhiyun#Data transfers to the device via PIO. We want it as a fallback even 94*4882a593Smuzhiyun# if we can do DMA. 95*4882a593Smuzhiyunconfig B43_BCMA_PIO 96*4882a593Smuzhiyun bool 97*4882a593Smuzhiyun depends on B43 && B43_BCMA 98*4882a593Smuzhiyun select BCMA_BLOCKIO 99*4882a593Smuzhiyun default y 100*4882a593Smuzhiyun 101*4882a593Smuzhiyunconfig B43_PIO 102*4882a593Smuzhiyun bool 103*4882a593Smuzhiyun depends on B43 && B43_SSB 104*4882a593Smuzhiyun select SSB_BLOCKIO 105*4882a593Smuzhiyun default y 106*4882a593Smuzhiyun 107*4882a593Smuzhiyunconfig B43_PHY_G 108*4882a593Smuzhiyun bool "Support for G-PHY (802.11g) devices" 109*4882a593Smuzhiyun depends on B43 && B43_SSB 110*4882a593Smuzhiyun default y 111*4882a593Smuzhiyun help 112*4882a593Smuzhiyun This PHY type can be found in the following chipsets: 113*4882a593Smuzhiyun PCI: BCM4306, BCM4311, BCM4318 114*4882a593Smuzhiyun SoC: BCM4712, BCM5352E 115*4882a593Smuzhiyun 116*4882a593Smuzhiyunconfig B43_PHY_N 117*4882a593Smuzhiyun bool "Support for N-PHY (the main 802.11n series) devices" 118*4882a593Smuzhiyun depends on B43 119*4882a593Smuzhiyun default y 120*4882a593Smuzhiyun help 121*4882a593Smuzhiyun This PHY type can be found in the following chipsets: 122*4882a593Smuzhiyun PCI: BCM4321, BCM4322, 123*4882a593Smuzhiyun BCM43222, BCM43224, BCM43225, 124*4882a593Smuzhiyun BCM43131, BCM43217, BCM43227, BCM43228 125*4882a593Smuzhiyun SoC: BCM4716, BCM4717, BCM4718, BCM5356, BCM5357, BCM5358 126*4882a593Smuzhiyun 127*4882a593Smuzhiyunconfig B43_PHY_LP 128*4882a593Smuzhiyun bool "Support for LP-PHY (low-power 802.11g) devices" 129*4882a593Smuzhiyun depends on B43 && B43_SSB 130*4882a593Smuzhiyun default y 131*4882a593Smuzhiyun help 132*4882a593Smuzhiyun The LP-PHY is a low-power PHY built into some notebooks 133*4882a593Smuzhiyun and embedded devices. It supports 802.11a/b/g 134*4882a593Smuzhiyun (802.11a support is optional, and currently disabled). 135*4882a593Smuzhiyun 136*4882a593Smuzhiyunconfig B43_PHY_HT 137*4882a593Smuzhiyun bool "Support for HT-PHY (high throughput 802.11n) devices" 138*4882a593Smuzhiyun depends on B43 && B43_BCMA 139*4882a593Smuzhiyun default y 140*4882a593Smuzhiyun help 141*4882a593Smuzhiyun This PHY type with 3x3:3 MIMO can be found in the BCM4331 PCI chipset. 142*4882a593Smuzhiyun 143*4882a593Smuzhiyunconfig B43_PHY_LCN 144*4882a593Smuzhiyun bool "Support for LCN-PHY devices (BROKEN)" 145*4882a593Smuzhiyun depends on B43 && BROKEN 146*4882a593Smuzhiyun help 147*4882a593Smuzhiyun Support for the LCN-PHY. 148*4882a593Smuzhiyun 149*4882a593Smuzhiyun Say N, this is BROKEN and crashes driver. 150*4882a593Smuzhiyun 151*4882a593Smuzhiyunconfig B43_PHY_AC 152*4882a593Smuzhiyun bool "Support for AC-PHY (802.11ac) devices (BROKEN)" 153*4882a593Smuzhiyun depends on B43 && B43_BCMA && BROKEN 154*4882a593Smuzhiyun help 155*4882a593Smuzhiyun This PHY type can be found in the following chipsets: 156*4882a593Smuzhiyun PCI: BCM4352, BCM4360 157*4882a593Smuzhiyun 158*4882a593Smuzhiyun Say N, this is BROKEN and crashes driver. 159*4882a593Smuzhiyun 160*4882a593Smuzhiyun# This config option automatically enables b43 LEDS support, 161*4882a593Smuzhiyun# if it's possible. 162*4882a593Smuzhiyunconfig B43_LEDS 163*4882a593Smuzhiyun bool 164*4882a593Smuzhiyun depends on B43 && MAC80211_LEDS && (LEDS_CLASS = y || LEDS_CLASS = B43) 165*4882a593Smuzhiyun default y 166*4882a593Smuzhiyun 167*4882a593Smuzhiyun# This config option automatically enables b43 HW-RNG support, 168*4882a593Smuzhiyun# if the HW-RNG core is enabled. 169*4882a593Smuzhiyunconfig B43_HWRNG 170*4882a593Smuzhiyun bool 171*4882a593Smuzhiyun depends on B43 && (HW_RANDOM = y || HW_RANDOM = B43) 172*4882a593Smuzhiyun default y 173*4882a593Smuzhiyun 174*4882a593Smuzhiyunconfig B43_DEBUG 175*4882a593Smuzhiyun bool "Broadcom 43xx debugging" 176*4882a593Smuzhiyun depends on B43 177*4882a593Smuzhiyun help 178*4882a593Smuzhiyun Broadcom 43xx debugging. 179*4882a593Smuzhiyun 180*4882a593Smuzhiyun This adds additional runtime sanity checks and statistics to the driver. 181*4882a593Smuzhiyun These checks and statistics might be expensive and hurt the runtime 182*4882a593Smuzhiyun performance of your system. 183*4882a593Smuzhiyun This also adds the b43 debugfs interface. 184*4882a593Smuzhiyun 185*4882a593Smuzhiyun Do not enable this, unless you are debugging the driver. 186*4882a593Smuzhiyun 187*4882a593Smuzhiyun Say N, if you are a distributor or user building a release kernel 188*4882a593Smuzhiyun for production use. 189*4882a593Smuzhiyun Only say Y, if you are debugging a problem in the b43 driver sourcecode. 190