brcm80211
brcm80211 is a completely FOSS wireless driver for BCM4313, BCM43224, BCM43225 chipsets.
Overview
- Completely open source host driver, no binary object files
Features Broadcom's OneDriver architecture (single source base for supported chips and architectures)
- On-chip firmware loaded using standard request_firmware()
- Support for BCM43224, BCM43225, BCM4313 (PCIe NIC)
- Framework for supporting new chips, including mac80211-aware embedded chips
- Does not support older PCI/PCIe chips with SSB backplane
- Driver includes BMAC interface for transparent dongle support
- Uses minstrel_ht rate algorithm
- HW based encryption not enabled yet
Whats Done
- initial 'rough' port supports STA mode.
- N phy code for 43225/43225
- LCN phy code for 4313
- Infrastructure for future phys.
- AMPDU support
- 4313 is stable
- many software, ucode and phy/radio counters available.
To Be Done
- 43224/5 has a locking issue, stable with maxcpus=1, can crash otherwise after random period.
- Debugability is poor: Debugfs/tracing is needed. Need a way to get access to counters.
- Only minimal mac80211 interface is implemented, Callbacks need to be filled in more.
- Features to be added: AP mode, powersave, IBSS, 40 Mhz channels ...
- Code needs to be optimized for linux:
- wl_xxx vs wlc_xxx separation needs to be collapsed and eliminated
- private utility routines and headers need to be replaced with standard kernel routines and headers.
Supported Chips
Name |
PCI Device ID |
BCM4313 |
0x4727 |
BCM43224 |
0x4353 |
BCM43225 |
0x4357 |
Get the code
The driver is currently available in staging-next branch of the staging tree, available at:
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6.git