1Notes for CPQFCTS driver for Compaq Tachyon TS 2Fibre Channel Host Bus Adapter, PCI 64-bit, 66MHz 3for Linux (RH 6.1, 6.2 kernel 2.2.12-32, 2.2.14-5) 4SMP tested 5Tested in single and dual HBA configuration, 32 and 64bit busses, 633 and 66MHz. Only supports FC-AL. 7SEST size 512 Exchanges (simultaneous I/Os) limited by module kmalloc() 8 max of 128k bytes contiguous. 9 10Ver 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 16Ver 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 25Ver 2.1.2 Jul 22, 2002 26 * initialize DumCmnd.lun (used as LUN index in fcFindLoggedInPort()) 27 28Ver 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 35Ver 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 41Ver 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 45Ver 2.0.1 May 7, 2001 46 Merged version 1.3.6 fixes into version 2.0.0. 47 48Ver 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 57Ver 1.3.4 Sep 7, 2000 58 Added Modinfo information 59 Fixed problem with statically linking the driver 60 61Ver 1.3.3, Aug 23, 2000 62 Fixed device/function number in ioctl 63 64Ver 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 69Tested 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) 89using "qa_test" (esp. io_test script) suite modified from Unix tests. 90 91Installation: 92copy file cpqfcTS.patch to /usr/src/linux 93patch -p1 < cpqfcTS.patch 94make menuconfig 95 (select SCSI low-level, Compaq FC HBA) 96make dep 97make modules 98make modules_install 99 100e.g. insmod -f cpqfc 101 102Due to Fabric/switch delays, driver requires 4 seconds 103to initialize. If adapters are found, there will be a entries at 104/proc/scsi/cpqfcTS/* 105 106sample 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 112Allocating 119808 for 576 Exchanges @ c0dc0000 113Allocating 112904 for LinkQ @ c0c20000 (576 elements) 114Allocating 110600 for TachSEST for 512 Exchanges 115 cpqfcTS: writing IMQ BASE 7C0000h PI 7C4000h 116 cpqfcTS: SEST c0e40000(virt): Wrote base E40000h @ c887e740 117cpqfcTS: New FC port 0000E8h WWN: 500507650642499D SCSI Chan/Trgt 0/0 118cpqfcTS: New FC port 0000EFh WWN: 50000E100000D5A6 SCSI Chan/Trgt 0/1 119cpqfcTS: New FC port 0000E4h WWN: 21000020370097BB SCSI Chan/Trgt 0/2 120cpqfcTS: New FC port 0000E2h WWN: 2100002037009946 SCSI Chan/Trgt 0/3 121cpqfcTS: New FC port 0000E1h WWN: 21000020370098FE SCSI Chan/Trgt 0/4 122cpqfcTS: New FC port 0000E0h WWN: 21000020370097B2 SCSI Chan/Trgt 0/5 123cpqfcTS: New FC port 0000DCh WWN: 2100002037006CC1 SCSI Chan/Trgt 0/6 124cpqfcTS: New FC port 0000DAh WWN: 21000020370059F6 SCSI Chan/Trgt 0/7 125cpqfcTS: New FC port 00000Fh WWN: 500805F1FADB0E20 SCSI Chan/Trgt 0/8 126cpqfcTS: New FC port 000008h WWN: 500805F1FADB0EBA SCSI Chan/Trgt 0/9 127cpqfcTS: New FC port 000004h WWN: 500805F1FADB1EB9 SCSI Chan/Trgt 0/10 128cpqfcTS: New FC port 000002h WWN: 500805F1FADB1ADE SCSI Chan/Trgt 0/11 129cpqfcTS: New FC port 000001h WWN: 500805F1FADBA2CA SCSI Chan/Trgt 0/12 130scsi4 : Compaq FibreChannel HBA Tachyon TS HPFC-5166A/1.2: WWN 500508B200193F50 131 on PCI bus 0 device 0xa0fc irq 5 IObaseL 0x3400, MEMBASE 0xc6ef8600 132PCI bus width 32 bits, bus speed 33 MHz 133FCP-SCSI Driver v1.3.0 134GBIC detected: Short-wave. LPSM 0h Monitor 135scsi : 5 hosts. 136 Vendor: IBM Model: DDYF-T18350R Rev: F60K 137 Type: Direct-Access ANSI SCSI revision: 03 138Detected 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 141Detected 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 144Detected 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 147Detected 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 150Detected 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 153Detected 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 156Detected 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 159Detected 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 162Detected 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 165Detected 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 168Detected 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 171Detected 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 174Detected 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 177Detected 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 180Detected 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 183Detected 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 186Detected scsi disk sdr at scsi4, channel 0, id 12, lun 1 187resize_dma_pool: unknown device type 12 188resize_dma_pool: unknown device type 12 189SCSI device sdb: hdwr sector= 512 bytes. Sectors= 35843670 [17501 MB] [17.5 GB] 190 sdb: sdb1 191SCSI device sdc: hdwr sector= 512 bytes. Sectors= 144410880 [70513 MB] [70.5 GB] 192 sdc: sdc1 193SCSI device sdd: hdwr sector= 512 bytes. Sectors= 17783240 [8683 MB] [8.7 GB] 194 sdd: sdd1 195SCSI device sde: hdwr sector= 512 bytes. Sectors= 17783240 [8683 MB] [8.7 GB] 196 sde: sde1 197SCSI device sdf: hdwr sector= 512 bytes. Sectors= 17783240 [8683 MB] [8.7 GB] 198 sdf: sdf1 199SCSI device sdg: hdwr sector= 512 bytes. Sectors= 17783240 [8683 MB] [8.7 GB] 200 sdg: sdg1 201SCSI device sdh: hdwr sector= 512 bytes. Sectors= 17783240 [8683 MB] [8.7 GB] 202 sdh: sdh1 203SCSI device sdi: hdwr sector= 512 bytes. Sectors= 17783240 [8683 MB] [8.7 GB] 204 sdi: sdi1 205SCSI device sdj: hdwr sector= 512 bytes. Sectors= 2056160 [1003 MB] [1.0 GB] 206 sdj: sdj1 207SCSI device sdk: hdwr sector= 512 bytes. Sectors= 2052736 [1002 MB] [1.0 GB] 208 sdk: sdk1 209SCSI device sdl: hdwr sector= 512 bytes. Sectors= 17764320 [8673 MB] [8.7 GB] 210 sdl: sdl1 211SCSI device sdm: hdwr sector= 512 bytes. Sectors= 8380320 [4091 MB] [4.1 GB] 212 sdm: sdm1 213SCSI device sdn: hdwr sector= 512 bytes. Sectors= 17764320 [8673 MB] [8.7 GB] 214 sdn: sdn1 215SCSI device sdo: hdwr sector= 512 bytes. Sectors= 17764320 [8673 MB] [8.7 GB] 216 sdo: sdo1 217SCSI device sdp: hdwr sector= 512 bytes. Sectors= 17764320 [8673 MB] [8.7 GB] 218 sdp: sdp1 219SCSI device sdq: hdwr sector= 512 bytes. Sectors= 2056160 [1003 MB] [1.0 GB] 220 sdq: sdq1 221SCSI device sdr: hdwr sector= 512 bytes. Sectors= 2052736 [1002 MB] [1.0 GB] 222 sdr: sdr1 223 224************************* 225 226If a GBIC of type Short-wave, Long-wave, or Copper is detected, it will 227print out; otherwise, "none" is displayed. If the cabling is correct 228and 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 232ERRATA: 2331. Normally, Linux Scsi queries FC devices with INQUIRY strings. All LUNs 234found according to INQUIRY should get READ commands at sector 0 to find 235partition table, etc. Older kernels only query the first 4 devices. Some 236Linux kernels only look for one LUN per target (i.e. FC device). 237 2382. Physically removing a device, or a malfunctioning system which hides a 239device, leads to a 30-second timeout and subsequent _abort call. 240In some process contexts, this will hang the kernel (crashing the system). 241Single bit errors in frames and virtually all hot plugging events are 242gracefully handled with internal driver timer and Abort processing. 243 2443. Some SCSI drives with error conditions will not handle the 7 second timeout 245in this software driver, leading to infinite retries on timed out SCSI commands. 246The 7 secs balances the need to quickly recover from lost frames (esp. on sequence 247initiatives) and time needed by older/slower/error-state drives in responding. 248This can be easily changed in "Exchanges[].timeOut". 249 2504. Due to the nature of FC soft addressing, there is no assurance that the 251same LUNs (drives) will have the same path (e.g. /dev/sdb1) from one boot to 252next. Dynamic soft address changes (i.e. 24-bit FC port_id) are 253supported during run time (e.g. due to hot plug event) by the use of WWN to 254SCSI Nexus (channel/target/LUN) mapping. 255 2565. Compaq RA4x00 firmware version 2.54 and later supports SSP (Selective 257Storage Presentation), which maps LUNs to a WWN. If RA4x00 firmware prior 2582.54 (e.g. older controller) is used, or the FC HBA is replaced (another WWN 259is used), logical volumes on the RA4x00 will no longer be visible. 260 261 262Send questions/comments to: 263Amy Vanzant-Hodge (fibrechannel@compaq.com) 264 265