162306a36Sopenharmony_ci.. SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci
362306a36Sopenharmony_ci=========================================================
462306a36Sopenharmony_ciBusLogic MultiMaster and FlashPoint SCSI Driver for Linux
562306a36Sopenharmony_ci=========================================================
662306a36Sopenharmony_ci
762306a36Sopenharmony_ci			 Version 2.0.15 for Linux 2.0
862306a36Sopenharmony_ci
962306a36Sopenharmony_ci			 Version 2.1.15 for Linux 2.1
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ci			      PRODUCTION RELEASE
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ci				17 August 1998
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ci			       Leonard N. Zubkoff
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ci			       Dandelion Digital
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ci			       lnz@dandelion.com
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_ci	 Copyright 1995-1998 by Leonard N. Zubkoff <lnz@dandelion.com>
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_ciIntroduction
2562306a36Sopenharmony_ci============
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ciBusLogic, Inc. designed and manufactured a variety of high performance SCSI
2862306a36Sopenharmony_cihost adapters which share a common programming interface across a diverse
2962306a36Sopenharmony_cicollection of bus architectures by virtue of their MultiMaster ASIC technology.
3062306a36Sopenharmony_ciBusLogic was acquired by Mylex Corporation in February 1996, but the products
3162306a36Sopenharmony_cisupported by this driver originated under the BusLogic name and so that name is
3262306a36Sopenharmony_ciretained in the source code and documentation.
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ciThis driver supports all present BusLogic MultiMaster Host Adapters, and should
3562306a36Sopenharmony_cisupport any future MultiMaster designs with little or no modification.  More
3662306a36Sopenharmony_cirecently, BusLogic introduced the FlashPoint Host Adapters, which are less
3762306a36Sopenharmony_cicostly and rely on the host CPU, rather than including an onboard processor.
3862306a36Sopenharmony_ciDespite not having an onboard CPU, the FlashPoint Host Adapters perform very
3962306a36Sopenharmony_ciwell and have very low command latency.  BusLogic has recently provided me with
4062306a36Sopenharmony_cithe FlashPoint Driver Developer's Kit, which comprises documentation and freely
4162306a36Sopenharmony_ciredistributable source code for the FlashPoint SCCB Manager.  The SCCB Manager
4262306a36Sopenharmony_ciis the library of code that runs on the host CPU and performs functions
4362306a36Sopenharmony_cianalogous to the firmware on the MultiMaster Host Adapters.  Thanks to their
4462306a36Sopenharmony_cihaving provided the SCCB Manager, this driver now supports the FlashPoint Host
4562306a36Sopenharmony_ciAdapters as well.
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_ciMy primary goals in writing this completely new BusLogic driver for Linux are
4862306a36Sopenharmony_cito achieve the full performance that BusLogic SCSI Host Adapters and modern
4962306a36Sopenharmony_ciSCSI peripherals are capable of, and to provide a highly robust driver that can
5062306a36Sopenharmony_cibe depended upon for high performance mission critical applications.  All of
5162306a36Sopenharmony_cithe major performance features can be configured from the Linux kernel command
5262306a36Sopenharmony_ciline or at module initialization time, allowing individual installations to
5362306a36Sopenharmony_citune driver performance and error recovery to their particular needs.
5462306a36Sopenharmony_ci
5562306a36Sopenharmony_ciThe latest information on Linux support for BusLogic SCSI Host Adapters, as
5662306a36Sopenharmony_ciwell as the most recent release of this driver and the latest firmware for the
5762306a36Sopenharmony_ciBT-948/958/958D, will always be available from my Linux Home Page at URL
5862306a36Sopenharmony_ci"http://sourceforge.net/projects/dandelion/".
5962306a36Sopenharmony_ci
6062306a36Sopenharmony_ciBug reports should be sent via electronic mail to "lnz@dandelion.com".  Please
6162306a36Sopenharmony_ciinclude with the bug report the complete configuration messages reported by the
6262306a36Sopenharmony_cidriver and SCSI subsystem at startup, along with any subsequent system messages
6362306a36Sopenharmony_cirelevant to SCSI operations, and a detailed description of your system's
6462306a36Sopenharmony_cihardware configuration.
6562306a36Sopenharmony_ci
6662306a36Sopenharmony_ciMylex has been an excellent company to work with and I highly recommend their
6762306a36Sopenharmony_ciproducts to the Linux community.  In November 1995, I was offered the
6862306a36Sopenharmony_ciopportunity to become a beta test site for their latest MultiMaster product,
6962306a36Sopenharmony_cithe BT-948 PCI Ultra SCSI Host Adapter, and then again for the BT-958 PCI Wide
7062306a36Sopenharmony_ciUltra SCSI Host Adapter in January 1996.  This was mutually beneficial since
7162306a36Sopenharmony_ciMylex received a degree and kind of testing that their own testing group cannot
7262306a36Sopenharmony_cireadily achieve, and the Linux community has available high performance host
7362306a36Sopenharmony_ciadapters that have been well tested with Linux even before being brought to
7462306a36Sopenharmony_cimarket.  This relationship has also given me the opportunity to interact
7562306a36Sopenharmony_cidirectly with their technical staff, to understand more about the internal
7662306a36Sopenharmony_ciworkings of their products, and in turn to educate them about the needs and
7762306a36Sopenharmony_cipotential of the Linux community.
7862306a36Sopenharmony_ci
7962306a36Sopenharmony_ciMore recently, Mylex has reaffirmed the company's interest in supporting the
8062306a36Sopenharmony_ciLinux community, and I am now working on a Linux driver for the DAC960 PCI RAID
8162306a36Sopenharmony_ciControllers.  Mylex's interest and support is greatly appreciated.
8262306a36Sopenharmony_ci
8362306a36Sopenharmony_ciUnlike some other vendors, if you contact Mylex Technical Support with a
8462306a36Sopenharmony_ciproblem and are running Linux, they will not tell you that your use of their
8562306a36Sopenharmony_ciproducts is unsupported.  Their latest product marketing literature even states
8662306a36Sopenharmony_ci"Mylex SCSI host adapters are compatible with all major operating systems
8762306a36Sopenharmony_ciincluding: ... Linux ...".
8862306a36Sopenharmony_ci
8962306a36Sopenharmony_ciMylex Corporation is located at 34551 Ardenwood Blvd., Fremont, California
9062306a36Sopenharmony_ci94555, USA and can be reached at 510/796-6100 or on the World Wide Web at
9162306a36Sopenharmony_cihttp://www.mylex.com.  Mylex HBA Technical Support can be reached by electronic
9262306a36Sopenharmony_cimail at techsup@mylex.com, by Voice at 510/608-2400, or by FAX at 510/745-7715.
9362306a36Sopenharmony_ciContact information for offices in Europe and Japan is available on the Web
9462306a36Sopenharmony_cisite.
9562306a36Sopenharmony_ci
9662306a36Sopenharmony_ci
9762306a36Sopenharmony_ciDriver Features
9862306a36Sopenharmony_ci===============
9962306a36Sopenharmony_ci
10062306a36Sopenharmony_ciConfiguration Reporting and Testing
10162306a36Sopenharmony_ci-----------------------------------
10262306a36Sopenharmony_ci
10362306a36Sopenharmony_ci  During system initialization, the driver reports extensively on the host
10462306a36Sopenharmony_ci  adapter hardware configuration, including the synchronous transfer parameters
10562306a36Sopenharmony_ci  requested and negotiated with each target device.  AutoSCSI settings for
10662306a36Sopenharmony_ci  Synchronous Negotiation, Wide Negotiation, and Disconnect/Reconnect are
10762306a36Sopenharmony_ci  reported for each target device, as well as the status of Tagged Queuing.
10862306a36Sopenharmony_ci  If the same setting is in effect for all target devices, then a single word
10962306a36Sopenharmony_ci  or phrase is used; otherwise, a letter is provided for each target device to
11062306a36Sopenharmony_ci  indicate the individual status.  The following examples
11162306a36Sopenharmony_ci  should clarify this reporting format:
11262306a36Sopenharmony_ci
11362306a36Sopenharmony_ci    Synchronous Negotiation: Ultra
11462306a36Sopenharmony_ci
11562306a36Sopenharmony_ci      Synchronous negotiation is enabled for all target devices and the host
11662306a36Sopenharmony_ci      adapter will attempt to negotiate for 20.0 mega-transfers/second.
11762306a36Sopenharmony_ci
11862306a36Sopenharmony_ci    Synchronous Negotiation: Fast
11962306a36Sopenharmony_ci
12062306a36Sopenharmony_ci      Synchronous negotiation is enabled for all target devices and the host
12162306a36Sopenharmony_ci      adapter will attempt to negotiate for 10.0 mega-transfers/second.
12262306a36Sopenharmony_ci
12362306a36Sopenharmony_ci    Synchronous Negotiation: Slow
12462306a36Sopenharmony_ci
12562306a36Sopenharmony_ci      Synchronous negotiation is enabled for all target devices and the host
12662306a36Sopenharmony_ci      adapter will attempt to negotiate for 5.0 mega-transfers/second.
12762306a36Sopenharmony_ci
12862306a36Sopenharmony_ci    Synchronous Negotiation: Disabled
12962306a36Sopenharmony_ci
13062306a36Sopenharmony_ci      Synchronous negotiation is disabled and all target devices are limited to
13162306a36Sopenharmony_ci      asynchronous operation.
13262306a36Sopenharmony_ci
13362306a36Sopenharmony_ci    Synchronous Negotiation: UFSNUUU#UUUUUUUU
13462306a36Sopenharmony_ci
13562306a36Sopenharmony_ci      Synchronous negotiation to Ultra speed is enabled for target devices 0
13662306a36Sopenharmony_ci      and 4 through 15, to Fast speed for target device 1, to Slow speed for
13762306a36Sopenharmony_ci      target device 2, and is not permitted to target device 3.  The host
13862306a36Sopenharmony_ci      adapter's SCSI ID is represented by the "#".
13962306a36Sopenharmony_ci
14062306a36Sopenharmony_ci    The status of Wide Negotiation, Disconnect/Reconnect, and Tagged Queuing
14162306a36Sopenharmony_ci    are reported as "Enabled", Disabled", or a sequence of "Y" and "N" letters.
14262306a36Sopenharmony_ci
14362306a36Sopenharmony_ciPerformance Features
14462306a36Sopenharmony_ci--------------------
14562306a36Sopenharmony_ci
14662306a36Sopenharmony_ci  BusLogic SCSI Host Adapters directly implement SCSI-2 Tagged Queuing, and so
14762306a36Sopenharmony_ci  support has been included in the driver to utilize tagged queuing with any
14862306a36Sopenharmony_ci  target devices that report having the tagged queuing capability.  Tagged
14962306a36Sopenharmony_ci  queuing allows for multiple outstanding commands to be issued to each target
15062306a36Sopenharmony_ci  device or logical unit, and can improve I/O performance substantially.  In
15162306a36Sopenharmony_ci  addition, BusLogic's Strict Round Robin Mode is used to optimize host adapter
15262306a36Sopenharmony_ci  performance, and scatter/gather I/O can support as many segments as can be
15362306a36Sopenharmony_ci  effectively utilized by the Linux I/O subsystem.  Control over the use of
15462306a36Sopenharmony_ci  tagged queuing for each target device as well as individual selection of the
15562306a36Sopenharmony_ci  tagged queue depth is available through driver options provided on the kernel
15662306a36Sopenharmony_ci  command line or at module initialization time.  By default, the queue depth
15762306a36Sopenharmony_ci  is determined automatically based on the host adapter's total queue depth and
15862306a36Sopenharmony_ci  the number, type, speed, and capabilities of the target devices found.  In
15962306a36Sopenharmony_ci  addition, tagged queuing is automatically disabled whenever the host adapter
16062306a36Sopenharmony_ci  firmware version is known not to implement it correctly, or whenever a tagged
16162306a36Sopenharmony_ci  queue depth of 1 is selected.  Tagged queuing is also disabled for individual
16262306a36Sopenharmony_ci  target devices if disconnect/reconnect is disabled for that device.
16362306a36Sopenharmony_ci
16462306a36Sopenharmony_ciRobustness Features
16562306a36Sopenharmony_ci-------------------
16662306a36Sopenharmony_ci
16762306a36Sopenharmony_ci  The driver implements extensive error recovery procedures.  When the higher
16862306a36Sopenharmony_ci  level parts of the SCSI subsystem request that a timed out command be reset,
16962306a36Sopenharmony_ci  a selection is made between a full host adapter hard reset and SCSI bus reset
17062306a36Sopenharmony_ci  versus sending a bus device reset message to the individual target device
17162306a36Sopenharmony_ci  based on the recommendation of the SCSI subsystem.  Error recovery strategies
17262306a36Sopenharmony_ci  are selectable through driver options individually for each target device,
17362306a36Sopenharmony_ci  and also include sending a bus device reset to the specific target device
17462306a36Sopenharmony_ci  associated with the command being reset, as well as suppressing error
17562306a36Sopenharmony_ci  recovery entirely to avoid perturbing an improperly functioning device.  If
17662306a36Sopenharmony_ci  the bus device reset error recovery strategy is selected and sending a bus
17762306a36Sopenharmony_ci  device reset does not restore correct operation, the next command that is
17862306a36Sopenharmony_ci  reset will force a full host adapter hard reset and SCSI bus reset.  SCSI bus
17962306a36Sopenharmony_ci  resets caused by other devices and detected by the host adapter are also
18062306a36Sopenharmony_ci  handled by issuing a soft reset to the host adapter and re-initialization.
18162306a36Sopenharmony_ci  Finally, if tagged queuing is active and more than one command reset occurs
18262306a36Sopenharmony_ci  in a 10 minute interval, or if a command reset occurs within the first 10
18362306a36Sopenharmony_ci  minutes of operation, then tagged queuing will be disabled for that target
18462306a36Sopenharmony_ci  device.  These error recovery options improve overall system robustness by
18562306a36Sopenharmony_ci  preventing individual errant devices from causing the system as a whole to
18662306a36Sopenharmony_ci  lock up or crash, and thereby allowing a clean shutdown and restart after the
18762306a36Sopenharmony_ci  offending component is removed.
18862306a36Sopenharmony_ci
18962306a36Sopenharmony_ciPCI Configuration Support
19062306a36Sopenharmony_ci-------------------------
19162306a36Sopenharmony_ci
19262306a36Sopenharmony_ci  On PCI systems running kernels compiled with PCI BIOS support enabled, this
19362306a36Sopenharmony_ci  driver will interrogate the PCI configuration space and use the I/O port
19462306a36Sopenharmony_ci  addresses assigned by the system BIOS, rather than the ISA compatible I/O
19562306a36Sopenharmony_ci  port addresses.  The ISA compatible I/O port address is then disabled by the
19662306a36Sopenharmony_ci  driver.  On PCI systems it is also recommended that the AutoSCSI utility be
19762306a36Sopenharmony_ci  used to disable the ISA compatible I/O port entirely as it is not necessary.
19862306a36Sopenharmony_ci  The ISA compatible I/O port is disabled by default on the BT-948/958/958D.
19962306a36Sopenharmony_ci
20062306a36Sopenharmony_ci/proc File System Support
20162306a36Sopenharmony_ci-------------------------
20262306a36Sopenharmony_ci
20362306a36Sopenharmony_ci  Copies of the host adapter configuration information together with updated
20462306a36Sopenharmony_ci  data transfer and error recovery statistics are available through the
20562306a36Sopenharmony_ci  /proc/scsi/BusLogic/<N> interface.
20662306a36Sopenharmony_ci
20762306a36Sopenharmony_ciShared Interrupts Support
20862306a36Sopenharmony_ci-------------------------
20962306a36Sopenharmony_ci
21062306a36Sopenharmony_ci  On systems that support shared interrupts, any number of BusLogic Host
21162306a36Sopenharmony_ci  Adapters may share the same interrupt request channel.
21262306a36Sopenharmony_ci
21362306a36Sopenharmony_ci
21462306a36Sopenharmony_ciSupported Host Adapters
21562306a36Sopenharmony_ci=======================
21662306a36Sopenharmony_ci
21762306a36Sopenharmony_ciThe following list comprises the supported BusLogic SCSI Host Adapters as of
21862306a36Sopenharmony_cithe date of this document.  It is recommended that anyone purchasing a BusLogic
21962306a36Sopenharmony_ciHost Adapter not in the following table contact the author beforehand to verify
22062306a36Sopenharmony_cithat it is or will be supported.
22162306a36Sopenharmony_ci
22262306a36Sopenharmony_ciFlashPoint Series PCI Host Adapters:
22362306a36Sopenharmony_ci
22462306a36Sopenharmony_ci=======================	=============================================
22562306a36Sopenharmony_ciFlashPoint LT (BT-930)	Ultra SCSI-3
22662306a36Sopenharmony_ciFlashPoint LT (BT-930R)	Ultra SCSI-3 with RAIDPlus
22762306a36Sopenharmony_ciFlashPoint LT (BT-920)	Ultra SCSI-3 (BT-930 without BIOS)
22862306a36Sopenharmony_ciFlashPoint DL (BT-932)	Dual Channel Ultra SCSI-3
22962306a36Sopenharmony_ciFlashPoint DL (BT-932R)	Dual Channel Ultra SCSI-3 with RAIDPlus
23062306a36Sopenharmony_ciFlashPoint LW (BT-950)	Wide Ultra SCSI-3
23162306a36Sopenharmony_ciFlashPoint LW (BT-950R)	Wide Ultra SCSI-3 with RAIDPlus
23262306a36Sopenharmony_ciFlashPoint DW (BT-952)	Dual Channel Wide Ultra SCSI-3
23362306a36Sopenharmony_ciFlashPoint DW (BT-952R)	Dual Channel Wide Ultra SCSI-3 with RAIDPlus
23462306a36Sopenharmony_ci=======================	=============================================
23562306a36Sopenharmony_ci
23662306a36Sopenharmony_ciMultiMaster "W" Series Host Adapters:
23762306a36Sopenharmony_ci
23862306a36Sopenharmony_ci=======     ===		==============================
23962306a36Sopenharmony_ciBT-948	    PCI		Ultra SCSI-3
24062306a36Sopenharmony_ciBT-958	    PCI		Wide Ultra SCSI-3
24162306a36Sopenharmony_ciBT-958D	    PCI		Wide Differential Ultra SCSI-3
24262306a36Sopenharmony_ci=======     ===		==============================
24362306a36Sopenharmony_ci
24462306a36Sopenharmony_ciMultiMaster "C" Series Host Adapters:
24562306a36Sopenharmony_ci
24662306a36Sopenharmony_ci========    ====	==============================
24762306a36Sopenharmony_ciBT-946C	    PCI		Fast SCSI-2
24862306a36Sopenharmony_ciBT-956C	    PCI		Wide Fast SCSI-2
24962306a36Sopenharmony_ciBT-956CD    PCI		Wide Differential Fast SCSI-2
25062306a36Sopenharmony_ciBT-445C	    VLB		Fast SCSI-2
25162306a36Sopenharmony_ciBT-747C	    EISA	Fast SCSI-2
25262306a36Sopenharmony_ciBT-757C	    EISA	Wide Fast SCSI-2
25362306a36Sopenharmony_ciBT-757CD    EISA	Wide Differential Fast SCSI-2
25462306a36Sopenharmony_ci========    ====	==============================
25562306a36Sopenharmony_ci
25662306a36Sopenharmony_ciMultiMaster "S" Series Host Adapters:
25762306a36Sopenharmony_ci
25862306a36Sopenharmony_ci=======     ====	==============================
25962306a36Sopenharmony_ciBT-445S	    VLB		Fast SCSI-2
26062306a36Sopenharmony_ciBT-747S	    EISA	Fast SCSI-2
26162306a36Sopenharmony_ciBT-747D	    EISA	Differential Fast SCSI-2
26262306a36Sopenharmony_ciBT-757S	    EISA	Wide Fast SCSI-2
26362306a36Sopenharmony_ciBT-757D	    EISA	Wide Differential Fast SCSI-2
26462306a36Sopenharmony_ciBT-742A	    EISA	SCSI-2 (742A revision H)
26562306a36Sopenharmony_ci=======     ====	==============================
26662306a36Sopenharmony_ci
26762306a36Sopenharmony_ciMultiMaster "A" Series Host Adapters:
26862306a36Sopenharmony_ci
26962306a36Sopenharmony_ci=======     ====	==============================
27062306a36Sopenharmony_ciBT-742A	    EISA	SCSI-2 (742A revisions A - G)
27162306a36Sopenharmony_ci=======     ====	==============================
27262306a36Sopenharmony_ci
27362306a36Sopenharmony_ciAMI FastDisk Host Adapters that are true BusLogic MultiMaster clones are also
27462306a36Sopenharmony_cisupported by this driver.
27562306a36Sopenharmony_ci
27662306a36Sopenharmony_ciBusLogic SCSI Host Adapters are available packaged both as bare boards and as
27762306a36Sopenharmony_ciretail kits.  The BT- model numbers above refer to the bare board packaging.
27862306a36Sopenharmony_ciThe retail kit model numbers are found by replacing BT- with KT- in the above
27962306a36Sopenharmony_cilist.  The retail kit includes the bare board and manual as well as cabling and
28062306a36Sopenharmony_cidriver media and documentation that are not provided with bare boards.
28162306a36Sopenharmony_ci
28262306a36Sopenharmony_ci
28362306a36Sopenharmony_ciFlashPoint Installation Notes
28462306a36Sopenharmony_ci=============================
28562306a36Sopenharmony_ci
28662306a36Sopenharmony_ciRAIDPlus Support
28762306a36Sopenharmony_ci----------------
28862306a36Sopenharmony_ci
28962306a36Sopenharmony_ci  FlashPoint Host Adapters now include RAIDPlus, Mylex's bootable software
29062306a36Sopenharmony_ci  RAID.  RAIDPlus is not supported on Linux, and there are no plans to support
29162306a36Sopenharmony_ci  it.  The MD driver in Linux 2.0 provides for concatenation (LINEAR) and
29262306a36Sopenharmony_ci  striping (RAID-0), and support for mirroring (RAID-1), fixed parity (RAID-4),
29362306a36Sopenharmony_ci  and distributed parity (RAID-5) is available separately.  The built-in Linux
29462306a36Sopenharmony_ci  RAID support is generally more flexible and is expected to perform better
29562306a36Sopenharmony_ci  than RAIDPlus, so there is little impetus to include RAIDPlus support in the
29662306a36Sopenharmony_ci  BusLogic driver.
29762306a36Sopenharmony_ci
29862306a36Sopenharmony_ciEnabling UltraSCSI Transfers
29962306a36Sopenharmony_ci----------------------------
30062306a36Sopenharmony_ci
30162306a36Sopenharmony_ci  FlashPoint Host Adapters ship with their configuration set to "Factory
30262306a36Sopenharmony_ci  Default" settings that are conservative and do not allow for UltraSCSI speed
30362306a36Sopenharmony_ci  to be negotiated.  This results in fewer problems when these host adapters
30462306a36Sopenharmony_ci  are installed in systems with cabling or termination that is not sufficient
30562306a36Sopenharmony_ci  for UltraSCSI operation, or where existing SCSI devices do not properly
30662306a36Sopenharmony_ci  respond to synchronous transfer negotiation for UltraSCSI speed.  AutoSCSI
30762306a36Sopenharmony_ci  may be used to load "Optimum Performance" settings which allow UltraSCSI
30862306a36Sopenharmony_ci  speed to be negotiated with all devices, or UltraSCSI speed can be enabled on
30962306a36Sopenharmony_ci  an individual basis.  It is recommended that SCAM be manually disabled after
31062306a36Sopenharmony_ci  the "Optimum Performance" settings are loaded.
31162306a36Sopenharmony_ci
31262306a36Sopenharmony_ci
31362306a36Sopenharmony_ciBT-948/958/958D Installation Notes
31462306a36Sopenharmony_ci==================================
31562306a36Sopenharmony_ci
31662306a36Sopenharmony_ciThe BT-948/958/958D PCI Ultra SCSI Host Adapters have some features which may
31762306a36Sopenharmony_cirequire attention in some circumstances when installing Linux.
31862306a36Sopenharmony_ci
31962306a36Sopenharmony_ciPCI I/O Port Assignments
32062306a36Sopenharmony_ci------------------------
32162306a36Sopenharmony_ci
32262306a36Sopenharmony_ci  When configured to factory default settings, the BT-948/958/958D will only
32362306a36Sopenharmony_ci  recognize the PCI I/O port assignments made by the motherboard's PCI BIOS.
32462306a36Sopenharmony_ci  The BT-948/958/958D will not respond to any of the ISA compatible I/O ports
32562306a36Sopenharmony_ci  that previous BusLogic SCSI Host Adapters respond to.  This driver supports
32662306a36Sopenharmony_ci  the PCI I/O port assignments, so this is the preferred configuration.
32762306a36Sopenharmony_ci  However, if the obsolete BusLogic driver must be used for any reason, such as
32862306a36Sopenharmony_ci  a Linux distribution that does not yet use this driver in its boot kernel,
32962306a36Sopenharmony_ci  BusLogic has provided an AutoSCSI configuration option to enable a legacy ISA
33062306a36Sopenharmony_ci  compatible I/O port.
33162306a36Sopenharmony_ci
33262306a36Sopenharmony_ci  To enable this backward compatibility option, invoke the AutoSCSI utility via
33362306a36Sopenharmony_ci  Ctrl-B at system startup and select "Adapter Configuration", "View/Modify
33462306a36Sopenharmony_ci  Configuration", and then change the "ISA Compatible Port" setting from
33562306a36Sopenharmony_ci  "Disable" to "Primary" or "Alternate".  Once this driver has been installed,
33662306a36Sopenharmony_ci  the "ISA Compatible Port" option should be set back to "Disable" to avoid
33762306a36Sopenharmony_ci  possible future I/O port conflicts.  The older BT-946C/956C/956CD also have
33862306a36Sopenharmony_ci  this configuration option, but the factory default setting is "Primary".
33962306a36Sopenharmony_ci
34062306a36Sopenharmony_ciPCI Slot Scanning Order
34162306a36Sopenharmony_ci-----------------------
34262306a36Sopenharmony_ci
34362306a36Sopenharmony_ci  In systems with multiple BusLogic PCI Host Adapters, the order in which the
34462306a36Sopenharmony_ci  PCI slots are scanned may appear reversed with the BT-948/958/958D as
34562306a36Sopenharmony_ci  compared to the BT-946C/956C/956CD.  For booting from a SCSI disk to work
34662306a36Sopenharmony_ci  correctly, it is necessary that the host adapter's BIOS and the kernel agree
34762306a36Sopenharmony_ci  on which disk is the boot device, which requires that they recognize the PCI
34862306a36Sopenharmony_ci  host adapters in the same order.  The motherboard's PCI BIOS provides a
34962306a36Sopenharmony_ci  standard way of enumerating the PCI host adapters, which is used by the Linux
35062306a36Sopenharmony_ci  kernel.  Some PCI BIOS implementations enumerate the PCI slots in order of
35162306a36Sopenharmony_ci  increasing bus number and device number, while others do so in the opposite
35262306a36Sopenharmony_ci  direction.
35362306a36Sopenharmony_ci
35462306a36Sopenharmony_ci  Unfortunately, Microsoft decided that Windows 95 would always enumerate the
35562306a36Sopenharmony_ci  PCI slots in order of increasing bus number and device number regardless of
35662306a36Sopenharmony_ci  the PCI BIOS enumeration, and requires that their scheme be supported by the
35762306a36Sopenharmony_ci  host adapter's BIOS to receive Windows 95 certification.  Therefore, the
35862306a36Sopenharmony_ci  factory default settings of the BT-948/958/958D enumerate the host adapters
35962306a36Sopenharmony_ci  by increasing bus number and device number.  To disable this feature, invoke
36062306a36Sopenharmony_ci  the AutoSCSI utility via Ctrl-B at system startup and select "Adapter
36162306a36Sopenharmony_ci  Configuration", "View/Modify Configuration", press Ctrl-F10, and then change
36262306a36Sopenharmony_ci  the "Use Bus And Device # For PCI Scanning Seq." option to OFF.
36362306a36Sopenharmony_ci
36462306a36Sopenharmony_ci  This driver will interrogate the setting of the PCI Scanning Sequence option
36562306a36Sopenharmony_ci  so as to recognize the host adapters in the same order as they are enumerated
36662306a36Sopenharmony_ci  by the host adapter's BIOS.
36762306a36Sopenharmony_ci
36862306a36Sopenharmony_ciEnabling UltraSCSI Transfers
36962306a36Sopenharmony_ci----------------------------
37062306a36Sopenharmony_ci
37162306a36Sopenharmony_ci  The BT-948/958/958D ship with their configuration set to "Factory Default"
37262306a36Sopenharmony_ci  settings that are conservative and do not allow for UltraSCSI speed to be
37362306a36Sopenharmony_ci  negotiated.  This results in fewer problems when these host adapters are
37462306a36Sopenharmony_ci  installed in systems with cabling or termination that is not sufficient for
37562306a36Sopenharmony_ci  UltraSCSI operation, or where existing SCSI devices do not properly respond
37662306a36Sopenharmony_ci  to synchronous transfer negotiation for UltraSCSI speed.  AutoSCSI may be
37762306a36Sopenharmony_ci  used to load "Optimum Performance" settings which allow UltraSCSI speed to be
37862306a36Sopenharmony_ci  negotiated with all devices, or UltraSCSI speed can be enabled on an
37962306a36Sopenharmony_ci  individual basis.  It is recommended that SCAM be manually disabled after the
38062306a36Sopenharmony_ci  "Optimum Performance" settings are loaded.
38162306a36Sopenharmony_ci
38262306a36Sopenharmony_ci
38362306a36Sopenharmony_ciDriver Options
38462306a36Sopenharmony_ci==============
38562306a36Sopenharmony_ci
38662306a36Sopenharmony_ciBusLogic Driver Options may be specified either via the Linux Kernel Command
38762306a36Sopenharmony_ciLine or via the Loadable Kernel Module Installation Facility.  Driver Options
38862306a36Sopenharmony_cifor multiple host adapters may be specified either by separating the option
38962306a36Sopenharmony_cistrings by a semicolon, or by specifying multiple "BusLogic=" strings on the
39062306a36Sopenharmony_cicommand line.  Individual option specifications for a single host adapter are
39162306a36Sopenharmony_ciseparated by commas.  The Probing and Debugging Options apply to all host
39262306a36Sopenharmony_ciadapters whereas the remaining options apply individually only to the
39362306a36Sopenharmony_ciselected host adapter.
39462306a36Sopenharmony_ci
39562306a36Sopenharmony_ciThe BusLogic Driver Probing Options comprise the following:
39662306a36Sopenharmony_ci
39762306a36Sopenharmony_ciNoProbe
39862306a36Sopenharmony_ci
39962306a36Sopenharmony_ci  The "NoProbe" option disables all probing and therefore no BusLogic Host
40062306a36Sopenharmony_ci  Adapters will be detected.
40162306a36Sopenharmony_ci
40262306a36Sopenharmony_ciNoProbePCI
40362306a36Sopenharmony_ci
40462306a36Sopenharmony_ci  The "NoProbePCI" options disables the interrogation of PCI Configuration
40562306a36Sopenharmony_ci  Space and therefore only ISA Multimaster Host Adapters will be detected, as
40662306a36Sopenharmony_ci  well as PCI Multimaster Host Adapters that have their ISA Compatible I/O
40762306a36Sopenharmony_ci  Port set to "Primary" or "Alternate".
40862306a36Sopenharmony_ci
40962306a36Sopenharmony_ciNoSortPCI
41062306a36Sopenharmony_ci
41162306a36Sopenharmony_ci  The "NoSortPCI" option forces PCI MultiMaster Host Adapters to be
41262306a36Sopenharmony_ci  enumerated in the order provided by the PCI BIOS, ignoring any setting of
41362306a36Sopenharmony_ci  the AutoSCSI "Use Bus And Device # For PCI Scanning Seq." option.
41462306a36Sopenharmony_ci
41562306a36Sopenharmony_ciMultiMasterFirst
41662306a36Sopenharmony_ci
41762306a36Sopenharmony_ci  The "MultiMasterFirst" option forces MultiMaster Host Adapters to be probed
41862306a36Sopenharmony_ci  before FlashPoint Host Adapters.  By default, if both FlashPoint and PCI
41962306a36Sopenharmony_ci  MultiMaster Host Adapters are present, this driver will probe for
42062306a36Sopenharmony_ci  FlashPoint Host Adapters first unless the BIOS primary disk is controlled
42162306a36Sopenharmony_ci  by the first PCI MultiMaster Host Adapter, in which case MultiMaster Host
42262306a36Sopenharmony_ci  Adapters will be probed first.
42362306a36Sopenharmony_ci
42462306a36Sopenharmony_ciFlashPointFirst
42562306a36Sopenharmony_ci
42662306a36Sopenharmony_ci  The "FlashPointFirst" option forces FlashPoint Host Adapters to be probed
42762306a36Sopenharmony_ci  before MultiMaster Host Adapters.
42862306a36Sopenharmony_ci
42962306a36Sopenharmony_ciThe BusLogic Driver Tagged Queuing Options allow for explicitly specifying
43062306a36Sopenharmony_cithe Queue Depth and whether Tagged Queuing is permitted for each Target
43162306a36Sopenharmony_ciDevice (assuming that the Target Device supports Tagged Queuing).  The Queue
43262306a36Sopenharmony_ciDepth is the number of SCSI Commands that are allowed to be concurrently
43362306a36Sopenharmony_cipresented for execution (either to the Host Adapter or Target Device).  Note
43462306a36Sopenharmony_cithat explicitly enabling Tagged Queuing may lead to problems; the option to
43562306a36Sopenharmony_cienable or disable Tagged Queuing is provided primarily to allow disabling
43662306a36Sopenharmony_ciTagged Queuing on Target Devices that do not implement it correctly.  The
43762306a36Sopenharmony_cifollowing options are available:
43862306a36Sopenharmony_ci
43962306a36Sopenharmony_ciQueueDepth:<integer>
44062306a36Sopenharmony_ci
44162306a36Sopenharmony_ci  The "QueueDepth:" or QD:" option specifies the Queue Depth to use for all
44262306a36Sopenharmony_ci  Target Devices that support Tagged Queuing, as well as the maximum Queue
44362306a36Sopenharmony_ci  Depth for devices that do not support Tagged Queuing.  If no Queue Depth
44462306a36Sopenharmony_ci  option is provided, the Queue Depth will be determined automatically based
44562306a36Sopenharmony_ci  on the Host Adapter's Total Queue Depth and the number, type, speed, and
44662306a36Sopenharmony_ci  capabilities of the detected Target Devices.  Target Devices that
44762306a36Sopenharmony_ci  do not support Tagged Queuing always have their Queue Depth set to
44862306a36Sopenharmony_ci  BusLogic_UntaggedQueueDepth or BusLogic_UntaggedQueueDepthBB, unless a
44962306a36Sopenharmony_ci  lower Queue Depth option is provided.  A Queue Depth of 1 automatically
45062306a36Sopenharmony_ci  disables Tagged Queuing.
45162306a36Sopenharmony_ci
45262306a36Sopenharmony_ciQueueDepth:[<integer>,<integer>...]
45362306a36Sopenharmony_ci
45462306a36Sopenharmony_ci  The "QueueDepth:[...]" or "QD:[...]" option specifies the Queue Depth
45562306a36Sopenharmony_ci  individually for each Target Device.  If an <integer> is omitted, the
45662306a36Sopenharmony_ci  associated Target Device will have its Queue Depth selected automatically.
45762306a36Sopenharmony_ci
45862306a36Sopenharmony_ciTaggedQueuing:Default
45962306a36Sopenharmony_ci
46062306a36Sopenharmony_ci  The "TaggedQueuing:Default" or "TQ:Default" option permits Tagged Queuing
46162306a36Sopenharmony_ci  based on the firmware version of the BusLogic Host Adapter and based on
46262306a36Sopenharmony_ci  whether the Queue Depth allows queuing multiple commands.
46362306a36Sopenharmony_ci
46462306a36Sopenharmony_ciTaggedQueuing:Enable
46562306a36Sopenharmony_ci
46662306a36Sopenharmony_ci  The "TaggedQueuing:Enable" or "TQ:Enable" option enables Tagged Queuing for
46762306a36Sopenharmony_ci  all Target Devices on this Host Adapter, overriding any limitation that
46862306a36Sopenharmony_ci  would otherwise be imposed based on the Host Adapter firmware version.
46962306a36Sopenharmony_ci
47062306a36Sopenharmony_ciTaggedQueuing:Disable
47162306a36Sopenharmony_ci
47262306a36Sopenharmony_ci  The "TaggedQueuing:Disable" or "TQ:Disable" option disables Tagged Queuing
47362306a36Sopenharmony_ci  for all Target Devices on this Host Adapter.
47462306a36Sopenharmony_ci
47562306a36Sopenharmony_ciTaggedQueuing:<Target-Spec>
47662306a36Sopenharmony_ci
47762306a36Sopenharmony_ci  The "TaggedQueuing:<Target-Spec>" or "TQ:<Target-Spec>" option controls
47862306a36Sopenharmony_ci  Tagged Queuing individually for each Target Device.  <Target-Spec> is a
47962306a36Sopenharmony_ci  sequence of "Y", "N", and "X" characters.  "Y" enables Tagged Queuing, "N"
48062306a36Sopenharmony_ci  disables Tagged Queuing, and "X" accepts the default based on the firmware
48162306a36Sopenharmony_ci  version.  The first character refers to Target Device 0, the second to
48262306a36Sopenharmony_ci  Target Device 1, and so on; if the sequence of "Y", "N", and "X" characters
48362306a36Sopenharmony_ci  does not cover all the Target Devices, unspecified characters are assumed
48462306a36Sopenharmony_ci  to be "X".
48562306a36Sopenharmony_ci
48662306a36Sopenharmony_ciThe BusLogic Driver Miscellaneous Options comprise the following:
48762306a36Sopenharmony_ci
48862306a36Sopenharmony_ciBusSettleTime:<seconds>
48962306a36Sopenharmony_ci
49062306a36Sopenharmony_ci  The "BusSettleTime:" or "BST:" option specifies the Bus Settle Time in
49162306a36Sopenharmony_ci  seconds.  The Bus Settle Time is the amount of time to wait between a Host
49262306a36Sopenharmony_ci  Adapter Hard Reset which initiates a SCSI Bus Reset and issuing any SCSI
49362306a36Sopenharmony_ci  Commands.  If unspecified, it defaults to BusLogic_DefaultBusSettleTime.
49462306a36Sopenharmony_ci
49562306a36Sopenharmony_ciInhibitTargetInquiry
49662306a36Sopenharmony_ci
49762306a36Sopenharmony_ci  The "InhibitTargetInquiry" option inhibits the execution of an Inquire
49862306a36Sopenharmony_ci  Target Devices or Inquire Installed Devices command on MultiMaster Host
49962306a36Sopenharmony_ci  Adapters.  This may be necessary with some older Target Devices that do not
50062306a36Sopenharmony_ci  respond correctly when Logical Units above 0 are addressed.
50162306a36Sopenharmony_ci
50262306a36Sopenharmony_ciThe BusLogic Driver Debugging Options comprise the following:
50362306a36Sopenharmony_ci
50462306a36Sopenharmony_ciTraceProbe
50562306a36Sopenharmony_ci
50662306a36Sopenharmony_ci  The "TraceProbe" option enables tracing of Host Adapter Probing.
50762306a36Sopenharmony_ci
50862306a36Sopenharmony_ciTraceHardwareReset
50962306a36Sopenharmony_ci
51062306a36Sopenharmony_ci  The "TraceHardwareReset" option enables tracing of Host Adapter Hardware
51162306a36Sopenharmony_ci  Reset.
51262306a36Sopenharmony_ci
51362306a36Sopenharmony_ciTraceConfiguration
51462306a36Sopenharmony_ci
51562306a36Sopenharmony_ci  The "TraceConfiguration" option enables tracing of Host Adapter
51662306a36Sopenharmony_ci  Configuration.
51762306a36Sopenharmony_ci
51862306a36Sopenharmony_ciTraceErrors
51962306a36Sopenharmony_ci
52062306a36Sopenharmony_ci  The "TraceErrors" option enables tracing of SCSI Commands that return an
52162306a36Sopenharmony_ci  error from the Target Device.  The CDB and Sense Data will be printed for
52262306a36Sopenharmony_ci  each SCSI Command that fails.
52362306a36Sopenharmony_ci
52462306a36Sopenharmony_ciDebug
52562306a36Sopenharmony_ci
52662306a36Sopenharmony_ci  The "Debug" option enables all debugging options.
52762306a36Sopenharmony_ci
52862306a36Sopenharmony_ciThe following examples demonstrate setting the Queue Depth for Target Devices
52962306a36Sopenharmony_ci1 and 2 on the first host adapter to 7 and 15, the Queue Depth for all Target
53062306a36Sopenharmony_ciDevices on the second host adapter to 31, and the Bus Settle Time on the
53162306a36Sopenharmony_cisecond host adapter to 30 seconds.
53262306a36Sopenharmony_ci
53362306a36Sopenharmony_ciLinux Kernel Command Line::
53462306a36Sopenharmony_ci
53562306a36Sopenharmony_ci  linux BusLogic=QueueDepth:[,7,15];QueueDepth:31,BusSettleTime:30
53662306a36Sopenharmony_ci
53762306a36Sopenharmony_ciLILO Linux Boot Loader (in /etc/lilo.conf)::
53862306a36Sopenharmony_ci
53962306a36Sopenharmony_ci  append = "BusLogic=QueueDepth:[,7,15];QueueDepth:31,BusSettleTime:30"
54062306a36Sopenharmony_ci
54162306a36Sopenharmony_ciINSMOD Loadable Kernel Module Installation Facility::
54262306a36Sopenharmony_ci
54362306a36Sopenharmony_ci  insmod BusLogic.o \
54462306a36Sopenharmony_ci      'BusLogic="QueueDepth:[,7,15];QueueDepth:31,BusSettleTime:30"'
54562306a36Sopenharmony_ci
54662306a36Sopenharmony_ci
54762306a36Sopenharmony_ci.. Note::
54862306a36Sopenharmony_ci
54962306a36Sopenharmony_ci      Module Utilities 2.1.71 or later is required for correct parsing
55062306a36Sopenharmony_ci      of driver options containing commas.
55162306a36Sopenharmony_ci
55262306a36Sopenharmony_ci
55362306a36Sopenharmony_ciDriver Installation
55462306a36Sopenharmony_ci===================
55562306a36Sopenharmony_ci
55662306a36Sopenharmony_ciThis distribution was prepared for Linux kernel version 2.0.35, but should be
55762306a36Sopenharmony_cicompatible with 2.0.4 or any later 2.0 series kernel.
55862306a36Sopenharmony_ci
55962306a36Sopenharmony_ciTo install the new BusLogic SCSI driver, you may use the following commands,
56062306a36Sopenharmony_cireplacing "/usr/src" with wherever you keep your Linux kernel source tree::
56162306a36Sopenharmony_ci
56262306a36Sopenharmony_ci  cd /usr/src
56362306a36Sopenharmony_ci  tar -xvzf BusLogic-2.0.15.tar.gz
56462306a36Sopenharmony_ci  mv README.* LICENSE.* BusLogic.[ch] FlashPoint.c linux/drivers/scsi
56562306a36Sopenharmony_ci  patch -p0 < BusLogic.patch (only for 2.0.33 and below)
56662306a36Sopenharmony_ci  cd linux
56762306a36Sopenharmony_ci  make config
56862306a36Sopenharmony_ci  make zImage
56962306a36Sopenharmony_ci
57062306a36Sopenharmony_ciThen install "arch/x86/boot/zImage" as your standard kernel, run lilo if
57162306a36Sopenharmony_ciappropriate, and reboot.
57262306a36Sopenharmony_ci
57362306a36Sopenharmony_ci
57462306a36Sopenharmony_ciBusLogic Announcements Mailing List
57562306a36Sopenharmony_ci===================================
57662306a36Sopenharmony_ci
57762306a36Sopenharmony_ciThe BusLogic Announcements Mailing List provides a forum for informing Linux
57862306a36Sopenharmony_ciusers of new driver releases and other announcements regarding Linux support
57962306a36Sopenharmony_cifor BusLogic SCSI Host Adapters.  To join the mailing list, send a message to
58062306a36Sopenharmony_ci"buslogic-announce-request@dandelion.com" with the line "subscribe" in the
58162306a36Sopenharmony_cimessage body.
582