FILE NAME:			hp-tg3-3.116j-3.src.rpm

TITLE:			HP NC-Series Broadcom tg3 Ethernet driver for Linux

VERSION:			3.116j

Release:			3

LANGUAGE:			English

CATEGORY:			Software Solutions

DIVISIONS:			Enterprise and Mainstream Servers

PRODUCTS AFFECTED:
				HP NC107i PCIe Gigabit Server Adapter
				HP NC105i PCIe Gigabit Server Adpater
				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 6 AS/ES for AMD64/EM64T
				Red Hat Enterprise Linux 6 AS/ES for x86
				Red Hat Enterprise Linux 5 AS/ES for AMD64/EM64T
				Red Hat Enterprise Linux 5 AS/ES for x86
				SUSE LINUX Enterprise Server 11 for AMD64/EM64T
				SUSE LINUX Enterprise Server 11 for x86
				SUSE LINUX Enterprise Server 10 for AMD64/EM64T
				SUSE LINUX Enterprise Server 10 for x86

PREREQUISITES:
				ProLiant server supporting above operating systems
				256 MB RAM minimum
				Latest HP System ROM
				Build Environment Setup

				NOTE: Visit the following URL and download latest System ROM
				http://welcome.hp.com/country/us/en/support.html
				Select "Download drivers and software"

EFFECTIVE DATE:		02/08/2011

SUPERSEDES:			3.110g-2

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:
				1) RHEL 6 support has been added
				2) RHEL 5 update 6 support has been added
				3) KMP build no longer fails on RHEL 5
				4) KMP build no longer fails on SLES10 SP3
				5) KMP is now built for each SLES kernel flavor

Table of Contents
=================
Introduction
Packaging
Build Environment Setup
Installing the RPM Package
Driver Settings
Driver Messages
Uninstalling the RPM
Caveats


Introduction
============
This file describes the Linux Ethernet driver for HP NC-Series Broadcom Adapters 
mentioned in the PRODUCTS AFFECTED section of this document.

User guides and additional HP Network Adapter information can be found at:
http://h18004.www1.hp.com/products/servers/networking/index-nic.html


Packaging
=========
The driver is released in Kernel Module Package (KMP) source RPM format. KMP 
packages use macros that determine kernel flavors for which binary packages need
to be built based on spec file rules.

It is important to have the right build environment set up in order to compile a 
binary RPM from the source package.  See "Build Environment Setup" section below.

This package also builds a "doc" package which includes a README and man page for
this driver.


Build Environment Setup
========================
The tg3 package requires the presence of some packages that provide the right 
build environment. These packages provide kernel headers, makefiles and symbol 
files, though the last one is suggested only on SLES distributions.

RHEL installation:
	1. redhat-rpm-config package
	2. kernel-devel-<kernel_version> package
	3. kernel-<flavor>-devel-<kernel_version> package
	Eg: kernel-2.6.18.92.el5 requires kernel-devel-2.6.18-92.el5
	    kernel-PAE-2.6.18.92.el5 requires kernel-PAE-devel-2.6.18-92.el5

	See the "Caveats" section below for more details.

SLES Installation:
	1. kernel-source-<kernel_version> package
	2. kernel-syms-<kernel_version> package
	3. SLES11 requires kernel-<flavor>-devel-<kernel_version> package as well


Installing the RPM Package
=============================
1. This package requires a build environment. Please refer to the
"Build Environment Setup" Section before proceding to the next step.

2. Install the source RPM package.

	# rpm -ivh hp-tg3-<version>.src.rpm

3. Build the binary RPM for the tg3 driver.

	RHEL 5:
	# rpmbuild -bb /usr/src/redhat/SPECS/hp-tg3.spec

	RHEL 6:
	# rpmbuild -bb ~/rpmbuild/SPECS/hp-tg3.spec

	SLES:
	# rpmbuild -bb /usr/src/packages/SPECS/hp-tg3.spec

	If you get an error during the build process, refer to the 
	"Build Environment Setup" section.

	NOTE: One can build binary RPM for a specfic kernel flavor as follows:

	# rpmbuild -bb SPECS/hp-tg3.spec --define "KVER <kver>"

	NOTE:  RHEL 5 x86 installations require the "--target" switch when
	building on Intel compatible machines. Please see the "Caveats" 
	section below for more details.

	# rpmbuild --target=i686 -bb /usr/src/redhat/SPECS/hp-tg3.spec

4. Check for the existence of a current version of the tg3 package as follows:
	
	RHEL
	# rpm -q kmod-hp-tg3-<flavor> 

	SLES
	# rpm -q hp-tg3-kmp-<flavor>

	If an old version of the package exists, the RPM package should be
	removed. Remove the corresponding tools package before removing 
	driver package.

	RHEL
	# rpm -e kmod-hp-tg3-<flavor>

	SLES
	# rpm -e hp-tg3-kmp-<flavor>

	Verify if the old hp-tg3 package has been removed as follows:

	RHEL
	# rpm -q kmod-hp-tg3-<kernel flavor>

	SLES
	# rpm -q hp-tg3-kmp-<kernel flavor>  

5. Install the new binary RPM package.

	RHEL 5
	# rpm -ivh \
	/usr/src/redhat/RPMS/<arch>/kmod-hp-tg3-<flavor>-<version>.<arch>.rpm 

	RHEL 6
	# rpm -ivh \
	~/rpmbuild/RPMS/<arch>/kmod-hp-tg3-<flavor>-<version>.<arch>.rpm 

	The modules are installed in the following directory:
	/lib/modules/<kernel_version>/extra/hp-tg3

	Note:  The "--nodeps" switch is required when installing to RHEL 5.4 and 
	RHEL 5.5. See the "Caveats" section below for more details.

	# rpm -ivh \
	/usr/src/redhat/RPMS/<arch>/kmod-hp-tg3-<flavor>-<version>.<arch>.rpm --nodeps 

	SLES
	# rpm -ivh RPMS/<arch>/hp-tg3-kmp-<version>-<flavor>.<arch>.rpm 

	The modules are installed in the following directory:
	/lib/modules/<kernel_version>/updates/hp-tg3

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

Note: If the above entry does not exist, add it in the configuration file.

8. Reboot the server or restart the network services. Upon reboot the network
should start with tg3 driver loaded

To verify that the driver is loaded, use the following command.

	# lsmod

You should find tg3 listed. 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
=================
tg3 driver settings can be queried and changed using ethtool. The latest 
ethtool can be downloaded from http://sourceforge.net/projects/gkernel if 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 -

RHEL :
a) Add appropriate 'ethtool' commands to /etc/rc.local as follows

	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"

SLES:
a) Modify /etc/sysconfig/network/config 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.

Example: 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 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.


Uninstalling the RPM
====================
The following command will uninstall the RPM.

	RHEL
	# rpm -e kmod-hp-tg3-<kernel flavor>

	SLES
	# rpm -e hp-tg3-kmp-<kernel flavor>


Caveats
===========
1. The rpmbuild will fail the dependency check when building the non-base
(xen,pae,etc) kernel when the kernel-devel package is not installed. 
Example:  If the OS only included the PAE kernel then the user would need to
install the kernel-pae-devel and kernel-devel packages. 

2. The use of a "--target" switch is required so that rpmbuild does not try
to find an i386 kernel on the system.  If the "--target" switch is not used
then the build will fail with bizarre messages stating that specific kernel
packages are not installed on the machine yet those packages do not exist.

3. The rpmbuild will fail if the redhat-rpm-config package is not installed 
because it cannot resolve the %kernel_module_package_buildreqs macro.  The
error will be similar to the following: 

error: line xx: Dependency tokens must begin with alpha-numeric,'_'or'/': Build
Requires: %kernel_module_package_buildreqs

4. RPM uses KMP packaging dependency data to ensure the dependencies are met
before installing the binary RPM.  Red Hat maintains a whitelist of kernel
symbols which RPM uses to validate against the KMP binaries.  Some symbols may
be in the kernel but not on the whitelist which results in a failed binary RPM 
install. The user will need to use the "--nodeps" switch when installing the 
binary. The tg3 packaged drivers uses the following symbols
on RedHat EL5 Update 3, Update 4 and Update 5 that are not on the whitelist:

Update 4
ksym(pci_enable_msi)
ksym(pci_disable_msi)

Update 3
ksym(pcie_set_readrq)

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