********************************************* * * * SCSI01.SYS * * OS/2 Disk Driver with SCSI Support * * Functional Overview * * Tom Shea 1/10/89 * * OS/2 Version 1.1 * * * ********************************************* Introduction: DISK01.SYS, the disk driver shipped with the OS/2 SDK and BAK, provides support for standard floppy and hard drives on AT machines. SCSI01.SYS provides all the functionality of DISK01.SYS, and in addition, supports the Adaptec AHA-154x line of multitasking SCSI host adapters. As with DISK01.SYS, OEMs wishing to use SCSI01.SYS and the AHA-154x may want to modify the driver to best support their particular hardware configurations. The SCSI portion of SCSI01.SYS is made up of two different sections: The SCSI Manager, and the SCSI Disk Driver. The SCSI Manager: The SCSI manager is implemented as a character device which loads before the disk portion of DISK01. The SCSI manager provides a generic multitasking interface to the AHA-154x host adapter. Any device driver can access the SM through the ATTACH Device Help function in OS/2. For more information on the specification for interfacing to the SCSI manager, refer to the Adaptec OS/2 SCSI programming interface specification. Additional drivers for devices such as Tape, etc. will be available in the future from Adaptec to take advantage of this interface. Note that the SCSI manager is also available as an installable driver without the disk support. If this driver is installed, the SCSI manager in the disk module is de-installed and the installable driver takes over the SCSI manager duties. SCSI Disk Driver: The SCSI Disk Driver uses the SM interface to provide multitasking Disk I/O for SCSI Hard Drives. The functionality of SCSI01.SYS for Hard Drives is intended to mirror DISK01.SYS. Basically, SCSI01.SYS will support all hard drive configurations supported by the AHA-154x BIOS. These include: (1) Both Drive C: and Drive D: are standard Hard drives. (2) Drive C: is standard, Drive D: is SCSI Target 0 LUN_0. (3) Drive C: is SCSI Target 0 LUN 0, Drive D:, if installed, is SCSI Target 0 LUN 1 or Target 1 LUN 0. Like DISK01, SCSI01 is presently limited to 2 Hard drives. As future versions of OS/2 supply DISK01 and FDISK code which supports more than 2 hard drives, SCSI01 will obviously support as many SCSI drives as possible. SCSI01.SYS does not use the ROM BIOS for Interrupt 13H requests from the DOS compatibility box. Instead, interrupt 13H functionality is emulated by the SDD through the multitasking SCSI manager. SCSI01 Uses the OS/2 seek optomization routines when queueing disk requests. The SCSI Disk Driver presently assumes that all SCSI hard drives on the system support the extended verify command. In the future, SCSI01.SYS will be modified to work with drives without this support as well as to take advantage of drives which support the WRITE w/ VERIFY command. At the present time, SCSI requests do not go through the cache used for requests to standard hard drives. It is currently being studied how to handle caching for SCSI drives inside the driver. Support for LAN Manager 1.1 high performance disk caching and Fault Tolerance is not yet implemented. Although support for the AHA-154x High performance host adapter is included in DISK01.SYS, the SCSI support routines are in no way related to the single tasking state machine of the standard AT controller support. The driver completely supports multitasking between multiple drives and other devices on the bus, and makes full use of the low overhead provided by the host adapters BUS MASTER DMA and Intelligent I/O processing. The Only testing performed on the SCSI manager so far is through the SCSI disk support in the same code module. Although additional drivers should be able to ATTACH to this version of code, this has not been tested. In addition, the ABORT function of the SCSI Programming interface is not yet implemented. SCSI01.SYS does not support the AHA-1640 Microchannel adapter at this time. To use SCSI01.SYS simply rename it to DISK01.SYS and copy it to an OS/2 1.1 install diskette.