1 .. SPDX-License-Identifier: GPL-2.0 2 .. include:: <isonum.txt> 3 4 =================================== 5 Adaptec Ultra320 Family Manager Set 6 =================================== 7 8 README for The Linux Operating System 9 10 .. The following information is available in this file: 11 12 1. Supported Hardware 13 2. Version History 14 3. Command Line Options 15 4. Additional Notes 16 5. Contacting Adaptec 17 18 19 1. Supported Hardware 20 ===================== 21 22 The following Adaptec SCSI Host Adapters are supported by this 23 driver set. 24 25 ============= ========================================= 26 Ultra320 ASIC Description 27 ============= ========================================= 28 AIC-7901A Single Channel 64-bit PCI-X 133MHz to 29 Ultra320 SCSI ASIC 30 AIC-7901B Single Channel 64-bit PCI-X 133MHz to 31 Ultra320 SCSI ASIC with Retained Training 32 AIC-7902A4 Dual Channel 64-bit PCI-X 133MHz to 33 Ultra320 SCSI ASIC 34 AIC-7902B Dual Channel 64-bit PCI-X 133MHz to 35 Ultra320 SCSI ASIC with Retained Training 36 ============= ========================================= 37 38 ========================== ===================================== ============ 39 Ultra320 Adapters Description ASIC 40 ========================== ===================================== ============ 41 Adaptec SCSI Card 39320 Dual Channel 64-bit PCI-X 133MHz to 7902A4/7902B 42 Ultra320 SCSI Card (one external 43 68-pin, two internal 68-pin) 44 Adaptec SCSI Card 39320A Dual Channel 64-bit PCI-X 133MHz to 7902B 45 Ultra320 SCSI Card (one external 46 68-pin, two internal 68-pin) 47 Adaptec SCSI Card 39320D Dual Channel 64-bit PCI-X 133MHz to 7902A4 48 Ultra320 SCSI Card (two external VHDC 49 and one internal 68-pin) 50 Adaptec SCSI Card 39320D Dual Channel 64-bit PCI-X 133MHz to 7902A4 51 Ultra320 SCSI Card (two external VHDC 52 and one internal 68-pin) based on the 53 AIC-7902B ASIC 54 Adaptec SCSI Card 29320 Single Channel 64-bit PCI-X 133MHz to 7901A 55 Ultra320 SCSI Card (one external 56 68-pin, two internal 68-pin, one 57 internal 50-pin) 58 Adaptec SCSI Card 29320A Single Channel 64-bit PCI-X 133MHz to 7901B 59 Ultra320 SCSI Card (one external 60 68-pin, two internal 68-pin, one 61 internal 50-pin) 62 Adaptec SCSI Card 29320LP Single Channel 64-bit Low Profile 7901A 63 PCI-X 133MHz to Ultra320 SCSI Card 64 (One external VHDC, one internal 65 68-pin) 66 Adaptec SCSI Card 29320ALP Single Channel 64-bit Low Profile 7901B 67 PCI-X 133MHz to Ultra320 SCSI Card 68 (One external VHDC, one internal 69 68-pin) 70 ========================== ===================================== ============ 71 72 2. Version History 73 ================== 74 75 76 * 3.0 (December 1st, 2005) 77 - Updated driver to use SCSI transport class infrastructure 78 - Upported sequencer and core fixes from adaptec released 79 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 avoids 87 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, send 91 an SDTR with an offset of 0 to be sure the target 92 knows we are async. This works around a firmware defect 93 in the Quantum Atlas 10K. 94 - Implement controller suspend and resume. 95 - Clear PCI error state during driver attach so that we 96 don't disable memory mapped I/O due to a stray write 97 by some other driver probe that occurred before we 98 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 in 105 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 residue 109 message. The previous code would fail to report a residual 110 if the transaction data length was even and we received 111 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 of 118 commands with bad status. We defer the notification 119 until there are no outstanding selections to ensure 120 that the host is interrupted for as short a time as 121 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 timeouts 128 are pending during controller shutdown. 129 - For pre-2.5.X kernels, carefully adjust our segment 130 list size to avoid SCSI malloc pool fragmentation. 131 - Cleanup channel display in our /proc output. 132 - Workaround duplicate device entries in the mid-layer 133 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 controller 138 shutdown. 139 - Reset the bus on an SE->LVD change. This is required 140 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 in 145 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 blink 150 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_lock 153 upon driver entry from the mid-layer. 154 - Cleanup command line parsing and move much of this code 155 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 seconds 160 during Domain Validation. 161 162 * 1.3.2 (February 19th, 2003) 163 - Correct a Rev B. regression due to the GEM318 164 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 the 170 same write transaction that can occur without 171 interveining training. 172 - Correct compatibility issues with the GEM318 173 enclosure services device. 174 - Correct data corruption issue that occurred under 175 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 and 182 interrupt coalescing. 183 184 * 1.2.0 (November 14th, 2002) 185 - Added support for Domain Validation 186 - Add support for the Hewlett-Packard version of the 39320D 187 and AIC-7902 adapters. 188 189 Support for previous adapters has not been fully tested and should 190 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 series 194 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 Features 203 - Support for the SPI-4 "Ultra320" standard: 204 - 320MB/s transfer rates 205 - Packetized SCSI Protocol at 160MB/s and 320MB/s 206 - Quick Arbitration Selection (QAS) 207 - Retained Training Information (Rev B. ASIC only) 208 - Interrupt Coalescing 209 - Initiator Mode (target mode not currently 210 supported) 211 - Support for the PCI-X standard up to 133MHz 212 - Support for the PCI v2.2 standard 213 - Domain Validation 214 215 * 2.2. Operating System Support: 216 - Redhat Linux 7.2, 7.3, 8.0, Advanced Server 2.1 217 - SuSE Linux 7.3, 8.0, 8.1, Enterprise Server 7 218 - only Intel and AMD x86 supported at this time 219 - >4GB memory configurations supported. 220 221 Refer to the User's Guide for more details on this. 222 223 3. Command Line Options 224 ======================= 225 226 .. Warning:: 227 228 ALTERING OR ADDING THESE DRIVER PARAMETERS 229 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 a 233 line containing ``options aic79xx aic79xx=[command[,command...]]`` where 234 ``command`` is one or more of the following: 235 236 237 verbose 238 :Definition: enable additional informative messages during driver operation. 239 :Possible Values: This option is a flag 240 :Default Value: disabled 241 242 debug:[value] 243 :Definition: Enables various levels of debugging information 244 The bit definitions for the debugging mask can 245 be found in drivers/scsi/aic7xxx/aic79xx.h under 246 the "Debug" heading. 247 :Possible Values: 0x0000 = no debugging, 0xffff = full debugging 248 :Default Value: 0x0000 249 250 no_reset 251 :Definition: Do not reset the bus during the initial probe 252 phase 253 :Possible Values: This option is a flag 254 :Default Value: disabled 255 256 extended 257 :Definition: Force extended translation on the controller 258 :Possible Values: This option is a flag 259 :Default Value: disabled 260 261 periodic_otag 262 :Definition: Send an ordered tag periodically to prevent 263 tag starvation. Needed for some older devices 264 :Possible Values: This option is a flag 265 :Default Value: disabled 266 267 reverse_scan 268 :Definition: Probe the scsi bus in reverse order, starting with target 15 269 :Possible Values: This option is a flag 270 :Default Value: disabled 271 272 global_tag_depth 273 :Definition: Global tag depth for all targets on all busses. 274 This option sets the default tag depth which 275 may be selectively overridden vi the tag_info 276 option. 277 278 :Possible Values: 1 - 253 279 :Default Value: 32 280 281 tag_info:{{value[,value...]}[,{value[,value...]}...]} 282 :Definition: Set the per-target tagged queue depth on a 283 per controller basis. Both controllers and targets 284 may be omitted indicating that they should retain 285 the default tag depth. 286 287 :Possible Values: 1 - 253 288 :Default Value: 32 289 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 0 298 299 - specifies a tag depth of 16 for target 0 300 - specifies a tag depth of 64 for target 3 301 - specifies a tag depth of 8 for targets 4 and 5 302 - leaves target 6 at the default 303 - specifies a tag depth of 32 for targets 1,2,7-15 304 305 All other targets retain the default depth. 306 307 :: 308 309 tag_info:{{},{32,,32}} 310 311 On Controller 1 312 313 - specifies a tag depth of 32 for targets 0 and 2 314 315 All other targets retain the default depth. 316 317 318 rd_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 which 321 each bit represents a target. Setting the target's 322 bit to '1' enables read streaming for that 323 target. Controllers may be omitted indicating that 324 they should retain the default read streaming setting. 325 326 Examples: 327 328 :: 329 330 rd_strm:{0x0041} 331 332 On Controller 0 333 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 read 338 streaming setting. 339 340 :: 341 342 rd_strm:{0x0023,,0xFFFF} 343 344 On Controller 0 345 346 - enables read streaming for targets 1,2, and 5. 347 - disables read streaming for targets 3,4,6-15. 348 349 On Controller 2 350 351 - enables read streaming for all targets. 352 353 All other targets retain the default read 354 streaming setting. 355 356 :Possible Values: 0x0000 - 0xffff 357 :Default Value: 0x0000 358 359 dv: {value[,value...]} 360 :Definition: Set Domain Validation Policy on a per-controller basis. 361 Controllers may be omitted indicating that 362 they should retain the default read streaming setting. 363 364 :Possible Values: 365 366 ==== =============================== 367 < 0 Use setting from serial EEPROM. 368 0 Disable DV 369 > 0 Enable DV 370 ==== =============================== 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 386 seltime:[value] 387 :Definition: Specifies the selection timeout value 388 :Possible Values: 0 = 256ms, 1 = 128ms, 2 = 64ms, 3 = 32ms 389 :Default Value: 0 390 391 .. Warning: 392 393 The following three options should only be changed at 394 the direction of a technical support representative. 395 396 397 precomp: {value[,value...]} 398 :Definition: Set IO Cell precompensation value on a per-controller basis. 399 Controllers may be omitted indicating that 400 they should retain the default precompensation setting. 401 402 :Possible Values: 0 - 7 403 :Default Value: Varies based on chip revision 404 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 420 slewrate: {value[,value...]} 421 :Definition: Set IO Cell slew rate on a per-controller basis. 422 Controllers may be omitted indicating that 423 they should retain the default slew rate setting. 424 425 :Possible Values: 0 - 15 426 :Default Value: Varies based on chip revision 427 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 443 amplitude: {value[,value...]} 444 :Definition: Set IO Cell signal amplitude on a per-controller basis. 445 Controllers may be omitted indicating that 446 they should retain the default read streaming setting. 447 448 :Possible Values: 1 - 7 449 :Default Value: Varies based on chip revision 450 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 466 Example:: 467 468 options aic79xx aic79xx=verbose,rd_strm:{{0x0041}} 469 470 enables verbose output in the driver and turns read streaming on 471 for targets 0 and 6 of Controller 0. 472 473 4. Additional Notes 474 =================== 475 476 4.1. Known/Unresolved or FYI Issues 477 ----------------------------------- 478 479 * Under SuSE Linux Enterprise 7, the driver may fail to operate 480 correctly due to a problem with PCI interrupt routing in the 481 Linux kernel. Please contact SuSE for an updated Linux 482 kernel. 483 484 4.2. Third-Party Compatibility Issues 485 ------------------------------------- 486 487 * Adaptec only supports Ultra320 hard drives running 488 the latest firmware available. Please check with 489 your hard drive manufacturer to ensure you have the 490 latest version. 491 492 4.3. Operating System or Technology Limitations 493 ----------------------------------------------- 494 495 * PCI Hot Plug is untested and may cause the operating system 496 to stop responding. 497 * Luns that are not numbered contiguously starting with 0 might not 498 be automatically probed during system startup. This is a limitation 499 of the OS. Please contact your Linux vendor for instructions on 500 manually probing non-contiguous luns. 501 * Using the Driver Update Disk version of this package during OS 502 installation under RedHat might result in two versions of this 503 driver being installed into the system module directory. This 504 might cause problems with the /sbin/mkinitrd program and/or 505 other RPM packages that try to install system modules. The best 506 way to correct this once the system is running is to install 507 the latest RPM package version of this driver, available from 508 http://www.adaptec.com. 509 510 511 5. Adaptec Customer Support 512 =========================== 513 514 A Technical Support Identification (TSID) Number is required for 515 Adaptec technical support. 516 517 - The 12-digit TSID can be found on the white barcode-type label 518 included inside the box with your product. The TSID helps us 519 provide more efficient service by accurately identifying your 520 product and support status. 521 522 Support Options 523 - Search the Adaptec Support Knowledgebase (ASK) at 524 http://ask.adaptec.com for articles, troubleshooting tips, and 525 frequently asked questions about your product. 526 - For support via Email, submit your question to Adaptec's 527 Technical Support Specialists at http://ask.adaptec.com/. 528 529 North America 530 - Visit our Web site at http://www.adaptec.com/. 531 - For information about Adaptec's support options, call 532 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 to 543 http://www.adaptec.com/buy-cables/. 544 545 Europe 546 - 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 at 557 http://www.adaptec.com/buy-cables/. 558 559 Japan 560 - Visit our web site at http://www.adaptec.co.jp/. 561 - To speak with a Technical Support Specialist, call 562 +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 565 Copyright |copy| 2003 Adaptec Inc. 691 S. Milpitas Blvd., Milpitas CA 95035 USA. 566 All rights reserved. 567 568 You are permitted to redistribute, use and modify this README file in whole 569 or in part in conjunction with redistribution of software governed by the 570 General Public License, provided that the following conditions are met: 571 572 1. Redistributions of README file must retain the above copyright 573 notice, this list of conditions, and the following disclaimer, 574 without modification. 575 2. The name of the author may not be used to endorse or promote products 576 derived from this software without specific prior written permission. 577 3. Modifications or new contributions must be attributed in a copyright 578 notice identifying the author ("Contributor") and added below the 579 original copyright notice. The copyright notice is for purposes of 580 identifying contributors and should not be deemed as permission to alter 581 the permissions given by Adaptec. 582 583 THIS README FILE IS PROVIDED BY ADAPTEC AND CONTRIBUTORS ``AS IS`` AND 584 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, ANY 585 WARRANTIES OF NON-INFRINGEMENT OR THE IMPLIED WARRANTIES OF MERCHANTABILITY 586 AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL 587 ADAPTEC OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 588 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED 589 TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 590 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 591 LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 592 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS README 593 FILE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.