aic79xx.txt 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516
  1. ====================================================================
  2. = Adaptec Ultra320 Family Manager Set v1.3.11 =
  3. = =
  4. = README for =
  5. = The Linux Operating System =
  6. ====================================================================
  7. The following information is available in this file:
  8. 1. Supported Hardware
  9. 2. Version History
  10. 3. Command Line Options
  11. 4. Additional Notes
  12. 5. Contacting Adaptec
  13. 1. Supported Hardware
  14. The following Adaptec SCSI Host Adapters are supported by this
  15. driver set.
  16. Ultra320 ASIC Description
  17. ----------------------------------------------------------------
  18. AIC-7901A Single Channel 64-bit PCI-X 133MHz to
  19. Ultra320 SCSI ASIC
  20. AIC-7901B Single Channel 64-bit PCI-X 133MHz to
  21. Ultra320 SCSI ASIC with Retained Training
  22. AIC-7902A4 Dual Channel 64-bit PCI-X 133MHz to
  23. Ultra320 SCSI ASIC
  24. AIC-7902B Dual Channel 64-bit PCI-X 133MHz to
  25. Ultra320 SCSI ASIC with Retained Training
  26. Ultra320 Adapters Description ASIC
  27. --------------------------------------------------------------------------
  28. Adaptec SCSI Card 39320 Dual Channel 64-bit PCI-X 133MHz to 7902A4/7902B
  29. Ultra320 SCSI Card (one external
  30. 68-pin, two internal 68-pin)
  31. Adaptec SCSI Card 39320A Dual Channel 64-bit PCI-X 133MHz to 7902B
  32. Ultra320 SCSI Card (one external
  33. 68-pin, two internal 68-pin)
  34. Adaptec SCSI Card 39320D Dual Channel 64-bit PCI-X 133MHz to 7902A4
  35. Ultra320 SCSI Card (two external VHDC
  36. and one internal 68-pin)
  37. Adaptec SCSI Card 39320D Dual Channel 64-bit PCI-X 133MHz to 7902A4
  38. Ultra320 SCSI Card (two external VHDC
  39. and one internal 68-pin) based on the
  40. AIC-7902B ASIC
  41. Adaptec SCSI Card 29320 Single Channel 64-bit PCI-X 133MHz to 7901A
  42. Ultra320 SCSI Card (one external
  43. 68-pin, two internal 68-pin, one
  44. internal 50-pin)
  45. Adaptec SCSI Card 29320A Single Channel 64-bit PCI-X 133MHz to 7901B
  46. Ultra320 SCSI Card (one external
  47. 68-pin, two internal 68-pin, one
  48. internal 50-pin)
  49. Adaptec SCSI Card 29320LP Single Channel 64-bit Low Profile 7901A
  50. PCI-X 133MHz to Ultra320 SCSI Card
  51. (One external VHDC, one internal
  52. 68-pin)
  53. Adaptec SCSI Card 29320ALP Single Channel 64-bit Low Profile 7901B
  54. PCI-X 133MHz to Ultra320 SCSI Card
  55. (One external VHDC, one internal
  56. 68-pin)
  57. 2. Version History
  58. 1.3.11 (July 11, 2003)
  59. - Fix several deadlock issues.
  60. - Add 29320ALP and 39320B Id's.
  61. 1.3.10 (June 3rd, 2003)
  62. - Align the SCB_TAG field on a 16byte boundary. This avoids
  63. SCB corruption on some PCI-33 busses.
  64. - Correct non-zero luns on Rev B. hardware.
  65. - Update for change in 2.5.X SCSI proc FS interface.
  66. - When negotiation async via an 8bit WDTR message, send
  67. an SDTR with an offset of 0 to be sure the target
  68. knows we are async. This works around a firmware defect
  69. in the Quantum Atlas 10K.
  70. - Implement controller susupend and resume.
  71. - Clear PCI error state during driver attach so that we
  72. don't disable memory mapped I/O due to a stray write
  73. by some other driver probe that occurred before we
  74. claimed the controller.
  75. 1.3.9 (May 22nd, 2003)
  76. - Fix compiler errors.
  77. - Remove S/G splitting for segments that cross a 4GB boundary.
  78. This is guaranteed not to happen in Linux.
  79. - Add support for scsi_report_device_reset() found in
  80. 2.5.X kernels.
  81. - Add 7901B support.
  82. - Simplify handling of the packtized lun Rev A workaround.
  83. - Correct and simplify handling of the ignore wide residue
  84. message. The previous code would fail to report a residual
  85. if the transaction data length was even and we received
  86. an IWR message.
  87. 1.3.8 (April 29th, 2003)
  88. - Fix types accessed via the command line interface code.
  89. - Perform a few firmware optimizations.
  90. - Fix "Unexpected PKT busfree" errors.
  91. - Use a sequencer interrupt to notify the host of
  92. commands with bad status. We defer the notification
  93. until there are no outstanding selections to ensure
  94. that the host is interrupted for as short a time as
  95. possible.
  96. - Remove pre-2.2.X support.
  97. - Add support for new 2.5.X interrupt API.
  98. - Correct big-endian architecture support.
  99. 1.3.7 (April 16th, 2003)
  100. - Use del_timer_sync() to ensure that no timeouts
  101. are pending during controller shutdown.
  102. - For pre-2.5.X kernels, carefully adjust our segment
  103. list size to avoid SCSI malloc pool fragmentation.
  104. - Cleanup channel display in our /proc output.
  105. - Workaround duplicate device entries in the mid-layer
  106. devlice list during add-single-device.
  107. 1.3.6 (March 28th, 2003)
  108. - Correct a double free in the Domain Validation code.
  109. - Correct a reference to free'ed memory during controller
  110. shutdown.
  111. - Reset the bus on an SE->LVD change. This is required
  112. to reset our transcievers.
  113. 1.3.5 (March 24th, 2003)
  114. - Fix a few register window mode bugs.
  115. - Include read streaming in the PPR flags we display in
  116. diagnostics as well as /proc.
  117. - Add PCI hot plug support for 2.5.X kernels.
  118. - Correct default precompensation value for RevA hardware.
  119. - Fix Domain Validation thread shutdown.
  120. - Add a firmware workaround to make the LED blink
  121. brighter during packetized operations on the H2A4.
  122. - Correct /proc display of user read streaming settings.
  123. - Simplify driver locking by releasing the io_request_lock
  124. upon driver entry from the mid-layer.
  125. - Cleanup command line parsing and move much of this code
  126. to aiclib.
  127. 1.3.4 (February 28th, 2003)
  128. - Correct a race condition in our error recovery handler.
  129. - Allow Test Unit Ready commands to take a full 5 seconds
  130. during Domain Validation.
  131. 1.3.2 (February 19th, 2003)
  132. - Correct a Rev B. regression due to the GEM318
  133. compatibility fix included in 1.3.1.
  134. 1.3.1 (February 11th, 2003)
  135. - Add support for the 39320A.
  136. - Improve recovery for certain PCI-X errors.
  137. - Fix handling of LQ/DATA/LQ/DATA for the
  138. same write transaction that can occur without
  139. interveining training.
  140. - Correct compatibility issues with the GEM318
  141. enclosure services device.
  142. - Correct data corruption issue that occurred under
  143. high tag depth write loads.
  144. - Adapt to a change in the 2.5.X daemonize() API.
  145. - Correct a "Missing case in ahd_handle_scsiint" panic.
  146. 1.3.0 (January 21st, 2003)
  147. - Full regression testing for all U320 products completed.
  148. - Added abort and target/lun reset error recovery handler and
  149. interrupt coalessing.
  150. 1.2.0 (November 14th, 2002)
  151. - Added support for Domain Validation
  152. - Add support for the Hewlett-Packard version of the 39320D
  153. and AIC-7902 adapters.
  154. Support for previous adapters has not been fully tested and should
  155. only be used at the customer's own risk.
  156. 1.1.1 (September 24th, 2002)
  157. - Added support for the Linux 2.5.X kernel series
  158. 1.1.0 (September 17th, 2002)
  159. - Added support for four additional SCSI products:
  160. ASC-39320, ASC-29320, ASC-29320LP, AIC-7901.
  161. 1.0.0 (May 30th, 2002)
  162. - Initial driver release.
  163. 2.1. Software/Hardware Features
  164. - Support for the SPI-4 "Ultra320" standard:
  165. - 320MB/s transfer rates
  166. - Packetized SCSI Protocol at 160MB/s and 320MB/s
  167. - Quick Arbitration Selection (QAS)
  168. - Retained Training Information (Rev B. ASIC only)
  169. - Interrupt Coalessing
  170. - Initiator Mode (target mode not currently
  171. supported)
  172. - Support for the PCI-X standard up to 133MHz
  173. - Support for the PCI v2.2 standard
  174. - Domain Validation
  175. 2.2. Operating System Support:
  176. - Redhat Linux 7.2, 7.3, 8.0, Advanced Server 2.1
  177. - SuSE Linux 7.3, 8.0, 8.1, Enterprise Server 7
  178. - only Intel and AMD x86 supported at this time
  179. - >4GB memory configurations supported.
  180. Refer to the User's Guide for more details on this.
  181. 3. Command Line Options
  182. WARNING: ALTERING OR ADDING THESE DRIVER PARAMETERS
  183. INCORRECTLY CAN RENDER YOUR SYSTEM INOPERABLE.
  184. USE THEM WITH CAUTION.
  185. Edit the file "modprobe.conf" in the directory /etc and add/edit a
  186. line containing 'options aic79xx aic79xx=[command[,command...]]' where
  187. 'command' is one or more of the following:
  188. -----------------------------------------------------------------
  189. Option: verbose
  190. Definition: enable additional informative messages during
  191. driver operation.
  192. Possible Values: This option is a flag
  193. Default Value: disabled
  194. -----------------------------------------------------------------
  195. Option: debug:[value]
  196. Definition: Enables various levels of debugging information
  197. The bit definitions for the debugging mask can
  198. be found in drivers/scsi/aic7xxx/aic79xx.h under
  199. the "Debug" heading.
  200. Possible Values: 0x0000 = no debugging, 0xffff = full debugging
  201. Default Value: 0x0000
  202. -----------------------------------------------------------------
  203. Option: no_reset
  204. Definition: Do not reset the bus during the initial probe
  205. phase
  206. Possible Values: This option is a flag
  207. Default Value: disabled
  208. -----------------------------------------------------------------
  209. Option: extended
  210. Definition: Force extended translation on the controller
  211. Possible Values: This option is a flag
  212. Default Value: disabled
  213. -----------------------------------------------------------------
  214. Option: periodic_otag
  215. Definition: Send an ordered tag periodically to prevent
  216. tag starvation. Needed for some older devices
  217. Possible Values: This option is a flag
  218. Default Value: disabled
  219. -----------------------------------------------------------------
  220. Option: reverse_scan
  221. Definition: Probe the scsi bus in reverse order, starting
  222. with target 15
  223. Possible Values: This option is a flag
  224. Default Value: disabled
  225. -----------------------------------------------------------------
  226. Option: global_tag_depth
  227. Definition: Global tag depth for all targets on all busses.
  228. This option sets the default tag depth which
  229. may be selectively overridden vi the tag_info
  230. option.
  231. Possible Values: 1 - 253
  232. Default Value: 32
  233. -----------------------------------------------------------------
  234. Option: tag_info:{{value[,value...]}[,{value[,value...]}...]}
  235. Definition: Set the per-target tagged queue depth on a
  236. per controller basis. Both controllers and targets
  237. may be ommitted indicating that they should retain
  238. the default tag depth.
  239. Examples: tag_info:{{16,32,32,64,8,8,,32,32,32,32,32,32,32,32,32}
  240. On Controller 0
  241. specifies a tag depth of 16 for target 0
  242. specifies a tag depth of 64 for target 3
  243. specifies a tag depth of 8 for targets 4 and 5
  244. leaves target 6 at the default
  245. specifies a tag depth of 32 for targets 1,2,7-15
  246. All other targets retain the default depth.
  247. tag_info:{{},{32,,32}}
  248. On Controller 1
  249. specifies a tag depth of 32 for targets 0 and 2
  250. All other targets retain the default depth.
  251. Possible Values: 1 - 253
  252. Default Value: 32
  253. -----------------------------------------------------------------
  254. Option: rd_strm: {rd_strm_bitmask[,rd_strm_bitmask...]}
  255. Definition: Enable read streaming on a per target basis.
  256. The rd_strm_bitmask is a 16 bit hex value in which
  257. each bit represents a target. Setting the target's
  258. bit to '1' enables read streaming for that
  259. target. Controllers may be ommitted indicating that
  260. they should retain the default read streaming setting.
  261. Example: rd_strm:{0x0041}
  262. On Controller 0
  263. enables read streaming for targets 0 and 6.
  264. disables read streaming for targets 1-5,7-15.
  265. All other targets retain the default read
  266. streaming setting.
  267. Example: rd_strm:{0x0023,,0xFFFF}
  268. On Controller 0
  269. enables read streaming for targets 1,2, and 5.
  270. disables read streaming for targets 3,4,6-15.
  271. On Controller 2
  272. enables read streaming for all targets.
  273. All other targets retain the default read
  274. streaming setting.
  275. Possible Values: 0x0000 - 0xffff
  276. Default Value: 0x0000
  277. -----------------------------------------------------------------
  278. Option: dv: {value[,value...]}
  279. Definition: Set Domain Validation Policy on a per-controller basis.
  280. Controllers may be ommitted indicating that
  281. they should retain the default read streaming setting.
  282. Example: dv:{-1,0,,1,1,0}
  283. On Controller 0 leave DV at its default setting.
  284. On Controller 1 disable DV.
  285. Skip configuration on Controller 2.
  286. On Controllers 3 and 4 enable DV.
  287. On Controller 5 disable DV.
  288. Possible Values: < 0 Use setting from serial EEPROM.
  289. 0 Disable DV
  290. > 0 Enable DV
  291. Default Value: DV Serial EEPROM configuration setting.
  292. -----------------------------------------------------------------
  293. Option: seltime:[value]
  294. Definition: Specifies the selection timeout value
  295. Possible Values: 0 = 256ms, 1 = 128ms, 2 = 64ms, 3 = 32ms
  296. Default Value: 0
  297. -----------------------------------------------------------------
  298. *** The following three options should only be changed at ***
  299. *** the direction of a technical support representative. ***
  300. -----------------------------------------------------------------
  301. Option: precomp: {value[,value...]}
  302. Definition: Set IO Cell precompensation value on a per-controller
  303. basis.
  304. Controllers may be ommitted indicating that
  305. they should retain the default precompensation setting.
  306. Example: precomp:{0x1}
  307. On Controller 0 set precompensation to 1.
  308. Example: precomp:{1,,7}
  309. On Controller 0 set precompensation to 1.
  310. On Controller 2 set precompensation to 8.
  311. Possible Values: 0 - 7
  312. Default Value: Varies based on chip revision
  313. -----------------------------------------------------------------
  314. Option: slewrate: {value[,value...]}
  315. Definition: Set IO Cell slew rate on a per-controller basis.
  316. Controllers may be ommitted indicating that
  317. they should retain the default slew rate setting.
  318. Example: slewrate:{0x1}
  319. On Controller 0 set slew rate to 1.
  320. Example: slewrate :{1,,8}
  321. On Controller 0 set slew rate to 1.
  322. On Controller 2 set slew rate to 8.
  323. Possible Values: 0 - 15
  324. Default Value: Varies based on chip revision
  325. -----------------------------------------------------------------
  326. Option: amplitude: {value[,value...]}
  327. Definition: Set IO Cell signal amplitude on a per-controller basis.
  328. Controllers may be ommitted indicating that
  329. they should retain the default read streaming setting.
  330. Example: amplitude:{0x1}
  331. On Controller 0 set amplitude to 1.
  332. Example: amplitude :{1,,7}
  333. On Controller 0 set amplitude to 1.
  334. On Controller 2 set amplitude to 7.
  335. Possible Values: 1 - 7
  336. Default Value: Varies based on chip revision
  337. -----------------------------------------------------------------
  338. Example: 'options aic79xx aic79xx=verbose,rd_strm:{{0x0041}}'
  339. enables verbose output in the driver and turns read streaming on
  340. for targets 0 and 6 of Controller 0.
  341. 4. Additional Notes
  342. 4.1. Known/Unresolved or FYI Issues
  343. * Under SuSE Linux Enterprise 7, the driver may fail to operate
  344. correctly due to a problem with PCI interrupt routing in the
  345. Linux kernel. Please contact SuSE for an updated Linux
  346. kernel.
  347. 4.2. Third-Party Compatibility Issues
  348. * Adaptec only supports Ultra320 hard drives running
  349. the latest firmware available. Please check with
  350. your hard drive manufacturer to ensure you have the
  351. latest version.
  352. 4.3. Operating System or Technology Limitations
  353. * PCI Hot Plug is untested and may cause the operating system
  354. to stop responding.
  355. * Luns that are not numbered contiguously starting with 0 might not
  356. be automatically probed during system startup. This is a limitation
  357. of the OS. Please contact your Linux vendor for instructions on
  358. manually probing non-contiguous luns.
  359. * Using the Driver Update Disk version of this package during OS
  360. installation under RedHat might result in two versions of this
  361. driver being installed into the system module directory. This
  362. might cause problems with the /sbin/mkinitrd program and/or
  363. other RPM packages that try to install system modules. The best
  364. way to correct this once the system is running is to install
  365. the latest RPM package version of this driver, available from
  366. http://www.adaptec.com.
  367. 5. Contacting Adaptec
  368. A Technical Support Identification (TSID) Number is required for
  369. Adaptec technical support.
  370. - The 12-digit TSID can be found on the white barcode-type label
  371. included inside the box with your product. The TSID helps us
  372. provide more efficient service by accurately identifying your
  373. product and support status.
  374. Support Options
  375. - Search the Adaptec Support Knowledgebase (ASK) at
  376. http://ask.adaptec.com for articles, troubleshooting tips, and
  377. frequently asked questions for your product.
  378. - For support via Email, submit your question to Adaptec's
  379. Technical Support Specialists at http://ask.adaptec.com.
  380. North America
  381. - Visit our Web site at http://www.adaptec.com.
  382. - To speak with a Fibre Channel/RAID/External Storage Technical
  383. Support Specialist, call 1-321-207-2000,
  384. Hours: Monday-Friday, 3:00 A.M. to 5:00 P.M., PST.
  385. (Not open on holidays)
  386. - For Technical Support in all other technologies including
  387. SCSI, call 1-408-934-7274,
  388. Hours: Monday-Friday, 6:00 A.M. to 5:00 P.M., PST.
  389. (Not open on holidays)
  390. - For after hours support, call 1-800-416-8066 ($99/call,
  391. $149/call on holidays)
  392. - To order Adaptec products including software and cables, call
  393. 1-800-442-7274 or 1-408-957-7274. You can also visit our
  394. online store at http://www.adaptecstore.com
  395. Europe
  396. - Visit our Web site at http://www.adaptec-europe.com.
  397. - English and French: To speak with a Technical Support
  398. Specialist, call one of the following numbers:
  399. - English: +32-2-352-3470
  400. - French: +32-2-352-3460
  401. Hours: Monday-Thursday, 10:00 to 12:30, 13:30 to 17:30 CET
  402. Friday, 10:00 to 12:30, 13:30 to 16:30 CET
  403. - German: To speak with a Technical Support Specialist,
  404. call +49-89-456-40660
  405. Hours: Monday-Thursday, 09:30 to 12:30, 13:30 to 16:30 CET
  406. Friday, 09:30 to 12:30, 13:30 to 15:00 CET
  407. - To order Adaptec products, including accessories and cables:
  408. - UK: +0800-96-65-26 or fax +0800-731-02-95
  409. - Other European countries: +32-11-300-379
  410. Australia and New Zealand
  411. - Visit our Web site at http://www.adaptec.com.au.
  412. - To speak with a Technical Support Specialist, call
  413. +612-9416-0698
  414. Hours: Monday-Friday, 10:00 A.M. to 4:30 P.M., EAT
  415. (Not open on holidays)
  416. Japan
  417. - To speak with a Technical Support Specialist, call
  418. +81-3-5308-6120
  419. Hours: Monday-Friday, 9:00 a.m. to 12:00 p.m., 1:00 p.m. to
  420. 6:00 p.m. TSC
  421. Hong Kong and China
  422. - To speak with a Technical Support Specialist, call
  423. +852-2869-7200
  424. Hours: Monday-Friday, 10:00 to 17:00.
  425. - Fax Technical Support at +852-2869-7100.
  426. Singapore
  427. - To speak with a Technical Support Specialist, call
  428. +65-245-7470
  429. Hours: Monday-Friday, 10:00 to 17:00.
  430. - Fax Technical Support at +852-2869-7100
  431. -------------------------------------------------------------------
  432. /*
  433. * Copyright (c) 2003 Adaptec Inc. 691 S. Milpitas Blvd., Milpitas CA 95035 USA.
  434. * All rights reserved.
  435. *
  436. * You are permitted to redistribute, use and modify this README file in whole
  437. * or in part in conjunction with redistribution of software governed by the
  438. * General Public License, provided that the following conditions are met:
  439. * 1. Redistributions of README file must retain the above copyright
  440. * notice, this list of conditions, and the following disclaimer,
  441. * without modification.
  442. * 2. The name of the author may not be used to endorse or promote products
  443. * derived from this software without specific prior written permission.
  444. * 3. Modifications or new contributions must be attributed in a copyright
  445. * notice identifying the author ("Contributor") and added below the
  446. * original copyright notice. The copyright notice is for purposes of
  447. * identifying contributors and should not be deemed as permission to alter
  448. * the permissions given by Adaptec.
  449. *
  450. * THIS README FILE IS PROVIDED BY ADAPTEC AND CONTRIBUTORS ``AS IS'' AND
  451. * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, ANY
  452. * WARRANTIES OF NON-INFRINGEMENT OR THE IMPLIED WARRANTIES OF MERCHANTABILITY
  453. * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
  454. * ADAPTEC OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  455. * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
  456. * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
  457. * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
  458. * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
  459. * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS README
  460. * FILE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  461. */