advansys.rst 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272
  1. .. SPDX-License-Identifier: GPL-2.0
  2. =====================
  3. AdvanSys Driver Notes
  4. =====================
  5. AdvanSys (Advanced System Products, Inc.) manufactures the following
  6. RISC-based, Bus-Mastering, Fast (10 Mhz) and Ultra (20 Mhz) Narrow
  7. (8-bit transfer) SCSI Host Adapters for the ISA, EISA, VL, and PCI
  8. buses and RISC-based, Bus-Mastering, Ultra (20 Mhz) Wide (16-bit
  9. transfer) SCSI Host Adapters for the PCI bus.
  10. The CDB counts below indicate the number of SCSI CDB (Command
  11. Descriptor Block) requests that can be stored in the RISC chip
  12. cache and board LRAM. A CDB is a single SCSI command. The driver
  13. detect routine will display the number of CDBs available for each
  14. adapter detected. The number of CDBs used by the driver can be
  15. lowered in the BIOS by changing the 'Host Queue Size' adapter setting.
  16. Laptop Products:
  17. - ABP-480 - Bus-Master CardBus (16 CDB)
  18. Connectivity Products:
  19. - ABP510/5150 - Bus-Master ISA (240 CDB)
  20. - ABP5140 - Bus-Master ISA PnP (16 CDB)
  21. - ABP5142 - Bus-Master ISA PnP with floppy (16 CDB)
  22. - ABP902/3902 - Bus-Master PCI (16 CDB)
  23. - ABP3905 - Bus-Master PCI (16 CDB)
  24. - ABP915 - Bus-Master PCI (16 CDB)
  25. - ABP920 - Bus-Master PCI (16 CDB)
  26. - ABP3922 - Bus-Master PCI (16 CDB)
  27. - ABP3925 - Bus-Master PCI (16 CDB)
  28. - ABP930 - Bus-Master PCI (16 CDB)
  29. - ABP930U - Bus-Master PCI Ultra (16 CDB)
  30. - ABP930UA - Bus-Master PCI Ultra (16 CDB)
  31. - ABP960 - Bus-Master PCI MAC/PC (16 CDB)
  32. - 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)
  46. Multi-Channel Products:
  47. - ABP752 - Dual Channel Bus-Master EISA (240 CDB Per Channel)
  48. - ABP852 - Dual Channel Bus-Master VL (240 CDB Per Channel)
  49. - ABP950 - Dual Channel Bus-Master PCI (240 CDB Per Channel)
  50. - ABP950UW - Dual Channel Bus-Master PCI Ultra-Wide (253 CDB Per Channel)
  51. - ABP980 - Four Channel Bus-Master PCI (240 CDB Per Channel)
  52. - ABP980U - Four Channel Bus-Master PCI Ultra (240 CDB Per Channel)
  53. - ABP980UA/3980UA - Four Channel Bus-Master PCI Ultra (16 CDB Per Chan.)
  54. - ABP3950U2W - Bus-Master PCI LVD/Ultra2-Wide and Ultra-Wide (253 CDB)
  55. - ABP3950U3W - Bus-Master PCI Dual LVD2/Ultra3-Wide (253 CDB)
  56. Driver Compile Time Options and Debugging
  57. =========================================
  58. The following constants can be defined in the source file.
  59. 1. ADVANSYS_ASSERT - Enable driver assertions (Def: Enabled)
  60. Enabling this option adds assertion logic statements to the
  61. driver. If an assertion fails a message will be displayed to
  62. the console, but the system will continue to operate. Any
  63. assertions encountered should be reported to the person
  64. responsible for the driver. Assertion statements may proactively
  65. detect problems with the driver and facilitate fixing these
  66. problems. Enabling assertions will add a small overhead to the
  67. execution of the driver.
  68. 2. ADVANSYS_DEBUG - Enable driver debugging (Def: Disabled)
  69. Enabling this option adds tracing functions to the driver and the
  70. ability to set a driver tracing level at boot time. This option is
  71. very useful for debugging the driver, but it will add to the size
  72. of the driver execution image and add overhead to the execution of
  73. the driver.
  74. The amount of debugging output can be controlled with the global
  75. variable 'asc_dbglvl'. The higher the number the more output. By
  76. default the debug level is 0.
  77. If the driver is loaded at boot time and the LILO Driver Option
  78. is included in the system, the debug level can be changed by
  79. specifying a 5th (ASC_NUM_IOPORT_PROBE + 1) I/O Port. The
  80. first three hex digits of the pseudo I/O Port must be set to
  81. 'deb' and the fourth hex digit specifies the debug level: 0 - F.
  82. The following command line will look for an adapter at 0x330
  83. and set the debug level to 2::
  84. linux advansys=0x330,0,0,0,0xdeb2
  85. If the driver is built as a loadable module this variable can be
  86. defined when the driver is loaded. The following insmod command
  87. will set the debug level to one::
  88. insmod advansys.o asc_dbglvl=1
  89. Debugging Message Levels:
  90. ==== ==================
  91. 0 Errors Only
  92. 1 High-Level Tracing
  93. 2-N Verbose Tracing
  94. ==== ==================
  95. To enable debug output to console, please make sure that:
  96. a. System and kernel logging is enabled (syslogd, klogd running).
  97. b. Kernel messages are routed to console output. Check
  98. /etc/syslog.conf for an entry similar to this::
  99. kern.* /dev/console
  100. c. klogd is started with the appropriate -c parameter
  101. (e.g. klogd -c 8)
  102. This will cause printk() messages to be displayed on the
  103. current console. Refer to the klogd(8) and syslogd(8) man pages
  104. for details.
  105. Alternatively you can enable printk() to console with this
  106. program. However, this is not the 'official' way to do this.
  107. Debug output is logged in /var/log/messages.
  108. ::
  109. main()
  110. {
  111. syscall(103, 7, 0, 0);
  112. }
  113. Increasing LOG_BUF_LEN in kernel/printk.c to something like
  114. 40960 allows more debug messages to be buffered in the kernel
  115. and written to the console or log file.
  116. 3. ADVANSYS_STATS - Enable statistics (Def: Enabled)
  117. Enabling this option adds statistics collection and display
  118. through /proc to the driver. The information is useful for
  119. monitoring driver and device performance. It will add to the
  120. size of the driver execution image and add minor overhead to
  121. the execution of the driver.
  122. Statistics are maintained on a per adapter basis. Driver entry
  123. point call counts and transfer size counts are maintained.
  124. Statistics are only available for kernels greater than or equal
  125. to v1.3.0 with the CONFIG_PROC_FS (/proc) file system configured.
  126. AdvanSys SCSI adapter files have the following path name format::
  127. /proc/scsi/advansys/{0,1,2,3,...}
  128. This information can be displayed with cat. For example::
  129. cat /proc/scsi/advansys/0
  130. When ADVANSYS_STATS is not defined the AdvanSys /proc files only
  131. contain adapter and device configuration information.
  132. Driver LILO Option
  133. ==================
  134. If init/main.c is modified as described in the 'Directions for Adding
  135. the AdvanSys Driver to Linux' section (B.4.) above, the driver will
  136. recognize the 'advansys' LILO command line and /etc/lilo.conf option.
  137. This option can be used to either disable I/O port scanning or to limit
  138. scanning to 1 - 4 I/O ports. Regardless of the option setting EISA and
  139. PCI boards will still be searched for and detected. This option only
  140. affects searching for ISA and VL boards.
  141. Examples:
  142. 1. Eliminate I/O port scanning:
  143. boot::
  144. linux advansys=
  145. or::
  146. boot: linux advansys=0x0
  147. 2. Limit I/O port scanning to one I/O port:
  148. boot::
  149. linux advansys=0x110
  150. 3. Limit I/O port scanning to four I/O ports:
  151. boot::
  152. linux advansys=0x110,0x210,0x230,0x330
  153. For a loadable module the same effect can be achieved by setting
  154. the 'asc_iopflag' variable and 'asc_ioport' array when loading
  155. the driver, e.g.::
  156. insmod advansys.o asc_iopflag=1 asc_ioport=0x110,0x330
  157. If ADVANSYS_DEBUG is defined a 5th (ASC_NUM_IOPORT_PROBE + 1)
  158. I/O Port may be added to specify the driver debug level. Refer to
  159. the 'Driver Compile Time Options and Debugging' section above for
  160. more information.
  161. Credits (Chronological Order)
  162. =============================
  163. Bob Frey <[email protected]> wrote the AdvanSys SCSI driver
  164. and maintained it up to 3.3F. He continues to answer questions
  165. and help maintain the driver.
  166. Nathan Hartwell <[email protected]> provided the directions and
  167. basis for the Linux v1.3.X changes which were included in the
  168. 1.2 release.
  169. Thomas E Zerucha <[email protected]> pointed out a bug
  170. in advansys_biosparam() which was fixed in the 1.3 release.
  171. Erik Ratcliffe <[email protected]> has done testing of the
  172. AdvanSys driver in the Caldera releases.
  173. Rik van Riel <[email protected]> provided a patch to
  174. AscWaitTixISRDone() which he found necessary to make the
  175. driver work with a SCSI-1 disk.
  176. Mark Moran <[email protected]> has helped test Ultra-Wide
  177. support in the 3.1A driver.
  178. Doug Gilbert <[email protected]> has made changes and
  179. suggestions to improve the driver and done a lot of testing.
  180. Ken Mort <[email protected]> reported a DEBUG compile bug fixed
  181. in 3.2K.
  182. Tom Rini <[email protected]> provided the CONFIG_ISA
  183. patch and helped with PowerPC wide and narrow board support.
  184. Philip Blundell <[email protected]> provided an
  185. advansys_interrupts_enabled patch.
  186. Dave Jones <[email protected]> reported the compiler
  187. warnings generated when CONFIG_PROC_FS was not defined in
  188. the 3.2M driver.
  189. Jerry Quinn <[email protected]> fixed PowerPC support (endian
  190. problems) for wide cards.
  191. Bryan Henderson <[email protected]> helped debug narrow
  192. card error handling.
  193. Manuel Veloso <[email protected]> worked hard on PowerPC narrow
  194. board support and fixed a bug in AscGetEEPConfig().
  195. Arnaldo Carvalho de Melo <[email protected]> made
  196. save_flags/restore_flags changes.
  197. Andy Kellner <[email protected]> continued the Advansys SCSI
  198. driver development for ConnectCom (Version > 3.3F).
  199. Ken Witherow for extensive testing during the development of version 3.4.