|  | 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. |