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