BusLogic Boot-time Loadable Driver For SCO Unix 3.2.4 / Open Desktop / MPX Version 2.06 Introduction ============ The BusLogic Boot-time Loadable Driver (BTLD) for SCO Unix consists of a single common device driver supporting the following BusLogic family of SCSI host adapters: BT-445 (VESA Local Bus) BT-54x (ISA) BT-64x (MicroChannel) BT-74x (EISA) BT-75x (EISA/Wide SCSI) BT-946 (PCI Local Bus) BT-95x (PCI/Wide SCSI) The driver has been designed to utilize the features provided by the BusLogic 32-bit extended mode architecture. In comparison to running the BusLogic host adapters in 1542-compatible mode, the BusLogic driver provides quicker I/O request processing and removes the double-buffering requirement due to the 16MB addressing limitation. In addition, this version of the driver includes the following enhancements over the 1.40 version. - SCO MPX support - Increased simultaneous I/O requests per device - Faster command and interrupt processing - SCSI Bus Reset handling - I/O Port Address selectability at installation time - Command Queueing enabled by default - Controller Reset supported via ioctl interface - Command Timeout handling - Boot-time Hard Reset ON/OFF selectability at link time - Reset Delay configurability at link time - BIOS Drive-Mapping support for up to 8GB hard disks - Extended device support for BT-75xC and BT-95xC Wide SCSI host adapters Please refer to the Enhancement Notes below for more detail. Generating a BTLD Diskette ========================== This section describes the method for generating a BusLogic Boot-time Loadable Driver (BTLD) diskette for SCO Unix using the diskette image file generated from the downloaded SCO206.EXE self-extracting file. When you execute the SCO206.EXE in DOS, the following files are automatically extracted: README.TXT SCO206DD.Z SCO525DD.Z README.TXT is this readme text file. SCO206DD.Z is a compressed-dd image that you must use on a Unix system to generate the BTLD diskette. SCO525DD.Z is the same compressed-dd image, just in 5.25" disk format. To generate the BTLD diskette, do the following: 1. Copy SCO20DD.Z to a DOS-format floppy. 2. Login to a Unix system as 'root'. 3. Change directory to /tmp and copy SCO206DD.Z from the DOS floppy to the hard disk. Under SCO Unix, you can type the following to do this. # doscp a:SCO206DD.Z /tmp/SCO206DD.Z 4. Uncompress the .Z file as follows: # uncompress SCO206DD.Z 5. Insert a blank 3.5" diskette and type the following: # dd if=SCO206DD of=/dev/rfd0 bs=9k 6. Label the diskette as "BusLogic BTLD for SCO Unix 3.2.4/ODT/MPX Version 2.06". Installation Procedure ====================== The installation procedure allows you to dynamically load the BusLogic Boot-time Loadable Driver (BTLD) during SCO Unix 3.2.4/ODT installation and permanently configure the driver into your kernel. The procedure below describes the installation on ODT and may differ slightly from your installation. 1. Configure the BusLogic SCSI Host Adapter to any supported I/O port address, IRQ, and DMA settings that you prefer. This version of the BusLogic driver installation allows you to specify the I/O port address mapping. 2. Boot system with the N1 Boot Diskette. 3. At the boot prompt, type link and press Enter. Boot: link 4. When the system prompts for the package name, enter blc. What packages do you need linked in the system, or q to quit?: blc 5. The screen displays a series of progress messages before you are prompted to insert the BusLogic BTLD diskette. Please insert the fd(60)blc volume and press , or 'q' to quit: Insert the diskette and press Enter. The screen displays the following messages: blc.blc: Loading module fd(60)/blc/driver/blc/Driver.o .text ...... blc.blc: Loading module fd(60)/blc/driver/blc/Driver.o .data ... blc.blc: Loading module fd(60)/blc/driver/blc/Driver.o .data . blc: Driver 'blc' successfully loaded. character major = 6 6. Follow the installation instructions until you are requested to re- insert the BusLogic BTLD diskette. The BTLD packages will now be extracted. Please insert the floppy for BTLD package: blc and press : Insert the diskette and press Enter. The screen displays the following messages: Extracting BTLD distribution for blc ... Done. After the SCO Unix files have been read from the installation media (floppy, tape, or CD-ROM), the installation procedure to statically link the BusLogic driver into the kernel is started. 7. You are presented with a list of packages on the BTLD diskette. The following packages are on this disk: NAME DESCRIPTION blc BusLogic SCSI Host Adapter driver for SCO UNIX Please enter the names of the packages you wish to install, or q to quit: [default: blc]: blc Type 'blc' and press Enter. 8. You are then requested to select whether or not you want to replace the auto entries in mscsi with blc. Would you like to replace the 'auto' entries in mscsi with BusLogic driver 'blc'? (y/n): Type 'y' and press Enter. 9. By default, the BusLogic driver will be statically configured in the kernel at I/O port address 0x330. The next prompt allows you to select another address. The BusLogic driver defaults to I/O port address 0x330. Do you want to change the I/O port address? (y/n): Type 'n' to accept the default address of 0x330. If you wish to use another address, type y and press Enter. When you select y, you are prompted to select the I/O port address you wish to use. The BusLogic SCSI host adapter can be set for the following I/O port addresses: 1. 0x330 (default) 4. 0x234 2. 0x334 5. 0x130 3. 0x230 6. 0x134 Please enter your selection: Enter the number corresponding to the I/O port address and press Enter. 10. The next prompt allows you to specify if you want the driver to enable Tag Queueing support. If you enable this option, tag commands are sent only to hard disks supporting Tag Queueing. Tag Queuing allows hard disks to queue and sort multiple I/O requests from the BusLogic host adapter, possibly resulting in enhanced performance. Some hard disks, however, do not thoroughly support Tag Queuing, and may have problems if this option is enabled. If you decide not to turn on Tag Queuing now, you can do so later by setting 'blc_do_tag = 1' in /etc/conf/pack.d/blc/space.c Do you want to enable Tag Queuing now? (y/n): 11. The driver contains support for the BusLogic BT-75xC and BT-95xC Wide SCSI host adapters which allow access to 16 target ID's (0-15) and 64 LUN's (0-63). A couple of mkdev scripts do need to be modified to bypass the current 0-7 limitations for both ID's and LUN's. The next prompt allows you to make the necessary changes to these shell scripts automatically if you are using the BT-75xC or BT-95xC and wish to take advantage of the extended device support. BusLogic BT-75xC amd BT-95xC Wide SCSI Host Adapters are capable of supporting up to 15 devices with up to 64 LUNs. To support the extended devices, the following files need to be modified: /usr/lib/mkdev/hd /usr/lib/mkdev/.scsi The original files will be backed up in the following directory: /usr/lib/mkdev/Orig If you have a BT-75xC or BT-95xC and wish to provide support for extended devices, type 'y'; otherwise, type 'n'. (y/n): Type 'y' to make the necessary modification for extended device support. 12. At this point, you are given the opportunity to rebuild the kernel. You will need to rebuild the kernel for the changes to take effect. Do you want to rebuild the kernel now? (y/n): You can type n here, as SCO Unix installation performs a kernel rebuild soon after the BusLogic driver installation is complete. This option is presented for users upgrading to the new BusLogic driver. 13. The installation of the BusLogic device driver is complete. Upgrade Procedure ================= The upgrade procedure allows you to upgrade the older version of the BusLogic driver, btk, or replace the Adaptec 1542 configuration and driver that you may have used previously with your BusLogic SCSI Host Adapter. 1. Boot the system into single-user mode. 2. Insert the BusLogic BTLD diskette in the floppy drive and type installpkg at the shell prompt. # installpkg 3. You are presented with a list of packages on the BTLD diskette. The following packages are on this disk: NAME DESCRIPTION blc BusLogic SCSI Host Adapter driver for SCO UNIX Please enter the names of the packages you wish to install, or q to quit: Type 'blc' and press Enter. 4. If you are upgrading from the Adaptec 1542 driver, ad, you are prompted as follows: Would you like to replace the 'ad' entries in mscsi with BusLogic driver 'blc'? (y/n): Type 'y' and press Enter to replace the Adaptec driver entries in mscsi with BusLogic. You are then asked if you wish to keep the same settings as the Adaptec driver. Would you like to use the BusLogic driver with the same I/O port addresses settings as 'ad'? (y/n): Type 'y' and press Enter if the BusLogic host adapter is configured with the same I/O port setting as the Adaptec card, or n if you wish to specify another port address. 5. If you are upgrading from the older BusLogic driver, btk, you are prompted as follows: The current 'btk' driver will be replaced with the new BusLogic 'blc' driver. Do you want to set up the new BusLogic 'blc' driver with the same settings as the 'btk' driver? (y/n): Type 'y' to keep old setup, or n to specify a new I/O port setting. 6. The next prompt allows you to specify if you want the driver to enable Tag Queueing support. If you enable this option, tag commands are sent only to hard disks supporting Tag Queueing. Tag Queuing allows hard disks to queue and sort multiple I/O requests from the BusLogic host adapter, possibly resulting in enhanced performance. Some hard disks, however, do not thoroughly support Tag Queuing, and may have problems if this option is enabled. If you decide not to turn on Tag Queuing now, you can do so later by setting 'blc_do_tag = 1' in /etc/conf/pack.d/blc/space.c Do you want to enable Tag Queuing now? (y/n): 7. The driver contains support for the BusLogic BT-75xC and BT-95xC Wide SCSI host adapters which allow access to 16 target ID's (0-15) and 64 LUN's (0-63). A couple of mkdev scripts do need to be modified to bypass the current 0-7 limitations for both ID's and LUN's. The next prompt allows you to make the necessary changes to these shell scripts automatically if you are using the BT-75xC or BT-95xC and wish to take advantage of the extended device support. BusLogic BT-75xC amd BT-95xC Wide SCSI Host Adapters are capable of supporting up to 15 devices with up to 64 LUNs. To support the extended devices, the following files need to be modified: /usr/lib/mkdev/hd /usr/lib/mkdev/.scsi The original files will be backed up in the following directory: /usr/lib/mkdev/Orig If you have a BT-75xC or BT-95xC and wish to provide support for extended devices, type 'y'; otherwise, type 'n'. (y/n): Type 'y' to make the necessary modification for extended device support. 8. At this point, you are given the opportunity to rebuild the kernel. You will need to rebuild the kernel for the changes to take effect. Do you want to rebuild the kernel now? (y/n): Type 'y' and press Enter to permanently link the BusLogic driver with the kernel. Reboot the system after the rebuild is complete. 9. The installation of the BusLogic device driver is complete. Configuring Driver for Additional BusLogic Cards ------------------------------------------------ Up to four BusLogic SCSI host adapters can be configured simply by modifying the /etc/conf/sdevice.d/blc file and rebuilding the kernel. By default, the /etc/conf/sdevice.d/blc file contains one entry and looks like: blc Y 1 5 0 0 330 333 0 0 This represents a BusLogic host adapter configured at I/O port 0x330-0x333. There is no need to specify other characteristics of the host adapter, such as IRQ, DMA, or BIOS memory range, as these information are obtained at boot time using the I/O port addresses. To configure a second BusLogic card, copy the first line and append it to the file, changing only the I/O port address settings. For example, if the second controller is configured at port address 0x334-0x337, the /etc/conf/sdevice.d/blc file would be: blc Y 1 5 0 0 330 333 0 0 blc Y 1 5 0 0 334 337 0 0 The third and fourth controller entries can be added in a similar way. Once you have finished with the changes, save the file and rebuild the kernel as follows: # /etc/conf/cf.d/link_unix Reboot the system and run the appropriate mkdev script (hd, tape, cdrom) to add devices to the newly configured host adapter. Enhancement Notes ================= This section describes in brief detail some of the enhancements that were made for this BusLogic BTLD package release. I/O Port Addressing selectability at installation time ------------------------------------------------------ The BusLogic BTLD scans the range of supported I/O port addresses at installation time in order of 0x330, 0x334, 0x230, 0x234, 0x130, and 0x134, and selects the first one found as the boot controller. Command Queueing enabled by default ----------------------------------- By default, Tag Queue commands are sent to devices that support command queueing. Command queueing can be turned on by setting blc_do_tag in /etc/conf/pack.d/blc/space.c to 1 and relinking the kernel. int blc_do_tag = 0; /* 1 = do command queuing */ Command Timeout handling ------------------------ By default, an I/O request is given 60 seconds (user configurable) to complete. A request that does not return in that time limit will be aborted and retried up to 4 times (user configurable). If there is still no response, the controller is reset and the outstanding I/O requests are resent. The following tunable parameters can be changed in /etc/conf/pack.d/blc/space.c to your desired values. int blc_timeout = 1; /* 1 = do timeout handling */ int blc_timeout_period = 15; /* number of secs to wait for I/O */ /* request before timing out */ int blc_retry_max = 2; /* # of times to retry request */ /* before resetting the */ /* controller */ Note: If the I/O request is started just after the timer is called, the actual timeout period can be up to twice that specified in blc_timeout_period. Boot-time Hard Reset ON/OFF selectability at link time ------------------------------------------------------ By default, the driver will not perform Hard/SCSI reset at boot-time. If your application requires reset at boot-time, set blc_inittime_hard_reset to 1 in /etc/conf/pack.d/blc/space.c and relink the kernel. int blc_inittime_hard_reset = 0; /* 1 = do hard reset at boot-time */ Reset Delay configurability at link time ---------------------------------------- By default, the driver will delay three seconds after a hard reset is generated at boot-time or during error recovery as part of the command timeout feature. Certain devices requiring a longer delay can be accomodated by modifying the blc_reset_delay parameter in /etc/conf/pack.d/blc/space.c and relinking the kernel. int blc_reset_delay = 3; /* number of secs to wait after */ /* hard reset is performed */ Extended device support for BT-75xC and BT-95xC Wide SCSI controllers --------------------------------------------------------------------- The driver provides support for up to 16 SCSI ID's and 64 LUN's on the BusLogic BT-75xC and BT-95xC Wide SCSI host adapters. /usr/lib/mkdev/hd and /usr/lib/mkdev/.scsi files are modified during installation, if requested, to allow user to specify SCSI ID and LUN beyond 7. To reach us & the latest drivers and information: Tech Support: (408) 654-0760 FAX: (408) 492-1542 BBS: (408) 492-1984 (14.4k, N81) FTP Site: ftp.buslogic.com (204.160.180.11) WWW Page: http://www.buslogic.com