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