FILE NAME: 	bcm5700-6.0.2d-1.src.rpm

TITLE:     	HP Tested and Approved bcm5700 Linux NIC Driver

VERSION:   	6.0.2d

LANGUAGE:  	English

CATEGORY:  	Software Solutions

DIVISIONS: 	Enterprise and Mainstream Servers

PRODUCTS AFFECTED:
		HP NC6770 Gigabit Server Adapter
		HP NC7760 Gigabit Server Adapter
		HP NC7770 Gigabit Server Adapter
		HP NC7780 Gigabit Server Adapter
		HP NC7781 Gigabit Server Adapter 
		                   
OPERATING SYSTEM:
		Red Hat Linux 8.0 Professional
                        - Errata kernel 2.4.18-27 (SMP,UP and BigMem)
		Red Hat Linux 7.3 Professional
                        - Errata kernel 2.4.18-27 (SMP,UP and BigMem)
		Red Hat Linux 7.2 Professional
                        - Errata kernel 2.4.18-27 (SMP and UP)
		Red Hat Enterprise Linux AS 2.1
                        - Errata kernel 2.4.9-e.16 (SMP,UP and Enterprise)
		Red Hat Enterprise Linux ES 2.1
                        - Errata kernel 2.4.9-e.16 (SMP,UP and Enterprise)
		SuSE Linux Enterprise Server 7 (SLES-7)
                        - Errata kernel 2.4.18-244 (SMP)
                        - Errata kernel 2.4.18-262 (UP)
		Conectiva Linux Enterprise Edition, SCO Linux 4.0, SuSE Linux
			Enterprise Server 8 and Turbolinux 8 all powered by
			UnitedLinux 1.0.
			- Service Pack 2 (service packs must be installed in
			order, from service pack 1 to the above service pack)

		Note: Currently, the BigMem Errata Kernel 2.4.18-27
			is not supported on Red Hat Linux 7.2
			Professional due to some driver installation
			issues.

PREREQUISITES:  Pentium based computer
                128MB RAM minimum
                Latest HP System ROM 

                Note: Please visit the following URL to upgrade the ROM
         		http://h18000.www1.hp.com/support/files

EFFECTIVE DATE: 06/05/2003

SUPERSEDES:     bcm5700-6.0.2a-1.src.rpm

DESCRIPTION:    This RPM Package contains the HP Tested and Approved
                bcm5700 Linux NIC Driver for use with the Server
                Adapters mentioned in the PRODUCTS AFFECTED section
                of this document.


ENHANCEMENTS/FIXES:
		Packaging enhancements to handle UL Service Pack Updates


Table of Contents
=================
  Introduction
  Packaging
  Kernel Source Code Setup
  Installing the RPM Package
  Module Parameters
  Driver Messages
  Statistics
  Limitations
  
			       
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
file located at:

For Red Hat: /usr/share/doc/bcm5700-<version>/RELEASE.TXT
For SuSE SLES7: /usr/share/doc/packages/bcm5700/RELEASE.TXT
For UnitedLinux 1.0: /usr/share/doc/packages/bcm5700/RELEASE.TXT

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-<version>.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, please see 
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-<kernel-version> 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-<kernel_version>
	# make mrproper
	# make -e KERNELRELEASE=`uname -r` oldconfig
	# make -e KERNELRELEASE=`uname -r` dep

	SuSE SLES 7 and UnitedLinux 1.0 Installations:
	If the /usr/src/linux-<kernel-version> directory does not exist
	please install the kernel source code per SuSE instructions.
	Once installed, please follow the commands listed below to setup 
	the kernel source tree.

	# cd /usr/src/linux-<kernel_version>.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


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-<kernel-version> directory exist.

	# cd /usr/src/linux-<kernel-version>

  	If the kernel source code is not present, then
	please refer to the "Kernel Source Code Setup"
	section.

2. Install the source RPM package.
   
	# rpm -ivh bcm5700-<version>.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

	If you get an error during the build process, please 
	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.
   Don't 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-<version>.i386.rpm --force

	The bcm5700.o module is installed in the following directory:

	Red Hat 8.0
	/lib/modules/<kernel_version>/kernel/drivers/net

	Red Hat 7.3
	/lib/modules/<kernel_version>/kernel/drivers/net

	Red Hat 7.2
	/lib/modules/<kernel_version>/kernel/drivers/net

	Red Hat AS 2.1
	/lib/modules/<kernel_version>/kernel/drivers/addon/bcm5700

	Red Hat ES 2.1
	/lib/modules/<kernel_version>/kernel/drivers/addon/bcm5700

	SuSE SLES 7
	/lib/modules/<kernel_version>/kernel/drivers/net/bcm

	UnitedLinux 1.0
	/lib/modules/<kernel_version>/kernel/drivers/net/bcm

5. Configure your network setting and address.  You may need to refer
   to your Linux vendor documentation.  Use the "netconfig" tool for
   RedHat configuration. Other helpful network configuration tools 
   such a "yast" in SLES 7 and UnitedLinux exist for easy configuration.

6. 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. View the modules.conf man page for more
   information. 

	alias eth0 bcm5700
	alias eth1 bcm5700
	alias eth# bcm5700

7. 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 installs the tg3 driver.
   If the tg3 driver is installed, please 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.

	alias eth0 tg3

   and replace tg3 with bcm5700:

	alias eth0 bcm5700

   Load the bcm5700 driver:

	# insmod bcm5700

   Use ifconfig to bring up the network with the new driver:

	# ifconfig eth# up

   See the man pages for lsmod, ifconfig, rmmod, insmod and modules.conf
   for more detailed information.


Module Parameters
=================
The complete set of Module Parameters supported by the bcm5700 driver
is described in the RELEASE.TXT which is installed under the
appropriated directories as mentioned in the Introduction section.

Special Note on the "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.

Special Note on the "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.

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 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 a 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 a 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.  Please 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
====================

The following command will uninstall the bcm5700 RPM.

     # rpm -e bcm5700-<version>


Copyright 2002,  2003  Hewlett-Packard Development Company, L.P.
Product names mentioned herein may be trademarks and/or registered trademarks
of their respective companies
