                           Installation Notes
                     Broadcom NetXtremeII Linux Drivers
                                09/26/2011

                          Broadcom Corporation
                         5300 California Avenue,
                            Irvine, CA 92617

               Copyright (c) 2004 - 2011 Broadcom Corporation
                           All rights reserved


Table of Contents
=================

  Introduction
  Limitations
  Packaging
  Installing Source RPM Package
  Building Driver From TAR File
  Unloading and Removing Driver
 

Introduction
============

This file describes the installation procedures for the following
Broadcom Linux drivers:

- bnx2 driver for the Broadcom NetXtreme II BCM5706/BCM5708/5709/5716
  10/100/1000/2500/10000 Mbps PCIX/PCIE Ethernet Network Controller.

- bnx2x driver for the Broadcom NetXtremeII BCM57710/BCM57711/BCM57711E/BCM57712
  10/100/1000/2500/10000 Mbps PCIE Ethernet Network Controller.

- cnic driver that supports additional features required by the bnx2i iSCSI
  offload driver, and bnx2fc FCoE offload driver.


Limitations
===========

The current versions of the drivers have 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.

Additionally, the Makefile will not compile the cnic driver on kernels
older than 2.6.16. iSCSI offload is only supported on 2.6.16 and newer
kernels. FCoE offload is only supported on 2.6.32 and newer kernels.


Packaging
=========

The driver is released in two packaging formats: source RPM and compressed tar
formats. The file name for the source RPM is:

netxtreme2-<version>.src.rpm

The file name for the tar archive is:
netxtreme2-<version>.tar.gz.

Identical source files to build the drivers are included in both packages.

Following is a list of files included - 

a) netxtreme2-<version>.src.rpm - NetXtreme II L2/cnic/bnx2fc/libfc/libfcoe
		driver source RPM
b) netxtreme2-<version>.tar.gz - tar zipped NetXtreme II
		L2/cnic/bnx2fc/libfc/libfcoe driver source
c) INSTALL.TXT - This file
d) README.<driver>.TXT - driver specific readme instructions, 
		where driver is bnx2, bnx2x, bnx2i, bnx2fc.
e) RELEASE.<driver>.TXT - release information text providing list of bug fixes
		and enhancement for each driver.

Installing Source RPM Package
=============================

The following are general guidelines for installing the driver.

1. Install the source RPM package:

   rpm -ivh netxtreme2-<version>.src.rpm

2. CD to the RPM path and build the binary driver for your kernel:

   cd /usr/src/{redhat,OpenLinux,turbo,packages,rpm ..}
	(For RHEL 6.0 and above, cd ~/rpmbuild )

   rpm -bb SPECS/netxtreme2.spec

or

   rpmbuild -bb SPECS/netxtreme2.spec (for RPM version 4.x.x)

Note that the RPM path is different for different Linux distributions.

The driver will be compiled for the running kernel by default. To build
the driver for a kernel different than the running one, specify the
kernel by defining it in KVER:

   rpmbuild -bb SPECS/netxtreme2.spec --define "KVER <kernel version>"

where <kernel version> in the form of 2.x.y-z is the version of another
kernel that is installed on the system.

3. Install the newly built package (driver and man page):

   rpm -ivh RPMS/<arch>/netxtreme2-<version>.<arch>.rpm

where <arch> is the machine architecture such as i386:

   rpm -ivh RPMS/i386/netxtreme2-<version>.i386.rpm

Note that the --force option may be needed on some Linux distributions
if conflicts are reported.

The drivers will be installed in the following path:

2.4.x kernels:

    /lib/modules/<kernel_version>/kernel/drivers/net/bnx2.o
    /lib/modules/<kernel_version>/kernel/drivers/net/bnx2x.o

2.6.0 kernels:

    /lib/modules/<kernel_version>/kernel/drivers/net/bnx2.ko
    /lib/modules/<kernel_version>/kernel/drivers/net/bnx2x.ko

2.6.16 and newer kernels:

    /lib/modules/<kernel_version>/kernel/drivers/net/bnx2.ko
    /lib/modules/<kernel_version>/kernel/drivers/net/bnx2x.ko
    /lib/modules/<kernel_version>/kernel/drivers/net/cnic.ko

Newer RHEL and SLES distros:

    /lib/modules/<kernel_version>/updates/bnx2.ko
    /lib/modules/<kernel_version>/updates/cnic.ko
    /lib/modules/<kernel_version>/updates/bnx2x.ko
    /lib/modules/<kernel_version>/updates/bnx2i.ko
    /lib/modules/<kernel_version>/updates/bnx2fc.ko

4. Unload existing driver if necessary:

   rmmod bnx2
   rmmod bnx2x

If the cnic driver is loaded, it should also be unloaded along with dependent
drivers:

   rmmod bnx2fc
   rmmod bnx2i
   rmmod cnic

5. Load the bnx2 driver for the BCM5706/BCM5708/5709/5716 devices:

   insmod bnx2.o
or
   insmod bnx2.ko (on 2.6.x kernels)
or
   modprobe bnx2

To load the bnx2x driver for the BCM57710/BCM57711/BCM57711E/BCM57712 devices:

   insmod bnx2x.o
or
   insmod bnx2x.ko (on 2.6.x kernels)
or
   modprobe bnx2x

To load the cnic driver:

   insmod cnic.ko
or
   modprobe cnic

To load the bnx2i driver:

   insmod bnx2i.ko
or
   modprobe bnx2i
   service iscsid restart (Please refer REDAME.bnx2i.txt for more details 
                          about iSCSI operation)

To load the bnx2fc driver for BCM57712 device:

   insmod bnx2fc.ko
or
   modprobe bnx2fc
   service fcoe start (Please refer README.bnx2fc.txt for more details about 
                       FCoE operation)
   
Note that the inbox kernel may have an older version of bnx2, bnx2x and cnic
driver.  It is important for FCoE offload user to unload these inbox versions
before attempting to load bnx2fc driver. There are 2 options to reach the
desired goal,
   a) Reboot the server
                OR
   b) If already loaded, unload inbox bnx2, bnx2x, cnic drivers and load newly
      installed version from netxtreme2-foce package using 'modprobe <DRV-NAME>'

NOTE: Driver upgrade (rpm -Uvh) is not supported.
NOTE: On SLES 11, change "allow_unsupported_modules" parameter value of
      /etc/modprobe.d/unsupport-modules' from 0 to 1, until bnx2fc driver
      is inbox. Failing to do so will not load bnx2fc.

6. To configure network protocol and address, refer to various Linux
documentations.


Building Driver From TAR File
=============================

The following are general guidelines for installing the driver.

1. Create a directory and extract the files:

   tar xvzf netxtreme2-<version>.tar.gz

2. Build the drivers as a loadable module for the running kernel:

   make

The driver will be compiled for the running kernel by default. To build
the driver for a kernel different than the running one, specify the
kernel by defining it in KVER:

  make KVER=<kernel version>

where <kernel version> in the form of 2.x.y-z is the version of another
kernel that is installed on the system.

3. Test the driver by loading it (Same procedures as described in the 
   Source RPM section above).

4. Install the driver and man page:

   make install

See RPM instructions above for the location of the installed driver.

5. To configure network protocol and address, refer to various Linux
documentations.

Unloading and Removing Driver
=============================

If the driver was installed using rpm, do the following to remove it:

rpm -e nextreme2

Note - this will remove libfc2, libfcoe2, bnx2, bnx2x and cnic modules as well

If the driver was installed using make install from the tar file, the drivers
have to be manually deleted from the system. Refer to the section
"Installing Source RPM Package" for the location of the installed driver.

1. rmmod <driver>

2. delete <driver>.ko from location given in section "Installing Source RPM Package" 

3. depmod -a
	
**The kernel will now be back to original state prior to instalation from tar file.
  You may now reload previous module versions if necessary.
