aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/networking/bcm43xx.txt
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation/networking/bcm43xx.txt')
-rw-r--r--Documentation/networking/bcm43xx.txt97
1 files changed, 75 insertions, 22 deletions
diff --git a/Documentation/networking/bcm43xx.txt b/Documentation/networking/bcm43xx.txt
index 28541d2bee1e..a136721499bf 100644
--- a/Documentation/networking/bcm43xx.txt
+++ b/Documentation/networking/bcm43xx.txt
@@ -2,35 +2,88 @@
2 BCM43xx Linux Driver Project 2 BCM43xx Linux Driver Project
3 ============================ 3 ============================
4 4
5About this software 5Introduction
6------------------- 6------------
7 7
8The goal of this project is to develop a linux driver for Broadcom 8Many of the wireless devices found in modern notebook computers are
9BCM43xx chips, based on the specification at 9based on the wireless chips produced by Broadcom. These devices have
10http://bcm-specs.sipsolutions.net/ 10been a problem for Linux users as there is no open-source driver
11available. In addition, Broadcom has not released specifications
12for the device, and driver availability has been limited to the
13binary-only form used in the GPL versions of AP hardware such as the
14Linksys WRT54G, and the Windows and OS X drivers. Before this project
15began, the only way to use these devices were to use the Windows or
16OS X drivers with either the Linuxant or ndiswrapper modules. There
17is a strong penalty if this method is used as loading the binary-only
18module "taints" the kernel, and no kernel developer will help diagnose
19any kernel problems.
11 20
12The project page is http://bcm43xx.berlios.de/ 21Development
22-----------
13 23
24This driver has been developed using
25a clean-room technique that is described at
26http://bcm-specs.sipsolutions.net/ReverseEngineeringProcess. For legal
27reasons, none of the clean-room crew works on the on the Linux driver,
28and none of the Linux developers sees anything but the specifications,
29which are the ultimate product of the reverse-engineering group.
14 30
15Requirements 31Software
16------------ 32--------
33
34Since the release of the 2.6.17 kernel, the bcm43xx driver has been
35distributed with the kernel source, and is prebuilt in most, if not
36all, distributions. There is, however, additional software that is
37required. The firmware used by the chip is the intellectual property
38of Broadcom and they have not given the bcm43xx team redistribution
39rights to this firmware. Since we cannot legally redistribute
40the firwmare we cannot include it with the driver. Furthermore, it
41cannot be placed in the downloadable archives of any distributing
42organization; therefore, the user is responsible for obtaining the
43firmware and placing it in the appropriate location so that the driver
44can find it when initializing.
45
46To help with this process, the bcm43xx developers provide a separate
47program named bcm43xx-fwcutter to "cut" the firmware out of a
48Windows or OS X driver and write the extracted files to the proper
49location. This program is usually provided with the distribution;
50however, it may be downloaded from
51
52http://developer.berlios.de/project/showfiles.php?group_id=4547
17 53
181) Linux Kernel 2.6.16 or later 54The firmware is available in two versions. V3 firmware is used with
19 http://www.kernel.org/ 55the in-kernel bcm43xx driver that uses a software MAC layer called
56SoftMAC, and will have a microcode revision of 0x127 or smaller. The
57V4 firmware is used by an out-of-kernel driver employing a variation of
58the Devicescape MAC layer known as d80211. Once bcm43xx-d80211 reaches
59a satisfactory level of development, it will replace bcm43xx-softmac
60in the kernel as it is much more flexible and powerful.
20 61
21 You may want to configure your kernel with: 62A source for the latest V3 firmware is
22 63
23 CONFIG_DEBUG_FS (optional): 64http://downloads.openwrt.org/sources/wl_apsta-3.130.20.0.o
24 -> Kernel hacking
25 -> Debug Filesystem
26 65
272) SoftMAC IEEE 802.11 Networking Stack extension and patched ieee80211 66Once this file is downloaded, the command
28 modules: 67'bcm43xx-fwcutter -w <dir> <filename>'
29 http://softmac.sipsolutions.net/ 68will extract the microcode and write it to directory
69<dir>. The correct directory will depend on your distribution;
70however, most use '/lib/firmware'. Once this step is completed,
71the bcm3xx driver should load when the system is booted. To see
72any messages relating to the driver, issue the command 'dmesg |
73grep bcm43xx' from a terminal window. If there are any problems,
74please send that output to Bcm43xx-dev@lists.berlios.de.
30 75
313) Firmware Files 76Although the driver has been in-kernel since 2.6.17, the earliest
77version is quite limited in its capability. Patches that include
78all features of later versions are available for the stable kernel
79versions from 2.6.18. These will be needed if you use a BCM4318,
80or a PCI Express version (BCM4311 and BCM4312). In addition, if you
81have an early BCM4306 and more than 1 GB RAM, your kernel will need
82to be patched. These patches, which are being updated regularly,
83are available at ftp://lwfinger.dynalias.org/patches. Look for
84combined_2.6.YY.patch. Of course you will need kernel source downloaded
85from kernel.org, or the source from your distribution.
32 86
33 Please try fwcutter. Fwcutter can extract the firmware from various 87If you build your own kernel, please enable CONFIG_BCM43XX_DEBUG
34 binary driver files. It supports driver files from Windows, MacOS and 88and CONFIG_IEEE80211_SOFTMAC_DEBUG. The log information provided is
35 Linux. You can get fwcutter from http://bcm43xx.berlios.de/. 89essential for solving any problems.
36 Also, fwcutter comes with a README file for further instructions.