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