594 lines · plain
1.. SPDX-License-Identifier: GPL-2.02.. include:: <isonum.txt>3 4===================================5Adaptec Ultra320 Family Manager Set6===================================7 8README for The Linux Operating System9 10.. The following information is available in this file:11 12 1. Supported Hardware13 2. Version History14 3. Command Line Options15 4. Additional Notes16 5. Contacting Adaptec17 18 191. Supported Hardware20=====================21 22 The following Adaptec SCSI Host Adapters are supported by this23 driver set.24 25 ============= =========================================26 Ultra320 ASIC Description27 ============= =========================================28 AIC-7901A Single Channel 64-bit PCI-X 133MHz to29 Ultra320 SCSI ASIC30 AIC-7901B Single Channel 64-bit PCI-X 133MHz to31 Ultra320 SCSI ASIC with Retained Training32 AIC-7902A4 Dual Channel 64-bit PCI-X 133MHz to33 Ultra320 SCSI ASIC34 AIC-7902B Dual Channel 64-bit PCI-X 133MHz to35 Ultra320 SCSI ASIC with Retained Training36 ============= =========================================37 38 ========================== ===================================== ============39 Ultra320 Adapters Description ASIC40 ========================== ===================================== ============41 Adaptec SCSI Card 39320 Dual Channel 64-bit PCI-X 133MHz to 7902A4/7902B42 Ultra320 SCSI Card (one external43 68-pin, two internal 68-pin)44 Adaptec SCSI Card 39320A Dual Channel 64-bit PCI-X 133MHz to 7902B45 Ultra320 SCSI Card (one external46 68-pin, two internal 68-pin)47 Adaptec SCSI Card 39320D Dual Channel 64-bit PCI-X 133MHz to 7902A448 Ultra320 SCSI Card (two external VHDC49 and one internal 68-pin)50 Adaptec SCSI Card 39320D Dual Channel 64-bit PCI-X 133MHz to 7902A451 Ultra320 SCSI Card (two external VHDC52 and one internal 68-pin) based on the53 AIC-7902B ASIC54 Adaptec SCSI Card 29320 Single Channel 64-bit PCI-X 133MHz to 7901A55 Ultra320 SCSI Card (one external56 68-pin, two internal 68-pin, one57 internal 50-pin)58 Adaptec SCSI Card 29320A Single Channel 64-bit PCI-X 133MHz to 7901B59 Ultra320 SCSI Card (one external60 68-pin, two internal 68-pin, one61 internal 50-pin)62 Adaptec SCSI Card 29320LP Single Channel 64-bit Low Profile 7901A63 PCI-X 133MHz to Ultra320 SCSI Card64 (One external VHDC, one internal65 68-pin)66 Adaptec SCSI Card 29320ALP Single Channel 64-bit Low Profile 7901B67 PCI-X 133MHz to Ultra320 SCSI Card68 (One external VHDC, one internal69 68-pin)70 ========================== ===================================== ============71 722. Version History73==================74 75 76 * 3.0 (December 1st, 2005)77 - Updated driver to use SCSI transport class infrastructure78 - Upported sequencer and core fixes from adaptec released79 version 2.0.15 of the driver.80 81 * 1.3.11 (July 11, 2003)82 - Fix several deadlock issues.83 - Add 29320ALP and 39320B Id's.84 85 * 1.3.10 (June 3rd, 2003)86 - Align the SCB_TAG field on a 16byte boundary. This avoids87 SCB corruption on some PCI-33 busses.88 - Correct non-zero luns on Rev B. hardware.89 - Update for change in 2.5.X SCSI proc FS interface.90 - When negotiation async via an 8bit WDTR message, send91 an SDTR with an offset of 0 to be sure the target92 knows we are async. This works around a firmware defect93 in the Quantum Atlas 10K.94 - Implement controller suspend and resume.95 - Clear PCI error state during driver attach so that we96 don't disable memory mapped I/O due to a stray write97 by some other driver probe that occurred before we98 claimed the controller.99 100 * 1.3.9 (May 22nd, 2003)101 - Fix compiler errors.102 - Remove S/G splitting for segments that cross a 4GB boundary.103 This is guaranteed not to happen in Linux.104 - Add support for scsi_report_device_reset() found in105 2.5.X kernels.106 - Add 7901B support.107 - Simplify handling of the packetized lun Rev A workaround.108 - Correct and simplify handling of the ignore wide residue109 message. The previous code would fail to report a residual110 if the transaction data length was even and we received111 an IWR message.112 113 * 1.3.8 (April 29th, 2003)114 - Fix types accessed via the command line interface code.115 - Perform a few firmware optimizations.116 - Fix "Unexpected PKT busfree" errors.117 - Use a sequencer interrupt to notify the host of118 commands with bad status. We defer the notification119 until there are no outstanding selections to ensure120 that the host is interrupted for as short a time as121 possible.122 - Remove pre-2.2.X support.123 - Add support for new 2.5.X interrupt API.124 - Correct big-endian architecture support.125 126 * 1.3.7 (April 16th, 2003)127 - Use del_timer_sync() to ensure that no timeouts128 are pending during controller shutdown.129 - For pre-2.5.X kernels, carefully adjust our segment130 list size to avoid SCSI malloc pool fragmentation.131 - Cleanup channel display in our /proc output.132 - Workaround duplicate device entries in the mid-layer133 device list during add-single-device.134 135 * 1.3.6 (March 28th, 2003)136 - Correct a double free in the Domain Validation code.137 - Correct a reference to free'ed memory during controller138 shutdown.139 - Reset the bus on an SE->LVD change. This is required140 to reset our transceivers.141 142 * 1.3.5 (March 24th, 2003)143 - Fix a few register window mode bugs.144 - Include read streaming in the PPR flags we display in145 diagnostics as well as /proc.146 - Add PCI hot plug support for 2.5.X kernels.147 - Correct default precompensation value for RevA hardware.148 - Fix Domain Validation thread shutdown.149 - Add a firmware workaround to make the LED blink150 brighter during packetized operations on the H2A4.151 - Correct /proc display of user read streaming settings.152 - Simplify driver locking by releasing the io_request_lock153 upon driver entry from the mid-layer.154 - Cleanup command line parsing and move much of this code155 to aiclib.156 157 * 1.3.4 (February 28th, 2003)158 - Correct a race condition in our error recovery handler.159 - Allow Test Unit Ready commands to take a full 5 seconds160 during Domain Validation.161 162 * 1.3.2 (February 19th, 2003)163 - Correct a Rev B. regression due to the GEM318164 compatibility fix included in 1.3.1.165 166 * 1.3.1 (February 11th, 2003)167 - Add support for the 39320A.168 - Improve recovery for certain PCI-X errors.169 - Fix handling of LQ/DATA/LQ/DATA for the170 same write transaction that can occur without171 interveining training.172 - Correct compatibility issues with the GEM318173 enclosure services device.174 - Correct data corruption issue that occurred under175 high tag depth write loads.176 - Adapt to a change in the 2.5.X daemonize() API.177 - Correct a "Missing case in ahd_handle_scsiint" panic.178 179 * 1.3.0 (January 21st, 2003)180 - Full regression testing for all U320 products completed.181 - Added abort and target/lun reset error recovery handler and182 interrupt coalescing.183 184 * 1.2.0 (November 14th, 2002)185 - Added support for Domain Validation186 - Add support for the Hewlett-Packard version of the 39320D187 and AIC-7902 adapters.188 189 Support for previous adapters has not been fully tested and should190 only be used at the customer's own risk.191 192 * 1.1.1 (September 24th, 2002)193 - Added support for the Linux 2.5.X kernel series194 195 * 1.1.0 (September 17th, 2002)196 - Added support for four additional SCSI products:197 ASC-39320, ASC-29320, ASC-29320LP, AIC-7901.198 199 * 1.0.0 (May 30th, 2002)200 - Initial driver release.201 202 * 2.1. Software/Hardware Features203 - Support for the SPI-4 "Ultra320" standard:204 - 320MB/s transfer rates205 - Packetized SCSI Protocol at 160MB/s and 320MB/s206 - Quick Arbitration Selection (QAS)207 - Retained Training Information (Rev B. ASIC only)208 - Interrupt Coalescing209 - Initiator Mode (target mode not currently210 supported)211 - Support for the PCI-X standard up to 133MHz212 - Support for the PCI v2.2 standard213 - Domain Validation214 215 * 2.2. Operating System Support:216 - Redhat Linux 7.2, 7.3, 8.0, Advanced Server 2.1217 - SuSE Linux 7.3, 8.0, 8.1, Enterprise Server 7218 - only Intel and AMD x86 supported at this time219 - >4GB memory configurations supported.220 221 Refer to the User's Guide for more details on this.222 2233. Command Line Options224=======================225 226 .. Warning::227 228 ALTERING OR ADDING THESE DRIVER PARAMETERS229 INCORRECTLY CAN RENDER YOUR SYSTEM INOPERABLE.230 USE THEM WITH CAUTION.231 232 Put a .conf file in the /etc/modprobe.d/ directory and add/edit a233 line containing ``options aic79xx aic79xx=[command[,command...]]`` where234 ``command`` is one or more of the following:235 236 237verbose238 :Definition: enable additional informative messages during driver operation.239 :Possible Values: This option is a flag240 :Default Value: disabled241 242debug:[value]243 :Definition: Enables various levels of debugging information244 The bit definitions for the debugging mask can245 be found in drivers/scsi/aic7xxx/aic79xx.h under246 the "Debug" heading.247 :Possible Values: 0x0000 = no debugging, 0xffff = full debugging248 :Default Value: 0x0000249 250no_reset251 :Definition: Do not reset the bus during the initial probe252 phase253 :Possible Values: This option is a flag254 :Default Value: disabled255 256extended257 :Definition: Force extended translation on the controller258 :Possible Values: This option is a flag259 :Default Value: disabled260 261periodic_otag262 :Definition: Send an ordered tag periodically to prevent263 tag starvation. Needed for some older devices264 :Possible Values: This option is a flag265 :Default Value: disabled266 267reverse_scan268 :Definition: Probe the scsi bus in reverse order, starting with target 15269 :Possible Values: This option is a flag270 :Default Value: disabled271 272global_tag_depth273 :Definition: Global tag depth for all targets on all busses.274 This option sets the default tag depth which275 may be selectively overridden vi the tag_info276 option.277 278 :Possible Values: 1 - 253279 :Default Value: 32280 281tag_info:{{value[,value...]}[,{value[,value...]}...]}282 :Definition: Set the per-target tagged queue depth on a283 per controller basis. Both controllers and targets284 may be omitted indicating that they should retain285 the default tag depth.286 287 :Possible Values: 1 - 253288 :Default Value: 32289 290 Examples:291 292 293 ::294 295 tag_info:{{16,32,32,64,8,8,,32,32,32,32,32,32,32,32,32}296 297 On Controller 0298 299 - specifies a tag depth of 16 for target 0300 - specifies a tag depth of 64 for target 3301 - specifies a tag depth of 8 for targets 4 and 5302 - leaves target 6 at the default303 - specifies a tag depth of 32 for targets 1,2,7-15304 305 All other targets retain the default depth.306 307 ::308 309 tag_info:{{},{32,,32}}310 311 On Controller 1312 313 - specifies a tag depth of 32 for targets 0 and 2314 315 All other targets retain the default depth.316 317 318rd_strm: {rd_strm_bitmask[,rd_strm_bitmask...]}319 :Definition: Enable read streaming on a per target basis.320 The rd_strm_bitmask is a 16 bit hex value in which321 each bit represents a target. Setting the target's322 bit to '1' enables read streaming for that323 target. Controllers may be omitted indicating that324 they should retain the default read streaming setting.325 326 Examples:327 328 ::329 330 rd_strm:{0x0041}331 332 On Controller 0333 334 - enables read streaming for targets 0 and 6.335 - disables read streaming for targets 1-5,7-15.336 337 All other targets retain the default read338 streaming setting.339 340 ::341 342 rd_strm:{0x0023,,0xFFFF}343 344 On Controller 0345 346 - enables read streaming for targets 1,2, and 5.347 - disables read streaming for targets 3,4,6-15.348 349 On Controller 2350 351 - enables read streaming for all targets.352 353 All other targets retain the default read354 streaming setting.355 356 :Possible Values: 0x0000 - 0xffff357 :Default Value: 0x0000358 359dv: {value[,value...]}360 :Definition: Set Domain Validation Policy on a per-controller basis.361 Controllers may be omitted indicating that362 they should retain the default read streaming setting.363 364 :Possible Values:365 366 ==== ===============================367 < 0 Use setting from serial EEPROM.368 0 Disable DV369 > 0 Enable DV370 ==== ===============================371 372 :Default Value: DV Serial EEPROM configuration setting.373 374 Example:375 376 ::377 378 dv:{-1,0,,1,1,0}379 380 - On Controller 0 leave DV at its default setting.381 - On Controller 1 disable DV.382 - Skip configuration on Controller 2.383 - On Controllers 3 and 4 enable DV.384 - On Controller 5 disable DV.385 386seltime:[value]387 :Definition: Specifies the selection timeout value388 :Possible Values: 0 = 256ms, 1 = 128ms, 2 = 64ms, 3 = 32ms389 :Default Value: 0390 391.. Warning:392 393 The following three options should only be changed at394 the direction of a technical support representative.395 396 397precomp: {value[,value...]}398 :Definition: Set IO Cell precompensation value on a per-controller basis.399 Controllers may be omitted indicating that400 they should retain the default precompensation setting.401 402 :Possible Values: 0 - 7403 :Default Value: Varies based on chip revision404 405 Examples:406 407 ::408 409 precomp:{0x1}410 411 On Controller 0 set precompensation to 1.412 413 ::414 415 precomp:{1,,7}416 417 - On Controller 0 set precompensation to 1.418 - On Controller 2 set precompensation to 8.419 420slewrate: {value[,value...]}421 :Definition: Set IO Cell slew rate on a per-controller basis.422 Controllers may be omitted indicating that423 they should retain the default slew rate setting.424 425 :Possible Values: 0 - 15426 :Default Value: Varies based on chip revision427 428 Examples:429 430 ::431 432 slewrate:{0x1}433 434 - On Controller 0 set slew rate to 1.435 436 ::437 438 slewrate :{1,,8}439 440 - On Controller 0 set slew rate to 1.441 - On Controller 2 set slew rate to 8.442 443amplitude: {value[,value...]}444 :Definition: Set IO Cell signal amplitude on a per-controller basis.445 Controllers may be omitted indicating that446 they should retain the default read streaming setting.447 448 :Possible Values: 1 - 7449 :Default Value: Varies based on chip revision450 451 Examples:452 453 ::454 455 amplitude:{0x1}456 457 On Controller 0 set amplitude to 1.458 459 ::460 461 amplitude :{1,,7}462 463 - On Controller 0 set amplitude to 1.464 - On Controller 2 set amplitude to 7.465 466Example::467 468 options aic79xx aic79xx=verbose,rd_strm:{{0x0041}}469 470enables verbose output in the driver and turns read streaming on471for targets 0 and 6 of Controller 0.472 4734. Additional Notes474===================475 4764.1. Known/Unresolved or FYI Issues477-----------------------------------478 479 * Under SuSE Linux Enterprise 7, the driver may fail to operate480 correctly due to a problem with PCI interrupt routing in the481 Linux kernel. Please contact SuSE for an updated Linux482 kernel.483 4844.2. Third-Party Compatibility Issues485-------------------------------------486 487 * Adaptec only supports Ultra320 hard drives running488 the latest firmware available. Please check with489 your hard drive manufacturer to ensure you have the490 latest version.491 4924.3. Operating System or Technology Limitations493-----------------------------------------------494 495 * PCI Hot Plug is untested and may cause the operating system496 to stop responding.497 * Luns that are not numbered contiguously starting with 0 might not498 be automatically probed during system startup. This is a limitation499 of the OS. Please contact your Linux vendor for instructions on500 manually probing non-contiguous luns.501 * Using the Driver Update Disk version of this package during OS502 installation under RedHat might result in two versions of this503 driver being installed into the system module directory. This504 might cause problems with the /sbin/mkinitrd program and/or505 other RPM packages that try to install system modules. The best506 way to correct this once the system is running is to install507 the latest RPM package version of this driver, available from508 http://www.adaptec.com.509 510 5115. Adaptec Customer Support512===========================513 514 A Technical Support Identification (TSID) Number is required for515 Adaptec technical support.516 517 - The 12-digit TSID can be found on the white barcode-type label518 included inside the box with your product. The TSID helps us519 provide more efficient service by accurately identifying your520 product and support status.521 522 Support Options523 - Search the Adaptec Support Knowledgebase (ASK) at524 http://ask.adaptec.com for articles, troubleshooting tips, and525 frequently asked questions about your product.526 - For support via Email, submit your question to Adaptec's527 Technical Support Specialists at http://ask.adaptec.com/.528 529 North America530 - Visit our Web site at http://www.adaptec.com/.531 - For information about Adaptec's support options, call532 408-957-2550, 24 hours a day, 7 days a week.533 - To speak with a Technical Support Specialist,534 535 * For hardware products, call 408-934-7274,536 Monday to Friday, 3:00 am to 5:00 pm, PDT.537 * For RAID and Fibre Channel products, call 321-207-2000,538 Monday to Friday, 3:00 am to 5:00 pm, PDT.539 540 To expedite your service, have your computer with you.541 - To order Adaptec products, including accessories and cables,542 call 408-957-7274. To order cables online go to543 http://www.adaptec.com/buy-cables/.544 545 Europe546 - Visit our Web site at http://www.adaptec.com/en-US/_common/world_index.547 - To speak with a Technical Support Specialist, call, or email,548 549 * German: +49 89 4366 5522, Monday-Friday, 9:00-17:00 CET,550 http://ask-de.adaptec.com/.551 * French: +49 89 4366 5533, Monday-Friday, 9:00-17:00 CET,552 http://ask-fr.adaptec.com/.553 * English: +49 89 4366 5544, Monday-Friday, 9:00-17:00 GMT,554 http://ask.adaptec.com/.555 556 - You can order Adaptec cables online at557 http://www.adaptec.com/buy-cables/.558 559 Japan560 - Visit our web site at http://www.adaptec.co.jp/.561 - To speak with a Technical Support Specialist, call562 +81 3 5308 6120, Monday-Friday, 9:00 a.m. to 12:00 p.m.,563 1:00 p.m. to 6:00 p.m.564 565Copyright |copy| 2003 Adaptec Inc. 691 S. Milpitas Blvd., Milpitas CA 95035 USA.566All rights reserved.567 568You are permitted to redistribute, use and modify this README file in whole569or in part in conjunction with redistribution of software governed by the570General Public License, provided that the following conditions are met:571 5721. Redistributions of README file must retain the above copyright573 notice, this list of conditions, and the following disclaimer,574 without modification.5752. The name of the author may not be used to endorse or promote products576 derived from this software without specific prior written permission.5773. Modifications or new contributions must be attributed in a copyright578 notice identifying the author ("Contributor") and added below the579 original copyright notice. The copyright notice is for purposes of580 identifying contributors and should not be deemed as permission to alter581 the permissions given by Adaptec.582 583THIS README FILE IS PROVIDED BY ADAPTEC AND CONTRIBUTORS ``AS IS`` AND584ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, ANY585WARRANTIES OF NON-INFRINGEMENT OR THE IMPLIED WARRANTIES OF MERCHANTABILITY586AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL587ADAPTEC OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,588SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED589TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR590PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF591LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING592NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS README593FILE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.594