| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | 	   BusLogic MultiMaster and FlashPoint SCSI Driver for Linux | 
 | 2 |  | 
 | 3 | 			 Version 2.0.15 for Linux 2.0 | 
 | 4 | 			 Version 2.1.15 for Linux 2.1 | 
 | 5 |  | 
 | 6 | 			      PRODUCTION RELEASE | 
 | 7 |  | 
 | 8 | 				17 August 1998 | 
 | 9 |  | 
 | 10 | 			       Leonard N. Zubkoff | 
 | 11 | 			       Dandelion Digital | 
 | 12 | 			       lnz@dandelion.com | 
 | 13 |  | 
 | 14 | 	 Copyright 1995-1998 by Leonard N. Zubkoff <lnz@dandelion.com> | 
 | 15 |  | 
 | 16 |  | 
 | 17 | 				 INTRODUCTION | 
 | 18 |  | 
 | 19 | BusLogic, Inc. designed and manufactured a variety of high performance SCSI | 
 | 20 | host adapters which share a common programming interface across a diverse | 
 | 21 | collection of bus architectures by virtue of their MultiMaster ASIC technology. | 
 | 22 | BusLogic was acquired by Mylex Corporation in February 1996, but the products | 
 | 23 | supported by this driver originated under the BusLogic name and so that name is | 
 | 24 | retained in the source code and documentation. | 
 | 25 |  | 
 | 26 | This driver supports all present BusLogic MultiMaster Host Adapters, and should | 
 | 27 | support any future MultiMaster designs with little or no modification.  More | 
 | 28 | recently, BusLogic introduced the FlashPoint Host Adapters, which are less | 
 | 29 | costly and rely on the host CPU, rather than including an onboard processor. | 
 | 30 | Despite not having an onboard CPU, the FlashPoint Host Adapters perform very | 
 | 31 | well and have very low command latency.  BusLogic has recently provided me with | 
 | 32 | the FlashPoint Driver Developer's Kit, which comprises documentation and freely | 
 | 33 | redistributable source code for the FlashPoint SCCB Manager.  The SCCB Manager | 
 | 34 | is the library of code that runs on the host CPU and performs functions | 
 | 35 | analogous to the firmware on the MultiMaster Host Adapters.  Thanks to their | 
 | 36 | having provided the SCCB Manager, this driver now supports the FlashPoint Host | 
 | 37 | Adapters as well. | 
 | 38 |  | 
 | 39 | My primary goals in writing this completely new BusLogic driver for Linux are | 
 | 40 | to achieve the full performance that BusLogic SCSI Host Adapters and modern | 
 | 41 | SCSI peripherals are capable of, and to provide a highly robust driver that can | 
 | 42 | be depended upon for high performance mission critical applications.  All of | 
 | 43 | the major performance features can be configured from the Linux kernel command | 
 | 44 | line or at module initialization time, allowing individual installations to | 
 | 45 | tune driver performance and error recovery to their particular needs. | 
 | 46 |  | 
 | 47 | The latest information on Linux support for BusLogic SCSI Host Adapters, as | 
 | 48 | well as the most recent release of this driver and the latest firmware for the | 
 | 49 | BT-948/958/958D, will always be available from my Linux Home Page at URL | 
| Justin P. Mattock | 0ea6e61 | 2010-07-23 20:51:24 -0700 | [diff] [blame] | 50 | "http://sourceforge.net/projects/dandelion/". | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 51 |  | 
 | 52 | Bug reports should be sent via electronic mail to "lnz@dandelion.com".  Please | 
 | 53 | include with the bug report the complete configuration messages reported by the | 
 | 54 | driver and SCSI subsystem at startup, along with any subsequent system messages | 
 | 55 | relevant to SCSI operations, and a detailed description of your system's | 
 | 56 | hardware configuration. | 
 | 57 |  | 
 | 58 | Mylex has been an excellent company to work with and I highly recommend their | 
 | 59 | products to the Linux community.  In November 1995, I was offered the | 
 | 60 | opportunity to become a beta test site for their latest MultiMaster product, | 
 | 61 | the BT-948 PCI Ultra SCSI Host Adapter, and then again for the BT-958 PCI Wide | 
 | 62 | Ultra SCSI Host Adapter in January 1996.  This was mutually beneficial since | 
 | 63 | Mylex received a degree and kind of testing that their own testing group cannot | 
 | 64 | readily achieve, and the Linux community has available high performance host | 
 | 65 | adapters that have been well tested with Linux even before being brought to | 
 | 66 | market.  This relationship has also given me the opportunity to interact | 
 | 67 | directly with their technical staff, to understand more about the internal | 
 | 68 | workings of their products, and in turn to educate them about the needs and | 
 | 69 | potential of the Linux community. | 
 | 70 |  | 
 | 71 | More recently, Mylex has reaffirmed the company's interest in supporting the | 
 | 72 | Linux community, and I am now working on a Linux driver for the DAC960 PCI RAID | 
 | 73 | Controllers.  Mylex's interest and support is greatly appreciated. | 
 | 74 |  | 
 | 75 | Unlike some other vendors, if you contact Mylex Technical Support with a | 
 | 76 | problem and are running Linux, they will not tell you that your use of their | 
 | 77 | products is unsupported.  Their latest product marketing literature even states | 
 | 78 | "Mylex SCSI host adapters are compatible with all major operating systems | 
 | 79 | including: ... Linux ...". | 
 | 80 |  | 
 | 81 | Mylex Corporation is located at 34551 Ardenwood Blvd., Fremont, California | 
 | 82 | 94555, USA and can be reached at 510/796-6100 or on the World Wide Web at | 
 | 83 | http://www.mylex.com.  Mylex HBA Technical Support can be reached by electronic | 
 | 84 | mail at techsup@mylex.com, by Voice at 510/608-2400, or by FAX at 510/745-7715. | 
 | 85 | Contact information for offices in Europe and Japan is available on the Web | 
 | 86 | site. | 
 | 87 |  | 
 | 88 |  | 
 | 89 | 				DRIVER FEATURES | 
 | 90 |  | 
 | 91 | o Configuration Reporting and Testing | 
 | 92 |  | 
 | 93 |   During system initialization, the driver reports extensively on the host | 
 | 94 |   adapter hardware configuration, including the synchronous transfer parameters | 
 | 95 |   requested and negotiated with each target device.  AutoSCSI settings for | 
 | 96 |   Synchronous Negotiation, Wide Negotiation, and Disconnect/Reconnect are | 
 | 97 |   reported for each target device, as well as the status of Tagged Queuing. | 
 | 98 |   If the same setting is in effect for all target devices, then a single word | 
 | 99 |   or phrase is used; otherwise, a letter is provided for each target device to | 
 | 100 |   indicate the individual status.  The following examples | 
 | 101 |   should clarify this reporting format: | 
 | 102 |  | 
 | 103 |     Synchronous Negotiation: Ultra | 
 | 104 |  | 
 | 105 |       Synchronous negotiation is enabled for all target devices and the host | 
 | 106 |       adapter will attempt to negotiate for 20.0 mega-transfers/second. | 
 | 107 |  | 
 | 108 |     Synchronous Negotiation: Fast | 
 | 109 |  | 
 | 110 |       Synchronous negotiation is enabled for all target devices and the host | 
 | 111 |       adapter will attempt to negotiate for 10.0 mega-transfers/second. | 
 | 112 |  | 
 | 113 |     Synchronous Negotiation: Slow | 
 | 114 |  | 
 | 115 |       Synchronous negotiation is enabled for all target devices and the host | 
 | 116 |       adapter will attempt to negotiate for 5.0 mega-transfers/second. | 
 | 117 |  | 
 | 118 |     Synchronous Negotiation: Disabled | 
 | 119 |  | 
 | 120 |       Synchronous negotiation is disabled and all target devices are limited to | 
 | 121 |       asynchronous operation. | 
 | 122 |  | 
 | 123 |     Synchronous Negotiation: UFSNUUU#UUUUUUUU | 
 | 124 |  | 
 | 125 |       Synchronous negotiation to Ultra speed is enabled for target devices 0 | 
 | 126 |       and 4 through 15, to Fast speed for target device 1, to Slow speed for | 
 | 127 |       target device 2, and is not permitted to target device 3.  The host | 
 | 128 |       adapter's SCSI ID is represented by the "#". | 
 | 129 |  | 
 | 130 |     The status of Wide Negotiation, Disconnect/Reconnect, and Tagged Queuing | 
 | 131 |     are reported as "Enabled", Disabled", or a sequence of "Y" and "N" letters. | 
 | 132 |  | 
 | 133 | o Performance Features | 
 | 134 |  | 
 | 135 |   BusLogic SCSI Host Adapters directly implement SCSI-2 Tagged Queuing, and so | 
 | 136 |   support has been included in the driver to utilize tagged queuing with any | 
 | 137 |   target devices that report having the tagged queuing capability.  Tagged | 
 | 138 |   queuing allows for multiple outstanding commands to be issued to each target | 
 | 139 |   device or logical unit, and can improve I/O performance substantially.  In | 
 | 140 |   addition, BusLogic's Strict Round Robin Mode is used to optimize host adapter | 
 | 141 |   performance, and scatter/gather I/O can support as many segments as can be | 
 | 142 |   effectively utilized by the Linux I/O subsystem.  Control over the use of | 
 | 143 |   tagged queuing for each target device as well as individual selection of the | 
 | 144 |   tagged queue depth is available through driver options provided on the kernel | 
 | 145 |   command line or at module initialization time.  By default, the queue depth | 
 | 146 |   is determined automatically based on the host adapter's total queue depth and | 
 | 147 |   the number, type, speed, and capabilities of the target devices found.  In | 
 | 148 |   addition, tagged queuing is automatically disabled whenever the host adapter | 
 | 149 |   firmware version is known not to implement it correctly, or whenever a tagged | 
 | 150 |   queue depth of 1 is selected.  Tagged queuing is also disabled for individual | 
 | 151 |   target devices if disconnect/reconnect is disabled for that device. | 
 | 152 |  | 
 | 153 | o Robustness Features | 
 | 154 |  | 
 | 155 |   The driver implements extensive error recovery procedures.  When the higher | 
 | 156 |   level parts of the SCSI subsystem request that a timed out command be reset, | 
 | 157 |   a selection is made between a full host adapter hard reset and SCSI bus reset | 
 | 158 |   versus sending a bus device reset message to the individual target device | 
 | 159 |   based on the recommendation of the SCSI subsystem.  Error recovery strategies | 
 | 160 |   are selectable through driver options individually for each target device, | 
 | 161 |   and also include sending a bus device reset to the specific target device | 
 | 162 |   associated with the command being reset, as well as suppressing error | 
 | 163 |   recovery entirely to avoid perturbing an improperly functioning device.  If | 
 | 164 |   the bus device reset error recovery strategy is selected and sending a bus | 
 | 165 |   device reset does not restore correct operation, the next command that is | 
 | 166 |   reset will force a full host adapter hard reset and SCSI bus reset.  SCSI bus | 
 | 167 |   resets caused by other devices and detected by the host adapter are also | 
 | 168 |   handled by issuing a soft reset to the host adapter and re-initialization. | 
 | 169 |   Finally, if tagged queuing is active and more than one command reset occurs | 
 | 170 |   in a 10 minute interval, or if a command reset occurs within the first 10 | 
 | 171 |   minutes of operation, then tagged queuing will be disabled for that target | 
 | 172 |   device.  These error recovery options improve overall system robustness by | 
 | 173 |   preventing individual errant devices from causing the system as a whole to | 
 | 174 |   lock up or crash, and thereby allowing a clean shutdown and restart after the | 
 | 175 |   offending component is removed. | 
 | 176 |  | 
 | 177 | o PCI Configuration Support | 
 | 178 |  | 
 | 179 |   On PCI systems running kernels compiled with PCI BIOS support enabled, this | 
 | 180 |   driver will interrogate the PCI configuration space and use the I/O port | 
 | 181 |   addresses assigned by the system BIOS, rather than the ISA compatible I/O | 
 | 182 |   port addresses.  The ISA compatible I/O port address is then disabled by the | 
 | 183 |   driver.  On PCI systems it is also recommended that the AutoSCSI utility be | 
 | 184 |   used to disable the ISA compatible I/O port entirely as it is not necessary. | 
 | 185 |   The ISA compatible I/O port is disabled by default on the BT-948/958/958D. | 
 | 186 |  | 
 | 187 | o /proc File System Support | 
 | 188 |  | 
 | 189 |   Copies of the host adapter configuration information together with updated | 
 | 190 |   data transfer and error recovery statistics are available through the | 
 | 191 |   /proc/scsi/BusLogic/<N> interface. | 
 | 192 |  | 
 | 193 | o Shared Interrupts Support | 
 | 194 |  | 
 | 195 |   On systems that support shared interrupts, any number of BusLogic Host | 
 | 196 |   Adapters may share the same interrupt request channel. | 
 | 197 |  | 
 | 198 |  | 
 | 199 | 			    SUPPORTED HOST ADAPTERS | 
 | 200 |  | 
 | 201 | The following list comprises the supported BusLogic SCSI Host Adapters as of | 
 | 202 | the date of this document.  It is recommended that anyone purchasing a BusLogic | 
 | 203 | Host Adapter not in the following table contact the author beforehand to verify | 
 | 204 | that it is or will be supported. | 
 | 205 |  | 
 | 206 | FlashPoint Series PCI Host Adapters: | 
 | 207 |  | 
 | 208 | FlashPoint LT (BT-930)	Ultra SCSI-3 | 
 | 209 | FlashPoint LT (BT-930R)	Ultra SCSI-3 with RAIDPlus | 
 | 210 | FlashPoint LT (BT-920)	Ultra SCSI-3 (BT-930 without BIOS) | 
 | 211 | FlashPoint DL (BT-932)	Dual Channel Ultra SCSI-3 | 
 | 212 | FlashPoint DL (BT-932R)	Dual Channel Ultra SCSI-3 with RAIDPlus | 
 | 213 | FlashPoint LW (BT-950)	Wide Ultra SCSI-3 | 
 | 214 | FlashPoint LW (BT-950R)	Wide Ultra SCSI-3 with RAIDPlus | 
 | 215 | FlashPoint DW (BT-952)	Dual Channel Wide Ultra SCSI-3 | 
 | 216 | FlashPoint DW (BT-952R)	Dual Channel Wide Ultra SCSI-3 with RAIDPlus | 
 | 217 |  | 
 | 218 | MultiMaster "W" Series Host Adapters: | 
 | 219 |  | 
 | 220 | BT-948	    PCI		Ultra SCSI-3 | 
 | 221 | BT-958	    PCI		Wide Ultra SCSI-3 | 
 | 222 | BT-958D	    PCI		Wide Differential Ultra SCSI-3 | 
 | 223 |  | 
 | 224 | MultiMaster "C" Series Host Adapters: | 
 | 225 |  | 
 | 226 | BT-946C	    PCI		Fast SCSI-2 | 
 | 227 | BT-956C	    PCI		Wide Fast SCSI-2 | 
 | 228 | BT-956CD    PCI		Wide Differential Fast SCSI-2 | 
 | 229 | BT-445C	    VLB		Fast SCSI-2 | 
 | 230 | BT-747C	    EISA	Fast SCSI-2 | 
 | 231 | BT-757C	    EISA	Wide Fast SCSI-2 | 
 | 232 | BT-757CD    EISA	Wide Differential Fast SCSI-2 | 
 | 233 | BT-545C	    ISA		Fast SCSI-2 | 
 | 234 | BT-540CF    ISA		Fast SCSI-2 | 
 | 235 |  | 
 | 236 | MultiMaster "S" Series Host Adapters: | 
 | 237 |  | 
 | 238 | BT-445S	    VLB		Fast SCSI-2 | 
 | 239 | BT-747S	    EISA	Fast SCSI-2 | 
 | 240 | BT-747D	    EISA	Differential Fast SCSI-2 | 
 | 241 | BT-757S	    EISA	Wide Fast SCSI-2 | 
 | 242 | BT-757D	    EISA	Wide Differential Fast SCSI-2 | 
 | 243 | BT-545S	    ISA		Fast SCSI-2 | 
 | 244 | BT-542D	    ISA		Differential Fast SCSI-2 | 
 | 245 | BT-742A	    EISA	SCSI-2 (742A revision H) | 
 | 246 | BT-542B	    ISA		SCSI-2 (542B revision H) | 
 | 247 |  | 
 | 248 | MultiMaster "A" Series Host Adapters: | 
 | 249 |  | 
 | 250 | BT-742A	    EISA	SCSI-2 (742A revisions A - G) | 
 | 251 | BT-542B	    ISA		SCSI-2 (542B revisions A - G) | 
 | 252 |  | 
 | 253 | AMI FastDisk Host Adapters that are true BusLogic MultiMaster clones are also | 
 | 254 | supported by this driver. | 
 | 255 |  | 
 | 256 | BusLogic SCSI Host Adapters are available packaged both as bare boards and as | 
 | 257 | retail kits.  The BT- model numbers above refer to the bare board packaging. | 
 | 258 | The retail kit model numbers are found by replacing BT- with KT- in the above | 
 | 259 | list.  The retail kit includes the bare board and manual as well as cabling and | 
 | 260 | driver media and documentation that are not provided with bare boards. | 
 | 261 |  | 
 | 262 |  | 
 | 263 | 			 FLASHPOINT INSTALLATION NOTES | 
 | 264 |  | 
 | 265 | o RAIDPlus Support | 
 | 266 |  | 
 | 267 |   FlashPoint Host Adapters now include RAIDPlus, Mylex's bootable software | 
 | 268 |   RAID.  RAIDPlus is not supported on Linux, and there are no plans to support | 
 | 269 |   it.  The MD driver in Linux 2.0 provides for concatenation (LINEAR) and | 
 | 270 |   striping (RAID-0), and support for mirroring (RAID-1), fixed parity (RAID-4), | 
 | 271 |   and distributed parity (RAID-5) is available separately.  The built-in Linux | 
 | 272 |   RAID support is generally more flexible and is expected to perform better | 
 | 273 |   than RAIDPlus, so there is little impetus to include RAIDPlus support in the | 
 | 274 |   BusLogic driver. | 
 | 275 |  | 
 | 276 | o Enabling UltraSCSI Transfers | 
 | 277 |  | 
 | 278 |   FlashPoint Host Adapters ship with their configuration set to "Factory | 
 | 279 |   Default" settings that are conservative and do not allow for UltraSCSI speed | 
 | 280 |   to be negotiated.  This results in fewer problems when these host adapters | 
 | 281 |   are installed in systems with cabling or termination that is not sufficient | 
 | 282 |   for UltraSCSI operation, or where existing SCSI devices do not properly | 
 | 283 |   respond to synchronous transfer negotiation for UltraSCSI speed.  AutoSCSI | 
 | 284 |   may be used to load "Optimum Performance" settings which allow UltraSCSI | 
 | 285 |   speed to be negotiated with all devices, or UltraSCSI speed can be enabled on | 
 | 286 |   an individual basis.  It is recommended that SCAM be manually disabled after | 
 | 287 |   the "Optimum Performance" settings are loaded. | 
 | 288 |  | 
 | 289 |  | 
 | 290 | 		      BT-948/958/958D INSTALLATION NOTES | 
 | 291 |  | 
 | 292 | The BT-948/958/958D PCI Ultra SCSI Host Adapters have some features which may | 
 | 293 | require attention in some circumstances when installing Linux. | 
 | 294 |  | 
 | 295 | o PCI I/O Port Assignments | 
 | 296 |  | 
 | 297 |   When configured to factory default settings, the BT-948/958/958D will only | 
 | 298 |   recognize the PCI I/O port assignments made by the motherboard's PCI BIOS. | 
 | 299 |   The BT-948/958/958D will not respond to any of the ISA compatible I/O ports | 
 | 300 |   that previous BusLogic SCSI Host Adapters respond to.  This driver supports | 
 | 301 |   the PCI I/O port assignments, so this is the preferred configuration. | 
 | 302 |   However, if the obsolete BusLogic driver must be used for any reason, such as | 
 | 303 |   a Linux distribution that does not yet use this driver in its boot kernel, | 
 | 304 |   BusLogic has provided an AutoSCSI configuration option to enable a legacy ISA | 
 | 305 |   compatible I/O port. | 
 | 306 |  | 
 | 307 |   To enable this backward compatibility option, invoke the AutoSCSI utility via | 
 | 308 |   Ctrl-B at system startup and select "Adapter Configuration", "View/Modify | 
 | 309 |   Configuration", and then change the "ISA Compatible Port" setting from | 
 | 310 |   "Disable" to "Primary" or "Alternate".  Once this driver has been installed, | 
 | 311 |   the "ISA Compatible Port" option should be set back to "Disable" to avoid | 
 | 312 |   possible future I/O port conflicts.  The older BT-946C/956C/956CD also have | 
 | 313 |   this configuration option, but the factory default setting is "Primary". | 
 | 314 |  | 
 | 315 | o PCI Slot Scanning Order | 
 | 316 |  | 
 | 317 |   In systems with multiple BusLogic PCI Host Adapters, the order in which the | 
 | 318 |   PCI slots are scanned may appear reversed with the BT-948/958/958D as | 
 | 319 |   compared to the BT-946C/956C/956CD.  For booting from a SCSI disk to work | 
 | 320 |   correctly, it is necessary that the host adapter's BIOS and the kernel agree | 
 | 321 |   on which disk is the boot device, which requires that they recognize the PCI | 
 | 322 |   host adapters in the same order.  The motherboard's PCI BIOS provides a | 
 | 323 |   standard way of enumerating the PCI host adapters, which is used by the Linux | 
 | 324 |   kernel.  Some PCI BIOS implementations enumerate the PCI slots in order of | 
 | 325 |   increasing bus number and device number, while others do so in the opposite | 
 | 326 |   direction. | 
 | 327 |  | 
 | 328 |   Unfortunately, Microsoft decided that Windows 95 would always enumerate the | 
 | 329 |   PCI slots in order of increasing bus number and device number regardless of | 
 | 330 |   the PCI BIOS enumeration, and requires that their scheme be supported by the | 
 | 331 |   host adapter's BIOS to receive Windows 95 certification.  Therefore, the | 
 | 332 |   factory default settings of the BT-948/958/958D enumerate the host adapters | 
 | 333 |   by increasing bus number and device number.  To disable this feature, invoke | 
 | 334 |   the AutoSCSI utility via Ctrl-B at system startup and select "Adapter | 
 | 335 |   Configuration", "View/Modify Configuration", press Ctrl-F10, and then change | 
 | 336 |   the "Use Bus And Device # For PCI Scanning Seq." option to OFF. | 
 | 337 |  | 
 | 338 |   This driver will interrogate the setting of the PCI Scanning Sequence option | 
 | 339 |   so as to recognize the host adapters in the same order as they are enumerated | 
 | 340 |   by the host adapter's BIOS. | 
 | 341 |  | 
 | 342 | o Enabling UltraSCSI Transfers | 
 | 343 |  | 
 | 344 |   The BT-948/958/958D ship with their configuration set to "Factory Default" | 
 | 345 |   settings that are conservative and do not allow for UltraSCSI speed to be | 
 | 346 |   negotiated.  This results in fewer problems when these host adapters are | 
 | 347 |   installed in systems with cabling or termination that is not sufficient for | 
 | 348 |   UltraSCSI operation, or where existing SCSI devices do not properly respond | 
 | 349 |   to synchronous transfer negotiation for UltraSCSI speed.  AutoSCSI may be | 
 | 350 |   used to load "Optimum Performance" settings which allow UltraSCSI speed to be | 
 | 351 |   negotiated with all devices, or UltraSCSI speed can be enabled on an | 
 | 352 |   individual basis.  It is recommended that SCAM be manually disabled after the | 
 | 353 |   "Optimum Performance" settings are loaded. | 
 | 354 |  | 
 | 355 |  | 
 | 356 | 				DRIVER OPTIONS | 
 | 357 |  | 
 | 358 | BusLogic Driver Options may be specified either via the Linux Kernel Command | 
 | 359 | Line or via the Loadable Kernel Module Installation Facility.  Driver Options | 
 | 360 | for multiple host adapters may be specified either by separating the option | 
 | 361 | strings by a semicolon, or by specifying multiple "BusLogic=" strings on the | 
 | 362 | command line.  Individual option specifications for a single host adapter are | 
 | 363 | separated by commas.  The Probing and Debugging Options apply to all host | 
 | 364 | adapters whereas the remaining options apply individually only to the | 
 | 365 | selected host adapter. | 
 | 366 |  | 
 | 367 | The BusLogic Driver Probing Options comprise the following: | 
 | 368 |  | 
 | 369 | IO:<integer> | 
 | 370 |  | 
 | 371 |   The "IO:" option specifies an ISA I/O Address to be probed for a non-PCI | 
 | 372 |   MultiMaster Host Adapter.  If neither "IO:" nor "NoProbeISA" options are | 
 | 373 |   specified, then the standard list of BusLogic MultiMaster ISA I/O Addresses | 
 | 374 |   will be probed (0x330, 0x334, 0x230, 0x234, 0x130, and 0x134).  Multiple | 
 | 375 |   "IO:" options may be specified to precisely determine the I/O Addresses to | 
 | 376 |   be probed, but the probe order will always follow the standard list. | 
 | 377 |  | 
 | 378 | NoProbe | 
 | 379 |  | 
 | 380 |   The "NoProbe" option disables all probing and therefore no BusLogic Host | 
 | 381 |   Adapters will be detected. | 
 | 382 |  | 
 | 383 | NoProbeISA | 
 | 384 |  | 
 | 385 |   The "NoProbeISA" option disables probing of the standard BusLogic ISA I/O | 
 | 386 |   Addresses and therefore only PCI MultiMaster and FlashPoint Host Adapters | 
 | 387 |   will be detected. | 
 | 388 |  | 
 | 389 | NoProbePCI | 
 | 390 |  | 
 | 391 |   The "NoProbePCI" options disables the interrogation of PCI Configuration | 
 | 392 |   Space and therefore only ISA Multimaster Host Adapters will be detected, as | 
 | 393 |   well as PCI Multimaster Host Adapters that have their ISA Compatible I/O | 
 | 394 |   Port set to "Primary" or "Alternate". | 
 | 395 |  | 
 | 396 | NoSortPCI | 
 | 397 |  | 
 | 398 |   The "NoSortPCI" option forces PCI MultiMaster Host Adapters to be | 
 | 399 |   enumerated in the order provided by the PCI BIOS, ignoring any setting of | 
 | 400 |   the AutoSCSI "Use Bus And Device # For PCI Scanning Seq." option. | 
 | 401 |  | 
 | 402 | MultiMasterFirst | 
 | 403 |  | 
 | 404 |   The "MultiMasterFirst" option forces MultiMaster Host Adapters to be probed | 
 | 405 |   before FlashPoint Host Adapters.  By default, if both FlashPoint and PCI | 
 | 406 |   MultiMaster Host Adapters are present, this driver will probe for | 
 | 407 |   FlashPoint Host Adapters first unless the BIOS primary disk is controlled | 
 | 408 |   by the first PCI MultiMaster Host Adapter, in which case MultiMaster Host | 
 | 409 |   Adapters will be probed first. | 
 | 410 |  | 
 | 411 | FlashPointFirst | 
 | 412 |  | 
 | 413 |   The "FlashPointFirst" option forces FlashPoint Host Adapters to be probed | 
 | 414 |   before MultiMaster Host Adapters. | 
 | 415 |  | 
 | 416 | The BusLogic Driver Tagged Queuing Options allow for explicitly specifying | 
 | 417 | the Queue Depth and whether Tagged Queuing is permitted for each Target | 
 | 418 | Device (assuming that the Target Device supports Tagged Queuing).  The Queue | 
 | 419 | Depth is the number of SCSI Commands that are allowed to be concurrently | 
 | 420 | presented for execution (either to the Host Adapter or Target Device).  Note | 
 | 421 | that explicitly enabling Tagged Queuing may lead to problems; the option to | 
 | 422 | enable or disable Tagged Queuing is provided primarily to allow disabling | 
 | 423 | Tagged Queuing on Target Devices that do not implement it correctly.  The | 
 | 424 | following options are available: | 
 | 425 |  | 
 | 426 | QueueDepth:<integer> | 
 | 427 |  | 
 | 428 |   The "QueueDepth:" or QD:" option specifies the Queue Depth to use for all | 
 | 429 |   Target Devices that support Tagged Queuing, as well as the maximum Queue | 
 | 430 |   Depth for devices that do not support Tagged Queuing.  If no Queue Depth | 
 | 431 |   option is provided, the Queue Depth will be determined automatically based | 
 | 432 |   on the Host Adapter's Total Queue Depth and the number, type, speed, and | 
 | 433 |   capabilities of the detected Target Devices.  For Host Adapters that | 
 | 434 |   require ISA Bounce Buffers, the Queue Depth is automatically set by default | 
 | 435 |   to BusLogic_TaggedQueueDepthBB or BusLogic_UntaggedQueueDepthBB to avoid | 
 | 436 |   excessive preallocation of DMA Bounce Buffer memory.  Target Devices that | 
 | 437 |   do not support Tagged Queuing always have their Queue Depth set to | 
 | 438 |   BusLogic_UntaggedQueueDepth or BusLogic_UntaggedQueueDepthBB, unless a | 
 | 439 |   lower Queue Depth option is provided.  A Queue Depth of 1 automatically | 
 | 440 |   disables Tagged Queuing. | 
 | 441 |  | 
 | 442 | QueueDepth:[<integer>,<integer>...] | 
 | 443 |  | 
 | 444 |   The "QueueDepth:[...]" or "QD:[...]" option specifies the Queue Depth | 
 | 445 |   individually for each Target Device.  If an <integer> is omitted, the | 
 | 446 |   associated Target Device will have its Queue Depth selected automatically. | 
 | 447 |  | 
 | 448 | TaggedQueuing:Default | 
 | 449 |  | 
 | 450 |   The "TaggedQueuing:Default" or "TQ:Default" option permits Tagged Queuing | 
 | 451 |   based on the firmware version of the BusLogic Host Adapter and based on | 
 | 452 |   whether the Queue Depth allows queuing multiple commands. | 
 | 453 |  | 
 | 454 | TaggedQueuing:Enable | 
 | 455 |  | 
 | 456 |   The "TaggedQueuing:Enable" or "TQ:Enable" option enables Tagged Queuing for | 
 | 457 |   all Target Devices on this Host Adapter, overriding any limitation that | 
 | 458 |   would otherwise be imposed based on the Host Adapter firmware version. | 
 | 459 |  | 
 | 460 | TaggedQueuing:Disable | 
 | 461 |  | 
 | 462 |   The "TaggedQueuing:Disable" or "TQ:Disable" option disables Tagged Queuing | 
 | 463 |   for all Target Devices on this Host Adapter. | 
 | 464 |  | 
 | 465 | TaggedQueuing:<Target-Spec> | 
 | 466 |  | 
 | 467 |   The "TaggedQueuing:<Target-Spec>" or "TQ:<Target-Spec>" option controls | 
 | 468 |   Tagged Queuing individually for each Target Device.  <Target-Spec> is a | 
 | 469 |   sequence of "Y", "N", and "X" characters.  "Y" enables Tagged Queuing, "N" | 
 | 470 |   disables Tagged Queuing, and "X" accepts the default based on the firmware | 
 | 471 |   version.  The first character refers to Target Device 0, the second to | 
 | 472 |   Target Device 1, and so on; if the sequence of "Y", "N", and "X" characters | 
 | 473 |   does not cover all the Target Devices, unspecified characters are assumed | 
 | 474 |   to be "X". | 
 | 475 |  | 
 | 476 | The BusLogic Driver Miscellaneous Options comprise the following: | 
 | 477 |  | 
 | 478 | BusSettleTime:<seconds> | 
 | 479 |  | 
 | 480 |   The "BusSettleTime:" or "BST:" option specifies the Bus Settle Time in | 
 | 481 |   seconds.  The Bus Settle Time is the amount of time to wait between a Host | 
 | 482 |   Adapter Hard Reset which initiates a SCSI Bus Reset and issuing any SCSI | 
 | 483 |   Commands.  If unspecified, it defaults to BusLogic_DefaultBusSettleTime. | 
 | 484 |  | 
 | 485 | InhibitTargetInquiry | 
 | 486 |  | 
 | 487 |   The "InhibitTargetInquiry" option inhibits the execution of an Inquire | 
 | 488 |   Target Devices or Inquire Installed Devices command on MultiMaster Host | 
 | 489 |   Adapters.  This may be necessary with some older Target Devices that do not | 
 | 490 |   respond correctly when Logical Units above 0 are addressed. | 
 | 491 |  | 
 | 492 | The BusLogic Driver Debugging Options comprise the following: | 
 | 493 |  | 
 | 494 | TraceProbe | 
 | 495 |  | 
 | 496 |   The "TraceProbe" option enables tracing of Host Adapter Probing. | 
 | 497 |  | 
 | 498 | TraceHardwareReset | 
 | 499 |  | 
 | 500 |   The "TraceHardwareReset" option enables tracing of Host Adapter Hardware | 
 | 501 |   Reset. | 
 | 502 |  | 
 | 503 | TraceConfiguration | 
 | 504 |  | 
 | 505 |   The "TraceConfiguration" option enables tracing of Host Adapter | 
 | 506 |   Configuration. | 
 | 507 |  | 
 | 508 | TraceErrors | 
 | 509 |  | 
 | 510 |   The "TraceErrors" option enables tracing of SCSI Commands that return an | 
 | 511 |   error from the Target Device.  The CDB and Sense Data will be printed for | 
 | 512 |   each SCSI Command that fails. | 
 | 513 |  | 
 | 514 | Debug | 
 | 515 |  | 
 | 516 |   The "Debug" option enables all debugging options. | 
 | 517 |  | 
 | 518 | The following examples demonstrate setting the Queue Depth for Target Devices | 
 | 519 | 1 and 2 on the first host adapter to 7 and 15, the Queue Depth for all Target | 
 | 520 | Devices on the second host adapter to 31, and the Bus Settle Time on the | 
 | 521 | second host adapter to 30 seconds. | 
 | 522 |  | 
 | 523 | Linux Kernel Command Line: | 
 | 524 |  | 
 | 525 |   linux BusLogic=QueueDepth:[,7,15];QueueDepth:31,BusSettleTime:30 | 
 | 526 |  | 
 | 527 | LILO Linux Boot Loader (in /etc/lilo.conf): | 
 | 528 |  | 
 | 529 |   append = "BusLogic=QueueDepth:[,7,15];QueueDepth:31,BusSettleTime:30" | 
 | 530 |  | 
 | 531 | INSMOD Loadable Kernel Module Installation Facility: | 
 | 532 |  | 
 | 533 |   insmod BusLogic.o \ | 
 | 534 |       'BusLogic="QueueDepth:[,7,15];QueueDepth:31,BusSettleTime:30"' | 
 | 535 |  | 
 | 536 | NOTE: Module Utilities 2.1.71 or later is required for correct parsing | 
 | 537 |       of driver options containing commas. | 
 | 538 |  | 
 | 539 |  | 
 | 540 | 			      DRIVER INSTALLATION | 
 | 541 |  | 
 | 542 | This distribution was prepared for Linux kernel version 2.0.35, but should be | 
 | 543 | compatible with 2.0.4 or any later 2.0 series kernel. | 
 | 544 |  | 
 | 545 | To install the new BusLogic SCSI driver, you may use the following commands, | 
 | 546 | replacing "/usr/src" with wherever you keep your Linux kernel source tree: | 
 | 547 |  | 
 | 548 |   cd /usr/src | 
 | 549 |   tar -xvzf BusLogic-2.0.15.tar.gz | 
 | 550 |   mv README.* LICENSE.* BusLogic.[ch] FlashPoint.c linux/drivers/scsi | 
 | 551 |   patch -p0 < BusLogic.patch (only for 2.0.33 and below) | 
 | 552 |   cd linux | 
 | 553 |   make config | 
 | 554 |   make zImage | 
 | 555 |  | 
 | 556 | Then install "arch/i386/boot/zImage" as your standard kernel, run lilo if | 
 | 557 | appropriate, and reboot. | 
 | 558 |  | 
 | 559 |  | 
 | 560 | 		      BUSLOGIC ANNOUNCEMENTS MAILING LIST | 
 | 561 |  | 
 | 562 | The BusLogic Announcements Mailing List provides a forum for informing Linux | 
 | 563 | users of new driver releases and other announcements regarding Linux support | 
 | 564 | for BusLogic SCSI Host Adapters.  To join the mailing list, send a message to | 
 | 565 | "buslogic-announce-request@dandelion.com" with the line "subscribe" in the | 
 | 566 | message body. |