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 git tree, available at:
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-next-2.6.git