FILE NAME:	hp-netxtreme2-7.2.55-2.src.rpm

TITLE:		HP NC-Series Broadcom 1/10 GbE multifunction drivers for Linux

VERSION:	7.2.55

RELEASE:	2

LANGUAGE:	English

CATEGORY:	Software Solutions

DIVISIONS:	Enterprise and Mainstream Servers

EFFECTIVE DATE:	5/31/2012

SUPERSEDES:	7.0.39


Products Affected
==================
bnx2:
HP NC370x Gigabit Server Adapter
HP NC371x Gigabit Server Adapter
HP NC373x Gigabit Server Adapter
HP NC374x Gigabit Server Adapter
HP NC380x Gigabit Server Adapter
HP NC382x Gigabit Server Adapter

bnx2x:
HP Ethernet 10Gb 2-port 530SFP+ Adapter
HP Ethernet 10Gb 2-port 530FLR-SFP+ Adapter
HP Flex-10 10Gb 2-port 530FLB Adapter
HP Flex-10 10Gb 2-port 530M Adapter
HP NC532x Dual Port 10GbE Multifunction BL-c Adapter


Operating Systems
==================
Red Hat Enterprise Linux 6 Update 3 for AMD64/EM64T
Red Hat Enterprise Linux 6 Update 3 for x86
Red Hat Enterprise Linux 6 Update 2 for AMD64/EM64T
Red Hat Enterprise Linux 6 Update 2 for x86
Red Hat Enterprise Linux 6 Update 1 for AMD64/EM64T
Red Hat Enterprise Linux 6 Update 1 for x86

Red Hat Enterprise Linux 5 Update 8 for AMD64/EM64T
Red Hat Enterprise Linux 5 Update 8 for x86
Red Hat Enterprise Linux 5 Update 7 for AMD64/EM64T
Red Hat Enterprise Linux 5 Update 7 for x86
Red Hat Enterprise Linux 5 Update 6 for AMD64/EM64T
Red Hat Enterprise Linux 5 Update 6 for x86

SUSE LINUX Enterprise Server 11 Service Pack 2 for AMD64/EM64T
SUSE LINUX Enterprise Server 11 Service Pack 2 for x86
SUSE LINUX Enterprise Server 11 Service Pack 1 for AMD64/EM64T
SUSE LINUX Enterprise Server 11 Service Pack 1 for x86
SUSE LINUX Enterprise Server 10 Service Pack 4 for AMD64/EM64T
SUSE LINUX Enterprise Server 10 Service Pack 4 for x86
SUSE LINUX Enterprise Server 10 Service Pack 3 for AMD64/EM64T
SUSE LINUX Enterprise Server 10 Service Pack 3 for x86


Pre-requisites
===============
ProLiant server supporting above operating systems
2GB 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" 


Description
============
This RPM contains HP tested and approved Ethernet
for use with network adapters mentioned in the PRODUCTS AFFECTED
section of this document.


Enhancements/Fixes
===================
1) Added support for HP Ethernet 10Gb 2-port 530SFP+ Adapter
2) Added KMP build support for RHEL6 Update 3

Table of Contents
==================
Introduction
Packaging
Build Environment Setup
Installing the RPM package
Uninstalling the RPM package
Caveats


Introduction
=============
This file describes how to build and install the Ethernet driver
for network adapters mentioned in the PRODUCTS AFFECTED section. 

Additional information for the Ethernet drivers can be found in the files
RELEASE.bnx2.TXT and RELEASE.bnx2x.TXT. The doc rpm gets built
along with the KMP binary rpm.

Man pages for bnx2 and bnx2x are delivered to /usr/share/man/man4

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 
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 source package. See "Build Environment Setup"
section below for more details.


Build Environment Setup
========================
This package requires the presence of certain other packages that provide
the right build environment to enable building a KMP binary rpm from the
source rpm. These packages provide kernel headers, makefiles and symbol
files. Please ensure that the following are installed:

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
	   in addition to the above two mentioned


Installing the RPM package
===========================
1. This package requires a specific build environment. Please refer the
"Build Environment Setup" section above before proceeding.

2. Install the source RPM package.

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

3. Build the binary RPM for hp-netxtreme2 package. 

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

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

	SLES:
	# rpmbuild -bb /usr/src/packages/SPECS/hp-netxtreme2.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-netxtreme2.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-netxtreme2.spec

4. Check for the existence of a current version of the hp-netxtreme2 
package as follows:

	RHEL
	# rpm -q kmod-hp-netxtreme2-<flavor> 

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

	If an old version of the RPM package exists, it should be
	removed as follows:

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

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

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

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

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

5. If an older version of bnx2.ko and bnx2x.ko is
loaded into the kernel, remove it as follows.

Note: If you are installing the package over network you may want to be
careful. It is not absolutely necessary to remove the modules. This step 
is necessary if you are doing the upgrade on the physical console and
you intend to see the new drivers taking over immediately

	# lsmod | grep bnx2x
	# lsmod | grep bnx2
	
	Bring down the interfaces controlled by bnx2x and bnx2

	# ifconfig eth<n> down

	Finally remove the driver 

	# modprobe -r bnx2x
	# modprobe -r bnx2
	
6. Install the new binary RPM package. This installs bnx2 and bnx2x/ drivers. 

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

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

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

	Note:  The "--nodeps" switch is required when installing on 
	RHEL 5.6 and RHEL 5.7. See the "Caveats" section below for
	further details.

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

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

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

7.  Run "modinfo <module> | grep version" and verify that the driver
version is latest

8.  Run "modprobe <module>" to install latest driver module

9. 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.

Follow these alternate steps if you want the new driver to take effect
with the next reboot:

10. 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.

If you have a 1Gb Network card use bnx2 below else use bnx2x for 10Gb

	alias eth0 bnx2
	alias eth1 bnx2

For SLES, the configuration file is /etc/modprobe.conf or 
/etc/modprobe.conf.local

11. Reboot the server or restart the network services. Upon reboot 
the network should start with either bnx2 or bnx2x driver loaded  

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

	# lsmod

You should find bnx2, bnx2x listed. You can also verify 
that the correct bnx2, bnx2x driver is loaded through any
of the following methods. 

A. Look for driver load messages in the system log.

	# dmesg | grep Broadcom

You should see messages of the following type,

Broadcom NetXtreme II Gigabit Ethernet Dirver bnx2 v1.8.2c(Dec 30, 2008)

B. Check the /var/log/messages file for a similar message as in
method A.


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

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

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


Caveats
=======
1. On installing the NX2 Package, bnx2i and bnx2fc modules will get blacklisted.

2. The complete set of Module Parameters supported by the bnx2 and bnx2x 
drivers are described in the README.bnx2.TXT and README.bnx2x.TXT.  

3. 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. 

4. 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.

5. 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'/': 
BuildRequires: %kernel_module_package_buildreqs

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