FILE NAME: bcm5700-7.2.24e-1.src.rpm TITLE: HP ProLiant NC150T/NC10XX/67XX/77XX Gigabit Ethernet NIC Driver for Linux VERSION: 7.2.24e LANGUAGE: English CATEGORY: Software Solutions DIVISIONS: Enterprise and Mainstream Servers PRODUCTS AFFECTED: HP NC150T 4-Port Gigabit Combo Switch Adapter HP NC1020 Gigabit Server Adapter HP NC6770 Gigabit Server Adapter HP NC7760 Gigabit Server Adapter HP NC7761 Gigabit Server Adapter HP NC7770 Gigabit Server Adapter HP NC7771 Gigabit Server Adapter HP NC7780 Gigabit Server Adapter HP NC7781 Gigabit Server Adapter HP NC7782 Gigabit Server Adapter OPERATING SYSTEM: Red Hat Enterprise Linux 3 for AMD64 - Update 2 Red Hat Enterprise Linux 3 for x86 - Update 2 Red Hat Enterprise Linux 2.1 - Update 4 Red Hat Linux 8.0 Professional - Errata 2.4.20-28 Red Hat Linux 7.3 Professional - Errata 2.4.20-28 Red Hat Linux 7.2 Professional - Errata 2.4.20-28 SUSE LINUX Enterprise Server 9 for AMD64 - Initial release SUSE LINUX Enterprise Server 9 for x86 - Initial release SUSE LINUX Enterprise Server 8 for AMD64 - SP3 + errata kernel 2.4.21-207 SUSE LINUX Enterprise Server 8 for x86 - SP3 + errata kernel 2.4.21-198 SUSE LINUX Enterprise Server 7 for x86 - Errata kernel 2.4.18-290 NOTE: HP highly recommends to our customers that are installing Red Hat Enterprise Linux 3 on ProLiant servers to also install Update 1 (2.4.21-9.EL kernel) or greater. More details are located here: http://rhn.redhat.com/errata/RHSA-2004-017.html. NOTE: For Red Hat Linux 7.2 Professional BigMem installations, the system needs to be pre-configured before setting up the kernel sources and building the NIC and intermediate drivers. Refer to the Customer Advisory EU030812_CW01 for details on how to pre-configure the system. To access the customer advisory, visit www.hp.com and search for EU030812_CW01. PREREQUISITES: Pentium-based computer 256MB RAM minimum Latest HP System ROM NOTE: Visit the following URL to upgrade the ROM http://h18000.www1.hp.com/support/files (select ProLiant from the server column) EFFECTIVE DATE: 07/29/2004 SUPERSEDES: bcm5700-7.1.9e-1.src.rpm DESCRIPTION: This RPM contains the bcm5700 driver for HP ProLiant NC150T, NC10xx, NC67xx, and NC77xx Gigabit Ethernet NICs running under Linux. ENHANCEMENTS/FIXES: - Driver compiles without "BCM_DRV: command not found" error - Document is updated for SLES 9 information - "If the interface is down the NIC will not have link" this information is added in README.TXT - If a link is brought down using ifdown a "...Link is DOWN..." message is now printed - NIC adapters NC1020 and NC150T are now identfied - Information related to configuring Broadcom drivers in SLES 9 has been added - Driver compiles on SLES 9 - Driver compiles on kernels not supporting NAPI - Driver now builds on SLES 7 base kernel - ethtool shows missing statistics - Warning message "MII and ETHTOOL support not available" is not reporting Table of Contents ================= Introduction Packaging Kernel Source Code Setup Installing the RPM Package Module Parameters Driver Messages Statistics Limitations Uninstalling the RPM Package Introduction ============ This file describes the Linux driver for the HP Gigabit Server Adapters mentioned in the PRODUCTS AFFECTED section of this document. After installation, additional information can be found in the manual page for bcm5700, and in the RELEASE.TXT and README.TXT files located under the following directories Note: The manual page of bcm5700 and README.TXT file are not yet updated with information related to SLES 9. For Red Hat: /usr/share/doc/bcm5700- For SuSE SLES 7: /usr/share/doc/packages/bcm5700 For UnitedLinux 1.0: /usr/share/doc/packages/bcm5700 For SuSE SLES 9: /usr/share/doc/packages/bcm5700 User guides and additional HP Network Adapter information can be found at: http://h18000.www1.hp.com/support/networking/nics/index.html Packaging ========= The driver is released in a source RPM format. The file name for the package is bcm5700-.src.rpm and is dependent on the kernel source code. If you have not installed the kernel source code and/or setup the source tree on your Linux system, refer to the "Kernel Source Code Setup" section below. Kernel Source Code Setup ======================== The bcm5700 driver requires the presence of the kernel source code and configuring the kernel source before building the bcm5700 driver. The following steps need to be done once for each kernel that is booted. For example, if the current kernel is UP (uni-processor) and an SMP (symmetrical-multi-processor) kernel is booted, these steps must be performed again to configure the kernel source for SMP before building the bcm5700 driver for the SMP kernel. Red Hat Installation: If the /usr/src/linux- directory does not exist, install the kernel source code per Red Hat instructions. Once installed, follow the commands listed below to configure the kernel source to match the running kernel. # cd /usr/src/linux- # make mrproper # make -e KERNELRELEASE=`uname -r` oldconfig # make -e KERNELRELEASE=`uname -r` dep UnitedLinux 1.0 Installation: If the /usr/src/linux- directory does not exist, install the kernel source code per SUSE instructions. Once installed, follow the commands listed below to set up the kernel source tree. # cd /usr/src/linux-.SuSE # make mrproper # make cloneconfig # make dep SUSE SLES 7 Installation: If the /usr/src/linux- directory does not exist, install the kernel source code per SUSE instructions. Once installed, follow the commands listed below to set up the kernel source tree. # cd /usr/src/linux-.SuSE # cp /boot/vmlinuz.config .config # cp /boot/vmlinuz.version.h include/linux/version.h # cp /boot/vmlinuz.autoconf.h include/linux/autoconf.h # make oldconfig # make dep SUSE SLES 9 Installation: If the /usr/src/linux- directory does not exist, install the kernel source code per SUSE instructions. Once installed, follow the commands listed below to set up the kernel source tree. # cd /usr/src/linux- # make mrproper # make cloneconfig Installing the RPM Package ============================= 1. This package requires the kernel source code as well as setting up the source tree. Verify the source code /usr/src/linux- directory exists. # cd /usr/src/linux- If the kernel source code is not present, then refer to the "Kernel Source Code Setup" section. 2. Install the source RPM package. # rpm -ivh bcm5700-.src.rpm 3. Build the binary RPM for the bcm5700 driver. Red Hat Installation: # cd /usr/src/redhat # rpmbuild -bb SPECS/bcm5700.spec SUSE SLES 7 and UnitedLinux 1.0 Installations: # cd /usr/src/packages # rpm -bb SPECS/bcm5700.spec SUSE SLES 9 Installations: # cd /usr/src/packages # rpmbuild -bb SPECS/bcm5700.spec If you get an error during the build process, refer to the "Kernel Source Code Setup" section to correctly setup the source tree. 4. Check for the existence of a current version of the bcm5700 package as follows: # rpm -q bcm5700 If an old version of the package exists, the RPM package should be removed. # rpm -e bcm5700 Then remove the loaded bcm5700 module. # rmmod bcm5700 Verify that the old bcm5700 package has been removed as follows: # rpm -q bcm5700 5. Install the new RPM package. This installs the bcm5700 driver and man page. Do not use the U (Upgrade) flag in the RPM command below - previous bcm5700 drivers must be removed as described in step 4 above before installing this version. # rpm -ivh RPMS/i386/bcm5700-.i386.rpm --force The bcm5700.o module is installed in the following directory: Red Hat Linux 8.0 /lib/modules//kernel/drivers/net Red Hat Linux 7.3 /lib/modules//kernel/drivers/net Red Hat Linux 7.2 /lib/modules//kernel/drivers/net Red Hat EL 3 /lib/modules//kernel/drivers/net Red Hat EL 2.1 /lib/modules//kernel/drivers/addon/bcm5700 SUSE SLES 7 /lib/modules//kernel/drivers/net/bcm UnitedLinux 1.0 /lib/modules//kernel/drivers/net/bcm SUSE SLES 9 /lib/modules//kernel/drivers/net/bcm For SLES 9 bcm5700.ko module will be installed instead of bcm5700.o 6. Configure your network setting and address. You may need to refer to your Linux vendor documentation. Use the "netconfig" tool for Red Hat configuration. Other helpful network configuration tools such a "yast" in SLES 7 and UnitedLinux exist for easy configuration. For SLES 9, the user has to specify the module as bcm5700 while configuring the network. The module can be specified in Hardware Details of Advanced configuration. 7. Ensure that the /etc/modules.conf file is configured similar to the example listed below. The example below is presented as if more than one adapter is present. If so, one eth# instance should exist for each ethernet port. Refer to the modules.conf man page for more information. alias eth0 bcm5700 alias eth1 bcm5700 alias eth# bcm5700 For SLES 9, the configuration file is /etc/modprobe.conf or /etc/modprobe.conf.local 8. You can now reboot your server. Upon reboot the network should start with the bcm5700 driver loaded and the correct network configuration. To verify that the bcm5700 driver is loaded, use the following command. # lsmod If bcm5700 is listed then the bcm5700 driver loaded. Note: By default Red Hat 8.0 and SLES 9 installs the tg3 driver. If the tg3 driver is installed, unload the tg3 driver first. Use ifconfig to bring down all eth# interfaces used by tg3. # ifconfig eth# down Now remove or unload the tg3 driver. # rmmod tg3 You may also need to manually edit the /etc/modules.conf file to change the driver from tg3 to bcm5700. For SLES 9, the configuration file is /etc/modprobe.conf or /etc/modprobe.conf.local alias eth0 tg3 and replace tg3 with bcm5700: alias eth0 bcm5700 Note: If the above entry does not exist, add it to the configuration file. Load the bcm5700 driver: # insmod bcm5700 or # modprobe bcm5700 Note: It is prefered to use modprobe in SLES 9. The insmod command may not work the way it worked in 2.4 kernels. Use ifconfig to bring up the network with the new driver: # ifconfig eth# up Refer to the man pages for lsmod, ifconfig, rmmod, insmod, modprobe, modules.conf and modprobe.conf for more detailed information. Module Parameters ================= The complete set of Module Parameters supported by the bcm5700 driver is described in the README.TXT which is installed under the appropriated directories as mentioned in the Introduction section. Notes: "mtu" parameter: Enables jumbo frames if MTU is set equal to or greater than 1501. The valid range for MTU is from 1500 to 9000. Default is standard MTU size, 1500 (not a jumbo frame). Note: MTU size excludes the Ethernet header size of 14 bytes. Actual frame size is MTU size + 14 bytes. "rx_jumbo_desc_cnt" parameter: It is always advised to use a value of 15 or above for the module parameter rx_jumbo_desc_cnt. At values lower than 15, it has been observed that jumbo traffic causes the driver to hang. forcing speed/duplex and the "auto_speed" parameter: If the user tries to force a particular Speed/Duplex connection it must be ensured that the "auto_speed" parameter is set equal to 0. The default value for "auto_speed" is always 1 even when "line_speed" is configured to auto-negotiate (0), as well as all other designated speeds (10, 100, 1000). The reason for this parameter is to allow the user to either auto-negotiate a particular speed (auto_speed=1) or to force a particular speed (auto_speed=0). The examples below show "auto_speed" used in the two scenarios (auto negotiation vs. forced). The command to auto-negotiate 100Mbs/Half duplex: #insmod bcm5700 line_speed=100 full_duplex=0 auto_speed=1 The command to force 100Mbs/Half duplex: #insmod bcm5700 line_speed=100 full_duplex=0 auto_speed=0 Note: For SLES 9, instead of insmod, modprobe has to be used. tx_flow_control and rx_flow_control parameters: If the tx_flow_control parameter is set to 1, the resulting behaviour for the pause transmit is best explained as follows If auto_flow_control=0 and auto_speed=0, pause transmit is enabled and not advertised. If auto_flow_control=0 and auto_speed=1 Pause transmit is always enabled and advertised. If both auto_flow_control and auto_speed are set to 1, then pause transmit is advertised for autonegotiation. The same explanation would apply to the pause receive behaviour if the rx_flow_control parameter is set to 1. Driver Messages =============== The following are the most common sample messages that may be logged in the file /var/log/messages. Some Linux distributions may not display messages to the console. To set messages to display on the console, at the command line use the following to control the level at which messages will appear on the console. # dmesg -n 6 Most systems are set to level 6 by default. For Example, if an HP NC7771 Gigabit Server Adapter is installed, the set of messages would look as follows: eth#: HP NC7771 Gigabit Server Adapter found at mem c6ff0000, IRQ 5, node addr 00101804088e eth#: Broadcom BCM5703 Integrated Copper transceiver found eth#: Scatter-gather ON, 64-bit DMA ON, Tx Checksum ON, Rx Checksum ON If an HP NC6770 Gigabit Server Adapter is installed, the set of messages would look as follows: eth#: HP NC6770 Gigabit Server Adapter found at mem c6fe0000, IRQ 10, node addr 000802280026 eth#: Agilent HDMP-1636 SerDes transceiver found eth#: Scatter-gather ON, 64-bit DMA ON, Tx Checksum ON, Rx Checksum ON Link up and speed indication bcm5700: eth# NIC Link is Up, 1000 Mbps full duplex Link down indication bcm5700: eth# NIC Link is Down Statistics ========== Detailed statistics and configuration information can be viewed by: # more /proc/net/nicinfo/eth#.info. Limitations =========== The /proc/net/nicinfo/eth#.info file may report incorrect information regarding statistics and PCI slot. Note that in some cases more tx_packets and/or rx_packets are reported than tx_bytes and/or rx_bytes, respectively. The reason for the error is due to counters rolling over. Also note that "PCI_SLOT" is not the actual physical slot. "PCI_SLOT" represents the PCI device ID. Under lower speed and half duplex combinations, a higher error count may be generated. This error will have minimal effect on the overall system and session performance. Some error count generation is a normal and expected occurrence in these conditions. Uninstalling the RPM Package ============================= The following command will uninstall the bcm5700 RPM. # rpm -e bcm5700- Copyright 2002, 2004 Hewlett-Packard Development Company, L.P. Product names mentioned herein may be trademarks and/or registered trademarks of their respective companies