cpqfc.txt 12 KB

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