***************************************************************************** FCWINNT.TXT ***************************************************************************** Installation Guide for the LSI Logic FC Driver: SYMMPI.SYS V1.01.00.04 This file describes the features and use of the LSI Logic FC device driver for the Windows NT 4.0 operating system environment. It is divided into the following sections: Introduction for Windows NT 4.0 Features LSI Logic Devices Supported Description Installing the Driver(s) Existing System Installation Performance Tuning Large Block Size Support Maximum Number of Concurrent I/Os Miniport Driver Configuration Options Troubleshooting ........................................................................... 1.0 Introduction for Windows NT 4.0 Windows NT is an operating system designed to run on processors using current technology. It provides a graphical user interface environment incorporating many high-level features (refer to the Microsoft Windows NT documentation for details). An I/O manager handles I/O requests in Windows NT. Class drivers for hard disk, floptical, CD-ROM, printer, and scanner peripherals are provided in Windows NT. Other class drivers, provided by peripheral manufacturers, may be added to support new devices. Tape device support is built into the operating system itself and does not require a class driver. LSI Logic and Microsoft provide a miniport driver, called SYMMPI.SYS, to complete the path to the LSI Logic controller or processor with an optional Fibre Channel BIOS. The next sections describe this driver and its installation. ............................................................................ 1.1 Features o Supports 1Gbaud Fibre Channel transfers (for LSIFC909) o Supports 2Gbaud Fibre Channel transfers (for LSIFC929 and LSIFC919) o Support LSI Logic MPT common software interface o Supports multiple host adapters o Supports multiple Logical Unit Numbers (LUNs) o Supports Scatter-Gather o Supports SCSI pass-through functionality o Supports disk array configurations with no LUN 0 o Supports disk array configurations with non-contiguous LUNs o Auto request sense o Maximum block size support: 1 MB ............................................................................ 1.2 LSI Logic Devices Supported The SYMMPI.SYS driver is named "Symbios PCI SCSI MPI MiniPort Driver" for driver installation. It supports the following devices and LSI Logic host adapters based on those devices: o LSIFC909 (LSI40909 Host Adapter) o LSIFC929 (LSI40929 Host Adapter) o LSIFC919 (LSI40919 Host Adapter) ............................................................................ 1.3 Description SYMMPI.SYS is designed to Microsoft's specification for miniport drivers. This driver allows connection of Fibre Channel devices including disk drives, CD-ROMs, and tape drives for PCI-based machines. To support a different Fibre Channel device type, the Windows NT architecture requires that a class driver for that type of device be present (usually supplied by Microsoft, or possibly by the peripheral manufacturer). No changes to SYMMPI.SYS are required. The driver is only supported under Windows NT 4.0 and later revisions. The driver does not run under earlier versions of Windows NT. SCSI commands are passed directly from a Windows application to the FCP devices by using the SCSI pass-through facility (refer to the Microsoft Windows NT 4.0 documentation for details). This facility allows applications to directly control and access devices by filling in a data structure and calling into the port or class driver. ............................................................................ 2.0 Installing the SYMMPI.SYS Driver This procedure installs the SYMMPI.SYS driver onto an existing Windows NT system. Prior to installation, ensure that the LSI Logic driver diskette is available, and that it contains the following files and directories: \txtsetup.oem \nt\symmpi.sys \nt\symmpi.tag \nt\oemsetup.inf ............................................................................ 2.1 Existing System Installation To install the Symbios PCI SCSI MPI Miniport Driver do the following: 1. Boot Windows NT 4.0 and log on as Administrator. 2. Click on the Start button. Move to Settings-->Control Panel and click. 3. Double click on SCSI Adapters. 4. Click on the Drivers tab. 5. Click Add. A list of installed adapters is displayed. 6. Click the Have Disk button. 7. When prompted, insert the LSI Logic Driver diskette. For the path to copy manufacturer's files from, enter A:\NT Select OK. 8. The Install Driver menu should have the driver name "Symbios PCI SCSI MPI MiniPort Driver" highlighted. If it is not highlighted, select it. Choose OK. At this point, the following message may occur: "The driver(s) for this SCSI Adapter are already on the system. Do you want to use the currently installed driver(s) or install new one(s)?" Selecting Current uses the driver already on the system, and selecting New uses the driver on the floppy diskette. Unless you want to use the older version already on the system, choose New. If you chose Current, go to step 10. 9. For the path to the OEM SCSI Adapter files, A:\NT should be displayed. Select Continue. Then remove the floppy diskette from the A: drive. 10.The System Settings Change message displays "You must restart your computer before the new settings take effect. Do you want to restart your computer now?" Click on the Yes button to restart and reboot NT. If you choose Cancel, remember that you must restart the computer to load the new driver. 11.If more than one LSI Logic driver needs to be installed, additional drivers can be installed one after the other without rebooting for each one. Installation order is not important. 12.Rebooting loads your new miniport driver(s). ............................................................................ 2.2 Performance Tuning for NT 4.0 Windows NT 4.0 has registry entries that can be used to tune the performance of SCSI I/O for certain configurations. The tunable parameters are large transfer block size support and a guaranteed number of concurrent I/Os for a particular SCSI bus. ............................................................................ 2.2.1 Large Block Size Support The SYMMPI.SYS drivers can support up to a 1 MB transfer size in NT 4.0; however, the default transfer size is 64K. To enable a larger transfer size, an entry must be added to the registry, using the file mpi_256K.reg. This file will set a 256K maximum, but it can be edited to set other desired maximum transfer sizes. There are two methods to add this registry setting. 1. Locate the mpi_256K.reg data file (supplied with the driver files) using Windows Explorer and double-click on the file. -OR- 2. Type at the command prompt: regedit mpi_256K.reg This inserts an entry in the registry to enable 256K block size support. Editing the mpi_256K.reg can set any maximum block size between 64K and 1 MB (-8 KB). The formula to calculate the proper value for MaximumSGList is: MaximumSGList = (Maximum Block Size)/4K +1 For 256K: 256K/4K = 64, add 1 for 65 (decimal) or 0x41(hexadecimal). The maximum value allowed for MaximumSGLIst is 255 or 0xFF. This denotes an absolute maximum transfer size of 1040384, which is 8K less than 1 MB (1040384/4K = 0xFE, add 1 for 0xFF or 255). Be sure to read the information in the mpi_256K.reg data file before editing it. The system must be rebooted for the new registry setting to be effective. To reset the maximum block size to the default of 64K, follow the instructions above, except use mpidfblk.reg as the data file. ............................................................................ 2.2.2 Maximum Number of Concurrent I/Os (Guaranteed) Windows NT 4.0 guarantees a maximum of 32 concurrent I/Os active on a particular SCSI bus. However, due to the method of memory allocation, the actual limit of concurrent I/Os can vary greatly between various drivers or versions of drivers. This can have a huge impact on performance benchmarking between different driver versions or adapter vendors. In effect, one adapter may actually be able to have 70 or 80 I/Os outstanding, while another adapter could only have 32. This can also affect systems with high performance storage subsystems, such as disk arrays. In order to have a guaranteed number of concurrent I/Os, an entry must be added to the registry, using the file mpi100io.reg. There are two methods to add this registry setting. One is to locate the mpi100io.reg data file (supplied with the driver files) using Windows Explorer and double click on the file. The other method is to type at the command prompt: regedit mpi100io.reg This inserts an entry in the registry to guarantee a maximum of 100 concurrent I/Os per adapter. If a maximum other than 100 is desired, the mpi100io.reg can be edited; however, setting this value to a high number uses increasing amounts of non-paged pool memory, a critical NT resource. High values for this setting can degrade system performance. Be sure to read the information in the mpi100io.reg data file before editing it. The system must be rebooted for the new registry setting to be effective. To reset the guaranteed number of concurrent I/Os to the default of 32, follow the instructions above, except use mpidefio.reg as the data file. ............................................................................ 2.2.3 Miniport Driver Configuration Options The SYMMPI driver is configured by default to provide optimum performance in most standard systems. Some non-standard systems may require some fine tuning to obtain peak system memory utilization and performance. After installation, if less than advertised functionality and performance is observed on any platform, please contact LSI Logic support. LSI can provide additional registry settings if required, to customize the driver for specific systems and applications. ............................................................................ 3.0 Troubleshooting The SYMMPI driver will log error messages to the system error log. For these errors, the system errorlog EventID will be 11, and the specific error code values will be displayed at offset 0x10. Data should be displayed in words. The error codes that are followed by an asterisk are extended error codes, only logged if extended error logging is enabled. The following error codes all have a value of 0x00000006 at address 0x34 in the error log details. Error Code Description .......... ......................................... 0x00000001 Could not read the PCI BARs correctly 0x00000002 Could not read the PCI IO address space correctly 0x00000003 Device would not come to the READY state 0x00000004 System did not provide non-cached memory to the driver 0x00000005 Device did not restart after a fatal error 0x00000006 Device would not transition to the Operational state. 0x00000007 Device would not transition from READY state within the SCSI Reset function 0x00000008 Device would not transition from RESET state within the SCSI Reset function 0x00000009 Device would not transition from FAILED state within the SCSI Reset function 0x0000000A Device would not transition to OPERATIONAL after running out of resources 0x0000000B Device would not transition to READY after kickstart 0x0000000C Driver wanted to reset the device but the NoBoardReset flag prevented it 0x0000000D Handshake of a IOCFacts message failed 0x0000000E* IOs were lost due to an external event 0x0000000F Handshake of PortFacts message failed 0x00000010 Handshake of IOCConfig message failed 0x00000011* IO returned because a CA condition is pending 0x00000012* IO returned for lack of Request resources 0x00000013* IO returned for lack of Request Sense Buffer resources 0x00000014* IO returned because of active reset condition 0x00000015* IO returned because of too many outstanding buffers or chain buffer resources 0x00000016* Issuing Task Management bus reset message 0x00000017* Received Task Management reply 0x00000018 PCI Peer device controls this device 0x00000019 Invalid Initiator ID set in device The following error codes all have a value of 0x00000005 at address 0x34 in the error log details. Error Code Description .......... ......................................... 0xXXXXXXXX Invalid function code detected within the reply message The following error codes all have a value of 0x00000009 at address 0x34 in the error log details. Error Code Description .......... ......................................... 0xXXXXXXXX The Log value was returned in the SCSI IO Error Reply Message The following error codes all have a value of 0x00000003 at address 0x34 in the error log details. Error Code Description .......... ......................................... 0xXXXXXXXX The Log value returned in the EventNotify Reply Message