Broadcom Corporation
16215 Alton Parkway,
Irvine, CA 92619-7013
Broadcom BCM5700 Linux Driver
2/5/2000
Table of Contents
=================
Introduction
Limitations
Installing Source RPM Package
Installing the Binary RPM Package
Building Driver From TAR File
Patching PCI Files
Network Installation
Module Parameters
Revision History
Introduction
============
This file describes the Linux driver for Broadcom's BCM5700 10/100/1000
Mbps Ethernet Network Interface Chip.
Limitations
===========
The current version of the driver has only been tested on Redhat Linux 6.2 and
7.0 distributions for i386 (kernel version 2.2.14 and 2.2.16). The driver has
only been tested as a loadable module.
Installing Source RPM Package
=============================
1. Install the source RPM package:
rpm -i bcm5700-<version>.src.rpm
2. CD to the RPM path and build the binary driver for your kernel:
cd /usr/src/{redhat,OpenLinux,turbo, ..}
rpm -bb SPECS/bcm5700.spec
Note that the RPM path is different for different Linux distributions.
3. Install the newly built package:
rpm -i RPMS/i386/bcm5700-<version>.i386.rpm
The driver will be installed as /lib/modules/<kernel_version>/net/bcm5700.o.
4. Load the driver:
insmod bcm5700
Note: A newly installed Redhat 7's Enterprise kernel needs to be recompiled to
regenerate versioned symbols before any newly compiled driver can load.
Installing Binary RPM package
=============================
1. Install the binary RPM package:
rpm -Uvh bcm5700-<version>.i386.rpm
The binary RPM installs:
/lib/modules/2.2.14-6.1.1/net/bcm5700. # rh6.2 UP driver
/lib/modules/2.2.14-6.1.1smp/net/bcm5700.o # rh6.2 SMP driver
/lib/modules/2.2.16-22/net/bcm5700.o # rh7.0 UP driver
/lib/modules/2.2.16-22smp/net/bcm5700.o # rh7.0 SMP driver
/lib/modules/2.2.16-22enterprise/net/bcm5700.o # rh7.0 Enterprise driver
/usr/src/broadcom/bcm5700-<version>.tar.gz # driver source code
/usr/src/broadcom/pci.patch62 # updates rh6.2 PCI tables
/usr/src/broadcom/pci.patch70 # updates rh7.0 PCI tables
/usr/share/doc/broadcom/readme.txt # this file
The binary RPM adds Broadcom bcm5700 related entries to:
/usr/lib/linuxconf/kmodule.lst # adds bcm5700 netconf's driver list
/usr/share/kudzu/pcitable # enables auto-detection of bcm5700 NICs
/usr/share/pci.ids # used by lspci, etc.
2. Run kudzu to automatically detect the bcm5700 Network Card(s)
kudzu
3. Follow the on-screen instructions to configure the network.
Building Driver From TAR File
=============================
1. Create a directory and extract the files:
tar xvzf bcm5700-<version>.tar.gz
2. Build the driver bcm5700.o as a loadable module.
make
3. Test the driver by loading it:
insmod bcm5700.o
4. Install the driver in /lib/modules/<kernel_version>/net:
make install
Note: If loading the driver under Redhat 7.0's Enterprise kernel and unresolved
symbols are reported, check the following line in
/usr/src/linux/include/linux/rhconfig.h (line 31)
#if !defined(__module__smp) && !defined(__module__BOOT) && !defined(__module__BOOTsmp) && !defined(__module__ENTERPRISE)
Change __module__ENTERPRISE to __module__enterprise and recompile the
driver.
Patching PCI Files (Optional)
=============================
Note: Installing the binary RPM for RedHat 6.2/7.0 automatically patches the
system's pci tables. It is not necessary to complete this procedure if the
binary RPM has been installed.
To use Redhat's kudzu hardware detection utility, a number of files containing
PCI vendor and device information need to be patched with information on the
BCM5700 chip. A patch file is included for Red hat 6.2 (pci.patch62) and 7.0
(pci.patch70). Apply the patch by doing the following:
1. Apply the patch:
patch -N -p1 -d /usr < /usr/src/broadcom/pci.patch62
- or -
patch -N -p1 -d /usr < /usr/src/broadcom/pci.patch70
2. Run kudzu:
kudzu
Network Installation
====================
For network installations through NFS, FTP, or HTTP (using a network boot
disk or PXE), a driver diskette or an initial ram disk (initrd) that contain
the BCM5700 driver is needed. The driver diskette's image for Redhat 7.0 and
the initrd image for Redhat 6.2 are located in
network_install/rh70/dd.img and network_install/rh62/initrd.img
respectively. Boot drivers for other Linux versions can be compiled by
modifying the Makefile and the make environment. Further information is
available from Redhat's website.
To create the driver diskette for Redhat 7.0, use
dd if=dd.img of=/dev/fd0H1440.
For Redhat 6.2, use the initrd.img with BCM5700 driver instead of the one
in Redhat's CD.
Module Parameters
=================
Optional parameters for the driver can be supplied as command line arguments
to the insmod command. Typically, these options are set in a module
configuration file (see the man page for modules.conf). These parameters
take the form:
<parameter>=value[,value,...]
where the multiple values for the same parameter are for multiple NICs
installed in the system.
Note that default values will be used when invalid values are selected.
All the parameters are listed below.
line_speed
Selects the line speed of the link. This parameter is used together with
full_duplex to select the speed and duplexity of the link.
The valid values are:
0 Autonegotiate (default)
10 10 Mbps
100 100 Mbps
Note that selecting 1000 Mbps manually is invalid. 1000 Mbps can only be
achieved through autonegotiation.
full_duplex
Selects the duplexity of the link. This paramter is used together with
line_speed to select the speed and duplexity of the link. Note that this
parameter is ignored if line_speed is 0.
The valid values are:
0 half duplex
1 full duplex (default)
rx_flow_control
Enables or disables receiving flow control (pause) frames. This parameter
is used together with auto_flow_control. The valid values are:
0 pause receive disabled (default)
1 pause receive enabled if auto_flow_control is set to 0, or
pause receive advertised if auto_flow_control is set to 1
tx_flow_control
Enables or disables transmitting flow control (pause) frames. This parameter
is used together with auto_flow_control. The valid values are:
0 pause transmit disabled (default)
1 pause transmit enabled if auto_flow_control is set to 0, or
pause transmit advertised if auto_flow_control is set to 1
auto_flow_control
Enables or disables autonegotiation of flow control. This parameter is used
together with rx_flow_control and tx_flow_control to determine the
advertised flow control capability. The valid values are:
0 flow control autonegotiation disabled (default)
1 flow control autonegotiation enabled with capability specified in
rx_flow_control and tx_flow_control (only valid if line_speed is
set to 0)
mtu
Enables jumbo frames up to the specified MTU size. The valid range is
from 1500 to 9216. Default is 1500.
Revision History
================
v1.4.5 (01/31/01)
- Added PCI-X support for BCM5700.
- Fixed Jumbo frame problems by modifying some thresholds and increased
Jumbo frame size to 9K.
v1.4.4 (01/18/01)
- Fixed the problem of transmit congestion during very heavy traffic in pre-
2.4.0 kernels.
v1.4.3 (01/10/01)
- Changed driver to use new PCI DMA functions in 2.4 kernel.
v1.4.2 (01/03/01)
- Changed driver to use spin locks for SMP machines.
- Added spin locks around PRIVATE ioctls for MII registers .
v1.4.1 (12/26/00)
- Made changes for B1 chips.
v1.4.0 (12/19/00)
- Made changes for 2.4.0 kernel.
v1.3.8 (12/13/00)
- Fixed the problem of setting a user assigned MAC address.
- Added VLAN support for BASP.
v1.3.7 (12/01/00)
- Added code to handle BCM5401 B0 phy chips.
v1.3.6 (11/22/00)
- Fixed LED problems.
v1.3.5 (11/21/00)
- Fixed some flow control auto negotiation problems.
v1.3.4 (11/17/00)
- Fixed a problem of missing interrupts.
- Resolved all fixed speed related problems.
v1.3.3 (11/13/00)
- Fixed the problem of memory allocation failure in some machines.
v1.3.2 (11/09/00)
- Made more changes regarding fixed speeds. Also removed manual selection
of 1000 Mbps.
- Made a SRPM package.
Download Driver Pack
After your driver has been downloaded, follow these simple steps to install it.
Expand the archive file (if the download file is in zip or rar format).
If the expanded file has an .exe extension, double click it and follow the installation instructions.
Otherwise, open Device Manager by right-clicking the Start menu and selecting Device Manager.
Find the device and model you want to update in the device list.
Double-click on it to open the Properties dialog box.
From the Properties dialog box, select the Driver tab.
Click the Update Driver button, then follow the instructions.
Very important: You must reboot your system to ensure that any driver updates have taken effect.
For more help, visit our Driver Support section for step-by-step videos on how to install drivers for every file type.