aic79xx.rst 21 KB

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