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. 6 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. 13 14Laptop Products: 15 ABP-480 - Bus-Master CardBus (16 CDB) 16 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) 32 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) 46 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) 57 58Driver Compile Time Options and Debugging 59 60The following constants can be defined in the source file. 61 621. ADVANSYS_ASSERT - Enable driver assertions (Def: Enabled) 63 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. 72 732. ADVANSYS_DEBUG - Enable driver debugging (Def: Disabled) 74 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. 80 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. 84 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. 92 93 linux advansys=0x330,0,0,0,0xdeb2 94 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. 98 99 insmod advansys.o asc_dbglvl=1 100 101 Debugging Message Levels: 102 0: Errors Only 103 1: High-Level Tracing 104 2-N: Verbose Tracing 105 106 To enable debug output to console, please make sure that: 107 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: 111 112 kern.* /dev/console 113 114 c. klogd is started with the appropriate -c parameter 115 (e.g. klogd -c 8) 116 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. 120 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. 124 125 main() 126 { 127 syscall(103, 7, 0, 0); 128 } 129 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. 133 1343. ADVANSYS_STATS - Enable statistics (Def: Enabled) 135 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. 141 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. 146 147 AdvanSys SCSI adapter files have the following path name format: 148 149 /proc/scsi/advansys/{0,1,2,3,...} 150 151 This information can be displayed with cat. For example: 152 153 cat /proc/scsi/advansys/0 154 155 When ADVANSYS_STATS is not defined the AdvanSys /proc files only 156 contain adapter and device configuration information. 157 158Driver LILO Option 159 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. 167 168Examples: 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 177 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. 181 182 insmod advansys.o asc_iopflag=1 asc_ioport=0x110,0x330 183 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. 188 189Credits (Chronological Order) 190 191Bob Frey <bfrey@turbolinux.com.cn> wrote the AdvanSys SCSI driver 192and maintained it up to 3.3F. He continues to answer questions 193and help maintain the driver. 194 195Nathan Hartwell <mage@cdc3.cdc.net> provided the directions and 196basis for the Linux v1.3.X changes which were included in the 1971.2 release. 198 199Thomas E Zerucha <zerucha@shell.portal.com> pointed out a bug 200in advansys_biosparam() which was fixed in the 1.3 release. 201 202Erik Ratcliffe <erik@caldera.com> has done testing of the 203AdvanSys driver in the Caldera releases. 204 205Rik van Riel <H.H.vanRiel@fys.ruu.nl> provided a patch to 206AscWaitTixISRDone() which he found necessary to make the 207driver work with a SCSI-1 disk. 208 209Mark Moran <mmoran@mmoran.com> has helped test Ultra-Wide 210support in the 3.1A driver. 211 212Doug Gilbert <dgilbert@interlog.com> has made changes and 213suggestions to improve the driver and done a lot of testing. 214 215Ken Mort <ken@mort.net> reported a DEBUG compile bug fixed 216in 3.2K. 217 218Tom Rini <trini@kernel.crashing.org> provided the CONFIG_ISA 219patch and helped with PowerPC wide and narrow board support. 220 221Philip Blundell <philb@gnu.org> provided an 222advansys_interrupts_enabled patch. 223 224Dave Jones <dave@denial.force9.co.uk> reported the compiler 225warnings generated when CONFIG_PROC_FS was not defined in 226the 3.2M driver. 227 228Jerry Quinn <jlquinn@us.ibm.com> fixed PowerPC support (endian 229problems) for wide cards. 230 231Bryan Henderson <bryanh@giraffe-data.com> helped debug narrow 232card error handling. 233 234Manuel Veloso <veloso@pobox.com> worked hard on PowerPC narrow 235board support and fixed a bug in AscGetEEPConfig(). 236 237Arnaldo Carvalho de Melo <acme@conectiva.com.br> made 238save_flags/restore_flags changes. 239 240Andy Kellner <AKellner@connectcom.net> continued the Advansys SCSI 241driver development for ConnectCom (Version > 3.3F). 242 243Ken Witherow for extensive testing during the development of version 3.4. 244