FILE NAME:      tg3-3.66f-1.src.rpm

TITLE:          HP NC-Series Broadcom TG3 Driver for Linux

VERSION:        3.66f

LANGUAGE:       English

CATEGORY:       Software Solutions

DIVISIONS:      Enterprise and Mainstream Servers

PRODUCTS AFFECTED:
      HP NC325m Quad Port PCIe Gigabit Server Adapter
      HP NC326m Dual Port PCIe Gigabit Server Adapter
      HP NC324i Integrated Dual Port PCI Express Gigabit Server Adapter
      HP NC325i Integrated Dual Port PCI Express Gigabit Server Adapter
      HP NC326i Integrated Dual Port PCI Express Gigabit Server Adapter
      HP NC150T PCI 4-Port Gigabit Combo Switch Adapter
      HP NC320x PCI Express Gigabit Server Adapter
      HP NC1020 Gigabit Server Adapter 
      HP NC67xx Gigabit Server Adapter
      HP NC77xx Gigabit Server Adapter
                         
OPERATING SYSTEM:
      Red Hat Enterprise Linux 4 AS/ES for AMD64/EM64T
      Red Hat Enterprise Linux 4 AS/ES for x86
      Red Hat Enterprise Linux 3 AS/ES for AMD64/EM64T
      Red Hat Enterprise Linux 3 AS/ES for x86
      SUSE LINUX Enterprise Server 10 for AMD64/EM64T
      SUSE LINUX Enterprise Server 10 for x86
      SUSE LINUX Enterprise Server 9 for AMD64/EM64T
      SUSE LINUX Enterprise Server 9 for x86

PREREQUISITES:  ProLiant server supporting one of the above operating systems
                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: 09/22/2006

SUPERSEDES:     tg3-3.58c-1.src.rpm 

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

ENHANCEMENTS/FIXES:
   - Tested on all supported distro.
   - Fixed the problem of modprobe failure.
   - Fixed build failure on SLES10.
   - Fixed build failure on RHEL3 U7.
   - Man page support.
   
Table of Contents
=================
  Introduction
  Packaging
  Kernel Source Code Setup
  Installing the RPM Package
  Driver Settings
  Driver Messages
  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 tg3, and in the RELEASE.TXT
and README.TXT files located under the following directories

For Red Hat: /usr/share/doc/tg3-<version>
For SLES: /usr/share/doc/packages/tg3

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 tg3-<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, refer to
the "Kernel Source Code Setup" section below.


Kernel Source Code Setup
========================
The tg3 driver requires the presence of the kernel source code
and configuring the kernel source before building the tg3 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 tg3 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
   
   SLES Installation:
   If the /usr/src/linux-<kernel-version> 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-<kernel_version>
   # make mrproper
   # make cloneconfig
   # 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 exists.

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

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

   Note: Kernel source code setup is not required for Red Hat EL4.
   Hence ignore this step for RHEL4.

2. Install the source RPM package.
   Before installing tg3 package, check for the existence of bcm5700 package.
   # rpm -q bcm5700

   If the package exists, the RPM package has to be uninstalled as follows:
   # rpm -e bcm5700
	
   Install the tg3 source rpm.
   # rpm -ivh tg3-<version>.src.rpm

3. Build the binary RPM for the tg3 driver.

   Red Hat Installation:
   # cd /usr/src/redhat
   # rpmbuild -bb SPECS/tg3.spec

   SLES Installations:
   # cd /usr/src/packages
   # rpmbuild -bb SPECS/tg3.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. Remove the loaded tg3 module.
   # rmmod tg3
   
   Check for the existence of a current version of the tg3 package as
   follows:
   # rpm -q tg3

   If an old version of the package exists, the RPM package should be
   removed.
   # rpm -e tg3

   Verify that the old tg3 package has been removed as follows:
   # rpm -q tg3

5. Install the new RPM package. This installs the tg3 driver and man page.
   Do not use the U (Upgrade) flag in the RPM command below - previous tg3
   drivers must be removed as described in step 4 above before installing this
   version.

   # rpm -ivh RPMS/<arch>/tg3-<version>.<arch>.rpm --force

   The driver will be installed in the following path:

   2.4.x kernels;
   /lib/modules/<kernel_version>/kernel/drivers/net/tg3.o

   2.6.x kernels:
   /lib/modules/<kernel_version>/kernel/drivers/net/tg3.ko

6. Configure your network setting and address. You may need to refer
   to your Linux vendor documentation. Helpful network configuration
   tools such as "yast2" in SLES or
   linuxconf/redhat-config-network/netconfig in Red Hat exist for
   easy configuration.

   For SLES, you must specify the module as tg3 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 tg3
   alias eth1 tg3
   alias eth# tg3

   For SLES , 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 tg3 driver loaded and the correct network
   configuration. To verify that the tg3 driver is loaded, use
   the following command.

   # lsmod

   If tg3 is listed then the tg3 driver loaded.

   Note: If the above entry doesn't exist add it in configuration file.

   Load the tg3 driver:

   # insmod tg3
 
   or
   # insmod tg3.ko (on 2.6.x kernels)

   or
   # modprobe tg3

   Note: It is prefered to use modprobe in SLES. insmod 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.


Driver Settings
=================
For the bcm5700 and some other drivers, device and drivers parameters are
supplied through /etc/modules.conf which will ensure that settings are 
preserved across reboots.
E.g
alias ethX bcm5700 options line_speed=10. 

For the tg3 driver, driver settings can be queried and changed using ethtool. 
The latest ethtool can be downloaded from http://sourceforge.net/projects/gkernel
if it is not already installed. See the ethtool man page for more information. 
ethtool settings do not persist across reboot or module reload.

To preserve the setting across reboots, you can do the following -

For Red Hat Linux 
a) Add appropriate 'ethtool' commands to /etc/rc.local, like.

	ethtool -s ethX speed 10

b) 'ethtool -s' parameters can be specified in the ifcfg-ethX scripts using the
   ETHTOOL_OPTS keyword.
   Example: /etc/sysconfig/network-scripts/ifcfg-ethX:
   
	ETHTOOL_OPTS="wol g speed 100 duplex half autoneg off"


For SuSe Linux  
a) Modify /etc/sysconfig/network/config file to have
   following options set to 'yes'.

	GLOBAL_POST_UP_EXEC="yes"
	GLOBAL_PRE_DOWN_EXEC="yes"

b) Create a script file (E.g, ethtool-settings) in 
   /etc/sysconfig/network/if-up.d directory with required ethtool commands.

	E.g, the file can contain the following ethtool command -

  	/usr/sbin/ethtool -s ethX speed 10

c) Set the mode of the file to 777.
	#chmod +777 ethtool-settings

This will ensure that the script is executed each time the interface is brought up.

The complete set of Module Parameters supported by the tg3 driver
is described in the README.TXT which is installed under the
appropriated directories as mentioned in the Introduction section.
Module Parameters can be queried and changed using ethtool. 

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.

Limitations
===========
The current version of the driver has been tested on 2.4.x kernels starting
from 2.4.24 and all 2.6.x kernels. The driver may not compile on kernels
older than 2.4.24. Testing is concentrated on i386 and x86_64 architectures.
Only limited testing has been done on some other architectures.

Minor changes to some source files and Makefile may be needed on some
kernels.

Uninstalling the RPM Package
=============================

The following command will uninstall the tg3 RPM.

     # rpm -e tg3-<version>

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