]>
Commit | Line | Data |
---|---|---|
1da177e4 LT |
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 |