ASPI416.DOC ------------ Introduction: This document details information about ASPI416.SYS. ASPI416.SYS is a DOS ASPI Manager for the SYM53C416 series of chips from Symbios Logic, and complies with the Advanced SCSI Programming Interface (ASPI) for DOS specification. ASPI416.SYS must be loaded in the CONFIG.SYS file before any other ASPI drivers are loaded that may require the ASPI interface. For example: both CDROM.SYS and SCSIDISK.SYS require an ASPI interface, as provided by ASPI416.SYS. Hardware Requirements: ----------------------- o Intel 80386SX based system or higher o SYM53C416 SCSI Host Adapter Software Requirements: ----------------------- o DOS 5.0 or Higher Software Compatibility: ------------------------ o Microsoft Windows 3.1 or 3.11 o Microsoft Windows for Workgroups 3.11 Features: ---------- o Releases initialization code for smaller runtime size o Has smaller runtime size that DOSCAM.SYS o Supports the following SCSI controller chips: SYM53C416 o Performs synchronous negotiation (including FAST-20) o Allows Disconnect/Reselect o Supports single-threaded I/O o Does not support tagged command queuing. o Does not support SCSI Command Linking. Installation: -------------- 1. Use the COPY command to copy the appropriate driver from the SDMS SCSI Drivers disk to your boot disk. 2. Add this line to your system's CONFIG.SYS file: DEVICE=C:[PATH]ASPI416.SYS Command Line Options: ---------------------- The ASPI416.SYS device driver has several configurable settings which can be changed via switches on the command line. All references in the USAGE descriptions to "path" refer to the adapter number. All references in the USAGE descriptions to "id" refer to the SCSI device ID. The below options use the following conventions: [] items in brackets are optional * items followed by a "*" means repeat 0 or more times * * * * * IMPORTANT * * * * * * * IMPORTANT * * * * * * * IMPORTANT * * * * * * * * * No spaces are allowed in specifying any of the below command line options. * * Spaces should ONLY be used between different command line options. * * * * * * * * IMPORTANT * * * * * * * IMPORTANT * * * * * * * IMPORTANT * * * * * * Using the /ASK Option: ----------------------- Usage: /ASK This option prompts the user at system boot-up whether to load ASPI416.SYS or not. For example, if you wish to be prompted to load the driver when you boot, the line in CONFIG.SYS that loads ASPI416.SYS would look like this: DEVICE=C:[PATH]ASPI416.SYS /ASK Using the /SYNCH_RATE ( or /SR ) Option: ----------------------------------------- Usage: /SYNCH_RATE=n[,n]* (n = 0, 5, 10, or 20) This sets the maximum synchronous transfer rate (in mega transfers per second) to negotiate with a particular device. The allowable values for this setting are 0, 5, 10, and 20 mega transfers per second, if the adapter is capable of the specified speed. The 416 supports 10 mega transfers per second. To turn off synchronous transfers for a particular device, "0" should be specified. The value set by this option only defines the maximum transfer rate that will be attempted to negotiate. This means that the device must also be capable of this speed, and so we can't guarantee that the given rate will succeed. The default value is the fastest transfer rate that is supported by a particular host adapter. For example, if you want to turn off synchronous transfers to HA=0, ID=3, the line in CONFIG.SYS that loads ASPI416.SYS would look like this: DEVICE=C:[PATH]ASPI416.SYS /SYNCH_RATE=0<0:3> As another example, if you want to set synchronous transfers to 10 mega transfers per second on all devices on adapter 1, the line in CONFIG.SYS that loads ASPI416.SYS would look like this: DEVICE=C:[PATH]ASPI416.SYS /SYNCH_RATE=10<1> Using the /DISCONNECT ( or /DC ) Option: ----------------------------------------- Usage: /DISCONNECT=n[,n]* (n = ON or OFF) SCSI devices have the ability to disconnect from the bus during an I/O transfer. This option is used to allow (or not allow) a device to disconnect during an I/O. If a particular adapter has parity checking disabled, then all devices on that adapter that do not generate parity must be forced to have disconnects disabled (OFF) by using this option, since the /PARITY option will not change the disconnect states for any device on that adapter. See the /PARITY option for more information. Valid options are "ON" (allow disconnects) and "OFF" (do not allow disconnects). The default for all devices is "ON". For example, if you would like to disable disconnects on the device at HA=0, ID=2, then the line in CONFIG.SYS that loads ASPI416.SYS would look like this: DEVICE=C:[PATH]ASPI416.SYS /DISCONNECT=OFF<0:2> Using the /PARITY ( or /P ) Option: ------------------------------------ Usage: /PARITY=n[,n]* (n = ON or OFF) The SYM53C416 chip is capable of enabling or disabling the SCSI bus data integrity checking feature know as "parity". Some non-SCSI compliant devices sold as SCSI devices do not generate parity, and therefore, this option may be used to disable parity checking. The SYMC53416 chips will always generate parity (for outputs), but may optionally check the parity (for inputs). Valid options are "ON" (check parity) and "OFF" (do not check parity). The default for all devices is "ON", which enables parity checking for all devices. Note: When disabling parity checking, it is necessary to disable disconnects for any devices that do not generate parity, as the SYM53C416 chips cannot disable parity checking for that device during the reselection phase. Please refer to using the /DISCONNECT option for more information on how to disable disconnects for a device. If a device does not generate parity, and it disconnects, the I/O will never complete as the reselection will never complete. For example, if you want to turn off parity checking on host adapter number 0, the line in CONFIG.SYS that loads ASPI416.SYS would look like this: DEVICE=C:[PATH]ASPI416.SYS /PARITY=OFF<0> Using the /HOST_ID ( or /ID ) Option: -------------------------------------- Usage: /HOST_ID=n[,n]* (n = SCSI ID for specified path (adapter) ) This option enables the user to alter the SCSI ID that the host adapter will use. On an 8 bit SCSI card, SCSI ID's 0..7 are available, on a 16 bit card, SCSI ID's 0..15 are available. This option will not allow the user to select a SCSI ID that is already in use by some other device on the SCSI bus. It is recommended that SCSI ID's 8..15 not be used, because 8 bit devices may not work properly if the SCSI Host ID is greater than 7. The default SCSI Host ID is 7. For example, if you want to change the value of adapter's 1 SCSI ID to 6, and that adapter is not controlled by the Boot ROM, then you may change it to ID=6 as in the following example: DEVICE=C:[PATH]ASPI416.SYS /HOST_ID=6<1> Using the /TIMEOUT=n ( or /T=n ) Option: ----------------------------------------- Usage: /TIMEOUT=n[,n]* (n = timeout value in seconds for device, n=(0..65535), 0=infinite) ASPI416.SYS uses a timeout mechanism to detect certain errors. When ASPI416.SYS issues a command to a SCSI device, a timer is started. If the timer expires before the command completes, ASPI416.SYS assumes that something has gone wrong with the device, and takes steps to recover. The default value for this is 10 seconds, and the maximum setting for this switch is 0, which represents no timeout. For example, if you have a particularly slow device on adapter 1 (HA=1), and ID=3 that you wish to extend the timeout on this device to 60 seconds, then the line in CONFIG.SYS that loads ASPI416.SYS would look like this: DEVICE=C:[PATH]ASPI416.SYS /TIMEOUT=60<1:3> Using the /VERBOSE ( or /V ) Option: ------------------------------------- Usage: /VERBOSE This switch is used to output more detailed information than is usually shown, after the ASPI416.SYS is initialized. This is especially usefull if you have multiple SYM53C416 adapters in your system and would like to see the Device ID, the serial number for each SYM53C416 adapter found in the system. For example, if you wish to see more detailed information displayed when you boot, the line in CONFIG.SYS that loads ASPI416.SYS would look like this: DEVICE=C:[PATH]ASPI416.SYS /VERBOSE Using the /IRQ Option: ------------------------------------- Usage: /IRQ=n This switch is used to set the Irq Channel of the host adapter when the Plug and Play configuration manager is not installed. If this Irq Channel is available, the host adapter will be configured with this Irq. If the Plug and Play configuration manager is installed, you should use the ICU facility to change card settings. If you do not specify an Irq, and the Plug and Play configuration manager is not installed, the first available Irq channel will be assigned to the host adapter. Using the /NO_IRQ (or /NI) Option: ------------------------------------- Usage: /NO_IRQ (or /NI) This switch is used to specify that the host adapter card is to work without an Irq Channel. This means that no resource will be allocated on the Irq lines for this adapter card. Using the /IO Option: ------------------------------------- Usage: /IO=n This switch is used to set the Io Address of the host adapter when the Plug and Play configuration manager is not installed. If this Io Address is available, the host adapter will be configured with this value. If the Plug and Play configuration manager is installed, you should use the ICU facility to change card settings. If you do not specify an Io Address, and the Plug and Play configuration manager is not installed, the first available Io Address will be assigned to the host adapter. =============================================================================== *** For Developers/Support Use ONLY! *** *** NOT TO BE USED BY AN END USER *** Using the /DB Option: ---------------------- Usage: /DB This is DEBUG mode. This is an undocumented switch that may be used for developers and/or support engineers to provide additional debug information and/or special debug modes in the driver. The exact details of what this will do is currently unknown and may be changed at any time. Its purpose should remain the same. Using the /SYNCH_OFFSET ( or /SO ) Option: ----------------------------------------- Usage: /SYNCH_OFFSET=n[,n]* (n = 0..maximum synchronous offset for the adapter) This sets the maximum synchronous offset to negotiate with a particular device. The allowable values for this setting are 0 to the maximum synchronous offset supported by the specified path. The 53C416 controller chip support offsets up to 8. If 0 is specified for the synchronous offset value, then synchronous transfers will be turned off for the specified device(s). The value set by this option only defines the maximum offset that will be attempted to be negotiated. This means that the device must also be capable of this offset, and so we can't guarantee that the given offset will succeed. The default value is the maximum offset that is supported by a particular host adapter. For example, if you want to change the synchronous offset to 6 for HA=0, ID=3, the line in CONFIG.SYS that loads ASPI416.SYS would look like this: DEVICE=C:[PATH]ASPI416.SYS /SYNCH_OFFSET=6<0:3> *** For Developers/Support Use ONLY! *** *** NOT TO BE USED BY AN END USER *** =============================================================================== =============================================================================== *** May possibly be used in the future *** *** NOT CURRENTLY USED! *** Using the /OVERRIDE Option: ------------------------------------- Usage: /OVERRIDE This option enables the user to specify that any settings on the card that were done by a PnP BIOS or Intel's Configuration Manager are to be overridden and ignored. If command line options for setting either the Irq or I/O Address are present, these settings will be used. Otherwise, default settings (No Irq, or auto-locate I/O Address) will be used. Using the /INCLUDE ( or /I ) Option: ------------------------------------- Usage: /INCLUDE=path[,path]* This option enables the user to include support for a specified adapter. If you have support for a specified adapter excluded by the BIOS, you may change the default of excluding the specified adapter from exclude to include by using this option. For example, if you have host adapter 0 excluded in the BIOS, and you want ASPI416.SYS to add support for it, then you may include it as in the following example: DEVICE=C:[PATH]ASPI416.SYS /INCLUDE=1 Using the /EXCLUDE ( or /X ) Option: ------------------------------------- Usage: /X[,]* (a= Device ID, b= Serial Number) This option enables the user to exclude support for a specified adapter. This option has two parameters that are all required: 1.) Device ID 2.) Serial Number These parameters will identify a specific adapter that you wish to exclude, and may be obtained in the following manner: Step 1.) Boot using the "/VERBOSE" switch to find the correct parameters that correspond to the device you wish to exclude. Step 2.) Edit your config.sys and add the "/EXCLUDE" switch with the parameters that you obtained above (in Step 1). For example, if you booted with the /VERBOSE switch as in Step 1, and found that the adapter that you want to exclude had: Device ID = 3 Serial Number = 5 then, the line in CONFIG.SYS that loads ASPI416.SYS would look like this: DEVICE=C:[PATH]ASPI416.SYS /X<3:5> *** May possibly be used in the furture *** *** NOT CURRENTLY USED! *** ===============================================================================