Linux-2.6.12-rc2
[pandora-kernel.git] / Documentation / scsi / aic7xxx.txt
1 ====================================================================
2 =    Adaptec Aic7xxx Fast -> Ultra160 Family Manager Set v6.2.28   =
3 =                            README for                            =
4 =                     The Linux Operating System                   =
5 ====================================================================
6
7 The following information is available in this file:
8
9   1. Supported Hardware
10   2. Version History
11   3. Command Line Options
12   4. Contacting Adaptec
13
14 1. Supported Hardware
15
16    The following Adaptec SCSI Chips and Host Adapters are supported by
17    the aic7xxx driver. 
18
19    Chip    MIPS  Host Bus  MaxSync  MaxWidth  SCBs  Notes
20    ---------------------------------------------------------------
21    aic7770  10    EISA/VL   10MHz    16Bit      4   1
22    aic7850  10    PCI/32    10MHz    8Bit       3
23    aic7855  10    PCI/32    10MHz    8Bit       3
24    aic7856  10    PCI/32    10MHz    8Bit       3
25    aic7859  10    PCI/32    20MHz    8Bit       3
26    aic7860  10    PCI/32    20MHz    8Bit       3
27    aic7870  10    PCI/32    10MHz    16Bit      16
28    aic7880  10    PCI/32    20MHz    16Bit      16
29    aic7890  20    PCI/32    40MHz    16Bit      16      3 4 5 6 7 8
30    aic7891  20    PCI/64    40MHz    16Bit      16      3 4 5 6 7 8
31    aic7892  20   PCI/64-66  80MHz    16Bit      16      3 4 5 6 7 8
32    aic7895  15    PCI/32    20MHz    16Bit      16    2 3 4 5
33    aic7895C 15    PCI/32    20MHz    16Bit      16    2 3 4 5     8
34    aic7896  20    PCI/32    40MHz    16Bit      16    2 3 4 5 6 7 8
35    aic7897  20    PCI/64    40MHz    16Bit      16    2 3 4 5 6 7 8
36    aic7899  20   PCI/64-66  80MHz    16Bit      16    2 3 4 5 6 7 8
37
38    1.   Multiplexed Twin Channel Device - One controller servicing two
39         busses.
40    2.   Multi-function Twin Channel Device - Two controllers on one chip.
41    3.   Command Channel Secondary DMA Engine - Allows scatter gather list
42         and SCB prefetch.
43    4.   64 Byte SCB Support - Allows disconnected, unttagged request table
44         for all possible target/lun combinations.
45    5.   Block Move Instruction Support - Doubles the speed of certain
46         sequencer operations.
47    6.   `Bayonet' style Scatter Gather Engine - Improves S/G prefetch
48         performance.
49    7.   Queuing Registers - Allows queuing of new transactions without
50         pausing the sequencer.
51    8.   Multiple Target IDs - Allows the controller to respond to selection
52         as a target on multiple SCSI IDs.
53
54    Controller      Chip   Host-Bus    Int-Connectors  Ext-Connectors  Notes
55    --------------------------------------------------------------------------
56    AHA-274X[A]    aic7770   EISA         SE-50M         SE-HD50F
57    AHA-274X[A]W   aic7770   EISA         SE-HD68F       SE-HD68F
58                                          SE-50M
59    AHA-274X[A]T   aic7770   EISA       2 X SE-50M       SE-HD50F
60    AHA-2842       aic7770    VL          SE-50M         SE-HD50F
61    AHA-2940AU     aic7860   PCI/32       SE-50M         SE-HD50F
62    AVA-2902I      aic7860   PCI/32       SE-50M
63    AVA-2902E      aic7860   PCI/32       SE-50M
64    AVA-2906       aic7856   PCI/32       SE-50M         SE-DB25F
65    APC-7850       aic7850   PCI/32       SE-50M                       1
66    AVA-2940       aic7860   PCI/32       SE-50M
67    AHA-2920B      aic7860   PCI/32       SE-50M
68    AHA-2930B      aic7860   PCI/32       SE-50M
69    AHA-2920C      aic7856   PCI/32       SE-50M         SE-HD50F
70    AHA-2930C      aic7860   PCI/32       SE-50M
71    AHA-2930C      aic7860   PCI/32       SE-50M
72    AHA-2910C      aic7860   PCI/32       SE-50M
73    AHA-2915C      aic7860   PCI/32       SE-50M
74    AHA-2940AU/CN  aic7860   PCI/32       SE-50M         SE-HD50F
75    AHA-2944W      aic7870   PCI/32     HVD-HD68F        HVD-HD68F
76                                         HVD-50M
77    AHA-3940W      aic7870   PCI/32     2 X SE-HD68F     SE-HD68F        2
78    AHA-2940UW     aic7880   PCI/32       SE-HD68F
79                                          SE-50M         SE-HD68F
80    AHA-2940U      aic7880   PCI/32       SE-50M         SE-HD50F
81    AHA-2940D      aic7880   PCI/32
82    aHA-2940 A/T   aic7880   PCI/32
83    AHA-2940D A/T  aic7880   PCI/32
84    AHA-3940UW     aic7880   PCI/32     2 X SE-HD68F     SE-HD68F          3
85    AHA-3940UWD    aic7880   PCI/32     2 X SE-HD68F   2 X SE-VHD68F       3
86    AHA-3940U      aic7880   PCI/32     2 X SE-50M       SE-HD50F          3
87    AHA-2944UW     aic7880   PCI/32      HVD-HD68F       HVD-HD68F
88                                          HVD-50M
89    AHA-3944UWD    aic7880   PCI/32     2 X HVD-HD68F  2 X HVD-VHD68F      3
90    AHA-4944UW     aic7880   PCI/32
91    AHA-2930UW     aic7880   PCI/32
92    AHA-2940UW Pro aic7880   PCI/32      SE-HD68F        SE-HD68F            4
93                                          SE-50M
94    AHA-2940UW/CN  aic7880   PCI/32
95    AHA-2940UDual  aic7895   PCI/32
96    AHA-2940UWDual aic7895   PCI/32
97    AHA-3940UWD    aic7895   PCI/32
98    AHA-3940AUW    aic7895   PCI/32
99    AHA-3940AUWD   aic7895   PCI/32
100    AHA-3940AU     aic7895   PCI/32
101    AHA-3944AUWD   aic7895   PCI/32     2 X HVD-HD68F  2 X HVD-VHD68F
102    AHA-2940U2B    aic7890   PCI/32      LVD-HD68F       LVD-HD68F
103    AHA-2940U2 OEM aic7891   PCI/64
104    AHA-2940U2W    aic7890   PCI/32      LVD-HD68F       LVD-HD68F
105                                         SE-HD68F 
106                                          SE-50M
107    AHA-2950U2B    aic7891   PCI/64      LVD-HD68F       LVD-HD68F
108    AHA-2930U2     aic7890   PCI/32      LVD-HD68F       SE-HD50F
109                                          SE-50M 
110    AHA-3950U2B    aic7897   PCI/64
111    AHA-3950U2D    aic7897   PCI/64
112    AHA-29160      aic7892   PCI/64-66
113    AHA-29160 CPQ  aic7892   PCI/64-66
114    AHA-29160N     aic7892   PCI/32      LVD-HD68F       SE-HD50F
115                                          SE-50M
116    AHA-29160LP    aic7892   PCI/64-66
117    AHA-19160      aic7892   PCI/64-66
118    AHA-29150LP    aic7892   PCI/64-66
119    AHA-29130LP    aic7892   PCI/64-66
120    AHA-3960D      aic7899   PCI/64-66  2 X LVD-HD68F  2 X LVD-VHD68F
121                                          LVD-50M
122    AHA-3960D CPQ  aic7899   PCI/64-66  2 X LVD-HD68F  2 X LVD-VHD68F
123                                          LVD-50M
124    AHA-39160      aic7899   PCI/64-66  2 X LVD-HD68F  2 X LVD-VHD68F
125                                          LVD-50M
126
127    1. No BIOS support
128    2. DEC21050 PCI-PCI bridge with multiple controller chips on secondary bus
129    3. DEC2115X PCI-PCI bridge with multiple controller chips on secondary bus
130    4. All three SCSI connectors may be used simultaneously without
131       SCSI "stub" effects.
132
133 2. Version History
134    6.2.36 (June 3rd, 2003)
135         - Correct code that disables PCI parity error checking.
136         - Correct and simplify handling of the ignore wide residue
137           message.  The previous code would fail to report a residual
138           if the transaction data length was even and we received
139           an IWR message.
140         - Add support for the 2.5.X EISA framework.
141         - Update for change in 2.5.X SCSI proc FS interface.
142         - Correct Domain Validation command-line option parsing.
143         - When negotiation async via an 8bit WDTR message, send
144           an SDTR with an offset of 0 to be sure the target
145           knows we are async.  This works around a firmware defect
146           in the Quantum Atlas 10K.
147         - Clear PCI error state during driver attach so that we
148           don't disable memory mapped I/O due to a stray write
149           by some other driver probe that occurred before we
150           claimed the controller.
151
152    6.2.35 (May 14th, 2003)
153         - Fix a few GCC 3.3 compiler warnings.
154         - Correct operation on EISA Twin Channel controller.
155         - Add support for 2.5.X's scsi_report_device_reset().
156
157    6.2.34 (May 5th, 2003)
158         - Fix locking regression instroduced in 6.2.29 that
159           could cuase a lock order reversal between the io_request_lock
160           and our per-softc lock.  This was only possible on RH9,
161           SuSE, and kernel.org 2.4.X kernels.
162
163    6.2.33 (April 30th, 2003)
164         - Dynamically disable PCI parity error reporting after
165           10 errors are reported to the user.  These errors are
166           the result of some other device issuing PCI transactions
167           with bad parity.  Once the user has been informed of the
168           problem, continuing to report the errors just degrades
169           our performance.
170
171    6.2.32 (March 28th, 2003)
172         - Dynamically sized S/G lists to avoid SCSI malloc
173           pool fragmentation and SCSI mid-layer deadlock.
174
175    6.2.28 (January 20th, 2003)
176         - Domain Validation Fixes
177         - Add ability to disable PCI parity error checking.
178         - Enhanced Memory Mapped I/O probe
179
180    6.2.20 (November 7th, 2002)
181         - Added Domain Validation.
182
183 3. Command Line Options
184
185         WARNING: ALTERING OR ADDING THESE DRIVER PARAMETERS
186                  INCORRECTLY CAN RENDER YOUR SYSTEM INOPERABLE.
187                  USE THEM WITH CAUTION. 
188
189    Edit the file "modprobe.conf" in the directory /etc and add/edit a
190    line containing 'options aic7xxx aic7xxx=[command[,command...]]' where
191    'command' is one or more of the following:
192    -----------------------------------------------------------------
193               Option: verbose
194           Definition: enable additional informative messages during
195                       driver operation.
196      Possible Values: This option is a flag
197        Default Value: disabled
198    -----------------------------------------------------------------
199               Option: debug:[value]
200           Definition: Enables various levels of debugging information
201      Possible Values: 0x0000 = no debugging, 0xffff = full debugging
202        Default Value: 0x0000
203    -----------------------------------------------------------------
204               Option: no_probe
205               Option: probe_eisa_vl
206           Definition: Do not probe for EISA/VLB controllers.
207                       This is a toggle.  If the driver is compiled
208                       to not probe EISA/VLB controllers by default,
209                       specifying "no_probe" will enable this probing.
210                       If the driver is compiled to probe EISA/VLB
211                       controllers by default, specifying "no_probe"
212                       will disable this probing.
213      Possible Values: This option is a toggle
214        Default Value: EISA/VLB probing is disabled by default.
215    -----------------------------------------------------------------
216               Option: pci_parity
217           Definition: Toggles the detection of PCI parity errors.
218                       On many motherboards with VIA chipsets,
219                       PCI parity is not generated correctly on the
220                       PCI bus.  It is impossible for the hardware to
221                       differentiate between these "spurious" parity
222                       errors and real parity errors.  The symptom of
223                       this problem is a stream of the message:
224     "scsi0: Data Parity Error Detected during address or write data phase"
225                       output by the driver.
226      Possible Values: This option is a toggle
227        Default Value: PCI Parity Error reporting is disabled
228    -----------------------------------------------------------------
229               Option: no_reset
230           Definition: Do not reset the bus during the initial probe
231                       phase
232      Possible Values: This option is a flag
233        Default Value: disabled
234    -----------------------------------------------------------------
235               Option: extended
236           Definition: Force extended translation on the controller
237      Possible Values: This option is a flag
238        Default Value: disabled
239    -----------------------------------------------------------------
240               Option: periodic_otag
241           Definition: Send an ordered tag periodically to prevent
242                       tag starvation.  Needed for some older devices
243      Possible Values: This option is a flag
244        Default Value: disabled
245    -----------------------------------------------------------------
246               Option: reverse_scan
247           Definition: Probe the scsi bus in reverse order, starting
248                       with target 15
249      Possible Values: This option is a flag
250        Default Value: disabled
251    -----------------------------------------------------------------
252               Option: global_tag_depth:[value]
253           Definition: Global tag depth for all targets on all busses.
254                       This option sets the default tag depth which
255                       may be selectively overridden vi the tag_info
256                       option.
257      Possible Values: 1 - 253
258        Default Value: 32
259    -----------------------------------------------------------------
260               Option: tag_info:{{value[,value...]}[,{value[,value...]}...]}
261           Definition: Set the per-target tagged queue depth on a
262                       per controller basis.  Both controllers and targets
263                       may be ommitted indicating that they should retain
264                       the default tag depth.
265             Examples: tag_info:{{16,32,32,64,8,8,,32,32,32,32,32,32,32,32,32}
266                         On Controller 0
267                           specifies a tag depth of 16 for target 0
268                           specifies a tag depth of 64 for target 3
269                           specifies a tag depth of 8 for targets 4 and 5
270                           leaves target 6 at the default
271                           specifies a tag depth of 32 for targets 1,2,7-15
272                         All other targets retain the default depth.
273
274                       tag_info:{{},{32,,32}}
275                         On Controller 1
276                           specifies a tag depth of 32 for targets 0 and 2
277                         All other targets retain the default depth.
278                         
279      Possible Values: 1 - 253
280        Default Value: 32
281    -----------------------------------------------------------------
282               Option: seltime:[value]
283           Definition: Specifies the selection timeout value
284      Possible Values: 0 = 256ms, 1 = 128ms, 2 = 64ms, 3 = 32ms
285        Default Value: 0
286    -----------------------------------------------------------------
287               Option: dv: {value[,value...]} 
288           Definition: Set Domain Validation Policy on a per-controller basis.
289                       Controllers may be ommitted indicating that
290                       they should retain the default read streaming setting.
291              Example: dv:{-1,0,,1,1,0}
292                         On Controller 0 leave DV at its default setting.
293                         On Controller 1 disable DV.
294                         Skip configuration on Controller 2.
295                         On Controllers 3 and 4 enable DV.
296                         On Controller 5 disable DV.
297
298      Possible Values: < 0 Use setting from serial EEPROM.
299                       0 Disable DV
300                       > 0 Enable DV
301
302        Default Value: SCSI-Select setting on controllers with a SCSI Select
303                       option for DV.  Otherwise, on for controllers supporting
304                       U160 speeds and off for all other controller types.
305    -----------------------------------------------------------------
306
307    Example:
308    'options aic7xxx aic7xxx=verbose,no_probe,tag_info:{{},{,,10}},seltime:1"
309         enables verbose logging, Disable EISA/VLB probing,
310         and set tag depth on Controller 1/Target 2 to 10 tags.
311
312 3. Contacting Adaptec
313
314    A Technical Support Identification (TSID) Number is required for 
315    Adaptec technical support.
316     - The 12-digit TSID can be found on the white barcode-type label
317       included inside the box with your product. The TSID helps us 
318       provide more efficient service by accurately identifying your 
319       product and support status.
320    Support Options
321     - Search the Adaptec Support Knowledgebase (ASK) at
322       http://ask.adaptec.com for articles, troubleshooting tips, and
323       frequently asked questions for your product.
324     - For support via Email, submit your question to Adaptec's 
325       Technical Support Specialists at http://ask.adaptec.com.
326      
327    North America
328     - Visit our Web site at http://www.adaptec.com.
329     - To speak with a Fibre Channel/RAID/External Storage Technical
330       Support Specialist, call 1-321-207-2000,
331       Hours: Monday-Friday, 3:00 A.M. to 5:00 P.M., PST.
332       (Not open on holidays)
333     - For Technical Support in all other technologies including 
334       SCSI, call 1-408-934-7274,
335       Hours: Monday-Friday, 6:00 A.M. to 5:00 P.M., PST.
336       (Not open on holidays)
337     - For after hours support, call 1-800-416-8066 ($99/call, 
338       $149/call on holidays)
339     - To order Adaptec products including software and cables, call
340       1-800-442-7274 or 1-408-957-7274. You can also visit our 
341       online store at http://www.adaptecstore.com
342
343    Europe
344     - Visit our Web site at http://www.adaptec-europe.com.
345     - English and French: To speak with a Technical Support 
346       Specialist, call one of the following numbers:
347         - English: +32-2-352-3470
348         - French:  +32-2-352-3460
349       Hours: Monday-Thursday, 10:00 to 12:30, 13:30 to 17:30 CET 
350              Friday, 10:00 to 12:30, 13:30 to 16:30 CET
351     - German: To speak with a Technical Support Specialist,
352       call +49-89-456-40660
353       Hours: Monday-Thursday, 09:30 to 12:30, 13:30 to 16:30 CET
354              Friday, 09:30 to 12:30, 13:30 to 15:00 CET
355     - To order Adaptec products, including accessories and cables:
356         - UK: +0800-96-65-26 or fax +0800-731-02-95
357         - Other European countries: +32-11-300-379
358
359    Australia and New Zealand
360     - Visit our Web site at http://www.adaptec.com.au.
361     - To speak with a Technical Support Specialist, call 
362       +612-9416-0698
363       Hours: Monday-Friday, 10:00 A.M. to 4:30 P.M., EAT
364       (Not open on holidays)
365
366    Japan
367     - To speak with a Technical Support Specialist, call 
368       +81-3-5308-6120 
369       Hours: Monday-Friday, 9:00 a.m. to 12:00 p.m., 1:00 p.m. to
370       6:00 p.m. TSC
371
372    Hong Kong and China
373     - To speak with a Technical Support Specialist, call 
374       +852-2869-7200
375       Hours: Monday-Friday, 10:00 to 17:00.
376     - Fax Technical Support at +852-2869-7100.
377
378    Singapore
379     - To speak with a Technical Support Specialist, call 
380       +65-245-7470
381       Hours: Monday-Friday, 10:00 to 17:00.
382     - Fax Technical Support at +852-2869-7100
383
384 -------------------------------------------------------------------
385 /*
386  * Copyright (c) 2003 Adaptec Inc. 691 S. Milpitas Blvd., Milpitas CA 95035 USA.
387  * All rights reserved.
388  *
389  * You are permitted to redistribute, use and modify this README file in whole
390  * or in part in conjunction with redistribution of software governed by the
391  * General Public License, provided that the following conditions are met:
392  * 1. Redistributions of README file must retain the above copyright
393  *    notice, this list of conditions, and the following disclaimer,
394  *    without modification.
395  * 2. The name of the author may not be used to endorse or promote products
396  *    derived from this software without specific prior written permission.
397  * 3. Modifications or new contributions must be attributed in a copyright
398  *    notice identifying the author ("Contributor") and added below the
399  *    original copyright notice. The copyright notice is for purposes of
400  *    identifying contributors and should not be deemed as permission to alter
401  *    the permissions given by Adaptec.
402  *
403  * THIS README FILE IS PROVIDED BY ADAPTEC AND CONTRIBUTORS ``AS IS'' AND
404  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, ANY
405  * WARRANTIES OF NON-INFRINGEMENT OR THE IMPLIED WARRANTIES OF MERCHANTABILITY
406  * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
407  * ADAPTEC OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
408  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
409  * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
410  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
411  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
412  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS README
413  * FILE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
414  */