Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e389f9ae authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6

* 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6: (107 commits)
  smc911x: fix compilation breakage wjen debug is on
  [netdrvr] eexpress: minor corrections
  add NAPI support to sb1250-mac.c
  ixgb: ROUND_UP macro cleanup in drivers/net/ixgb
  e1000: ROUND_UP macro cleanup in drivers/net/e1000
  Generic HDLC sparse annotations
  e100: Optionally use I/O mode only to access register space
  e100: allow bad MAC address when running with invalid eeprom csum
  ehea: fix for dlpar support
  ehea: fix for sysfs entries
  3C509: Remove unnecessary include of <linux/pm_legacy.h>
  NetXen: Fix for vmalloc issues
  NetXen: Fixes for Power PC architecture
  NetXen: Port swap feature for multi port cards
  NetXen: Removal of redundant macros
  NetXen: Multi PCI support for Quad cards
  NetXen: Removal of redundant argument passing
  NetXen: Use multiple PCI functions
  [netdrvr e100] experiment with doing RX in a similar manner to eepro100
  [PATCH] ieee80211: add missing global needed by IEEE80211_DEBUG_XXXX
  ...
parents f73b0a08 b4cf2058
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -236,6 +236,12 @@ X!Ilib/string.c
!Enet/core/dev.c
!Enet/ethernet/eth.c
!Iinclude/linux/etherdevice.h
!Edrivers/net/phy/phy.c
!Idrivers/net/phy/phy.c
!Edrivers/net/phy/phy_device.c
!Idrivers/net/phy/phy_device.c
!Edrivers/net/phy/mdio_bus.c
!Idrivers/net/phy/mdio_bus.c
<!-- FIXME: Removed for now since no structured comments in source
X!Enet/core/wireless.c
-->
+75 −22
Original line number Diff line number Diff line
@@ -2,35 +2,88 @@
			BCM43xx Linux Driver Project
			============================

About this software
-------------------
Introduction
------------

The goal of this project is to develop a linux driver for Broadcom
BCM43xx chips, based on the specification at 
http://bcm-specs.sipsolutions.net/
Many of the wireless devices found in modern notebook computers are
based on the wireless chips produced by Broadcom. These devices have
been a problem for Linux users as there is no open-source driver
available. In addition, Broadcom has not released specifications
for the device, and driver availability has been limited to the
binary-only form used in the GPL versions of AP hardware such as the
Linksys WRT54G, and the Windows and OS X drivers.  Before this project
began, the only way to use these devices were to use the Windows or
OS X drivers with either the Linuxant or ndiswrapper modules. There
is a strong penalty if this method is used as loading the binary-only
module "taints" the kernel, and no kernel developer will help diagnose
any kernel problems.

The project page is http://bcm43xx.berlios.de/
Development
-----------

This driver has been developed using
a clean-room technique that is described at
http://bcm-specs.sipsolutions.net/ReverseEngineeringProcess. For legal
reasons, none of the clean-room crew works on the on the Linux driver,
and none of the Linux developers sees anything but the specifications,
which are the ultimate product of the reverse-engineering group.

Requirements
------------
Software
--------

Since the release of the 2.6.17 kernel, the bcm43xx driver has been
distributed with the kernel source, and is prebuilt in most, if not
all, distributions.  There is, however, additional software that is
required. The firmware used by the chip is the intellectual property
of Broadcom and they have not given the bcm43xx team redistribution
rights to this firmware.  Since we cannot legally redistribute
the firwmare we cannot include it with the driver. Furthermore, it
cannot be placed in the downloadable archives of any distributing
organization; therefore, the user is responsible for obtaining the
firmware and placing it in the appropriate location so that the driver
can find it when initializing.

To help with this process, the bcm43xx developers provide a separate
program named bcm43xx-fwcutter to "cut" the firmware out of a
Windows or OS X driver and write the extracted files to the proper
location. This program is usually provided with the distribution;
however, it may be downloaded from

http://developer.berlios.de/project/showfiles.php?group_id=4547

1)	Linux Kernel 2.6.16 or later
	http://www.kernel.org/
The firmware is available in two versions. V3 firmware is used with
the in-kernel bcm43xx driver that uses a software MAC layer called
SoftMAC, and will have a microcode revision of 0x127 or smaller. The
V4 firmware is used by an out-of-kernel driver employing a variation of
the Devicescape MAC layer known as d80211. Once bcm43xx-d80211 reaches
a satisfactory level of development, it will replace bcm43xx-softmac
in the kernel as it is much more flexible and powerful.

	You may want to configure your kernel with:
A source for the latest V3 firmware is

	CONFIG_DEBUG_FS (optional):
		-> Kernel hacking
		  -> Debug Filesystem
http://downloads.openwrt.org/sources/wl_apsta-3.130.20.0.o

2)	SoftMAC IEEE 802.11 Networking Stack extension and patched ieee80211
	modules:
	http://softmac.sipsolutions.net/
Once this file is downloaded, the command
'bcm43xx-fwcutter -w <dir> <filename>'
will extract the microcode and write it to directory
<dir>. The correct directory will depend on your distribution;
however, most use '/lib/firmware'. Once this step is completed,
the bcm3xx driver should load when the system is booted. To see
any messages relating to the driver, issue the command 'dmesg |
grep bcm43xx' from a terminal window. If there are any problems,
please send that output to Bcm43xx-dev@lists.berlios.de.

3)	Firmware Files
Although the driver has been in-kernel since 2.6.17, the earliest
version is quite limited in its capability. Patches that include
all features of later versions are available for the stable kernel
versions from 2.6.18. These will be needed if you use a BCM4318,
or a PCI Express version (BCM4311 and BCM4312). In addition, if you
have an early BCM4306 and more than 1 GB RAM, your kernel will need
to be patched.	These patches, which are being updated regularly,
are available at ftp://lwfinger.dynalias.org/patches. Look for
combined_2.6.YY.patch. Of course you will need kernel source downloaded
from kernel.org, or the source from your distribution.

	Please try fwcutter. Fwcutter can extract the firmware from various 
	binary driver files. It supports driver files from Windows, MacOS and 
	Linux. You can get fwcutter from http://bcm43xx.berlios.de/.
	Also, fwcutter comes with a README file for further instructions.
If you build your own kernel, please enable CONFIG_BCM43XX_DEBUG
and CONFIG_IEEE80211_SOFTMAC_DEBUG. The log information provided is
essential for solving any problems.
+18 −2
Original line number Diff line number Diff line
@@ -1582,9 +1582,9 @@ S: Supported

HOST AP DRIVER
P:	Jouni Malinen
M:	jkmaline@cc.hut.fi
M:	j@w1.fi
L:	hostap@shmoo.com (subscribers-only)
L:	linux-wireless@vger.kernel.org
L:	hostap@shmoo.com
W:	http://hostap.epitest.fi/
S:	Maintained

@@ -1811,6 +1811,7 @@ P: Jeff Kirsher
M:	jeffrey.t.kirsher@intel.com
P:	Auke Kok
M:	auke-jan.h.kok@intel.com
L:	e1000-devel@lists.sourceforge.net
W:	http://sourceforge.net/projects/e1000/
S:	Supported

@@ -1825,6 +1826,7 @@ P: Jeff Kirsher
M:	jeffrey.t.kirsher@intel.com
P:	Auke Kok
M:	auke-jan.h.kok@intel.com
L:	e1000-devel@lists.sourceforge.net
W:	http://sourceforge.net/projects/e1000/
S:	Supported

@@ -1839,6 +1841,7 @@ P: Jesse Brandeburg
M:	jesse.brandeburg@intel.com
P:	Auke Kok
M:	auke-jan.h.kok@intel.com
L:	e1000-devel@lists.sourceforge.net
W:	http://sourceforge.net/projects/e1000/
S:	Supported

@@ -2500,6 +2503,19 @@ M: adaplas@gmail.com
L:	linux-fbdev-devel@lists.sourceforge.net (subscribers-only)
S:	Maintained

NETERION (S2IO) Xframe 10GbE DRIVER
P:	Ramkrishna Vepa
M:	ram.vepa@neterion.com
P:	Rastapur Santosh
M:	santosh.rastapur@neterion.com
P:	Sivakumar Subramani
M:	sivakumar.subramani@neterion.com
P:	Sreenivasa Honnur
M:	sreenivasa.honnur@neterion.com
L:	netdev@vger.kernel.org
W:	http://trac.neterion.com/cgi-bin/trac.cgi/wiki/TitleIndex?anonymous
S:	Supported

OPENCORES I2C BUS DRIVER
P:	Peter Korsgaard
M:	jacmet@sunsite.dk
+2 −1
Original line number Diff line number Diff line
@@ -17,7 +17,8 @@
# 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
#

obj-y := sim_setup.o sim_mem.o sim_time.o sim_int.o sim_cmdline.o
obj-y := sim_platform.o sim_setup.o sim_mem.o sim_time.o sim_int.o \
	 sim_cmdline.o

obj-$(CONFIG_EARLY_PRINTK) += sim_console.o
obj-$(CONFIG_SMP) += sim_smp.o
+35 −0
Original line number Diff line number Diff line
/*
 * This file is subject to the terms and conditions of the GNU General Public
 * License.  See the file "COPYING" in the main directory of this archive
 * for more details.
 *
 * Copyright (C) 2007 by Ralf Baechle (ralf@linux-mips.org)
 */
#include <linux/init.h>
#include <linux/if_ether.h>
#include <linux/kernel.h>
#include <linux/platform_device.h>

static char mipsnet_string[] = "mipsnet";

static struct platform_device eth1_device = {
	.name		= mipsnet_string,
	.id		= 0,
};

/*
 * Create a platform device for the GPI port that receives the
 * image data from the embedded camera.
 */
static int __init mipsnet_devinit(void)
{
	int err;

	err = platform_device_register(&eth1_device);
	if (err)
		printk(KERN_ERR "%s: registration failed\n", mipsnet_string);

	return err;
}

device_initcall(mipsnet_devinit);
Loading