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