| 	   BusLogic MultiMaster and FlashPoint SCSI Driver for Linux | 
 |  | 
 | 			 Version 2.0.15 for Linux 2.0 | 
 | 			 Version 2.1.15 for Linux 2.1 | 
 |  | 
 | 			      PRODUCTION RELEASE | 
 |  | 
 | 				17 August 1998 | 
 |  | 
 | 			       Leonard N. Zubkoff | 
 | 			       Dandelion Digital | 
 | 			       lnz@dandelion.com | 
 |  | 
 | 	 Copyright 1995-1998 by Leonard N. Zubkoff <lnz@dandelion.com> | 
 |  | 
 |  | 
 | 				 INTRODUCTION | 
 |  | 
 | BusLogic, Inc. designed and manufactured a variety of high performance SCSI | 
 | host adapters which share a common programming interface across a diverse | 
 | collection of bus architectures by virtue of their MultiMaster ASIC technology. | 
 | BusLogic was acquired by Mylex Corporation in February 1996, but the products | 
 | supported by this driver originated under the BusLogic name and so that name is | 
 | retained in the source code and documentation. | 
 |  | 
 | This driver supports all present BusLogic MultiMaster Host Adapters, and should | 
 | support any future MultiMaster designs with little or no modification.  More | 
 | recently, BusLogic introduced the FlashPoint Host Adapters, which are less | 
 | costly and rely on the host CPU, rather than including an onboard processor. | 
 | Despite not having an onboard CPU, the FlashPoint Host Adapters perform very | 
 | well and have very low command latency.  BusLogic has recently provided me with | 
 | the FlashPoint Driver Developer's Kit, which comprises documentation and freely | 
 | redistributable source code for the FlashPoint SCCB Manager.  The SCCB Manager | 
 | is the library of code that runs on the host CPU and performs functions | 
 | analogous to the firmware on the MultiMaster Host Adapters.  Thanks to their | 
 | having provided the SCCB Manager, this driver now supports the FlashPoint Host | 
 | Adapters as well. | 
 |  | 
 | My primary goals in writing this completely new BusLogic driver for Linux are | 
 | to achieve the full performance that BusLogic SCSI Host Adapters and modern | 
 | SCSI peripherals are capable of, and to provide a highly robust driver that can | 
 | be depended upon for high performance mission critical applications.  All of | 
 | the major performance features can be configured from the Linux kernel command | 
 | line or at module initialization time, allowing individual installations to | 
 | tune driver performance and error recovery to their particular needs. | 
 |  | 
 | The latest information on Linux support for BusLogic SCSI Host Adapters, as | 
 | well as the most recent release of this driver and the latest firmware for the | 
 | BT-948/958/958D, will always be available from my Linux Home Page at URL | 
 | "http://sourceforge.net/projects/dandelion/". | 
 |  | 
 | Bug reports should be sent via electronic mail to "lnz@dandelion.com".  Please | 
 | include with the bug report the complete configuration messages reported by the | 
 | driver and SCSI subsystem at startup, along with any subsequent system messages | 
 | relevant to SCSI operations, and a detailed description of your system's | 
 | hardware configuration. | 
 |  | 
 | Mylex has been an excellent company to work with and I highly recommend their | 
 | products to the Linux community.  In November 1995, I was offered the | 
 | opportunity to become a beta test site for their latest MultiMaster product, | 
 | the BT-948 PCI Ultra SCSI Host Adapter, and then again for the BT-958 PCI Wide | 
 | Ultra SCSI Host Adapter in January 1996.  This was mutually beneficial since | 
 | Mylex received a degree and kind of testing that their own testing group cannot | 
 | readily achieve, and the Linux community has available high performance host | 
 | adapters that have been well tested with Linux even before being brought to | 
 | market.  This relationship has also given me the opportunity to interact | 
 | directly with their technical staff, to understand more about the internal | 
 | workings of their products, and in turn to educate them about the needs and | 
 | potential of the Linux community. | 
 |  | 
 | More recently, Mylex has reaffirmed the company's interest in supporting the | 
 | Linux community, and I am now working on a Linux driver for the DAC960 PCI RAID | 
 | Controllers.  Mylex's interest and support is greatly appreciated. | 
 |  | 
 | Unlike some other vendors, if you contact Mylex Technical Support with a | 
 | problem and are running Linux, they will not tell you that your use of their | 
 | products is unsupported.  Their latest product marketing literature even states | 
 | "Mylex SCSI host adapters are compatible with all major operating systems | 
 | including: ... Linux ...". | 
 |  | 
 | Mylex Corporation is located at 34551 Ardenwood Blvd., Fremont, California | 
 | 94555, USA and can be reached at 510/796-6100 or on the World Wide Web at | 
 | http://www.mylex.com.  Mylex HBA Technical Support can be reached by electronic | 
 | mail at techsup@mylex.com, by Voice at 510/608-2400, or by FAX at 510/745-7715. | 
 | Contact information for offices in Europe and Japan is available on the Web | 
 | site. | 
 |  | 
 |  | 
 | 				DRIVER FEATURES | 
 |  | 
 | o Configuration Reporting and Testing | 
 |  | 
 |   During system initialization, the driver reports extensively on the host | 
 |   adapter hardware configuration, including the synchronous transfer parameters | 
 |   requested and negotiated with each target device.  AutoSCSI settings for | 
 |   Synchronous Negotiation, Wide Negotiation, and Disconnect/Reconnect are | 
 |   reported for each target device, as well as the status of Tagged Queuing. | 
 |   If the same setting is in effect for all target devices, then a single word | 
 |   or phrase is used; otherwise, a letter is provided for each target device to | 
 |   indicate the individual status.  The following examples | 
 |   should clarify this reporting format: | 
 |  | 
 |     Synchronous Negotiation: Ultra | 
 |  | 
 |       Synchronous negotiation is enabled for all target devices and the host | 
 |       adapter will attempt to negotiate for 20.0 mega-transfers/second. | 
 |  | 
 |     Synchronous Negotiation: Fast | 
 |  | 
 |       Synchronous negotiation is enabled for all target devices and the host | 
 |       adapter will attempt to negotiate for 10.0 mega-transfers/second. | 
 |  | 
 |     Synchronous Negotiation: Slow | 
 |  | 
 |       Synchronous negotiation is enabled for all target devices and the host | 
 |       adapter will attempt to negotiate for 5.0 mega-transfers/second. | 
 |  | 
 |     Synchronous Negotiation: Disabled | 
 |  | 
 |       Synchronous negotiation is disabled and all target devices are limited to | 
 |       asynchronous operation. | 
 |  | 
 |     Synchronous Negotiation: UFSNUUU#UUUUUUUU | 
 |  | 
 |       Synchronous negotiation to Ultra speed is enabled for target devices 0 | 
 |       and 4 through 15, to Fast speed for target device 1, to Slow speed for | 
 |       target device 2, and is not permitted to target device 3.  The host | 
 |       adapter's SCSI ID is represented by the "#". | 
 |  | 
 |     The status of Wide Negotiation, Disconnect/Reconnect, and Tagged Queuing | 
 |     are reported as "Enabled", Disabled", or a sequence of "Y" and "N" letters. | 
 |  | 
 | o Performance Features | 
 |  | 
 |   BusLogic SCSI Host Adapters directly implement SCSI-2 Tagged Queuing, and so | 
 |   support has been included in the driver to utilize tagged queuing with any | 
 |   target devices that report having the tagged queuing capability.  Tagged | 
 |   queuing allows for multiple outstanding commands to be issued to each target | 
 |   device or logical unit, and can improve I/O performance substantially.  In | 
 |   addition, BusLogic's Strict Round Robin Mode is used to optimize host adapter | 
 |   performance, and scatter/gather I/O can support as many segments as can be | 
 |   effectively utilized by the Linux I/O subsystem.  Control over the use of | 
 |   tagged queuing for each target device as well as individual selection of the | 
 |   tagged queue depth is available through driver options provided on the kernel | 
 |   command line or at module initialization time.  By default, the queue depth | 
 |   is determined automatically based on the host adapter's total queue depth and | 
 |   the number, type, speed, and capabilities of the target devices found.  In | 
 |   addition, tagged queuing is automatically disabled whenever the host adapter | 
 |   firmware version is known not to implement it correctly, or whenever a tagged | 
 |   queue depth of 1 is selected.  Tagged queuing is also disabled for individual | 
 |   target devices if disconnect/reconnect is disabled for that device. | 
 |  | 
 | o Robustness Features | 
 |  | 
 |   The driver implements extensive error recovery procedures.  When the higher | 
 |   level parts of the SCSI subsystem request that a timed out command be reset, | 
 |   a selection is made between a full host adapter hard reset and SCSI bus reset | 
 |   versus sending a bus device reset message to the individual target device | 
 |   based on the recommendation of the SCSI subsystem.  Error recovery strategies | 
 |   are selectable through driver options individually for each target device, | 
 |   and also include sending a bus device reset to the specific target device | 
 |   associated with the command being reset, as well as suppressing error | 
 |   recovery entirely to avoid perturbing an improperly functioning device.  If | 
 |   the bus device reset error recovery strategy is selected and sending a bus | 
 |   device reset does not restore correct operation, the next command that is | 
 |   reset will force a full host adapter hard reset and SCSI bus reset.  SCSI bus | 
 |   resets caused by other devices and detected by the host adapter are also | 
 |   handled by issuing a soft reset to the host adapter and re-initialization. | 
 |   Finally, if tagged queuing is active and more than one command reset occurs | 
 |   in a 10 minute interval, or if a command reset occurs within the first 10 | 
 |   minutes of operation, then tagged queuing will be disabled for that target | 
 |   device.  These error recovery options improve overall system robustness by | 
 |   preventing individual errant devices from causing the system as a whole to | 
 |   lock up or crash, and thereby allowing a clean shutdown and restart after the | 
 |   offending component is removed. | 
 |  | 
 | o PCI Configuration Support | 
 |  | 
 |   On PCI systems running kernels compiled with PCI BIOS support enabled, this | 
 |   driver will interrogate the PCI configuration space and use the I/O port | 
 |   addresses assigned by the system BIOS, rather than the ISA compatible I/O | 
 |   port addresses.  The ISA compatible I/O port address is then disabled by the | 
 |   driver.  On PCI systems it is also recommended that the AutoSCSI utility be | 
 |   used to disable the ISA compatible I/O port entirely as it is not necessary. | 
 |   The ISA compatible I/O port is disabled by default on the BT-948/958/958D. | 
 |  | 
 | o /proc File System Support | 
 |  | 
 |   Copies of the host adapter configuration information together with updated | 
 |   data transfer and error recovery statistics are available through the | 
 |   /proc/scsi/BusLogic/<N> interface. | 
 |  | 
 | o Shared Interrupts Support | 
 |  | 
 |   On systems that support shared interrupts, any number of BusLogic Host | 
 |   Adapters may share the same interrupt request channel. | 
 |  | 
 |  | 
 | 			    SUPPORTED HOST ADAPTERS | 
 |  | 
 | The following list comprises the supported BusLogic SCSI Host Adapters as of | 
 | the date of this document.  It is recommended that anyone purchasing a BusLogic | 
 | Host Adapter not in the following table contact the author beforehand to verify | 
 | that it is or will be supported. | 
 |  | 
 | FlashPoint Series PCI Host Adapters: | 
 |  | 
 | FlashPoint LT (BT-930)	Ultra SCSI-3 | 
 | FlashPoint LT (BT-930R)	Ultra SCSI-3 with RAIDPlus | 
 | FlashPoint LT (BT-920)	Ultra SCSI-3 (BT-930 without BIOS) | 
 | FlashPoint DL (BT-932)	Dual Channel Ultra SCSI-3 | 
 | FlashPoint DL (BT-932R)	Dual Channel Ultra SCSI-3 with RAIDPlus | 
 | FlashPoint LW (BT-950)	Wide Ultra SCSI-3 | 
 | FlashPoint LW (BT-950R)	Wide Ultra SCSI-3 with RAIDPlus | 
 | FlashPoint DW (BT-952)	Dual Channel Wide Ultra SCSI-3 | 
 | FlashPoint DW (BT-952R)	Dual Channel Wide Ultra SCSI-3 with RAIDPlus | 
 |  | 
 | MultiMaster "W" Series Host Adapters: | 
 |  | 
 | BT-948	    PCI		Ultra SCSI-3 | 
 | BT-958	    PCI		Wide Ultra SCSI-3 | 
 | BT-958D	    PCI		Wide Differential Ultra SCSI-3 | 
 |  | 
 | MultiMaster "C" Series Host Adapters: | 
 |  | 
 | BT-946C	    PCI		Fast SCSI-2 | 
 | BT-956C	    PCI		Wide Fast SCSI-2 | 
 | BT-956CD    PCI		Wide Differential Fast SCSI-2 | 
 | BT-445C	    VLB		Fast SCSI-2 | 
 | BT-747C	    EISA	Fast SCSI-2 | 
 | BT-757C	    EISA	Wide Fast SCSI-2 | 
 | BT-757CD    EISA	Wide Differential Fast SCSI-2 | 
 | BT-545C	    ISA		Fast SCSI-2 | 
 | BT-540CF    ISA		Fast SCSI-2 | 
 |  | 
 | MultiMaster "S" Series Host Adapters: | 
 |  | 
 | BT-445S	    VLB		Fast SCSI-2 | 
 | BT-747S	    EISA	Fast SCSI-2 | 
 | BT-747D	    EISA	Differential Fast SCSI-2 | 
 | BT-757S	    EISA	Wide Fast SCSI-2 | 
 | BT-757D	    EISA	Wide Differential Fast SCSI-2 | 
 | BT-545S	    ISA		Fast SCSI-2 | 
 | BT-542D	    ISA		Differential Fast SCSI-2 | 
 | BT-742A	    EISA	SCSI-2 (742A revision H) | 
 | BT-542B	    ISA		SCSI-2 (542B revision H) | 
 |  | 
 | MultiMaster "A" Series Host Adapters: | 
 |  | 
 | BT-742A	    EISA	SCSI-2 (742A revisions A - G) | 
 | BT-542B	    ISA		SCSI-2 (542B revisions A - G) | 
 |  | 
 | AMI FastDisk Host Adapters that are true BusLogic MultiMaster clones are also | 
 | supported by this driver. | 
 |  | 
 | BusLogic SCSI Host Adapters are available packaged both as bare boards and as | 
 | retail kits.  The BT- model numbers above refer to the bare board packaging. | 
 | The retail kit model numbers are found by replacing BT- with KT- in the above | 
 | list.  The retail kit includes the bare board and manual as well as cabling and | 
 | driver media and documentation that are not provided with bare boards. | 
 |  | 
 |  | 
 | 			 FLASHPOINT INSTALLATION NOTES | 
 |  | 
 | o RAIDPlus Support | 
 |  | 
 |   FlashPoint Host Adapters now include RAIDPlus, Mylex's bootable software | 
 |   RAID.  RAIDPlus is not supported on Linux, and there are no plans to support | 
 |   it.  The MD driver in Linux 2.0 provides for concatenation (LINEAR) and | 
 |   striping (RAID-0), and support for mirroring (RAID-1), fixed parity (RAID-4), | 
 |   and distributed parity (RAID-5) is available separately.  The built-in Linux | 
 |   RAID support is generally more flexible and is expected to perform better | 
 |   than RAIDPlus, so there is little impetus to include RAIDPlus support in the | 
 |   BusLogic driver. | 
 |  | 
 | o Enabling UltraSCSI Transfers | 
 |  | 
 |   FlashPoint Host Adapters ship with their configuration set to "Factory | 
 |   Default" settings that are conservative and do not allow for UltraSCSI speed | 
 |   to be negotiated.  This results in fewer problems when these host adapters | 
 |   are installed in systems with cabling or termination that is not sufficient | 
 |   for UltraSCSI operation, or where existing SCSI devices do not properly | 
 |   respond to synchronous transfer negotiation for UltraSCSI speed.  AutoSCSI | 
 |   may be used to load "Optimum Performance" settings which allow UltraSCSI | 
 |   speed to be negotiated with all devices, or UltraSCSI speed can be enabled on | 
 |   an individual basis.  It is recommended that SCAM be manually disabled after | 
 |   the "Optimum Performance" settings are loaded. | 
 |  | 
 |  | 
 | 		      BT-948/958/958D INSTALLATION NOTES | 
 |  | 
 | The BT-948/958/958D PCI Ultra SCSI Host Adapters have some features which may | 
 | require attention in some circumstances when installing Linux. | 
 |  | 
 | o PCI I/O Port Assignments | 
 |  | 
 |   When configured to factory default settings, the BT-948/958/958D will only | 
 |   recognize the PCI I/O port assignments made by the motherboard's PCI BIOS. | 
 |   The BT-948/958/958D will not respond to any of the ISA compatible I/O ports | 
 |   that previous BusLogic SCSI Host Adapters respond to.  This driver supports | 
 |   the PCI I/O port assignments, so this is the preferred configuration. | 
 |   However, if the obsolete BusLogic driver must be used for any reason, such as | 
 |   a Linux distribution that does not yet use this driver in its boot kernel, | 
 |   BusLogic has provided an AutoSCSI configuration option to enable a legacy ISA | 
 |   compatible I/O port. | 
 |  | 
 |   To enable this backward compatibility option, invoke the AutoSCSI utility via | 
 |   Ctrl-B at system startup and select "Adapter Configuration", "View/Modify | 
 |   Configuration", and then change the "ISA Compatible Port" setting from | 
 |   "Disable" to "Primary" or "Alternate".  Once this driver has been installed, | 
 |   the "ISA Compatible Port" option should be set back to "Disable" to avoid | 
 |   possible future I/O port conflicts.  The older BT-946C/956C/956CD also have | 
 |   this configuration option, but the factory default setting is "Primary". | 
 |  | 
 | o PCI Slot Scanning Order | 
 |  | 
 |   In systems with multiple BusLogic PCI Host Adapters, the order in which the | 
 |   PCI slots are scanned may appear reversed with the BT-948/958/958D as | 
 |   compared to the BT-946C/956C/956CD.  For booting from a SCSI disk to work | 
 |   correctly, it is necessary that the host adapter's BIOS and the kernel agree | 
 |   on which disk is the boot device, which requires that they recognize the PCI | 
 |   host adapters in the same order.  The motherboard's PCI BIOS provides a | 
 |   standard way of enumerating the PCI host adapters, which is used by the Linux | 
 |   kernel.  Some PCI BIOS implementations enumerate the PCI slots in order of | 
 |   increasing bus number and device number, while others do so in the opposite | 
 |   direction. | 
 |  | 
 |   Unfortunately, Microsoft decided that Windows 95 would always enumerate the | 
 |   PCI slots in order of increasing bus number and device number regardless of | 
 |   the PCI BIOS enumeration, and requires that their scheme be supported by the | 
 |   host adapter's BIOS to receive Windows 95 certification.  Therefore, the | 
 |   factory default settings of the BT-948/958/958D enumerate the host adapters | 
 |   by increasing bus number and device number.  To disable this feature, invoke | 
 |   the AutoSCSI utility via Ctrl-B at system startup and select "Adapter | 
 |   Configuration", "View/Modify Configuration", press Ctrl-F10, and then change | 
 |   the "Use Bus And Device # For PCI Scanning Seq." option to OFF. | 
 |  | 
 |   This driver will interrogate the setting of the PCI Scanning Sequence option | 
 |   so as to recognize the host adapters in the same order as they are enumerated | 
 |   by the host adapter's BIOS. | 
 |  | 
 | o Enabling UltraSCSI Transfers | 
 |  | 
 |   The BT-948/958/958D ship with their configuration set to "Factory Default" | 
 |   settings that are conservative and do not allow for UltraSCSI speed to be | 
 |   negotiated.  This results in fewer problems when these host adapters are | 
 |   installed in systems with cabling or termination that is not sufficient for | 
 |   UltraSCSI operation, or where existing SCSI devices do not properly respond | 
 |   to synchronous transfer negotiation for UltraSCSI speed.  AutoSCSI may be | 
 |   used to load "Optimum Performance" settings which allow UltraSCSI speed to be | 
 |   negotiated with all devices, or UltraSCSI speed can be enabled on an | 
 |   individual basis.  It is recommended that SCAM be manually disabled after the | 
 |   "Optimum Performance" settings are loaded. | 
 |  | 
 |  | 
 | 				DRIVER OPTIONS | 
 |  | 
 | BusLogic Driver Options may be specified either via the Linux Kernel Command | 
 | Line or via the Loadable Kernel Module Installation Facility.  Driver Options | 
 | for multiple host adapters may be specified either by separating the option | 
 | strings by a semicolon, or by specifying multiple "BusLogic=" strings on the | 
 | command line.  Individual option specifications for a single host adapter are | 
 | separated by commas.  The Probing and Debugging Options apply to all host | 
 | adapters whereas the remaining options apply individually only to the | 
 | selected host adapter. | 
 |  | 
 | The BusLogic Driver Probing Options comprise the following: | 
 |  | 
 | IO:<integer> | 
 |  | 
 |   The "IO:" option specifies an ISA I/O Address to be probed for a non-PCI | 
 |   MultiMaster Host Adapter.  If neither "IO:" nor "NoProbeISA" options are | 
 |   specified, then the standard list of BusLogic MultiMaster ISA I/O Addresses | 
 |   will be probed (0x330, 0x334, 0x230, 0x234, 0x130, and 0x134).  Multiple | 
 |   "IO:" options may be specified to precisely determine the I/O Addresses to | 
 |   be probed, but the probe order will always follow the standard list. | 
 |  | 
 | NoProbe | 
 |  | 
 |   The "NoProbe" option disables all probing and therefore no BusLogic Host | 
 |   Adapters will be detected. | 
 |  | 
 | NoProbeISA | 
 |  | 
 |   The "NoProbeISA" option disables probing of the standard BusLogic ISA I/O | 
 |   Addresses and therefore only PCI MultiMaster and FlashPoint Host Adapters | 
 |   will be detected. | 
 |  | 
 | NoProbePCI | 
 |  | 
 |   The "NoProbePCI" options disables the interrogation of PCI Configuration | 
 |   Space and therefore only ISA Multimaster Host Adapters will be detected, as | 
 |   well as PCI Multimaster Host Adapters that have their ISA Compatible I/O | 
 |   Port set to "Primary" or "Alternate". | 
 |  | 
 | NoSortPCI | 
 |  | 
 |   The "NoSortPCI" option forces PCI MultiMaster Host Adapters to be | 
 |   enumerated in the order provided by the PCI BIOS, ignoring any setting of | 
 |   the AutoSCSI "Use Bus And Device # For PCI Scanning Seq." option. | 
 |  | 
 | MultiMasterFirst | 
 |  | 
 |   The "MultiMasterFirst" option forces MultiMaster Host Adapters to be probed | 
 |   before FlashPoint Host Adapters.  By default, if both FlashPoint and PCI | 
 |   MultiMaster Host Adapters are present, this driver will probe for | 
 |   FlashPoint Host Adapters first unless the BIOS primary disk is controlled | 
 |   by the first PCI MultiMaster Host Adapter, in which case MultiMaster Host | 
 |   Adapters will be probed first. | 
 |  | 
 | FlashPointFirst | 
 |  | 
 |   The "FlashPointFirst" option forces FlashPoint Host Adapters to be probed | 
 |   before MultiMaster Host Adapters. | 
 |  | 
 | The BusLogic Driver Tagged Queuing Options allow for explicitly specifying | 
 | the Queue Depth and whether Tagged Queuing is permitted for each Target | 
 | Device (assuming that the Target Device supports Tagged Queuing).  The Queue | 
 | Depth is the number of SCSI Commands that are allowed to be concurrently | 
 | presented for execution (either to the Host Adapter or Target Device).  Note | 
 | that explicitly enabling Tagged Queuing may lead to problems; the option to | 
 | enable or disable Tagged Queuing is provided primarily to allow disabling | 
 | Tagged Queuing on Target Devices that do not implement it correctly.  The | 
 | following options are available: | 
 |  | 
 | QueueDepth:<integer> | 
 |  | 
 |   The "QueueDepth:" or QD:" option specifies the Queue Depth to use for all | 
 |   Target Devices that support Tagged Queuing, as well as the maximum Queue | 
 |   Depth for devices that do not support Tagged Queuing.  If no Queue Depth | 
 |   option is provided, the Queue Depth will be determined automatically based | 
 |   on the Host Adapter's Total Queue Depth and the number, type, speed, and | 
 |   capabilities of the detected Target Devices.  For Host Adapters that | 
 |   require ISA Bounce Buffers, the Queue Depth is automatically set by default | 
 |   to BusLogic_TaggedQueueDepthBB or BusLogic_UntaggedQueueDepthBB to avoid | 
 |   excessive preallocation of DMA Bounce Buffer memory.  Target Devices that | 
 |   do not support Tagged Queuing always have their Queue Depth set to | 
 |   BusLogic_UntaggedQueueDepth or BusLogic_UntaggedQueueDepthBB, unless a | 
 |   lower Queue Depth option is provided.  A Queue Depth of 1 automatically | 
 |   disables Tagged Queuing. | 
 |  | 
 | QueueDepth:[<integer>,<integer>...] | 
 |  | 
 |   The "QueueDepth:[...]" or "QD:[...]" option specifies the Queue Depth | 
 |   individually for each Target Device.  If an <integer> is omitted, the | 
 |   associated Target Device will have its Queue Depth selected automatically. | 
 |  | 
 | TaggedQueuing:Default | 
 |  | 
 |   The "TaggedQueuing:Default" or "TQ:Default" option permits Tagged Queuing | 
 |   based on the firmware version of the BusLogic Host Adapter and based on | 
 |   whether the Queue Depth allows queuing multiple commands. | 
 |  | 
 | TaggedQueuing:Enable | 
 |  | 
 |   The "TaggedQueuing:Enable" or "TQ:Enable" option enables Tagged Queuing for | 
 |   all Target Devices on this Host Adapter, overriding any limitation that | 
 |   would otherwise be imposed based on the Host Adapter firmware version. | 
 |  | 
 | TaggedQueuing:Disable | 
 |  | 
 |   The "TaggedQueuing:Disable" or "TQ:Disable" option disables Tagged Queuing | 
 |   for all Target Devices on this Host Adapter. | 
 |  | 
 | TaggedQueuing:<Target-Spec> | 
 |  | 
 |   The "TaggedQueuing:<Target-Spec>" or "TQ:<Target-Spec>" option controls | 
 |   Tagged Queuing individually for each Target Device.  <Target-Spec> is a | 
 |   sequence of "Y", "N", and "X" characters.  "Y" enables Tagged Queuing, "N" | 
 |   disables Tagged Queuing, and "X" accepts the default based on the firmware | 
 |   version.  The first character refers to Target Device 0, the second to | 
 |   Target Device 1, and so on; if the sequence of "Y", "N", and "X" characters | 
 |   does not cover all the Target Devices, unspecified characters are assumed | 
 |   to be "X". | 
 |  | 
 | The BusLogic Driver Miscellaneous Options comprise the following: | 
 |  | 
 | BusSettleTime:<seconds> | 
 |  | 
 |   The "BusSettleTime:" or "BST:" option specifies the Bus Settle Time in | 
 |   seconds.  The Bus Settle Time is the amount of time to wait between a Host | 
 |   Adapter Hard Reset which initiates a SCSI Bus Reset and issuing any SCSI | 
 |   Commands.  If unspecified, it defaults to BusLogic_DefaultBusSettleTime. | 
 |  | 
 | InhibitTargetInquiry | 
 |  | 
 |   The "InhibitTargetInquiry" option inhibits the execution of an Inquire | 
 |   Target Devices or Inquire Installed Devices command on MultiMaster Host | 
 |   Adapters.  This may be necessary with some older Target Devices that do not | 
 |   respond correctly when Logical Units above 0 are addressed. | 
 |  | 
 | The BusLogic Driver Debugging Options comprise the following: | 
 |  | 
 | TraceProbe | 
 |  | 
 |   The "TraceProbe" option enables tracing of Host Adapter Probing. | 
 |  | 
 | TraceHardwareReset | 
 |  | 
 |   The "TraceHardwareReset" option enables tracing of Host Adapter Hardware | 
 |   Reset. | 
 |  | 
 | TraceConfiguration | 
 |  | 
 |   The "TraceConfiguration" option enables tracing of Host Adapter | 
 |   Configuration. | 
 |  | 
 | TraceErrors | 
 |  | 
 |   The "TraceErrors" option enables tracing of SCSI Commands that return an | 
 |   error from the Target Device.  The CDB and Sense Data will be printed for | 
 |   each SCSI Command that fails. | 
 |  | 
 | Debug | 
 |  | 
 |   The "Debug" option enables all debugging options. | 
 |  | 
 | The following examples demonstrate setting the Queue Depth for Target Devices | 
 | 1 and 2 on the first host adapter to 7 and 15, the Queue Depth for all Target | 
 | Devices on the second host adapter to 31, and the Bus Settle Time on the | 
 | second host adapter to 30 seconds. | 
 |  | 
 | Linux Kernel Command Line: | 
 |  | 
 |   linux BusLogic=QueueDepth:[,7,15];QueueDepth:31,BusSettleTime:30 | 
 |  | 
 | LILO Linux Boot Loader (in /etc/lilo.conf): | 
 |  | 
 |   append = "BusLogic=QueueDepth:[,7,15];QueueDepth:31,BusSettleTime:30" | 
 |  | 
 | INSMOD Loadable Kernel Module Installation Facility: | 
 |  | 
 |   insmod BusLogic.o \ | 
 |       'BusLogic="QueueDepth:[,7,15];QueueDepth:31,BusSettleTime:30"' | 
 |  | 
 | NOTE: Module Utilities 2.1.71 or later is required for correct parsing | 
 |       of driver options containing commas. | 
 |  | 
 |  | 
 | 			      DRIVER INSTALLATION | 
 |  | 
 | This distribution was prepared for Linux kernel version 2.0.35, but should be | 
 | compatible with 2.0.4 or any later 2.0 series kernel. | 
 |  | 
 | To install the new BusLogic SCSI driver, you may use the following commands, | 
 | replacing "/usr/src" with wherever you keep your Linux kernel source tree: | 
 |  | 
 |   cd /usr/src | 
 |   tar -xvzf BusLogic-2.0.15.tar.gz | 
 |   mv README.* LICENSE.* BusLogic.[ch] FlashPoint.c linux/drivers/scsi | 
 |   patch -p0 < BusLogic.patch (only for 2.0.33 and below) | 
 |   cd linux | 
 |   make config | 
 |   make zImage | 
 |  | 
 | Then install "arch/x86/boot/zImage" as your standard kernel, run lilo if | 
 | appropriate, and reboot. | 
 |  | 
 |  | 
 | 		      BUSLOGIC ANNOUNCEMENTS MAILING LIST | 
 |  | 
 | The BusLogic Announcements Mailing List provides a forum for informing Linux | 
 | users of new driver releases and other announcements regarding Linux support | 
 | for BusLogic SCSI Host Adapters.  To join the mailing list, send a message to | 
 | "buslogic-announce-request@dandelion.com" with the line "subscribe" in the | 
 | message body. |