Notes for CPQFCTS driver for Compaq Tachyon TS
Fibre Channel Host Bus Adapter, PCI 64-bit, 66MHz
for Linux (RH 6.1, 6.2 kernel 2.2.12-32, 2.2.14-5)
SMP tested
Tested in single and dual HBA configuration, 32 and 64bit busses,
33 and 66MHz.  Only supports FC-AL.
SEST size 512 Exchanges (simultaneous I/Os) limited by module kmalloc() 
	max of 128k bytes contiguous.

Ver 2.5.4  Oct 03, 2002
   * fixed memcpy of sense buffer in ioctl to copy the smaller defined size
Ver 2.5.3  Aug 01, 2002
   * fix the passthru ioctl to handle the Scsi_Cmnd->request being a pointer
Ver 2.5.1  Jul 30, 2002
   * fix ioctl to pay attention to the specified LUN.
Ver 2.5.0  Nov 29, 2001
   * eliminated io_request_lock.  This change makes the driver specific
     to the 2.5.x kernels.
   * silenced excessively noisy printks.

Ver 2.1.2  July 23, 2002
   * initialize DumCmnd->lun in cpqfcTS_ioctl (used in fcFindLoggedInPorts as LUN index)

Ver 2.1.1  Oct 18, 2001
   * reinitialize Cmnd->SCp.sent_command (used to identify commands as
     passthrus) on calling scsi_done, since the scsi mid layer does not
     use (or reinitialize) this field to prevent subsequent comands from
     having it set incorrectly. 

Ver 2.1.0  Aug 27, 2001
   * Revise driver to use new kernel 2.4.x PCI DMA API, instead of 
     virt_to_bus().  (enables driver to work w/ ia64 systems with >2Gb RAM.)
     Rework main scatter-gather code to handle cases where SG element
     lengths are larger than 0x7FFFF bytes and use as many scatter 
     gather pages as necessary. (Steve Cameron)
   * Makefile changes to bring cpqfc into line w/ rest of SCSI drivers
     (thanks to Keith Owens)

Ver 2.0.5  Aug 06, 2001
   * Reject non-existent luns in the driver rather than letting the 
     hardware do it.  (some HW behaves differently than others in this area.)
   * Changed Makefile to rely on "make dep" instead of explicit dependencies
   * ifdef'ed out fibre channel analyzer triggering debug code
   * fixed a jiffies wrapping issue

Ver 2.0.4  Aug 01, 2001
   * Incorporated fix for target device reset from Steeleye
   * Fixed passthrough ioctl so it doesn't hang.
   * Fixed hang in launch_FCworker_thread() that occurred on some machines.
   * Avoid problem when number of volumes in a single cabinet > 8

Ver 2.0.2  July 23, 2001
   Changed the semiphore changes so the driver would compile in 2.4.7. 
   This version is for 2.4.7 and beyond. 
 
Ver 2.0.1  May 	7, 2001
   Merged version 1.3.6 fixes into version 2.0.0.   

Ver 2.0.0  May   7, 2001
  Fixed problem so spinlock is being initialized to UNLOCKED. 
  Fixed updated driver so it compiles in the 2.4 tree. 
 
 Ver 1.3.6  Feb  27, 2001
   Added Target_Device_Reset function for SCSI error handling
   Fixed problem with not reseting addressing mode after implicit logout
 

Ver 1.3.4  Sep   7, 2000
  Added Modinfo information
  Fixed problem with statically linking the driver

Ver 1.3.3, Aug  23, 2000
  Fixed device/function number in ioctl

Ver 1.3.2, July 27, 2000
  Add include for Alpha compile on 2.2.14 kernel (cpq*i2c.c)
  Change logic for different FCP-RSP sense_buffer location for HSG80 target
  And search for Agilent Tachyon XL2 HBAs (not finished! - in test)

Tested with 
(storage):
           Compaq RA-4x000, RAID firmware ver 2.40 - 2.54
           Seagate FC drives model ST39102FC, rev 0006
           Hitachi DK31CJ-72FC rev J8A8
           IBM DDYF-T18350R rev F60K
           Compaq FC-SCSI bridge w/ DLT 35/70 Gb DLT (tape)
(servers):
           Compaq PL-1850R
           Compaq PL-6500 Xeon (400MHz)
	   Compaq PL-8500 (500MHz, 66MHz, 64bit PCI)
           Compaq Alpha DS20 (RH 6.1)
(hubs):
           Vixel Rapport 1000 (7-port "dumb")
	   Gadzoox Gibralter (12-port "dumb")
	   Gadzoox Capellix 2000, 3000 
(switches):
           Brocade 2010, 2400, 2800, rev 2.0.3a (& later)
           Gadzoox 3210 (Fabric blade beta)
           Vixel 7100 (Fabric beta firmare - known hot plug issues)
using "qa_test" (esp. io_test script) suite modified from Unix tests.
	
Installation:
make menuconfig
  (select SCSI low-level, Compaq FC HBA)
make modules
make modules_install

e.g. insmod -f cpqfc

Due to Fabric/switch delays, driver requires 4 seconds 
to initialize.  If adapters are found, there will be a entries at
/proc/scsi/cpqfcTS/*

sample contents of startup messages

*************************
 scsi_register allocating 3596 bytes for CPQFCHBA
 ioremap'd Membase: c887e600
  HBA Tachyon RevId 1.2
Allocating 119808 for 576 Exchanges @ c0dc0000
Allocating 112904 for LinkQ @ c0c20000 (576 elements)
Allocating 110600 for TachSEST for 512 Exchanges
  cpqfcTS: writing IMQ BASE 7C0000h    PI 7C4000h
  cpqfcTS: SEST c0e40000(virt): Wrote base E40000h @ c887e740
cpqfcTS: New FC port 0000E8h WWN: 500507650642499D SCSI Chan/Trgt 0/0
cpqfcTS: New FC port 0000EFh WWN: 50000E100000D5A6 SCSI Chan/Trgt 0/1
cpqfcTS: New FC port 0000E4h WWN: 21000020370097BB SCSI Chan/Trgt 0/2
cpqfcTS: New FC port 0000E2h WWN: 2100002037009946 SCSI Chan/Trgt 0/3
cpqfcTS: New FC port 0000E1h WWN: 21000020370098FE SCSI Chan/Trgt 0/4
cpqfcTS: New FC port 0000E0h WWN: 21000020370097B2 SCSI Chan/Trgt 0/5
cpqfcTS: New FC port 0000DCh WWN: 2100002037006CC1 SCSI Chan/Trgt 0/6
cpqfcTS: New FC port 0000DAh WWN: 21000020370059F6 SCSI Chan/Trgt 0/7
cpqfcTS: New FC port 00000Fh WWN: 500805F1FADB0E20 SCSI Chan/Trgt 0/8
cpqfcTS: New FC port 000008h WWN: 500805F1FADB0EBA SCSI Chan/Trgt 0/9
cpqfcTS: New FC port 000004h WWN: 500805F1FADB1EB9 SCSI Chan/Trgt 0/10
cpqfcTS: New FC port 000002h WWN: 500805F1FADB1ADE SCSI Chan/Trgt 0/11
cpqfcTS: New FC port 000001h WWN: 500805F1FADBA2CA SCSI Chan/Trgt 0/12
scsi4 : Compaq FibreChannel HBA Tachyon TS HPFC-5166A/1.2: WWN 500508B200193F50
 on PCI bus 0 device 0xa0fc irq 5 IObaseL 0x3400, MEMBASE 0xc6ef8600
PCI bus width 32 bits, bus speed 33 MHz
FCP-SCSI Driver v1.3.0
GBIC detected: Short-wave.  LPSM 0h Monitor
scsi : 5 hosts.
  Vendor: IBM       Model: DDYF-T18350R      Rev: F60K
  Type:   Direct-Access                      ANSI SCSI revision: 03
Detected scsi disk sdb at scsi4, channel 0, id 0, lun 0
  Vendor: HITACHI   Model: DK31CJ-72FC       Rev: J8A8
  Type:   Direct-Access                      ANSI SCSI revision: 02
Detected scsi disk sdc at scsi4, channel 0, id 1, lun 0
  Vendor: SEAGATE   Model: ST39102FC         Rev: 0006
  Type:   Direct-Access                      ANSI SCSI revision: 02
Detected scsi disk sdd at scsi4, channel 0, id 2, lun 0
  Vendor: SEAGATE   Model: ST39102FC         Rev: 0006
  Type:   Direct-Access                      ANSI SCSI revision: 02
Detected scsi disk sde at scsi4, channel 0, id 3, lun 0
  Vendor: SEAGATE   Model: ST39102FC         Rev: 0006
  Type:   Direct-Access                      ANSI SCSI revision: 02
Detected scsi disk sdf at scsi4, channel 0, id 4, lun 0
  Vendor: SEAGATE   Model: ST39102FC         Rev: 0006
  Type:   Direct-Access                      ANSI SCSI revision: 02
Detected scsi disk sdg at scsi4, channel 0, id 5, lun 0
  Vendor: SEAGATE   Model: ST39102FC         Rev: 0006
  Type:   Direct-Access                      ANSI SCSI revision: 02
Detected scsi disk sdh at scsi4, channel 0, id 6, lun 0
  Vendor: SEAGATE   Model: ST39102FC         Rev: 0006
  Type:   Direct-Access                      ANSI SCSI revision: 02
Detected scsi disk sdi at scsi4, channel 0, id 7, lun 0
  Vendor: COMPAQ    Model: LOGICAL VOLUME    Rev: 2.48
  Type:   Direct-Access                      ANSI SCSI revision: 02
Detected scsi disk sdj at scsi4, channel 0, id 8, lun 0
  Vendor: COMPAQ    Model: LOGICAL VOLUME    Rev: 2.48
  Type:   Direct-Access                      ANSI SCSI revision: 02
Detected scsi disk sdk at scsi4, channel 0, id 8, lun 1
  Vendor: COMPAQ    Model: LOGICAL VOLUME    Rev: 2.40
  Type:   Direct-Access                      ANSI SCSI revision: 02
Detected scsi disk sdl at scsi4, channel 0, id 9, lun 0
  Vendor: COMPAQ    Model: LOGICAL VOLUME    Rev: 2.40
  Type:   Direct-Access                      ANSI SCSI revision: 02
Detected scsi disk sdm at scsi4, channel 0, id 9, lun 1
  Vendor: COMPAQ    Model: LOGICAL VOLUME    Rev: 2.54
  Type:   Direct-Access                      ANSI SCSI revision: 02
Detected scsi disk sdn at scsi4, channel 0, id 10, lun 0
  Vendor: COMPAQ    Model: LOGICAL VOLUME    Rev: 2.54
  Type:   Direct-Access                      ANSI SCSI revision: 02
Detected scsi disk sdo at scsi4, channel 0, id 11, lun 0
  Vendor: COMPAQ    Model: LOGICAL VOLUME    Rev: 2.54
  Type:   Direct-Access                      ANSI SCSI revision: 02
Detected scsi disk sdp at scsi4, channel 0, id 11, lun 1
  Vendor: COMPAQ    Model: LOGICAL VOLUME    Rev: 2.54
  Type:   Direct-Access                      ANSI SCSI revision: 02
Detected scsi disk sdq at scsi4, channel 0, id 12, lun 0
  Vendor: COMPAQ    Model: LOGICAL VOLUME    Rev: 2.54
  Type:   Direct-Access                      ANSI SCSI revision: 02
Detected scsi disk sdr at scsi4, channel 0, id 12, lun 1
resize_dma_pool: unknown device type 12
resize_dma_pool: unknown device type 12
SCSI device sdb: hdwr sector= 512 bytes. Sectors= 35843670 [17501 MB] [17.5 GB]
 sdb: sdb1
SCSI device sdc: hdwr sector= 512 bytes. Sectors= 144410880 [70513 MB] [70.5 GB]
 sdc: sdc1
SCSI device sdd: hdwr sector= 512 bytes. Sectors= 17783240 [8683 MB] [8.7 GB]
 sdd: sdd1
SCSI device sde: hdwr sector= 512 bytes. Sectors= 17783240 [8683 MB] [8.7 GB]
 sde: sde1
SCSI device sdf: hdwr sector= 512 bytes. Sectors= 17783240 [8683 MB] [8.7 GB]
 sdf: sdf1
SCSI device sdg: hdwr sector= 512 bytes. Sectors= 17783240 [8683 MB] [8.7 GB]
 sdg: sdg1
SCSI device sdh: hdwr sector= 512 bytes. Sectors= 17783240 [8683 MB] [8.7 GB]
 sdh: sdh1
SCSI device sdi: hdwr sector= 512 bytes. Sectors= 17783240 [8683 MB] [8.7 GB]
 sdi: sdi1
SCSI device sdj: hdwr sector= 512 bytes. Sectors= 2056160 [1003 MB] [1.0 GB]
 sdj: sdj1
SCSI device sdk: hdwr sector= 512 bytes. Sectors= 2052736 [1002 MB] [1.0 GB]
 sdk: sdk1
SCSI device sdl: hdwr sector= 512 bytes. Sectors= 17764320 [8673 MB] [8.7 GB]
 sdl: sdl1
SCSI device sdm: hdwr sector= 512 bytes. Sectors= 8380320 [4091 MB] [4.1 GB]
 sdm: sdm1
SCSI device sdn: hdwr sector= 512 bytes. Sectors= 17764320 [8673 MB] [8.7 GB]
 sdn: sdn1
SCSI device sdo: hdwr sector= 512 bytes. Sectors= 17764320 [8673 MB] [8.7 GB]
 sdo: sdo1
SCSI device sdp: hdwr sector= 512 bytes. Sectors= 17764320 [8673 MB] [8.7 GB]
 sdp: sdp1
SCSI device sdq: hdwr sector= 512 bytes. Sectors= 2056160 [1003 MB] [1.0 GB]
 sdq: sdq1
SCSI device sdr: hdwr sector= 512 bytes. Sectors= 2052736 [1002 MB] [1.0 GB]
 sdr: sdr1

*************************

If a GBIC of type Short-wave, Long-wave, or Copper is detected, it will
print out; otherwise, "none" is displayed.  If the cabling is correct
and a loop circuit is completed, you should see "Monitor"; otherwise, 
"LoopFail" (on open circuit) or some LPSM number/state with bit 3 set.


ERRATA:
1. Normally, Linux Scsi queries FC devices with INQUIRY strings.  All LUNs
found according to INQUIRY should get READ commands at sector 0 to find
partition table, etc.  Older kernels only query the first 4 devices.  Some
Linux kernels only look for one LUN per target (i.e. FC device).

2. Physically removing a device, or a malfunctioning system which hides a
device, leads to a 30-second timeout and subsequent _abort call.  
In some process contexts, this will hang the kernel (crashing the system).
Single bit errors in frames and virtually all hot plugging events are 
gracefully handled with internal driver timer and Abort processing.

3. Some SCSI drives with error conditions will not handle the 7 second timeout
in this software driver, leading to infinite retries on timed out SCSI commands.
The 7 secs balances the need to quickly recover from lost frames (esp. on sequence
initiatives) and time needed by older/slower/error-state drives in responding.
This can be easily changed in "Exchanges[].timeOut".

4. Due to the nature of FC soft addressing, there is no assurance that the 
same LUNs (drives) will have the same path (e.g. /dev/sdb1) from one boot to
next.  Dynamic soft address changes (i.e. 24-bit FC port_id) are
supported during run time (e.g. due to hot plug event) by the use of WWN to
SCSI Nexus (channel/target/LUN) mapping.

5. Compaq RA4x00 firmware version 2.54 and later supports SSP (Selective 
Storage Presentation), which maps LUNs to a WWN.  If RA4x00 firmware prior
2.54 (e.g. older controller) is used, or the FC HBA is replaced (another WWN
is used), logical volumes on the RA4x00 will no longer be visible.


Send questions/comments to:
Amy Vanzant-Hodge (fibrechannel@compaq.com)

