tg3: Cleanup transmit error path
[linux-2.6/linux-acpi-2.6/ibm-acpi-2.6.git] / Documentation / scsi / advansys.txt
blob4a3db62b74245a8f3ab2301decc3cb98cc717800
1 AdvanSys (Advanced System Products, Inc.) manufactures the following
2 RISC-based, Bus-Mastering, Fast (10 Mhz) and Ultra (20 Mhz) Narrow
3 (8-bit transfer) SCSI Host Adapters for the ISA, EISA, VL, and PCI
4 buses and RISC-based, Bus-Mastering, Ultra (20 Mhz) Wide (16-bit
5 transfer) SCSI Host Adapters for the PCI bus.
7 The CDB counts below indicate the number of SCSI CDB (Command
8 Descriptor Block) requests that can be stored in the RISC chip
9 cache and board LRAM. A CDB is a single SCSI command. The driver
10 detect routine will display the number of CDBs available for each
11 adapter detected. The number of CDBs used by the driver can be
12 lowered in the BIOS by changing the 'Host Queue Size' adapter setting.
14 Laptop Products:
15    ABP-480 - Bus-Master CardBus (16 CDB)
17 Connectivity Products:
18    ABP510/5150 - Bus-Master ISA (240 CDB)
19    ABP5140 - Bus-Master ISA PnP (16 CDB)
20    ABP5142 - Bus-Master ISA PnP with floppy (16 CDB)
21    ABP902/3902 - Bus-Master PCI (16 CDB)
22    ABP3905 - Bus-Master PCI (16 CDB)
23    ABP915 - Bus-Master PCI (16 CDB)
24    ABP920 - Bus-Master PCI (16 CDB)
25    ABP3922 - Bus-Master PCI (16 CDB)
26    ABP3925 - Bus-Master PCI (16 CDB)
27    ABP930 - Bus-Master PCI (16 CDB)
28    ABP930U - Bus-Master PCI Ultra (16 CDB)
29    ABP930UA - Bus-Master PCI Ultra (16 CDB)
30    ABP960 - Bus-Master PCI MAC/PC (16 CDB)
31    ABP960U - Bus-Master PCI MAC/PC Ultra (16 CDB)
33 Single Channel Products:
34    ABP542 - Bus-Master ISA with floppy (240 CDB)
35    ABP742 - Bus-Master EISA (240 CDB)
36    ABP842 - Bus-Master VL (240 CDB)
37    ABP940 - Bus-Master PCI (240 CDB)
38    ABP940U - Bus-Master PCI Ultra (240 CDB)
39    ABP940UA/3940UA - Bus-Master PCI Ultra (240 CDB)
40    ABP970 - Bus-Master PCI MAC/PC (240 CDB)
41    ABP970U - Bus-Master PCI MAC/PC Ultra (240 CDB)
42    ABP3960UA - Bus-Master PCI MAC/PC Ultra (240 CDB)
43    ABP940UW/3940UW - Bus-Master PCI Ultra-Wide (253 CDB)
44    ABP970UW - Bus-Master PCI MAC/PC Ultra-Wide (253 CDB)
45    ABP3940U2W - Bus-Master PCI LVD/Ultra2-Wide (253 CDB)
47 Multi-Channel Products:
48    ABP752 - Dual Channel Bus-Master EISA (240 CDB Per Channel)
49    ABP852 - Dual Channel Bus-Master VL (240 CDB Per Channel)
50    ABP950 - Dual Channel Bus-Master PCI (240 CDB Per Channel)
51    ABP950UW - Dual Channel Bus-Master PCI Ultra-Wide (253 CDB Per Channel)
52    ABP980 - Four Channel Bus-Master PCI (240 CDB Per Channel)
53    ABP980U - Four Channel Bus-Master PCI Ultra (240 CDB Per Channel)
54    ABP980UA/3980UA - Four Channel Bus-Master PCI Ultra (16 CDB Per Chan.)
55    ABP3950U2W - Bus-Master PCI LVD/Ultra2-Wide and Ultra-Wide (253 CDB)
56    ABP3950U3W - Bus-Master PCI Dual LVD2/Ultra3-Wide (253 CDB)
58 Driver Compile Time Options and Debugging
60 The following constants can be defined in the source file.
62 1. ADVANSYS_ASSERT - Enable driver assertions (Def: Enabled)
64    Enabling this option adds assertion logic statements to the
65    driver. If an assertion fails a message will be displayed to
66    the console, but the system will continue to operate. Any
67    assertions encountered should be reported to the person
68    responsible for the driver. Assertion statements may proactively
69    detect problems with the driver and facilitate fixing these
70    problems. Enabling assertions will add a small overhead to the
71    execution of the driver.
73 2. ADVANSYS_DEBUG - Enable driver debugging (Def: Disabled)
75    Enabling this option adds tracing functions to the driver and the
76    ability to set a driver tracing level at boot time.  This option is
77    very useful for debugging the driver, but it will add to the size
78    of the driver execution image and add overhead to the execution of
79    the driver.
81    The amount of debugging output can be controlled with the global
82    variable 'asc_dbglvl'. The higher the number the more output. By
83    default the debug level is 0.
85    If the driver is loaded at boot time and the LILO Driver Option
86    is included in the system, the debug level can be changed by
87    specifying a 5th (ASC_NUM_IOPORT_PROBE + 1) I/O Port. The
88    first three hex digits of the pseudo I/O Port must be set to
89    'deb' and the fourth hex digit specifies the debug level: 0 - F.
90    The following command line will look for an adapter at 0x330
91    and set the debug level to 2.
93       linux advansys=0x330,0,0,0,0xdeb2
95    If the driver is built as a loadable module this variable can be
96    defined when the driver is loaded. The following insmod command
97    will set the debug level to one.
99       insmod advansys.o asc_dbglvl=1
101    Debugging Message Levels:
102       0: Errors Only
103       1: High-Level Tracing
104       2-N: Verbose Tracing
106    To enable debug output to console, please make sure that:
108    a. System and kernel logging is enabled (syslogd, klogd running).
109    b. Kernel messages are routed to console output. Check
110       /etc/syslog.conf for an entry similar to this:
112            kern.*                  /dev/console
114    c. klogd is started with the appropriate -c parameter
115       (e.g. klogd -c 8)
117    This will cause printk() messages to be be displayed on the
118    current console. Refer to the klogd(8) and syslogd(8) man pages
119    for details.
121    Alternatively you can enable printk() to console with this
122    program. However, this is not the 'official' way to do this.
123    Debug output is logged in /var/log/messages.
125      main()
126      {
127              syscall(103, 7, 0, 0);
128      }
130    Increasing LOG_BUF_LEN in kernel/printk.c to something like
131    40960 allows more debug messages to be buffered in the kernel
132    and written to the console or log file.
134 3. ADVANSYS_STATS - Enable statistics (Def: Enabled)
136    Enabling this option adds statistics collection and display
137    through /proc to the driver. The information is useful for
138    monitoring driver and device performance. It will add to the
139    size of the driver execution image and add minor overhead to
140    the execution of the driver.
142    Statistics are maintained on a per adapter basis. Driver entry
143    point call counts and transfer size counts are maintained.
144    Statistics are only available for kernels greater than or equal
145    to v1.3.0 with the CONFIG_PROC_FS (/proc) file system configured.
147    AdvanSys SCSI adapter files have the following path name format:
149       /proc/scsi/advansys/{0,1,2,3,...}
151    This information can be displayed with cat. For example:
153       cat /proc/scsi/advansys/0
155    When ADVANSYS_STATS is not defined the AdvanSys /proc files only
156    contain adapter and device configuration information.
158 Driver LILO Option
160 If init/main.c is modified as described in the 'Directions for Adding
161 the AdvanSys Driver to Linux' section (B.4.) above, the driver will
162 recognize the 'advansys' LILO command line and /etc/lilo.conf option.
163 This option can be used to either disable I/O port scanning or to limit
164 scanning to 1 - 4 I/O ports. Regardless of the option setting EISA and
165 PCI boards will still be searched for and detected. This option only
166 affects searching for ISA and VL boards.
168 Examples:
169   1. Eliminate I/O port scanning:
170        boot: linux advansys=
171          or
172        boot: linux advansys=0x0
173   2. Limit I/O port scanning to one I/O port:
174        boot: linux advansys=0x110
175   3. Limit I/O port scanning to four I/O ports:
176        boot: linux advansys=0x110,0x210,0x230,0x330
178 For a loadable module the same effect can be achieved by setting
179 the 'asc_iopflag' variable and 'asc_ioport' array when loading
180 the driver, e.g.
182       insmod advansys.o asc_iopflag=1 asc_ioport=0x110,0x330
184 If ADVANSYS_DEBUG is defined a 5th (ASC_NUM_IOPORT_PROBE + 1)
185 I/O Port may be added to specify the driver debug level. Refer to
186 the 'Driver Compile Time Options and Debugging' section above for
187 more information.
189 Credits (Chronological Order)
191 Bob Frey <bfrey@turbolinux.com.cn> wrote the AdvanSys SCSI driver
192 and maintained it up to 3.3F. He continues to answer questions
193 and help maintain the driver.
195 Nathan Hartwell <mage@cdc3.cdc.net> provided the directions and
196 basis for the Linux v1.3.X changes which were included in the
197 1.2 release.
199 Thomas E Zerucha <zerucha@shell.portal.com> pointed out a bug
200 in advansys_biosparam() which was fixed in the 1.3 release.
202 Erik Ratcliffe <erik@caldera.com> has done testing of the
203 AdvanSys driver in the Caldera releases.
205 Rik van Riel <H.H.vanRiel@fys.ruu.nl> provided a patch to
206 AscWaitTixISRDone() which he found necessary to make the
207 driver work with a SCSI-1 disk.
209 Mark Moran <mmoran@mmoran.com> has helped test Ultra-Wide
210 support in the 3.1A driver.
212 Doug Gilbert <dgilbert@interlog.com> has made changes and
213 suggestions to improve the driver and done a lot of testing.
215 Ken Mort <ken@mort.net> reported a DEBUG compile bug fixed
216 in 3.2K.
218 Tom Rini <trini@kernel.crashing.org> provided the CONFIG_ISA
219 patch and helped with PowerPC wide and narrow board support.
221 Philip Blundell <philb@gnu.org> provided an
222 advansys_interrupts_enabled patch.
224 Dave Jones <dave@denial.force9.co.uk> reported the compiler
225 warnings generated when CONFIG_PROC_FS was not defined in
226 the 3.2M driver.
228 Jerry Quinn <jlquinn@us.ibm.com> fixed PowerPC support (endian
229 problems) for wide cards.
231 Bryan Henderson <bryanh@giraffe-data.com> helped debug narrow
232 card error handling.
234 Manuel Veloso <veloso@pobox.com> worked hard on PowerPC narrow
235 board support and fixed a bug in AscGetEEPConfig().
237 Arnaldo Carvalho de Melo <acme@conectiva.com.br> made
238 save_flags/restore_flags changes.
240 Andy Kellner <AKellner@connectcom.net> continued the Advansys SCSI
241 driver development for ConnectCom (Version > 3.3F).
243 Ken Witherow for extensive testing during the development of version 3.4.