567 lines
		
	
	
		
			26 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			567 lines
		
	
	
		
			26 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 	   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.
 | 
