HP QLA 7.x Driver Kit
=====================

This RPM contains the driver and associated utilities to deploy
the HP supported QLogic Linux driver on 2.4 kernel based systems

Supported Adapters
------------------

The following adapters are supported with this driver kit:

Adapter			Supported Architectures

FCA2214 		x86, x86_64
FCA2214DC 		x86, x86_64
bl20p Mezzanine Card	x86
bl25p Mezzanine Card	x86_64
bl30p Balcony Card	x86
bl35p Balcony Card	x86_64
A6826A			ia64
A7538A			ia64
AE311A			x86, x86_64
AE312A			x86, x86_64

Supported Distributions
-----------------------

The following Linux distributions are supported with this driver kit:

Distribution			Architectures

Red Hat Enterprise Linux 2.1 	i386, ia64
Red Hat Enterprise Linux 3.0 	i386, ia64, x86_64
SUSE Linux Enterprise Server 8	i386, ia64, x86_64
(Service Pack 3 or higher)

Kit Contents
------------

The hp_qla2x00src and hp_qla2x00 RPM contains the following scripts and files
in the /opt/hp/src/hp_qla2x00src or /opt/hp/hp_qla2x00 directories respectively
in addition to the driver source code.

condition_kernel   	Sets the kernel source dependencies
                   	to reflect the current running kernel
                   	or the specified kernel
*build_driver      	Builds the QLA driver from source code
edit_conf         	Makes the proper edits to system configuration files
                   	to imbed the qla2200 and qla2300 modules in
                   	the initrd with the proper driver load time
                   	parameters
make_initrd        	Builds a new initrd using the correct
                   	system utilities
set_parm           	Sets up the /etc/hp_qla2x00.conf file so that
                   	it has the correct driver settings based upon
                   	the configuration that the user wants to run and
                   	rebuilds the initrd
*master.sh         	Runs the condition_kernel, build_driver, edit_conf
                   	and make_initrd utilities.  Useful to compile a new
                   	driver when a new kernel is loaded.
*compile_all_kernels	Runs master.sh for all installed kernels
libqlsdm-<arch>.so	QLogic's implementation of the HBAAPI spec.  This file is
			copied to /usr/lib when the RPM is installed
readme.libqlsdm		Contains information on the libqlsdm.so library that is
			included in this driver kit

* Only contained in the hp_qla2x00src RPM

Driver Parameters
-----------------

This driver kit passes in the following parameters to the QLogic driver
when it is loaded.  These values can be seen in /etc/modules.conf.

ql2xport_down_retry	Sets the number of retries that the QLogic driver will
			do when a remote target port has gone down
ql2xloginretrycount	Sets the number of retries that the QLogic driver will 
			do when it trying to log into a remote port
ql2xfailover		Turns multipath failover on or off
ql2xmaxqdepth		Sets the maximum queue depth per LUN
ql2xlbType		Sets what type of load balacing to do between paths when
			failover is enabled
ql2xexcludemodel	Sets what device models are to be exported as single path
			devices when failover is enabled
ql2xautorestore		Sets what device models will attempt to failback to its
			primary path when failover is enabled 

The following table lists the driver parameter values for each mode that the
driver kit can be in:

Parameter		Single Path	Secure Path	QLogic Failover

ql2xport_down_retry	64		3		30
ql2xloginretrycount	16		16		16
ql2xfailover		0		0		1
ql2xmaxqdepth		16		16		16
ql2xlbType		0		0		1
ql2xexcludemodel	0x0		0x0		0x06
ql2xautorestore		0x0		0x0		0x80

You can change the parameters of the driver using the set_parm script in
either the /opt/hp/src/hp_qla2x00src directory or the /opt/hp/hp_qla2x00
directory (depending upon which RPM you have installed).  There are three
settings:

1. Single Path (-s)     you are connected through one path to the storage
                        without any redudany
2. Secure Path (-m)     you are using the Secure Path software for multipathing
                        and failover
3. QLogic Failover (-x) you are using the multipathing and failover
                        functionality built into the qla2x00 adapter driver

You can also manually set the driver parameters if you invoke set_parm with
no arguments and select the manual option from the menu.

Note that if you change the driver parameters, a new initrd has to be build.
This is done by the set_parm script by calling the edit_conf and make_initrd
scripts.

Notes on Upgrading Kernels
--------------------------

1. After you upgrade your kernel and kernel sources, you can compile
   new qla2200.o and qla2300.o modules for the new kernel without rebooting.
   You may need to do this as the new kernel that you just installed
   may not contain the latest supported HP driver.  To do this you
   should:

	a. Go to /opt/hp/src/hp_qla2x00src
	b. Execute the command "./master.sh -l" to get a list of
   	   valid module and source directories
	c. Choose the set of directories that match your new kernel

   and enter them with the -s and -m switches of the master.sh
   script

   For example:

	# master.sh -s linux-2.4.21-9.EL -m linux-2.4.21-9.ELsmp

   The script should take care of the rest of the compilation
   automatically.

2. When you upgrade from an old kernel to a new kernel, you may need to
   manually remove the entry for qla2300_conf from /etc/modules.conf.
   Having these entries present in /etc/modules.conf may cause the initrd
   build to fail because those modules may not come with the new kernel.
   The entries will be replaced and new qla2200_conf and qla2300_conf
   modules built when you compile a new driver for the new kernel.
