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. |