1AdvanSys (Advanced System Products, Inc.) manufactures the following
   2RISC-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
   4buses and RISC-based, Bus-Mastering, Ultra (20 Mhz) Wide (16-bit
   5transfer) SCSI Host Adapters for the PCI bus.
   7The CDB counts below indicate the number of SCSI CDB (Command
   8Descriptor Block) requests that can be stored in the RISC chip
   9cache and board LRAM. A CDB is a single SCSI command. The driver
  10detect routine will display the number of CDBs available for each
  11adapter detected. The number of CDBs used by the driver can be
  12lowered in the BIOS by changing the 'Host Queue Size' adapter setting.
  14Laptop Products:
  15   ABP-480 - Bus-Master CardBus (16 CDB)
  17Connectivity 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)
  33Single 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)
  47Multi-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)
  58Driver Compile Time Options and Debugging
  60The following constants can be defined in the source file.
  621. 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.
  732. 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.
 1343. 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.
 158Driver LILO Option
 160If init/main.c is modified as described in the 'Directions for Adding
 161the AdvanSys Driver to Linux' section (B.4.) above, the driver will
 162recognize the 'advansys' LILO command line and /etc/lilo.conf option.
 163This option can be used to either disable I/O port scanning or to limit
 164scanning to 1 - 4 I/O ports. Regardless of the option setting EISA and
 165PCI boards will still be searched for and detected. This option only
 166affects searching for ISA and VL boards.
 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
 178For a loadable module the same effect can be achieved by setting
 179the 'asc_iopflag' variable and 'asc_ioport' array when loading
 180the driver, e.g.
 182      insmod advansys.o asc_iopflag=1 asc_ioport=0x110,0x330
 184If ADVANSYS_DEBUG is defined a 5th (ASC_NUM_IOPORT_PROBE + 1)
 185I/O Port may be added to specify the driver debug level. Refer to
 186the 'Driver Compile Time Options and Debugging' section above for
 187more information.
 189Credits (Chronological Order)
 191Bob Frey <> wrote the AdvanSys SCSI driver
 192and maintained it up to 3.3F. He continues to answer questions
 193and help maintain the driver.
 195Nathan Hartwell <> provided the directions and
 196basis for the Linux v1.3.X changes which were included in the
 1971.2 release.
 199Thomas E Zerucha <> pointed out a bug
 200in advansys_biosparam() which was fixed in the 1.3 release.
 202Erik Ratcliffe <> has done testing of the
 203AdvanSys driver in the Caldera releases.
 205Rik van Riel <> provided a patch to
 206AscWaitTixISRDone() which he found necessary to make the
 207driver work with a SCSI-1 disk.
 209Mark Moran <> has helped test Ultra-Wide
 210support in the 3.1A driver.
 212Doug Gilbert <> has made changes and
 213suggestions to improve the driver and done a lot of testing.
 215Ken Mort <> reported a DEBUG compile bug fixed
 216in 3.2K.
 218Tom Rini <> provided the CONFIG_ISA
 219patch and helped with PowerPC wide and narrow board support.
 221Philip Blundell <> provided an
 222advansys_interrupts_enabled patch.
 224Dave Jones <> reported the compiler
 225warnings generated when CONFIG_PROC_FS was not defined in
 226the 3.2M driver.
 228Jerry Quinn <> fixed PowerPC support (endian
 229problems) for wide cards.
 231Bryan Henderson <> helped debug narrow
 232card error handling.
 234Manuel Veloso <> worked hard on PowerPC narrow
 235board support and fixed a bug in AscGetEEPConfig().
 237Arnaldo Carvalho de Melo <> made
 238save_flags/restore_flags changes.
 240Andy Kellner <> continued the Advansys SCSI
 241driver development for ConnectCom (Version > 3.3F).
 243Ken Witherow for extensive testing during the development of version 3.4.