Files
scst/qla_isp/README.scst
Vladislav Bolkhovitin e8b67bb755 - Docs updates
- Minor cleanups



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@675 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-02-18 18:52:35 +00:00

162 lines
5.6 KiB
Plaintext

WARNING
This driver is in beta stages, you may want to use it in production, but you
need test it for your hardware configuration.
INTRODUCTION
This is an SCST driver for ISP Qlogic chipsets commonly used in many SCSI and
FC host bus adapters. Supported chipsets are listed in the README file; an
incomplete list of supported HBAs can be found in doc/Hardware.txt .
It is based on Matthew Jacob's multiplatform driver for ISP chipsets,
which has its own page at http://www.feral.com/isp.html . The update for SCST
was made by Stanislaw Gruszka <stf_xl@wp.pl> for Open-E Inc.
Driver operates on the same hardware as qla2x00t, but has one notable
adventage over it: support of 24xx series of Qlogic adapters.
INSTALLATION: QUICK START
Build driver with the following command
$ make
Copy the firmware image appropriate for your HBA from the Qlogic FTP server
ftp://ftp.qlogic.com/outgoing/linux/firmware/ to one of the Linux firmware
loader directories (e.g. /lib/firmware, see the udev/hotplug documentation
for your distribution).
The next step depends on whether you have other QLA modules installed. Note
that you can't load an ISP driver when you build other Qlogic drivers in the
kernel (kerel oops may occur). Other QLA modules are acceptable, but extra
care is needed, first copy modules to a directory, e.g.:
$ mkdir /root/qla_isp
$ cp linux-2.6/build/*.ko /root/qla_isp
Each time you want to run qla_isp, unload all other qla modules
$ rmmod qla2x00tgt
$ rmmod qla2400
$ rmmod qla2300
$ rmmod qla2200
$ rmmod qla2xxx
and load ISP modules directly from the created directory, e.g.:
$ insmod /root/qla_isp/isp_scst.ko
$ insmod /root/qla_isp/isp_mod.ko
If you have neither other QLA drivers from SCST (qla2x00tgt) nor kernel
(qla2xxx and friends) you can install in the standard /lib/modules directory:
$ make install
$ depmod -ea
Then load the drivers manually the first time :
$ modprobe isp_scst
$ modprobe isp_mod
Now whenever the system is booted and a QLA card is plugged, modules will load
automatically.
When the driver is loaded, enable all channels for each HBA to work in target
mode. For Fibre Channel adapters you need to write the "enable all" string
into the procfs configuration file, e.g.:
$ echo "enable all" > /proc/scsi_tgt/qla_isp/3
To unload the isp_mod.ko module you must disable target mode for all cards,
e.g.:
$ echo "disable all" > /proc/scsi_tgt/qla_isp/3
$ echo "disable all" > /proc/scsi_tgt/qla_isp/4
To attach logical units continue with normal SCST setup.
SELECTING FIRMWARE
The firmware loading interface allows for choosing the appropriate firmware.
However, some firmware images are not available from the Qlogic site, e.g.
firmware with multichannel support. That is why you can build a firmware
image into the isp_mod module. At the beginning of the isp_linux.h file you
need to comment out the following line:
#define DISABLE_FW_LOADER 1
Firmware from sources for 24xx supports multichannel (NPIV)
SUPPORTED DEVICES
You can disable support for selected chipsets by editing the isp_linux.h file.
In the following example, only the 2400 chipset is enabled:
#define ISP_DISABLE_1080_SUPPORT 1
#define ISP_DISABLE_12160_SUPPORT 1
#define ISP_DISABLE_2100_SUPPORT 1
#define ISP_DISABLE_2200_SUPPORT 1
#define ISP_DISABLE_2300_SUPPORT 1
#define ISP_DISABLE_2322_SUPPORT 1
//#define ISP_DISABLE_2400_SUPPORT 1
TARGET/INITIATOR ROLES
The driver can work as either a target or an initiator. Prior to performing
the compilation you can establish the default mode the driver will work in
by editing the file linux-2.6/build/Makefile - you need to set one of the
following values instead of ISP_ROLE_NONE
in -DISP_DEFAULT_ROLES=ISP_ROLE_NONE
ISP_ROLE_TARGET
ISP_ROLE_INITIATOR
ISP_ROLE_BOTH
You can also establish the driver role during module initialization using the
isp_roles option, e.g:
$ modprobe isp_mod isp_roles="b0300=initiator"
Number "b0300" is a DEVID value based on an address on the PCI bus, which you
can find in /proc/scsi/isp/N. Target role will be enabled automatically when
activating channels/LUNs in /proc/scsi_tgt/qla_isp/N .
The driver can also work as both a target and an initiator simultaneously, but
this will probably only function for P2P connections. To make the driver work
as a target/initator on one port with a FC switch, you can use N_PORT ID
virtualization, as seen below.
N_PORT ID VIRTUALIZATION
You can add an isp_vports option to the ISP module. It denotes the number of
ports(channels) and cannot be greater than 127. Each vport has its own WWN.
From the driver point of view each vport is a separate channel. You can define
separate role for each of the channels.
PROCFS INTERFACE
Target configuration interface is located in the following file:
/proc/scsi_tgt/qla_isp/N ; where N is the Linux SCSI host number and
is the same as for proc/scsi/isp/N and /sys/class/scsi_host/hostN files.
The process for enabling options for this file is different for FC and SPI
devices. For FC it is enabling/disabling channels, while SPI it is
enabling/disabling channels and logical units. For example:
FC:
$ echo "enable 5" > /proc/scsi_tgt/qla_isp/4
SPI:
$ echo "enable 0 1" > /proc/scsi_tgt/qla_isp/5
You may use the string "all" instead of a number e.g.:
$echo "disable all all" > /proc/scsi_tgt/qla_isp/5
When all LUNs and channels are disabled, the target role will also become
inactive. For N_PORT ID virtualization, when enabling channels, you need to
first enable channel 0; when disabling channels, you need to disable channel
0 last.
Send question about this driver to scst-devel@lists.sourceforge.net, CC
Matthew Jacob <lydianconcepts@gmail.com> and Stanislaw Gruszka <stf_xl@wp.pl>.