home *** CD-ROM | disk | FTP | other *** search
/ CD Actual 8 / CDACTUAL8.iso / docs / kernel-2.0 / scsi / readme.bus < prev    next >
Encoding:
Text File  |  1996-07-11  |  17.8 KB  |  363 lines

  1.           BusLogic MultiMaster SCSI Driver for Linux
  2.  
  3.                Version 1.2.4 for Linux 1.2.13
  4.                Version 2.0.4 for Linux 2.0.0
  5.  
  6.                   5 June 1996
  7.  
  8.                    Leonard N. Zubkoff
  9.                    Dandelion Digital
  10.                    lnz@dandelion.com
  11.  
  12.        Copyright 1995 by Leonard N. Zubkoff <lnz@dandelion.com>
  13.  
  14.  
  15.                  INTRODUCTION
  16.  
  17. BusLogic, Inc. designs and manufactures a variety of high performance SCSI host
  18. adapters which share a common programming interface across a diverse collection
  19. of bus architectures by virtue of their MultiMaster ASIC technology.  This
  20. driver supports all present BusLogic MultiMaster Host Adapters, and should
  21. support any future MultiMaster designs with little or no modification.  Host
  22. adapters based on the new FlashPoint architecture are not supported by this
  23. driver; consult the README.FlashPoint file for information about a program to
  24. upgrade Linux users from the unsupported FlashPoint LT to the supported BT-948.
  25.  
  26. My primary goals in writing this completely new BusLogic driver for Linux are
  27. to achieve the full performance that BusLogic SCSI Host Adapters and modern
  28. SCSI peripherals are capable of, and to provide a highly robust driver that can
  29. be depended upon for high performance mission critical applications.  All of
  30. the major performance and error recovery features can be configured from the
  31. Linux kernel command line, allowing individual installations to tune driver
  32. performance and error recovery to their particular needs.
  33.  
  34. The most recent versions of this driver will always be available by anonymous
  35. FTP from ftp.dandelion.com.  While directory listings are not permitted, the
  36. introductory banner displayed on anonymous FTP login will provide a list of the
  37. driver versions and any other files that are available for retrieval.
  38.  
  39. Bug reports should be sent via electronic mail to "lnz@dandelion.com".  Please
  40. include with the bug report the complete configuration messages reported by the
  41. driver and SCSI subsystem at startup, along with any subsequent system messages
  42. relevant to SCSI operations, and a detailed description of your system's
  43. hardware configuration.
  44.  
  45. BusLogic has been an excellent company to work with and I highly recommend
  46. their products to the Linux community.  In November 1995, I was offered the
  47. opportunity to become a beta test site for their latest MultiMaster product,
  48. the BT-948 PCI Ultra SCSI Host Adapter, and then again for the BT-958 PCI Wide
  49. Ultra SCSI Host Adapter in January 1996.  This was mutually beneficial since
  50. BusLogic received a degree and kind of testing that their own testing group
  51. cannot readily achieve, and the Linux community has available high performance
  52. host adapters that have been well tested with Linux even before being brought
  53. to market.  This relationship has also given me the opportunity to interact
  54. directly with their technical staff, to understand more about the internal
  55. workings of their products, and in turn to educate them about the needs and
  56. potential of the Linux community.  Their interest and support is greatly
  57. appreciated.
  58.  
  59. Unlike some other vendors, if you contact BusLogic Technical Support with a
  60. problem and are running Linux, they will not tell you that your use of their
  61. products is unsupported.  Their latest product marketing literature even states
  62. "BusLogic SCSI host adapters are compatible with all major operating systems
  63. including: ... Linux ...".
  64.  
  65. BusLogic, Inc. is located at 4151 Burton Drive, Santa Clara, California, 95054,
  66. USA and can be reached by Voice at 408/492-9090 or by FAX at 408/492-1542.
  67. BusLogic maintains a World Wide Web site at http://www.buslogic.com, an
  68. anonymous FTP site at ftp.buslogic.com, and a BBS at 408/492-1984.  BusLogic
  69. Technical Support can be reached by electronic mail at techsup@buslogic.com, by
  70. Voice at 408/654-0760, or by FAX at 408/492-1542.  Contact information for
  71. offices in Europe and Japan is available on the Web site.
  72.  
  73.  
  74.                 DRIVER FEATURES
  75.  
  76. o Configuration Reporting and Testing
  77.  
  78.   During system initialization, the driver reports extensively on the host
  79.   adapter hardware configuration, including the synchronous transfer parameters
  80.   negotiated with each target device.  In addition, the driver tests the
  81.   hardware interrupt configuration to verify that interrupts are actually
  82.   delivered correctly to the interrupt handler.  This should catch a high
  83.   percentage of PCI motherboard configuration errors early, because when the
  84.   host adapter is probed successfully, most of the remaining problems appear to
  85.   be related to interrupts.  Most often, any remaining hardware problems are
  86.   related to the specific configuration of devices on the SCSI bus, and the
  87.   quality of cabling and termination used.  Finally, this BusLogic driver
  88.   should never incorrectly attempt to support an Adaptec 154x Host Adapter.
  89.  
  90. o Performance Features
  91.  
  92.   BusLogic SCSI Host Adapters directly implement SCSI-2 Tagged Queuing, and so
  93.   support has been included in the driver to utilize tagged queuing with any
  94.   target devices that report having the tagged queuing capability.  Tagged
  95.   queuing allows for multiple outstanding commands to be issued to each target
  96.   device or logical unit, and can improve I/O performance substantially.  In
  97.   addition, BusLogic's Strict Round Robin Mode is used to optimize host adapter
  98.   performance, and scatter/gather I/O can support as many segments as can be
  99.   effectively utilized by the Linux I/O subsystem.  Control over the use of
  100.   tagged queuing for each target device as well as selection of the tagged
  101.   queue depth is available from the kernel command line.  By default, the queue
  102.   depth is automatically determined based on the number, type, speed, and
  103.   capabilities of the target devices found.  In addition, tagged queuing is
  104.   automatically disabled whenever the host adapter firmware version is known
  105.   not to implement it correctly, or whenever a tagged queue depth of 1 is
  106.   selected.  Tagged queuing is also disabled for individual target devices if
  107.   disconnect/reconnect is disabled for that device.  In performance testing,
  108.   sustained disk writes of 7.3MB per second have been observed to a /dev/sd
  109.   device.
  110.  
  111. o Robustness Features
  112.  
  113.   The driver implements extensive error recovery procedures.  When the higher
  114.   level parts of the SCSI subsystem request that a command be reset, action is
  115.   taken to restore proper operation of the host adapter and SCSI bus.  On Linux
  116.   1.2.13, by default a full host adapter hard reset and SCSI bus reset is
  117.   performed.  On Linux 2.0.x, by default a selection is made between a full
  118.   host adapter hard reset and SCSI bus reset versus sending a bus device reset
  119.   message to the individual target device based on the recommendation of the
  120.   SCSI subsystem.  Error recovery strategies are selectable from the kernel
  121.   command line individually for each target device, and also include sending a
  122.   bus device reset to the specific target device associated with the command
  123.   being reset, as well as suppressing error recovery entirely to avoid
  124.   perturbing an improperly functioning device.  If the bus device reset error
  125.   recovery strategy is selected and sending a bus device reset does not restore
  126.   correct operation, the next command that is reset will force a full host
  127.   adapter hard reset and SCSI bus reset.  SCSI bus resets caused by other
  128.   devices and detected by the host adapter are also handled by issuing a hard
  129.   reset to the host adapter and full re-initialization.  Finally, if tagged
  130.   queuing is active and more than one command reset occurs in a 10 minute
  131.   interval, or if a command reset occurs within the first 10 minutes of
  132.   operation, then tagged queuing will be disabled for that target device.
  133.   These error recovery options should improve overall system robustness by
  134.   preventing individual errant devices from causing the system as a whole to
  135.   lock up or crash, and thereby allowing a clean shutdown and restart after the
  136.   offending component is removed.
  137.  
  138. o Extensive Testing
  139.  
  140.   This driver has undergone extensive testing and improvement over a period of
  141.   several months, and is routinely being used on heavily loaded systems.  Over
  142.   300 people retrieved the driver during the beta test period.  In addition to
  143.   testing in normal system operation, error recovery tests have been performed
  144.   to verify proper system recovery in the case of simulated dropped interrupts,
  145.   external SCSI bus resets, and SCSI command errors due to bad CD-ROM media.
  146.  
  147. o PCI Configuration Support
  148.  
  149.   On PCI systems running kernels compiled with PCI BIOS support enabled, this
  150.   driver will interrogate the PCI configuration space and use the I/O port
  151.   addresses assigned by the system BIOS, rather than the ISA compatible I/O
  152.   port addresses.  The ISA compatible I/O port address is then disabled by the
  153.   driver.  On PCI systems it is also recommended that the AutoSCSI utility be
  154.   used to disable the ISA compatible I/O port entirely as it is not necessary.
  155.   The ISA compatible I/O port is disabled by default on the BT-948/958/958D.
  156.  
  157. o Shared Interrupts Support
  158.  
  159.   On systems that support shared interrupts, any number of BusLogic Host
  160.   Adapters may share the same interrupt request channel, and in fact it is more
  161.   efficient if they do so.  The driver scans all known BusLogic Host Adapters
  162.   whenever an interrupt is handled on an interrupt channel assigned to any
  163.   BusLogic Host Adapter.
  164.  
  165. o Wide SCSI Support
  166.  
  167.   All BusLogic MultiMaster SCSI Host Adapters share a common programming
  168.   interface, except for the inevitable improvements and extensions as new
  169.   models are released, so support for Wide SCSI data transfer has automatically
  170.   been available without explicit driver support.  When used with Linux 2.0.x,
  171.   this driver adds explicit support for up to 15 target devices and 64 logical
  172.   units per target device, to fully exploit the capabilities of the newest
  173.   BusLogic Wide SCSI Host Adapters.
  174.  
  175.  
  176.                 SUPPORTED HOST ADAPTERS
  177.  
  178. The following list comprises the supported BusLogic SCSI Host Adapters as of
  179. the date of this document.  It is recommended that anyone purchasing a BusLogic
  180. Host Adapter not in the following table contact the author beforehand to verify
  181. that it is or will be supported.
  182.  
  183. "W" Series Host Adapters:
  184.  
  185. BT-948        PCI        Ultra Fast Single-ended SCSI-2
  186. BT-958        PCI        Ultra Wide Single-ended SCSI-2
  187. BT-958D        PCI        Ultra Wide Differential SCSI-2
  188.  
  189. "C" Series Host Adapters:
  190.  
  191. BT-946C        PCI        Fast Single-ended SCSI-2
  192. BT-956C        PCI        Fast Wide Single-ended SCSI-2
  193. BT-956CD    PCI        Fast Wide Differential SCSI-2
  194. BT-445C        VLB        Fast Single-ended SCSI-2
  195. BT-747C        EISA    Fast Single-ended SCSI-2
  196. BT-757C        EISA    Fast Wide Single-ended SCSI-2
  197. BT-757CD    EISA    Fast Wide Differential SCSI-2
  198. BT-545C        ISA        Fast Single-ended SCSI-2
  199. BT-540CF    ISA        Fast Single-ended SCSI-2
  200.  
  201. "S" Series Host Adapters:
  202.  
  203. BT-445S        VLB        Fast Single-ended SCSI-2
  204. BT-747S        EISA    Fast Single-ended SCSI-2
  205. BT-747D        EISA    Fast Differential SCSI-2
  206. BT-757S        EISA    Fast Wide Single-ended SCSI-2
  207. BT-757D        EISA    Fast Wide Differential SCSI-2
  208. BT-545S        ISA        Fast Single-ended SCSI-2
  209. BT-542D        ISA        Fast Differential SCSI-2
  210. BT-742A        EISA    Single-ended SCSI-2 (742A revision H)
  211. BT-542B        ISA        Single-ended SCSI-2 (542B revision H)
  212.  
  213. "A" Series Host Adapters:
  214.  
  215. BT-742A        EISA    Single-ended SCSI-2 (742A revisions A - G)
  216. BT-542B        ISA        Single-ended SCSI-2 (542B revisions A - G)
  217.  
  218. The FlashPoint LT, also known as the BT-930 Ultra, implements a different host
  219. interface and is not supported by this driver.  Consult the README.FlashPoint
  220. file for information about a program to upgrade Linux users from the
  221. unsupported FlashPoint LT to the supported BT-948.
  222.  
  223. AMI FastDisk Host Adapters that are true BusLogic clones are supported by this
  224. driver.
  225.  
  226.  
  227.               BT-948/958/958D INSTALLATION NOTES
  228.  
  229. The BT-948/958/958D PCI Ultra SCSI Host Adapters have some features which may
  230. require attention in some circumstances when installing Linux.
  231.  
  232. o PCI I/O Port Assignments
  233.  
  234.   When configured to factory default settings, the BT-948/958/958D will only
  235.   recognize the PCI I/O port assignments made by the motherboard's PCI BIOS.
  236.   The BT-948/958/958D will not respond to any of the ISA compatible I/O ports
  237.   that previous BusLogic SCSI Host Adapters respond to.  This driver supports
  238.   the PCI I/O port assignments, so this is the preferred configuration.
  239.   However, if the obsolete BusLogic driver must be used for any reason, such as
  240.   a Linux distribution that does not yet use this driver in its boot kernel,
  241.   BusLogic has provided an AutoSCSI configuration option to enable a legacy ISA
  242.   compatible I/O port.
  243.  
  244.   To enable this backward compatibility option, invoke the AutoSCSI utility via
  245.   Ctrl-B at system startup and select "Adapter Configuration", "View/Modify
  246.   Configuration", and then change the "ISA Compatible Port" setting from
  247.   "Disable" to "Primary" or "Alternate".  Once this driver has been installed,
  248.   the "ISA Compatible Port" option should be set back to "Disable" to avoid
  249.   possible future I/O port conflicts.  The older BT-946C/956C/956CD also have
  250.   this configuration option, but the factory default setting is "Primary".
  251.  
  252. o PCI Slot Scanning Order
  253.  
  254.   In systems with multiple BusLogic PCI Host Adapters, the order in which the
  255.   PCI slots are scanned may appear reversed with the BT-948/958/958D as
  256.   compared to the BT-946C/956C/956CD.  For booting from a SCSI disk to work
  257.   correctly, it is necessary that the host adapter's BIOS and the kernel agree
  258.   on which disk is the boot device, which requires that they recognize the PCI
  259.   host adapters in the same order.  The motherboard's PCI BIOS provides a
  260.   standard way of enumerating the PCI host adapters, which is used by the Linux
  261.   kernel.  Some PCI BIOS implementations enumerate the PCI slots in order of
  262.   increasing bus number and device number, while others do so in the opposite
  263.   direction.
  264.  
  265.   Unfortunately, Microsoft decided that Windows 95 would always enumerate the
  266.   PCI slots in order of increasing bus number and device number regardless of
  267.   the PCI BIOS enumeration, and requires that their scheme be supported by the
  268.   host adapter's BIOS to receive Windows 95 certification.  Therefore, the
  269.   factory default settings of the BT-948/958/958D enumerate the host adapters
  270.   by increasing bus number and device number.  To disable this feature, invoke
  271.   the AutoSCSI utility via Ctrl-B at system startup and select "Adapter
  272.   Configuration", "View/Modify Configuration", press Ctrl-F10, and then change
  273.   the "Use Bus And Device # For PCI Scanning Seq." option to OFF.
  274.  
  275.   This driver will interrogate the setting of the PCI Scanning Sequence option
  276.   so as to recognize the host adapters in the same order as they are enumerated
  277.   by the host adapter's BIOS.
  278.  
  279.  
  280.                  COMMAND LINE OPTIONS
  281.  
  282. Many features of this driver are configurable by specification of appropriate
  283. kernel command line options.  A full description of the command line options
  284. may be found in the comments before BusLogic_Setup in the kernel source code
  285. file "BusLogic.c".  The following examples may be useful as a starting point:
  286.  
  287.   "BusLogic=0x330"
  288.  
  289.     This command line limits probing to the single I/O port at 0x330.
  290.  
  291.   "BusLogic=0,1"
  292.  
  293.     This command line selects default probing and a tagged queue depth of 1
  294.     which also disables tagged queuing.  It may be useful if problems arise
  295.     during installation on a system with a flaky SCSI configuration.  In cases
  296.     of a marginal SCSI configuration it may also be beneficial to disable fast
  297.     transfers and/or synchronous negotiation using AutoSCSI on "W" and "C"
  298.     series boards.  Disconnect/reconnect may also be disabled for fast devices
  299.     such as disk drives, but should not be disabled for tape drives or other
  300.     devices where a single command may take over a second to execute.
  301.  
  302.   "BusLogic=0,0,30"
  303.  
  304.     This command line selects default probing and automatic tagged queue depth
  305.     selection, but changes the bus settle time to 30 seconds.  It may be useful
  306.     with SCSI devices that take an unusually long time to become ready to
  307.     accept commands after a SCSI bus reset.  Some tape drives will not respond
  308.     properly immediately after a SCSI bus reset, especially if a tape is
  309.     present in the drive.
  310.  
  311.   "BusLogic=TQ:Disable"
  312.  
  313.     This command line selects default probing and disables tagged queuing.
  314.  
  315.   "BusLogic=0,15,TQ:N"
  316.  
  317.     This command line selects a tagged queue depth of 15 and disables tagged
  318.     queuing for target 0, while allowing tagged queuing for all other target
  319.     devices.
  320.  
  321. Note that limiting the tagged queue depth or disabling tagged queuing can
  322. substantially impact performance.
  323.  
  324.  
  325.                  INSTALLATION
  326.  
  327. This distribution was prepared for Linux kernel version 1.2.13
  328. (BusLogic-1.2.4.tar.gz) or Linux kernel version 2.0.0 (BusLogic-2.0.4.tar.gz).
  329. Installation in later versions will probably be successful as well, though
  330. BusLogic.patch may not be required.  Installation in earlier versions is not
  331. recommended.
  332.  
  333. To install the BusLogic SCSI driver, you may use the following commands,
  334. replacing "/usr/src" with wherever you keep your Linux kernel source tree
  335. (substitute "1.2" or "2.0" for "x.y" in the tar command as appropriate):
  336.  
  337.   cd /usr/src
  338.   tar -xvzf BusLogic-x.y.4.tar.gz
  339.   mv README.* BusLogic.[ch] linux/drivers/scsi
  340.   patch -p < BusLogic.patch        (on Linux 1.2.13 only)
  341.   patch -p < BusLogic.elf_patch        (on Linux 1.2.13 ELF systems only)
  342.   cd linux
  343.   make config
  344.   make depend
  345.   make zImage
  346.  
  347. Then install "arch/i386/boot/zImage" as your standard kernel, run lilo if
  348. appropriate, and reboot.
  349.  
  350. Be sure to answer "y" to the "BusLogic SCSI support" query during the "make
  351. config" step.  If your system was already configured for the old BusLogic
  352. driver or for an older version of this driver, you may omit the "make config"
  353. step above.
  354.  
  355.  
  356.               BUSLOGIC ANNOUNCEMENTS MAILING LIST
  357.  
  358. The BusLogic Announcements Mailing List provides a forum for informing Linux
  359. users of new driver releases and other announcements regarding Linux support
  360. for BusLogic SCSI Host Adapters.  To join the mailing list, send a message to
  361. "buslogic-announce-request@dandelion.com" with the line "subscribe" in the
  362. message body.
  363.