make oldconfig will rebuild these...
[linux-2.4.21-pre4.git] / drivers / scsi / README.AM53C974
1 SUBJECT
2 -------
3 AM53/79C974 PC-SCSI Driver
4
5
6 DISCLAIMER
7 ----------
8 ***  THIS SHOULD BE CONSIDERED AS BETA SOFTWARE  ***
9 ***  USE AT YOUR OWN RISK!                       ***
10
11
12 Copyright
13 ---------
14 The architecture and much of the code of this device driver was 
15 originally developed by Drew Eckhardt for the NCR5380. The 
16 following copyrights apply:
17
18 For the architecture and all pieces of code which can also be found 
19 in the NCR5380 device driver:
20 Copyright 1993, Drew Eckhardt
21   Visionary Computing 
22   (Unix and Linux consulting and custom programming)
23   drew@colorado.edu
24   +1 (303) 666-5836
25  
26 The AM53C974_nobios_detect code was originally developed by
27 Robin Cutshaw (robin@xfree86.org) and is used here in a 
28 slightly modified form.
29  
30 For the remaining code:
31   Copyright 1994, D. Frieauff
32   EMail: fri@rsx42sun0.dofn.de
33   Phone: x49-7545-8-2256 , x49-7541-42305
34
35
36 Version
37 -------
38 AM53/79C974 (PC-SCSI) Linux driver ALPHA release 0.5, 19 November 1995
39
40
41 Changelog
42 ---------
43 0.1 -> 0.2: 
44   - Extended message handling re-written to eliminate 'invalid message 17' bug
45   - Parameters of AM53C974_intr adapted
46   - Debug messages structured
47   - Spelling improved
48 0.2 -> 0.3:
49   - README file updated -- please read this file up to the end!
50   - Automatic scanning of io_port and irq implemented; no need for BIOS32 
51     anymore
52   - Improved configuration (now via LILO parameter string)
53   - Cleanup of probing and initialization code
54   - Improved sync. negotiation (can be setup individually for every device)
55   - Improved/ debugged code for reception of ext. messages
56 0.3 -> 0.4:
57   - Improved PCI probing and initialization code
58   - Compatibility changes for Linux 1.3.x
59 0.4 -> 0.5:
60   - Compatibility changes for Linux 1.3.42
61
62
63 Bugs & Todo
64 -----------
65  - Add proc info function
66  - Support SCSI-2 tagged queuing
67  - Finalize abort code 
68
69
70 Features
71 --------
72 This driver supports asynchronous and synchronous SCSI-I and SCSI-II
73 devices.  It is capable of transfer rate and synchronous negotiation
74 (see below).  The driver supports scatter-gather.  Transfers are DMA
75 based, but do not (yet) make use of the AM53/79C974 MDL mode.
76 Max. transfer rate is 10MHz (whatever this is in real life).  The
77 transfer rate is negotiated with each device (see dmesg output).  The
78 AM53/79C974 has a 96-byte DMA FIFO to the PCI bus and a 16-byte SCSI
79 FIFO.  It provides active negation and glitch suppression functions.
80 Burst DMA transfer rate is 132 MBytes/sec.
81
82
83 Configuration
84 -------------
85
86 The following communication characteristics can be set individually
87 for every SCSI device on the bus:
88
89   - enable/disable sync. negotiation
90   - transfer rate
91   - asynchronous or synchronous communication
92   - in case of sync. communication, the sync. offset
93
94 The sync. offset specifies the number of bytes that can be sent or 
95 received from the SCSI bus without ACK resp. REQ signal.
96 CAUTION: USING SYNCHRONOUS MODE ON LONG SCSI CABLES MAY CAUSE 
97          COMMUNICATION PROBLEMS LEADING TO LOSS OF DATA. 
98
99 The default setting of the SCSI communication parameters is as follows:
100   - no negotiation
101   - 5.0 MHz transfer rate
102   - asynchronous mode
103   - zero offset
104
105 The parameters can be modified by passing a string with the following
106 syntax to the kernel:
107
108         AM53C974=host-scsi-id,target-scsi-id,max-rate,max-offset
109
110 The parameters will be used by the driver as negotiation basis.  The
111 range of the rate parameter is 3 to 10 MHz.  The range of the
112 sync. offset parameter is 0 to 15 bytes. A value of 0 denotes
113 asynchronous comm. mode.  If the target cannot cope with the specified
114 transfer rate, sync. mode or sync.  offset, the negotiation result
115 will differ from the specified values.  The negotiation result is
116 printed out at the end of the negotiation process (to read it, use the
117 dmesg program or the appropriate syslog).  The parameter strings
118 (blank separated) can be passed to the kernel at the LILO prompt, or
119 as part of the LILO configuration file.
120
121 For example, the string "AM53C974=7,2,8,15" would be interpreted as
122 follows:
123
124 For communication between the controller with SCSI-ID 7 and the
125 device with SCSI-ID 2 a transfer rate of 8MHz in synchronous mode with
126 max. 15 bytes offset should be negotiated.
127
128 As an example, here my LILO configuration file:
129   boot = /dev/sda
130   compact
131   #prompt
132   delay = 50    # optional, for systems that boot very quickly
133   vga = normal  # force sane state
134   ramdisk = 0   # paranoia setting
135   root = current  # use "current" root
136   image = /usr/src/linux/arch/i386/boot/zImage
137     label = linux
138     append = "AM53C974=7,0,10,0 AM53C974=7,1,10,0 AM53C974=7,2,10,15 AM53C974=7,4,10,0 AM53C974=7,5,10,0"
139     read-only
140   other = /dev/sda4
141     label = os2
142   other = /dev/sdb3
143     loader = /boot/any_d.b
144     table = /dev/sdb
145     label = setup
146
147 The same parameters at the LILO prompt:
148
149   LILO boot: linux AM53C974=7,0,10,0 AM53C974=7,1,10,0 AM53C974=7,2,10,15 AM53C974=7,4,10,0 AM53C974=7,5,10,0
150
151 You can override parameters specified in the LILO configuration file
152 by parameters specified on the LILO command line.
153
154
155 BIOS usage
156 ----------
157 Version 0.4 of the driver will use the BIOS, if available. Otherwise
158 it will try its internal PCI scan and access routines.  The driver
159 assumes that the controller's SCSI-ID (usually 7) has been correctly
160 loaded by the BIOS into the controller's register during system
161 boot. If the driver detects that the controller's SCSI ID is not '7'
162 it will print out a warning. If this happens to you please correct
163 setting of the controller's SCSI-ID. If it is wrong, then edit the
164 AM53C974_SCSI_ID definition in file AM53C974.h accordingly.
165
166
167 Test environment
168 ----------------
169 This driver was tested on a Compaq XL566 with the following SCSI configuration:
170 2 x HP C2247 fixed disk (internal, rate=10MHz, async.)
171 1 x Micropolis 1624 fixed disk (external, rate=8MHz, sync., offset=15 bytes)
172 1 x Wangtek W5525ES cartridge streamer (internal, rate=5MHz, async.)
173 1 x Toshiba XM-3301B CD-ROM (external, rate=5MHz, async.)
174
175
176 Known problems
177 --------------
178  - Compaq/Matsushita CD-ROM:
179    Use of this device with AM53C974 driver version 0.2 caused the kernel to
180    hang during Linux boot. If you encounter the problem, don't enable sync.
181    negotiation with the CD-ROM, i.e. simply don't specify comm. parameters 
182    for this device on the LILO command line or configuration file. 
183    The driver will thus use its default for the CD-ROM, which is 5MHz 
184    transfer rate async and no sync. negotiation.
185  - Some disks cause problems.
186
187
188 What to do if there is a SCSI problem possibly related to the driver
189 --------------------------------------------------------------------
190
191 Read Klaus Liedl's WWW page (http://www-c724.uibk.ac.at/XL/).  In case
192 this does not help: Send me a complete description of the problem,
193 including your SCSI configuration plus as much debugging information
194 as possible.  Don't wait until I ask you for this information. To
195 enable the generation of debugging output, remove the comments from
196 the following definitions in the AM53C974.h file:
197
198     AM53C974_DEBUG
199     AM53C974_DEBUG_MSG
200     AM53C974_DEBUG_KEYWAIT
201     AM53C974_DEBUG_INFO
202     AM53C974_DEBUG_INTR
203
204 With these definitions enabled, the driver will enter single-step mode
205 during Linux boot. Use the spacebar for stepping.  Take note of at
206 least the last 10 printout sections (marked by dashes) before the
207 crash/hangup or whatever happens and send me all of this information
208 via email. If the system can boot, use the syslogd daemon to record
209 the debugging output. Maybe you can use the ramdisk for this purpose
210 too (if necessary, kindly ask K. Liedl (Klaus.Liedl@uibk.ac.at) for
211 support, he knows how to do it -- I never tried). Stay in email
212 contact with me. Be aware that the following weeks/months could be the
213 worst of your life.  Note: If single-stepping takes up too much time,
214 you can try to let the driver catch the problem by pressing the 'r'
215 key. The driver will automatically enter single-step mode if it has
216 detected something weird.
217
218
219 Author's Contact Address
220 -----------------------
221 Email: fri@rsx42sun0.dofn.de
222 Phone: x49-7545-2256 (office), x49-7541-42305 (home)
223 Home address: D. Frieauff, Stockerholzstr. 27, 88048 Friedrichshafen, Germany
224
225
226 !!!! Important Notice !!!!
227 -----------------------------
228 - Klaus Liedl maintains an excellent WWW page about Linux on Compaq XL.
229   It includes an FAQ, lots of tips & tricks as well as downloadable 
230   boot disk images. The URL is: http://www-c724.uibk.ac.at/XL/
231 - Volunteer wanted for further maintenance of this driver software. I
232   don't have the time anymore to do serious support as some of you will know.
233
234
235 Literature
236 ----------
237  - AMD AM53C974 PC-SCSI Technical Manual, publication #18624B
238  - Amendment to the AMD AM53C974 PC-SCSI Technical Manual
239  - AMD AM79C974 PC-NET Datasheet, publication #18681
240  - Amendment to the AMD AM79C974 PC-NET Datasheet
241
242
243 THANKS to
244 ---------
245  - Drew Eckhardt, Robin Cutshaw, K. Liedl, Robert J. Pappas, A. Grenier, 
246    Mark Stockton, David C. Niemi, Ben Craft, and many others who have helped