Chinaunix首页 | 论坛 | 博客
  • 博客访问: 9087020
  • 博文数量: 1732
  • 博客积分: 12961
  • 博客等级: 上将
  • 技术积分: 19830
  • 用 户 组: 普通用户
  • 注册时间: 2009-01-09 11:25
个人简介

偷得浮生半桶水(半日闲), 好记性不如抄下来(烂笔头). 信息爆炸的时代, 学习是一项持续的工作.

文章分类

全部博文(1732)

文章存档

2023年(26)

2022年(112)

2021年(217)

2020年(157)

2019年(192)

2018年(81)

2017年(78)

2016年(70)

2015年(52)

2014年(40)

2013年(51)

2012年(85)

2011年(45)

2010年(231)

2009年(287)

分类: LINUX

2012-06-11 18:12:58



Broadcom brcmsmac (mac80211-based softmac PCIe) and brcmfmac (SDIO) drivers
  • Completely open source host drivers, no binary object files.
  • Framework for supporting new chips, including mac80211-aware embedded chips
  • Does not support older PCI/PCIe chips with SSB backplane

Contents

Supported Chips

brcmsmac (PCIe/AXI) driver:

Name

PCI Device ID

BCM4313

0x4727

BCM43224

0x0576

BCM43224

0x4353

BCM43225

0x4357

brcmfmac (SDIO) driver:

Name

BCM4329

BCM4330

brcmfmac (USB) driver:

Name

USB Device ID

BCM43235

0x????

BCM43236

0xbd17

BCM43238

0x????

Both brcmsmac and brcmfmac drivers require firmware files that need to be separately downloaded. Firmware is available from the Linux firmware repository at:

  • git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git

Broadcom brcmsmac driver
  • Support for both 32 and 64 bit Linux kernels

Firmware installation

Copy brcm/bcm43xx-0.fw and brcm/bcm43xx_hdr-0.fw to /lib/firmware/brcm (or wherever firmware is normally installed on your system).

Broadcom brcmfmac driver
  • Support for both 32 and 64 bit Linux kernels

Firmware installation

Use the nvram file installed in your system and copy it to /lib/firmware/brcm/brcmfmac-sdio.txt The firmware can be found in the linux-firmware repository.

For 4329: cp brcm/brcmfmac4329.bin /lib/firmware/brcm/brcmfmac-sdio.bin

For 4330: cp brcm/brcmfmac4330.bin /lib/firmware/brcm/brcmfmac-sdio.bin

Alternatively, when not available the Android version can be used as well:

git clone

firmware files: bcmdhd/firmware/bcm4329/fw_bcm4329.bin bcmdhd/firmware/bcm4330/fw_bcm4330_b2.bin

For the USB driver no nvram file is needed. The firmware is in the linux-firmware repository.

For all USB chips listed: cp brcm/brcmfmac43236b.bin /lib/firmware/brcm/

Contact Info

Brett Rudley

Roland Vossen

Arend van Spriel

Franky Lin

Kan Yan

Developer information

Overview
  • On-chip firmware loaded using standard request_firmware()
  • Uses minstrel_ht rate algorithm
  • HW based encryption not enabled yet
  • Infrastructure for future chips in place.
  • AMPDU support
  • many software, ucode and phy/radio counters available.

softmac driver specifics
  • Integrated with mac80211
  • Using BCMA bus driver
  • monitor mode

fullmac driver specifics
  • Integrated with cfg80211
  • Most of Mac functionality is performed on chip
  • support for SDIO and USB

Get the code

The driver is available in linux mainline and development is done on the wireless-testing tree, available at:

git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git

The driver is also available in the 3.2 and newer kernels. When using 'make menuconfig' it can be accessed:

Location: -> Device Drivers

  • -> Network device support

    • -> Wireless LAN

      • -> < > Broadcom IEEE802.11n PCIe SoftMAC WLAN driver

      • -> < > Broadcom IEEE802.11n embedded FullMAC WLAN driver

        • -> [ ] SDIO bus interface support for FullMAC driver

        • -> [ ] USB bus interface support for FullMAC driver

For the PCIe SoftMAC WLAN driver (brcmsmac) you need to enable select the BCMA bus driver as well:

Location: -> Device Drivers

  • -> Broadcom specific AMBA

    • -> BCMA support

      • -> [*] Support for BCMA on PCI-host bus

To be done for softmac driver
  • Add support for
    • 40MHz channels
    • powersave
    • debugfs (for accessing counters and other diagnostic info)
    • IBSS
    • AP
    • LED support
    • HW-based encryption
    • Add support for more chips, including (near term) BCM43227, BCM43228, and BCM4331. Support for additional new chips to follow.

To be done for fullmac driver
  • Add support for
    • debugfs (for accessing counters and other diagnostic info)
    • monitor mode
    • Add support for more chips.

Regulatory Implementation for brcmsmac

This generation of chips contain additional regulatory support independent of the driver. The devices use a single worldwide regulatory domain, with channels 12-14 (2.4 GHz band) and channels 52-64 and 100-140 (5 GHz band) restricted to passive operation. Transmission on those channels is suppressed until appropriate other traffic is observed on those channels. Within the driver, we use the ficticious country code "X2" to represent this worldwide regulatory domain. There is currently no interface to configure a different domain. The driver reads the SROM country code from the chip and hands it up to mac80211 as the regulatory hint, however this information is otherwise unused with the driver.

Mainline patches

Patch v3 has been accepted and applied to the wireless-testing tree. The removal from staging has been done on the staging tree.

Patch v3:


阅读(3654) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~