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