# BRCM_VERSION=3
[bcm963xx.git] / kernel / linux / Documentation / scsi / cpqfc.txt
1 Notes for CPQFCTS driver for Compaq Tachyon TS
2 Fibre Channel Host Bus Adapter, PCI 64-bit, 66MHz
3 for Linux (RH 6.1, 6.2 kernel 2.2.12-32, 2.2.14-5)
4 SMP tested
5 Tested in single and dual HBA configuration, 32 and 64bit busses,
6 33 and 66MHz.  Only supports FC-AL.
7 SEST size 512 Exchanges (simultaneous I/Os) limited by module kmalloc() 
8         max of 128k bytes contiguous.
9
10 Ver 2.5.4  Oct 03, 2002
11    * fixed memcpy of sense buffer in ioctl to copy the smaller defined size
12 Ver 2.5.3  Aug 01, 2002
13    * fix the passthru ioctl to handle the Scsi_Cmnd->request being a pointer
14 Ver 2.5.1  Jul 30, 2002
15    * fix ioctl to pay attention to the specified LUN.
16 Ver 2.5.0  Nov 29, 2001
17    * eliminated io_request_lock.  This change makes the driver specific
18      to the 2.5.x kernels.
19    * silenced excessively noisy printks.
20
21 Ver 2.1.2  July 23, 2002
22    * initialize DumCmnd->lun in cpqfcTS_ioctl (used in fcFindLoggedInPorts as LUN index)
23
24 Ver 2.1.1  Oct 18, 2001
25    * reinitialize Cmnd->SCp.sent_command (used to identify commands as
26      passthrus) on calling scsi_done, since the scsi mid layer does not
27      use (or reinitialize) this field to prevent subsequent comands from
28      having it set incorrectly. 
29
30 Ver 2.1.0  Aug 27, 2001
31    * Revise driver to use new kernel 2.4.x PCI DMA API, instead of 
32      virt_to_bus().  (enables driver to work w/ ia64 systems with >2Gb RAM.)
33      Rework main scatter-gather code to handle cases where SG element
34      lengths are larger than 0x7FFFF bytes and use as many scatter 
35      gather pages as necessary. (Steve Cameron)
36    * Makefile changes to bring cpqfc into line w/ rest of SCSI drivers
37      (thanks to Keith Owens)
38
39 Ver 2.0.5  Aug 06, 2001
40    * Reject non-existent luns in the driver rather than letting the 
41      hardware do it.  (some HW behaves differently than others in this area.)
42    * Changed Makefile to rely on "make dep" instead of explicit dependencies
43    * ifdef'ed out fibre channel analyzer triggering debug code
44    * fixed a jiffies wrapping issue
45
46 Ver 2.0.4  Aug 01, 2001
47    * Incorporated fix for target device reset from Steeleye
48    * Fixed passthrough ioctl so it doesn't hang.
49    * Fixed hang in launch_FCworker_thread() that occurred on some machines.
50    * Avoid problem when number of volumes in a single cabinet > 8
51
52 Ver 2.0.2  July 23, 2001
53    Changed the semiphore changes so the driver would compile in 2.4.7. 
54    This version is for 2.4.7 and beyond. 
55  
56 Ver 2.0.1  May  7, 2001
57    Merged version 1.3.6 fixes into version 2.0.0.   
58
59 Ver 2.0.0  May   7, 2001
60   Fixed problem so spinlock is being initialized to UNLOCKED. 
61   Fixed updated driver so it compiles in the 2.4 tree. 
62  
63  Ver 1.3.6  Feb  27, 2001
64    Added Target_Device_Reset function for SCSI error handling
65    Fixed problem with not reseting addressing mode after implicit logout
66  
67
68 Ver 1.3.4  Sep   7, 2000
69   Added Modinfo information
70   Fixed problem with statically linking the driver
71
72 Ver 1.3.3, Aug  23, 2000
73   Fixed device/function number in ioctl
74
75 Ver 1.3.2, July 27, 2000
76   Add include for Alpha compile on 2.2.14 kernel (cpq*i2c.c)
77   Change logic for different FCP-RSP sense_buffer location for HSG80 target
78   And search for Agilent Tachyon XL2 HBAs (not finished! - in test)
79
80 Tested with 
81 (storage):
82            Compaq RA-4x000, RAID firmware ver 2.40 - 2.54
83            Seagate FC drives model ST39102FC, rev 0006
84            Hitachi DK31CJ-72FC rev J8A8
85            IBM DDYF-T18350R rev F60K
86            Compaq FC-SCSI bridge w/ DLT 35/70 Gb DLT (tape)
87 (servers):
88            Compaq PL-1850R
89            Compaq PL-6500 Xeon (400MHz)
90            Compaq PL-8500 (500MHz, 66MHz, 64bit PCI)
91            Compaq Alpha DS20 (RH 6.1)
92 (hubs):
93            Vixel Rapport 1000 (7-port "dumb")
94            Gadzoox Gibralter (12-port "dumb")
95            Gadzoox Capellix 2000, 3000 
96 (switches):
97            Brocade 2010, 2400, 2800, rev 2.0.3a (& later)
98            Gadzoox 3210 (Fabric blade beta)
99            Vixel 7100 (Fabric beta firmare - known hot plug issues)
100 using "qa_test" (esp. io_test script) suite modified from Unix tests.
101         
102 Installation:
103 make menuconfig
104   (select SCSI low-level, Compaq FC HBA)
105 make modules
106 make modules_install
107
108 e.g. insmod -f cpqfc
109
110 Due to Fabric/switch delays, driver requires 4 seconds 
111 to initialize.  If adapters are found, there will be a entries at
112 /proc/scsi/cpqfcTS/*
113
114 sample contents of startup messages
115
116 *************************
117  scsi_register allocating 3596 bytes for CPQFCHBA
118  ioremap'd Membase: c887e600
119   HBA Tachyon RevId 1.2
120 Allocating 119808 for 576 Exchanges @ c0dc0000
121 Allocating 112904 for LinkQ @ c0c20000 (576 elements)
122 Allocating 110600 for TachSEST for 512 Exchanges
123   cpqfcTS: writing IMQ BASE 7C0000h    PI 7C4000h
124   cpqfcTS: SEST c0e40000(virt): Wrote base E40000h @ c887e740
125 cpqfcTS: New FC port 0000E8h WWN: 500507650642499D SCSI Chan/Trgt 0/0
126 cpqfcTS: New FC port 0000EFh WWN: 50000E100000D5A6 SCSI Chan/Trgt 0/1
127 cpqfcTS: New FC port 0000E4h WWN: 21000020370097BB SCSI Chan/Trgt 0/2
128 cpqfcTS: New FC port 0000E2h WWN: 2100002037009946 SCSI Chan/Trgt 0/3
129 cpqfcTS: New FC port 0000E1h WWN: 21000020370098FE SCSI Chan/Trgt 0/4
130 cpqfcTS: New FC port 0000E0h WWN: 21000020370097B2 SCSI Chan/Trgt 0/5
131 cpqfcTS: New FC port 0000DCh WWN: 2100002037006CC1 SCSI Chan/Trgt 0/6
132 cpqfcTS: New FC port 0000DAh WWN: 21000020370059F6 SCSI Chan/Trgt 0/7
133 cpqfcTS: New FC port 00000Fh WWN: 500805F1FADB0E20 SCSI Chan/Trgt 0/8
134 cpqfcTS: New FC port 000008h WWN: 500805F1FADB0EBA SCSI Chan/Trgt 0/9
135 cpqfcTS: New FC port 000004h WWN: 500805F1FADB1EB9 SCSI Chan/Trgt 0/10
136 cpqfcTS: New FC port 000002h WWN: 500805F1FADB1ADE SCSI Chan/Trgt 0/11
137 cpqfcTS: New FC port 000001h WWN: 500805F1FADBA2CA SCSI Chan/Trgt 0/12
138 scsi4 : Compaq FibreChannel HBA Tachyon TS HPFC-5166A/1.2: WWN 500508B200193F50
139  on PCI bus 0 device 0xa0fc irq 5 IObaseL 0x3400, MEMBASE 0xc6ef8600
140 PCI bus width 32 bits, bus speed 33 MHz
141 FCP-SCSI Driver v1.3.0
142 GBIC detected: Short-wave.  LPSM 0h Monitor
143 scsi : 5 hosts.
144   Vendor: IBM       Model: DDYF-T18350R      Rev: F60K
145   Type:   Direct-Access                      ANSI SCSI revision: 03
146 Detected scsi disk sdb at scsi4, channel 0, id 0, lun 0
147   Vendor: HITACHI   Model: DK31CJ-72FC       Rev: J8A8
148   Type:   Direct-Access                      ANSI SCSI revision: 02
149 Detected scsi disk sdc at scsi4, channel 0, id 1, lun 0
150   Vendor: SEAGATE   Model: ST39102FC         Rev: 0006
151   Type:   Direct-Access                      ANSI SCSI revision: 02
152 Detected scsi disk sdd at scsi4, channel 0, id 2, lun 0
153   Vendor: SEAGATE   Model: ST39102FC         Rev: 0006
154   Type:   Direct-Access                      ANSI SCSI revision: 02
155 Detected scsi disk sde at scsi4, channel 0, id 3, lun 0
156   Vendor: SEAGATE   Model: ST39102FC         Rev: 0006
157   Type:   Direct-Access                      ANSI SCSI revision: 02
158 Detected scsi disk sdf at scsi4, channel 0, id 4, lun 0
159   Vendor: SEAGATE   Model: ST39102FC         Rev: 0006
160   Type:   Direct-Access                      ANSI SCSI revision: 02
161 Detected scsi disk sdg at scsi4, channel 0, id 5, lun 0
162   Vendor: SEAGATE   Model: ST39102FC         Rev: 0006
163   Type:   Direct-Access                      ANSI SCSI revision: 02
164 Detected scsi disk sdh at scsi4, channel 0, id 6, lun 0
165   Vendor: SEAGATE   Model: ST39102FC         Rev: 0006
166   Type:   Direct-Access                      ANSI SCSI revision: 02
167 Detected scsi disk sdi at scsi4, channel 0, id 7, lun 0
168   Vendor: COMPAQ    Model: LOGICAL VOLUME    Rev: 2.48
169   Type:   Direct-Access                      ANSI SCSI revision: 02
170 Detected scsi disk sdj at scsi4, channel 0, id 8, lun 0
171   Vendor: COMPAQ    Model: LOGICAL VOLUME    Rev: 2.48
172   Type:   Direct-Access                      ANSI SCSI revision: 02
173 Detected scsi disk sdk at scsi4, channel 0, id 8, lun 1
174   Vendor: COMPAQ    Model: LOGICAL VOLUME    Rev: 2.40
175   Type:   Direct-Access                      ANSI SCSI revision: 02
176 Detected scsi disk sdl at scsi4, channel 0, id 9, lun 0
177   Vendor: COMPAQ    Model: LOGICAL VOLUME    Rev: 2.40
178   Type:   Direct-Access                      ANSI SCSI revision: 02
179 Detected scsi disk sdm at scsi4, channel 0, id 9, lun 1
180   Vendor: COMPAQ    Model: LOGICAL VOLUME    Rev: 2.54
181   Type:   Direct-Access                      ANSI SCSI revision: 02
182 Detected scsi disk sdn at scsi4, channel 0, id 10, lun 0
183   Vendor: COMPAQ    Model: LOGICAL VOLUME    Rev: 2.54
184   Type:   Direct-Access                      ANSI SCSI revision: 02
185 Detected scsi disk sdo at scsi4, channel 0, id 11, lun 0
186   Vendor: COMPAQ    Model: LOGICAL VOLUME    Rev: 2.54
187   Type:   Direct-Access                      ANSI SCSI revision: 02
188 Detected scsi disk sdp at scsi4, channel 0, id 11, lun 1
189   Vendor: COMPAQ    Model: LOGICAL VOLUME    Rev: 2.54
190   Type:   Direct-Access                      ANSI SCSI revision: 02
191 Detected scsi disk sdq at scsi4, channel 0, id 12, lun 0
192   Vendor: COMPAQ    Model: LOGICAL VOLUME    Rev: 2.54
193   Type:   Direct-Access                      ANSI SCSI revision: 02
194 Detected scsi disk sdr at scsi4, channel 0, id 12, lun 1
195 resize_dma_pool: unknown device type 12
196 resize_dma_pool: unknown device type 12
197 SCSI device sdb: hdwr sector= 512 bytes. Sectors= 35843670 [17501 MB] [17.5 GB]
198  sdb: sdb1
199 SCSI device sdc: hdwr sector= 512 bytes. Sectors= 144410880 [70513 MB] [70.5 GB]
200  sdc: sdc1
201 SCSI device sdd: hdwr sector= 512 bytes. Sectors= 17783240 [8683 MB] [8.7 GB]
202  sdd: sdd1
203 SCSI device sde: hdwr sector= 512 bytes. Sectors= 17783240 [8683 MB] [8.7 GB]
204  sde: sde1
205 SCSI device sdf: hdwr sector= 512 bytes. Sectors= 17783240 [8683 MB] [8.7 GB]
206  sdf: sdf1
207 SCSI device sdg: hdwr sector= 512 bytes. Sectors= 17783240 [8683 MB] [8.7 GB]
208  sdg: sdg1
209 SCSI device sdh: hdwr sector= 512 bytes. Sectors= 17783240 [8683 MB] [8.7 GB]
210  sdh: sdh1
211 SCSI device sdi: hdwr sector= 512 bytes. Sectors= 17783240 [8683 MB] [8.7 GB]
212  sdi: sdi1
213 SCSI device sdj: hdwr sector= 512 bytes. Sectors= 2056160 [1003 MB] [1.0 GB]
214  sdj: sdj1
215 SCSI device sdk: hdwr sector= 512 bytes. Sectors= 2052736 [1002 MB] [1.0 GB]
216  sdk: sdk1
217 SCSI device sdl: hdwr sector= 512 bytes. Sectors= 17764320 [8673 MB] [8.7 GB]
218  sdl: sdl1
219 SCSI device sdm: hdwr sector= 512 bytes. Sectors= 8380320 [4091 MB] [4.1 GB]
220  sdm: sdm1
221 SCSI device sdn: hdwr sector= 512 bytes. Sectors= 17764320 [8673 MB] [8.7 GB]
222  sdn: sdn1
223 SCSI device sdo: hdwr sector= 512 bytes. Sectors= 17764320 [8673 MB] [8.7 GB]
224  sdo: sdo1
225 SCSI device sdp: hdwr sector= 512 bytes. Sectors= 17764320 [8673 MB] [8.7 GB]
226  sdp: sdp1
227 SCSI device sdq: hdwr sector= 512 bytes. Sectors= 2056160 [1003 MB] [1.0 GB]
228  sdq: sdq1
229 SCSI device sdr: hdwr sector= 512 bytes. Sectors= 2052736 [1002 MB] [1.0 GB]
230  sdr: sdr1
231
232 *************************
233
234 If a GBIC of type Short-wave, Long-wave, or Copper is detected, it will
235 print out; otherwise, "none" is displayed.  If the cabling is correct
236 and a loop circuit is completed, you should see "Monitor"; otherwise, 
237 "LoopFail" (on open circuit) or some LPSM number/state with bit 3 set.
238
239
240 ERRATA:
241 1. Normally, Linux Scsi queries FC devices with INQUIRY strings.  All LUNs
242 found according to INQUIRY should get READ commands at sector 0 to find
243 partition table, etc.  Older kernels only query the first 4 devices.  Some
244 Linux kernels only look for one LUN per target (i.e. FC device).
245
246 2. Physically removing a device, or a malfunctioning system which hides a
247 device, leads to a 30-second timeout and subsequent _abort call.  
248 In some process contexts, this will hang the kernel (crashing the system).
249 Single bit errors in frames and virtually all hot plugging events are 
250 gracefully handled with internal driver timer and Abort processing.
251
252 3. Some SCSI drives with error conditions will not handle the 7 second timeout
253 in this software driver, leading to infinite retries on timed out SCSI commands.
254 The 7 secs balances the need to quickly recover from lost frames (esp. on sequence
255 initiatives) and time needed by older/slower/error-state drives in responding.
256 This can be easily changed in "Exchanges[].timeOut".
257
258 4. Due to the nature of FC soft addressing, there is no assurance that the 
259 same LUNs (drives) will have the same path (e.g. /dev/sdb1) from one boot to
260 next.  Dynamic soft address changes (i.e. 24-bit FC port_id) are
261 supported during run time (e.g. due to hot plug event) by the use of WWN to
262 SCSI Nexus (channel/target/LUN) mapping.
263
264 5. Compaq RA4x00 firmware version 2.54 and later supports SSP (Selective 
265 Storage Presentation), which maps LUNs to a WWN.  If RA4x00 firmware prior
266 2.54 (e.g. older controller) is used, or the FC HBA is replaced (another WWN
267 is used), logical volumes on the RA4x00 will no longer be visible.
268
269
270 Send questions/comments to:
271 Amy Vanzant-Hodge (fibrechannel@compaq.com)
272