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.