mirror of
https://github.com/torvalds/linux.git
synced 2024-11-01 01:31:44 +00:00
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://www.dandelion.com/Linux/".
|
||
|
|
||
|
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/i386/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.
|