NOTE: this page is for archival only, see the note at the end of the page.

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

This is a static dump of the old wiki, taken after locking it in January 2015. The new wiki is at https://wireless.wiki.kernel.org/.
versions of this page: last, v77, v76, v75, v74, v73, v72, v71, v70, v69, v68, v67, v66, v65, v64, v63, v62, v61, v60, v59, v58, v57, v56, v55, v54, v53, v52, v51, v50, v49, v48, v47, v46, v45, v44, v43, v42, v41, v40, v39, v38, v37, v36, v35, v34, v33, v32, v31, v30, v29, v28, v27, v26, v25, v24, v23, v22, v21, v20, v19, v18, v17, v16, v15, v14, v13, v12, v11, v10, v9, v8, v7, v6, v5, v4, v3, v2, v1