Emulex LightPulse 6/7/8/9000 PCI Fibre Channel Host Adapter Information Emulex Corporation Release v2.13a4 June 27, 2002 The contents of this kit are listed below. This kit contains release notes and necessary files to install the Fibre Channel Multi-protocol Port Driver in a Windows NT Version 4.0 system. This release includes the following files: README.TXT This file emulex.sli A tag file elxscsi.inf The setup file used by the SCSI Adapter install program oemsetup.inf The setup file used by the Network Adapter install program txtsetup.oem The setup file used when installing Windows NT elxsli2.sys The driver for Intel platforms elxcfg.exe The configuration utility for Intel platforms elxnet.sys The network driver elxcfg.lnk The start menu link to the configuration program txtsetup.oem the data file for bootable driver installation emulexhbaapi.dll Library supporting common HBA applications habapi.dll Wrapper for emulexhbaapi.dll elxsli2.cat Included only with the digitally signed driver INSTALLATION INSTRUCTIONS: This kit requires Windows NT version 4.0 or higher. Service Pack 3 or greater is recommended. To install the Emulex HBA SCSI port driver on an installed NT 4.0 system: 1. Select "Start Menu" 2. Select "Settings" Program Group 3. Select "Control Panel" Program Group 4. Select "SCSI Adapters" Icon 5. Select "Drivers" Tab 6. Select "Add" Button 7. Select "Have Disk" Button 8. Insert Emulex HBA NT SCSI software diskette 9. Enter path to the NT driver (a:\) and select "OK" 10. Choose the appropriate option and select "OK" 11. If installing the network portion, do not Reboot system, if not installing the network portion, skip to step 22 12. Right click on the Network Neighborhood icon and select properties 13. Select "Adapters" 14. Select "Add" 15. Select "Have Disk" 16. Enter path to the NT driver (a:\) and select "OK" 17. Choose the appropriate option and select "OK" 18. Close the Network properties dialog 19. When prompted, enter the appropriate network settings 20. Reboot Windows NT 21. Using the Emulex Configuration utility, enable Networking on each adapter to support networking 22. Reboot Windows NT After installing the Emulex HBA SCSI port driver, Fibre Channel SCSI disk devices will be automatically detected by Windows 2000 if the Automap SCSI Devices option was selected. If the Automap SCSI devices option was not selected, launch elxcfg.exe and map the devices as instructed below. A shortcut to the Emulex Configuration Tool is located on the Start Menu under Programs. Installation Options NOTE: The installation options, when installing or updating a driver, will apply for every adapter in the system. If there are multiple adapters in the system requiring separate options, it is IMPERATIVE to install each one with the same installation option and then modify as needed using the Configuration Tool. After modification with the Configuration Tool, the system will require a reboot. Below are the list of options presented during an installation or upgrade. ******* WARNING ******** If updating the SCSI portion of the driver and the network portion of the driver is installed, it is recommended to remove the network portion of the driver before beginning the updating procedure. LP-X000 (Default Settings) This option will only copy the driver files, it will not make any changes to the registry. This setting should be used for any adapters added to a system that already is using the Emulex Multi-Protocol driver. Loop, Automap SCSI Devices This is the basic loop and disk drive(s) configuration. No fabric, and automatically discover disk drives when booted. Loop, No Automap of SCSI Devices This is for loop when other systems already reside on the loop. Selected this will keep NT from trying to grab all of the devices on the loop. SCSI devices will have to be mapped with the Emulex Configuration Tool before use. Fabric, Automap SCSI Devices This is the basic Fabric and disk drive(s) configuration. The connection to the fabric is assumed to be point to point. SCSI Devices will be automatically mapped when discovered. Fabric, No Automap of SCSI Devices Fabric, but don't automatically map SCSI devices when discovered. Public Loop, Automap SCSI Devices This is for a connection to a Fabric through an FL-Port. Automatically map SCSI devices when discovered. Public Loop, No Automap of SCSI Devices This is for a public loop connection, but do not automatically map SCSI devices when discovered. NOTE: The installation options will apply for every adapter in the system. If there are multiple adapters in the system requiring separate parameters, then it will be necessary to modify the parameters with the configuration utility and then reboot. The Compaq PCI Hot Plug interface is automatically configured when the driver is installed. To remove the Compaq PCI Hot Plug interface, set the EnableHotPlug registry option to 0 as described below. Registry Options The options for the device may be set in the SERVICES section of the registry under the elxsli2 key. Options set under the elxsli2 key are global, meaning they apply as the default for each adapter installed. The options listed as installation options are the only globally supported options. The associated value names for each of the options are listed below: AllowAck0 If 1, and the device supports class 2, allow the use of ACK_0 for sequence acknowledgment. If 0, do not allow ACK_0. Default value: 0 Type: REG_DWORD ALTOV Value in milliseconds to be used for the Arbitrated Loop Timeout Value. Default value: 15 Type: REG_DWORD ARBTOV Value in milliseconds to be used for the Arbitration Timeout Value. Default value: 1000 Type: REG_DWORD AttemptReEstablish If 0, when a target disappears and then "quietly" reappears, it will not be detected. A target has quietly reappeared when no LIP occurs for a device on a loop or no RSCN is issued for a device on a switch. If 1, after a device disappears, the driver will poll the Fibre Channel address of the device periodically to see if it has reappeared. Default value: 0 Type: REG_DWORD AutoMap Value 1 or 0, corresponding to the checked or not checked state of the Automatically map SCSI devices check box. Default value: 1 Type: REG_DWORD BrokenRscn If 0, the RSCN payload is used to determine whether devices have been added or removed from the system. If 1, the RSCN payload is ignored and the Name Server is queried for the new information. Default value: 0 Type: REG_DWORD DriverTraceMask Bit mask of available trace options. Trace data is written into the system event log and if the debugger is connected, to the debugger window. Default value: 0 Type: REG_DWORD Following is a list of trace types and the mask values. It is possible to bitwise OR two or more trace types. Trace Type Mask Value SLI_TRACE_MAILBOX 0x00000001 SLI_TRACE_SCSI_ERR 0x00000002 SLI_TRACE_IOTAGS 0x00000004 SLI_TRACE_IOCB 0x00000008 SLI_TRACE_FABRIC 0x00000010 SLI_TRACE_SCSI_MAPPING 0x00000020 SLI_TRACE_INIT 0x00000040 SLI_TRACE_IOCTL 0x00000080 SLI_TRACE_SCSI_RESET 0x00000100 SLI_TRACE_LOGIN 0x00000200 SLI_TRACE_NET_XMIT 0x00000400 SLI_TRACE_NET_RECV 0x00000800 SLI_TRACE_WAIT_READY 0x00001000 SLI_TRACE_RECV_ELS 0x00002000 SLI_TRACE_DOWNLOAD 0x00004000 SLI_TRACE_PRLI 0x00008000 SLI_TRACE_REPORT_LUNS 0x00010000 SLI_TRACE_ENTRIES 0x00020000 SLI_TRACE_ELS_ERRORS 0x00040000 SLI_TRACE_PNP 0x00080000 SLI_TRACE_POWER 0x00100000 SLI_TRACE_SCSI_EXC 0x00200000 SLI_TRACE_UNSUPPORTED 0x00400000 SLI_TRACE_LOGO 0x00800000 SLI_TRACE_FARP 0x01000000 SLI_TRACE_PASS_THROUGH 0x02000000 SLI_TRACE_RNID 0x04000000 SLI_TRACE_NSAPI 0x08000000 EDTOV Value in milliseconds to be used for the Error Detect Timeout Value. Default value: 1000 Type: REG_DWORD EnableHotPlug If 0, the Compaq Hot Plug PCI interface is not created by the driver. If 1, the Compaq Hot Plug PCI interface is exported by the driver. Default value: 1 Type: REG_DWORD FcTape This value enables the FCP-2 sequence level error recovery. If FcTape is set to 1, then the firmware is enabled to perform FCP-2 recovery if the target is capable and requests recovery. If FcTape is set to 0, then the firmware will not perform FCP-2 recovery. In order to maximize the value of setting FcTape to 1, ForcePlogi should be set to 0. Default value: 1 Type: REG_DWORD ForcePlogi If this value is non-zero, then the driver will cause implicit logouts with all devices on a link failure and will rediscover using PLOGI. If this value is zero, then the driver will not cause implicit logouts and will rediscover using PDISC where applicable. Default value: 1 Type REG_DWORD HgpOffset This value is the offset into SLIM to locate the Host Get and Put pointers. If the value is 0, the Host Get and Put pointers are located in system memory. The range of this value should be between 0xc00 and 0xe00, although any value below 0xff0 is accepted. If the value is below about 0x180, the Host Get and Put pointers may interfere with some mailbox commands. Default value: 0 Type: REG_DWORD InitLinkFlags The InitLinkFlags is divided into several fields. Bits 1 to 3 are the initialization type. If bits 1 to 3 are 000, the link will be initialized as Arbitrated Loop. If bits 1 to 3 are 001, the link will be initialized as Point to Point. The presence of a fabric is automatically detected in either case. Bit 23, if set, indicates the adapter should attempt the other topology type if the first selection fails to initialize. This option is only available with firmware that supports this option. Bits 24 to 31 are the encoded speed value. If bits 24-31 are 0x00, the link speed is discovered automatically. If bits 24-31 are 0x01, the link speed is forced to 1 Gigabit per second. If bits 24-31 are 0x02, the link speed is forced to 2 Gigabits per second. This option is only available with adapters that support more than one link speed. Default value: 0 Type: REG_DWORD InterruptCoalesce The InterruptCoalesce value is a combination of fields. The first field is bits 0 to 7, which is the number of I/Os that should complete before an interrupt occurs. Bits 8 to 14 are the number of milliseconds that will expire before an interrupt will be generated if some I/Os complete, but less than the number of I/Os specified in bits 0 to 7. This option is only meaningful with firmware version 3.0 or later. Default value: 0 Type: REG_DWORD IosPerInterrupt This is the maximum number of I/Os the driver will complete in a single interrupt. This value may be modified to achieve an overall system fairness. Default value: 128 Type: REG_DWORD LinkDownTimer LinkDownTimer is the number of seconds the driver will wait after detecting a link down condition before I/O will be returned with an error. If the link is restored before the LinkDownTimer expires, the I/O will continue with no error indication. Default value: 30 seconds Type: REG_DWORD MapLuns If 0, the driver will operate as before, each LUN will be addressed without any address translation. If the value is 1, LUN mapping is enabled, and each NT LUN number will be translated to a 64 bit Fibre Channel LUN number. For new LUNs, this mapping will be done automatically by the driver. If the report LUNs command is supported by the target, the first 256 LUNs reported may be used by NT. If the value is 2, LUN mapping is enabled, but the driver will not automatically map LUNs. Default value: 0 Type: REG_DWORD MaximumLun The Maximum Number of LUNs to probe for during device discovery. Default value: 32 Type: REG_DWORD MaximumQueueDepth The maximum number of SCSI commands that may be issued to a single LUN before one of the commands must complete. Default value: 8 Type: REG_DWORD MultipleScsiClaims If 1, report each SCSI device for every port by which it is connected. If 0, report the SCSI device only on the first port by which it is connected. Default value: 0 Type: REG_DWORD Network This value is comprised of two single bit bit fields and one 16 bit integer. Bit 31 is the Network enable for the port. If Network Enable bit is set, then the network driver can bind to this port. If the Network Enable bit is not set, then the network driver will not be able to bind to this port. Bit 30 is the Class of Service bit. If the Class of Service bit is set, network traffic will use Class 2. If the Class of Service bit is not set, network traffic will use Class 3. Bits 15 - 0 are the MTU to use for this network connection. Default value: 1514 (Network Disabled, Class 3, MTU = 1514 bytes) Type: REG_DWORD NodeId The NodeId is a 32 bit quantity that is used with a fixed 32 bit value to create a World Wide Node name for the entire system. The created World Wide Node name has the value of 0x50000c90xxxxxxxx, where xxxxxxxx is the 32 bit value contained by the NodeId value. It is up to the assignor of NodeId to ensure the uniqueness on a single Fibre channel fabric. If the value is 0, or the value is not present in the registry, the Node World Wide name is derived from NVRAM on the adapter. Default value: 0 Type: REG_DWORD NsQueryAll If 1, request all N-Ports connected to the Fabric from the name server. If 0, request only registered SCSI FCP devices. Default value: 1 Type: REG_DWORD QuickFail QuickFail is useful in redundant path setups. When QuickFail is nonzero, then I/O is returned with an error as soon as the WaitReadyTimeVal expires the first time. Also, if a node is not present in the Name Server response after an RSCN, the node is immediately marked off-line and I/O is returned. If set to 0, the driver will send a PLOGI after the initial WaitReadyTimeVal expiration and wait one additional WaitReadyTimeVal before returning I/O with an error. Default value: 0 Type: REG_DWORD RATOV Value in seconds to be used for the Resource Allocation Timeout Value. Default value: 2 Type: REG_DWORD RegisterForStateChange If 1, the driver will register for RSCN state change notifications if a fabric is present. If 0, the driver will not register for the RSCN state change notifications. Default value: 1 Type: REG_DWORD RetryAttempts The number of times the driver will retry a command completing with a retryable status before returning the status to the caller. Default value: 64 Type: REG_DWORD RetryPlogiOpenFailures If non-zero, the driver will retry PLOGIs that fail with an open failure up to 3 times. If zero, the driver will assume a PLOGI that fails with an open failure is an indication no device is present. This only has meaning for private loop and local loop devices. Default value: 0 Type: REG_DWORD RetryTimer The time in milliseconds the driver will wait before retrying a command. Default value: 200 Type: REG_DWORD RetryUnitAttention If 1, the driver will retry commands that complete with Unit Attention status. If 0, the driver will complete the command with appropriate status. Default value: 0 Type: REG_DWORD ScanDeviceIdOrder If 0, then the local loop is scanned from ALPA 0x01 to ALPA 0xEF. If 1, then the local loop is scanned from 0xEF to 0. Also, if 1, the NT ID for automapped SCSI devices is the same as the device's Device ID. Default value: 1 Type: REG_DWORD ShowUnknowns If 0, only LUNs with a Peripheral Qualifier of 0 will be reported in the Inquiry buffer. If 1, then LUNs with a Peripheral Qualifier of 0 or 1 will be reported in the Inquiry buffer. Default value: 0 Type: REG_DWORD TranslateQueueFull If 1, the driver will translate SCSI Queue Full status to SCSI Busy status to work around a behavior of the disk class driver. If 0, then the driver will not translate the status. Default value: 0 Type: REG_DWORD TapeResetMask If 0, the driver will not send Target Reset command to tape drives and media changers in response to our driver receiving a SCSI Bus Reset command. If 1, Target Reset command will be sent. Default value: 0 Type: REG_DWORD UseReportLuns If 1, the driver will use the SCSI Report LUNs command to determine the presence of LUNs on SCSI devices. If 0, the driver will poll up to the number of LUNs configured with the MaximumLun configuration option. Default value: 0 Type: REG_DWORD UseResetForRetry If 0, the driver will retry commands internally. If 1, then the driver will retry commands by completing them with a status of SRB_STATUS_BUS_RESET. Default value: 0 Type: REG_DWORD UseTargetReset If 1, use the task management function target reset to emulate a SCSI bus reset. If 0, use TPRLO. Default value: 1 Type: REG_DWORD UniqueNodeWwns If non-zero, the driver will use the Node World Wide name stored in the NVRAM of each adapter. If zero, the driver will use the Node World Wide name of the first adapter found for the Node World Wide name of all adapters. If NodeId is non-zero, this value has no meaning. Default value: 1 Type: REG_DWORD WaitReadyTimeVal The time in seconds the driver will wait for a device to become available before commands to the device are returned with SCSI selection timeout errors. If the value is -1, then the timer value used is 2 * R_A_TOV. If the timer value is 0, then the driver will wait forever for the target to become available. Default value: -1 Type: REG_DWORD Below the elxsli2 key are keys for each adapter installed in the system. Currently, the keys are the electrical PCI bus number and slot number of the adapter. Note that the electrical slot number may not match the mechanical slot number. Each of the global values may be overridden by using the same value name under the per adapter key. Also, the following values are available under the adapter key: DidPollList A list of DWORDs representing a list of 3 byte fibre channel addresses to be checked during polling. Using the binary editor in the registry editor, these DWORDs must be entered in Little-Endian mode, i.e.. address 11 22 33 must be entered as 33 22 11 00. Default value: <empty> Type: REG_BINARY ffTraceMask Value 0 - 0xffffffff. This sets the trace mask on the FireFly. If the PCI Print option is selected, then the resulting messages will be printed using KdPrint from inside the driver. Default value: 0 Type: REG_DWORD NameServerDelay Value 0-0xffffffff. This is the number of milliseconds the driver will wait before sending a name server request. This delay takes effect after a link failure/FLOGI, or the receipt of an RSCN. Default value: 0 Type: REG_DWORD QuickFail Value 0 or 1. If QuickFail is 1, the wait ready timer will only have to expire once before I/Os are returned to the upper levels. Also, when QuickFail is 1, any devices not present in the name server data obtained after an RSCN will be immediately marked as failed. This causes fail-over to occur more quickly. If QuickFail is 1 and the adapter is connected to a multi-switch fabric, the NameServerDelay value, see above, should be set to at least 800 milliseconds. ScsiMap A key that contains the map of World Wide Port names to SCSI IDs. Each value under this key binds one World Wide Port name to a single SCSI ID. Each value uses the 16 digit hex representation of the World Wide Port name as the value name. The value is the SCSI ID to which the World Wide Port name is mapped. Each value is of type REG_DWORD. Also contained in ScsiMap is the LUN mapping if LUN mapping is enabled. The value name for each LUN map is created from the World Wide Port name of the device. The value name is LunMappingXXXXXXXXXXXXXXXX, where XXXXXXXXXXXXXXXX is the 16 digit hex World Wide Port name of the target. The LunMapping value is of type REG_BINARY and is an array of SCSI LUN Mapping structures. The structure is defined as follows: typedef sliLunMap { LARGE_INTEGER FibreChannelLUN; ULONG NtLUN: 8; ULONG Disabled: 1; ULONG Present: 1; ULONG Pad: 22; } SLI_LUN_MAP, *PSLI_LUN_MAP; Configuration Utility The configuration utility is contained in elxcfg.exe. To execute the utility, use the browse function of the run command selection from the start menu. Find the file elxcfg.exe. Select run command. Available Adapters The configuration utility will probe the registry for configured adapters. If the adapter is configured, it will be listed in the Available Adapters list box. If the adapter is also present in the system, the type of adapter and the firmware revision will appear in the listing of the adapter. All of the other options will be inactive until an adapter is selected. To select an adapter, click on the appropriate entry in the Available Adapters list box. This will activate all of the options, as well as set the values to the current configuration of the adapter. Dialog Menu The menu bar at the top of the dialog, under the title bar, has the submenus for File, Configuration, Tuning, and Tools. The File submenu allows the user to apply changes, delete the settings for a removed adapter, or exit the program. The Configuration submenu allows the user to select a number of default configurations. The Tuning submenu allows the user to manipulate settings that change the way the adapter behaves. And, the Tools submenu are some tools that are available to the user for debugging, downloading firmware to the adapter, etc. File Menu Apply This option is used to apply any changes that have been made to the current adapters configuration or SCSI mappings. Remove This option is only available for an adapter that is not currently present in the system. This option will remove the adapter configuration and SCSI mappings for the selected adapter. All of the configuration information will be completely removed. It will not be possible to restore this information. Exit This option will exit the program. If the configuration or SCSI mappings for the current adapter have been changed, a dialog will appear asking if the user would like to apply the current changes, or continue, which will cause the changes to be discarded. Configuration Menu Set This option will bring up a list of default configurations that are equivalent to the options available when the driver is installed. If the current configuration of the current adapter matches one of the options, the option will be already selected. If the current configuration does not match any of available preset configurations, none of the configurations will be selected. The user can select one of the default configurations and the when the OK button is pressed, the current adapters configuration will be modified to match the selected configuration. In most cases, a reboot will be required to cause the adapter to start using the new configuration. Tuning Menu Performance Selecting the Performance option will bring up the Performance Parameters dialog. In the Performance Parameters dialog, the user may select values for the Maximum Interrupt Latency, the Minimum and Maximum I/Os handled per interrupt, and whether Host Get and Put pointers are in SLIM or system memory. The Max Interrupt Latency, Min I/O Completions per Interrupt, and Max I/O Completions per Interrupt work together to tune the system performance. An interrupt is generated by the adapter when: at least one command has completed and the timer controlling the interrupt latency expires, the number of commands completed equals the Min I/O Completions per Interrupt, or the Max I/O Completions per Interrupt was reached on the previous interrupt and there are still completed commands waiting to be processed. These options are only available with adapter firmware version 3.00 and later. Host Pointers in SLIM, if checked, cause the driver to initialize the host written queue pointers to be located in memory on the adapter. This has the benefit that the adapter does not need to access system memory to read the pointers. Link Control Selecting the Link Control option will bring up the Link Control Parameters dialog box. Select one of Arbitrated Loop or Point to Point for the topology. If the Automatic Topology Detection flags is checked, the adapter will first attempt the selected topology type. If initialization fails, the adapter will try the other topology. This option is only available if it is supported by the adapter firmware. The Link Speed box is used to select the link speed. The default choice is AUTO. This option is only available if the adapter supports multiple link speeds. Timers The Wait Ready Timer is used to return commands to unavailable devices. When a command is received for a device that is not currently present, the driver will wait for the Wait Ready Timer length for the device to become available. If it does not become available in the time period, then the driver will return the command and all subsequent commands for the device with SCSI selection timeout errors. If the timer values is set to -1, then the driver will use 2 * R_A_TOV as the timer value. If the timer is set to 0, then the driver will wait indefinitely for devices to become available. The Retry Timer and Retries boxes allow the user to configure the retry behavior of the driver. The Retry Timer is the number in milliseconds the driver will wait before retrying a command. The retries box is the number of times the driver will retry a command completing with a retryable error before returning the command to the caller with an error status. The next set of controls allow the modification of some of the Fibre Channel timers controlled by the adapter. Tools Menu Download Firmware Selecting the Download Firmware option will allow the download of adapter firmware. When this option is selected, a file open browser dialog is created. Find the appropriate firmware image file and select open. The firmware will be verified, downloaded, and the adapter restarted. When the firmware download is complete, click the OK button in the status dialog. If the selected adapter is not present, this option will be inactive and unavailable. Dump Memory Selecting the Dump Memory option will launch the Adapter Memory Dump dialog. To display adapter memory, enter the desired starting address in the Memory Offset edit box, and the length in bytes of the memory to dump in the Count edit box. Then click on the Reload button. The memory contents will be displayed in the memory dump window. To close the window, click on the Done button. If the selected adapter is not present, this option will be inactive and unavailable. Reset SCSI Bus Selecting the Reset Bus button option will cause a SCSI bus reset to be emulated by the selected adapter. If the selected adapter is not present, this option will be inactive and unavailable. Networking Selecting the Networking option will bring up the Network Parameters dialog. The Network Parameters dialog has a Network Enable check box used to enable or disable networking on the particular adapter. The class of service is selected by use of the Class 2 and Class 3 radio buttons. Only one of the two Class of Service buttons may be selected. If a device does not handle Class 2, indicated in the PLOGI, the adapter will use Class 3. The MTU is selected by entering the appropriate value in decimal in the MTU edit box. Clicking the OK button will update the current adapter configuration with the changes made in the Network Parameters dialog. Clicking the Cancel button will ignore any changes made in the Network Parameters dialog. Adapter Controls Under Adapter Controls, the first set of controls are used for general configuration of the adapter. Automatically Map SCSI Devices, if checked, tells the driver to automatically map new SCSI devices as they are discovered. If the devices have already been mapped, either by discovery or manually, this check box has no effect. Query name server for all N-Ports, if checked, tells the driver to ask the name server for all connected N-Ports. If the box is not checked, the driver will ask for all registered SCSI FCP devices. Allow Multiple paths to SCSI Targets, if checked, causes mapped SCSI devices to be reported on each port by which it is connected. If not checked, mapped SCSI devices are reported only on the first port by which it is connected. If the Register for State Change box is checked and a fabric is present, the driver will register with the fabric to receive Registered State Change Notification (RSCN) ELS requests from the fabric. If the box is not checked, the driver will not register with the fabric, even if it is present. If the Use Report LUNs for SCSI-3 Devices box is checked and a target indicates that it is SCSI-3, the driver will use the report LUNs SCSI command to determine the LUNs that are present. If the target is not SCSI-3 or this box is not checked, the LUNs are polled starting at 0 and incrementing until the maximum LUN value is reached. If the Use Name Server after RSCN is checked, the driver will ignore the payload of the RSCN and query the name server for the latest list of devices. If the box is not checked, the driver relies on the data in the RSCN payload to update the view of the fabric. If the LUN Mapping box is checked, all LUNs behind all targets are mapped. Since Fibre Channel targets support a LUN number 64 bits long and the port driver under NT only supports 8 bits, some sort of mapping is required. If the LUN Mapping box is checked, unmapped LUNs are not accessible by NT. If the LUN Mapping box is not checked, there is a one to one correspondence of Fibre Channel LUNs to NT LUNs. In the case where LUN Mapping is not used, the Fibre Channel LUN is created as follows: 00xx00000000 where the xx is the NT LUN number. If the Automatic LUN Mapping box is checked, LUNs are automatically mapped by the driver as they are discovered. Note that this may cause LUN numbers to "change". For example, the LUN indicated by the SCSI Applet on the control panel may be different from the actual LUN number on the device. The mapping can be viewed by clicking on the LUN Mapping button described below. The Enable Class 2 for SCSI Devices check box, if checked and the target device indicates Class 2 capability in the PLOGI Accept, the driver will use Class 2 for communicating with the device. If the check box is clear, the driver will use Class 3 for communicating will all SCSI devices. Use PLOGI instead of PDISC after LIP, if checked, causes the driver to use PLOGI for device discovery. If not checked, the driver will use PDISC. The Scan in Device ID Order option, if not checked, causes the driver to scan the local loop from ALPA 0x01 to ALPA 0xEF. If the option is checked, the driver will scan the local loop from ALPA 0xEF to 0x01. Also, if the option is checked, the driver will use the device's Device ID for its NT SCSI ID if the SCSI Automap feature is used. The Report Unknown SCSI Devices, if checked, causes the driver to make available to upper level drivers all devices that have a Peripheral Qualifier value of 0 or 1. If not checked, only devices with a Peripheral Qualifier of 0 will be made available to upper level drivers. Please see the SCSI 3 SPC document for more detail on the Peripheral Qualifier value. The Look For Disappearing Devices option, if checked, causes the driver to try and find devices that have silently disappeared. An example might be a smart hub has put a port on bypass without generating a LIP. If the device encounters an error which causes it to be removed from the available devices list in the driver and then the hub removes the bypass, then the device will be rediscovered only with this option being checked. If the option is not checked, a device will only 'reappear' if a LIP, a link failure and restoration, or an RSCN is received. The Translate Queue Full to Busy option allows the translation of SCSI Queue Full status to SCSI Busy status. This is a work around for a behavior of the disk class driver. If the box is checked, the translation is enabled. If the box is not checked, the translation is disabled. The Use Bus Reset for Retries, if checked, enables a mode where the driver does not retry commands internally. Instead commands to be retried are returned to the caller with SRB_STATUS_BUS_RESET status. This will normally result in a command retry. The Retry Unit Attention box, if checked enables the port driver to retry Unit Attention errors. The Retry PLOGI Open Errors is a work around for some loops with targets that do not respond to OPN(x,y) soon after loop initialization is complete. If the option is checked, the driver will retry PLOGIs that fail with an open failure error, the device did not respond to OPN(x,y). The Enable FCP-2 Error Recovery option, when checked, will allow the use of the FCP-2 exchange error recovery protocol with SCSI targets that support the protocol. For this option to be most effective, the Use PLOGI instead of PDISC after LIP option should be unchecked. Maximum Number of LUNs is the number of LUNs the driver will poll for during device discovery. The minimum value is 1, the maximum value is 255. Maximum Queue Depth is the number of outstanding commands to a single LUN. The Static Poll Destination Address list is a list of 24 bit Fibre Channel addresses that will be polled for devices when the adapter boots. To add an entry, enter the 6 hex digits of the Fibre Channel address in the Address Edit box. Then click the Add Address button. To delete an address from the list, select the address in the list box by clicking on it and then clock on the Delete Address button. SCSI Targets The SCSI Targets list box shows the current SCSI ID to Fibre Channel World Wide Port name assignments. To add a new mapping, click on the Add Mapping button. This will bring up a SCSI device selection dialog. If the adapter is present, a list box with the currently available and unmapped Fibre Channel devices will appear. Select the appropriate device and click the OK button. This will bring up the SCSI ID selection dialog. This dialog has a list box that contains all of the available SCSI IDs. Select the appropriate SCSI ID from the list box and click on the OK button. To modify an existing mapping entry, select the entry by clicking on it and click the Modify button. This will raise the SCSI ID selection dialog. Follow the above directions to complete the modification. To delete an existing mapping entry, select the entry by clicking on it and click the Delete Mapping button. To access the LUN mapping for a target, select the Target in the Targets list box and press the LUN Mapping button. The LUN Mapping button will only be enabled if the LUN Mapping check box is checked for the adapter. Clicking on the LUN Mapping button will bring up the LUN Mapping dialog for the selected target. The LUN Mapping dialog will show the SCSI ID being used by the target and the Port World Wide Name of the target. The current LUN map will be displayed in the large box. If LUN Mapping is disabled for this target, instead of displaying a list of mapped LUNs, the message "LUN Map Disabled" is displayed. To Disable LUN Mapping for a single target, select the "Disable LUN Mapping" button from the LUN Mapping dialog for the target. This target will behave as if LUN mapping was not enabled for the target. To enable LUN Mapping on a target that has LUN Mapping disabled, select Enable LUN Mapping from the LUN Mapping dialog for the target. The Add, Modify, and Delete buttons in the LUN Mapping dialog are disabled when LUN Mapping is disabled for a target. To add a LUN mapping, click on the Add button. This will bring up the MAP LUN dialog. In the MAP LUN dialog, the unmapped and available Fibre Channel LUNs for the target will be displayed in a list box. The Fibre Channel LUN must be selected from this list. The NT LUN may be selected from the drop down list box. The first available LUN number will be selected as the default. When done, press the OK button. To exit without making any changes, press the Cancel button. To delete a LUN mapping, select the mapping to delete and press the Delete button. This will delete the mapping, however, if the Automatic LUN Mapping check box is checked, the LUN will be mapped again next time Disk Administrator is started. To change the NT LUN portion of a mapped LUN, select the mapping to be modified and click on the Modify button. This will bring up the MAP LUN dialog, but only the NT LUN drop down list box will be enabled. Change the NT LUN and press the OK button. To quit without making a change, press the Cancel button. Multi-protocol Port Driver Event Log: The Port Driver logs all events/errors in the event log. Serious errors will always be logged, while all other informational events will only be logged if the registry parameter "DriverTraceMask" is set with the appropriate flag. There are 2 types of event logging mechanism(Trace and Event ID messages) available in this driver. Trace message is mainly used for debugging whereas Event ID message is an informational notification. Trace message will only show up in event log if the appropriate "DriverTraceMask" is set. Most Event ID messages does not required "DriverTraceMask" setting except for a few of them listed(**)(***) in the Event ID description table. Below is a list of message type available for the "DriverTraceMask" flag. Each event is generated with a brief description of the status, which may include multiple values. The explanation for each message type is commented below. The default "DriverTraceMask" flag is set to 0. With the default setting, only messages of significant importance will be displayed. These messages include: memory problems, creating device errors, login/ logout warnings, failed tasks, etc... To set the appropriate DriverTraceMask flag, select the message type(s) from the table below. For example: To capture all the PNP messages, the following may be of interest: SLI_TRACE_PNP 0x00080000 SLI_TRACE_POWER 0x00100000 ---------- Hex addition 0x00180000 The DriverTraceMask in the registry will look something like this, where the X in BusXSlotX will be replaced by number: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\elxsli2\BusXSlotX] "DriverTraceMask"=dword:00180000 Message Type Masking ---------------------------------- SLI_TRACE_MAILBOX 0x00000001 - Internal Emulex trace messages for mailbox status to HBA card SLI_TRACE_SCSI_ERR 0x00000002 // W/E - All SCSI informational status. Most of the string ends with multiple values in the following order: TargetId, Lun, SrbStatus and ScsiStatus SLI_TRACE_IOTAGS 0x00000004 - Internal Emulex trace messages for I/Os. SLI_TRACE_IOCB 0x00000008 - Internal Emulex trace messages for Input/Output Control Block (IOCB). SLI_TRACE_FABRIC 0x00000010 - Trace message between the fabric and the node. Messages include login/out, Name server, etc... SLI_TRACE_SCSI_MAPPING 0x00000020 - Scsi mapping status includes Scsi Lun mapping SLI_TRACE_INIT 0x00000040 - Trace messages during startup and initialization SLI_TRACE_IOCTL 0x00000080 - Trace messages for the I/O Control(IOCTL) SLI_TRACE_SCSI_RESET 0x00000100 - Trace messages when a SCSI reset occurs SLI_TRACE_LOGIN 0x00000200 - Trace messages during a logon process SLI_TRACE_NET_XMIT 0x00000400 - Trace messages for startup and transmitting of IP protocol SLI_TRACE_NET_RECV 0x00000800 - Trace messages for receiving IP protocol SLI_TRACE_WAIT_READY 0x00001000 - Status for wait queue including timeout and resetting SLI_TRACE_RECV_ELS 0x00002000 - Internal information on Els receive status SLI_TRACE_DOWNLOAD 0x00004000 - Status and information on firmware download to HBA card SLI_TRACE_PRLI 0x00008000 - Trace messages for port login SLI_TRACE_REPORT_LUNS 0x00010000 - Status on Scsi Lun reporting SLI_TRACE_ENTRIES 0x00020000 - Information on nodes entries includes create, close, cleanup, etc... SLI_TRACE_ELS_ERRORS 0x00040000 - Internal information and status on Els command SLI_TRACE_PNP 0x00080000 - Trace messages on PNP includes BusRelations, QUERY_CAPABILITES, etc... SLI_TRACE_POWER 0x00100000 - Trace messages on system power status SLI_TRACE_SCSI_EXC 0x00200000 - Status on SRB exception with the following values in this order: TargetId, Lun, SrbStatus and ScsiStatus SLI_TRACE_UNSUPPORTED 0x00400000 - Information on unsupported IRP and PNP requests SLI_TRACE_LOGO 0x00800000 - Information on Port Logon SLI_TRACE_FARP 0x01000000 - Trace messages on FARP SLI_TRACE_PASS_THROUGH 0x02000000 - Information and status on Scsi pass through SLI_TRACE_RNID 0x04000000 - Information on sending RNID SLI_TRACE_NSAPI 0x08000000 - Information and status NSAPI Below are the descriptions for the Event IDs shown in the event log. Several event ids listed below are used for Emulex technical support and may not be meaningful to end-user. Event Event Description More Information ID Type Offset 0x10 - 0x13 --------------------------------------------------------------------------------- 01 Infor Informational message of driver status None 02 Warning Warning message of driver status None 03 Error Error message of driver status None 04 Error Could not map register space in I/O space None 05 Error Could not map register space in memory None 06 Error Could not map onboard SLIM space in memory None 07 Error Could not connect interrupt because of %x 0x10 = NTSTATUS 08 Warning Mailbox command failed None 09 Error Could not create device object because of %x 0x10 = NTSTATUS 10 Error Assembling IOCB_CONTINUE and got a new command None 11 Error Link is unstable and/or unusable None 12 Error MBATT is set, but Mailbox is owned by adapter None 13 Error Could not allocate IRP for SCSI Inquiry command None 14 Warning Device is an unsupported SCSI device type None 15 Error Could not allocate IRP for SCSI Pass Through IOCTL None 16 Error Unsupported SRB Function code: %x 0x10 = SRB_FUNCTION_xx 17 Warning SRB completed with an error, SrbStatus: %x 0x10 = SRB_STATUS_xx 18 Error Error Attention Interrupt: %x, resetting board 0x10 = Host Status(*) 19 Warning Received an FC-AL PORT BYPASS primitive None 20 Error Interrupt occured for invalid mailbox command: %x 0x10 = MailBox Cmd(*) 21 Error Mailbox Error Occurred: %x 0x10 = MailBox Status(*) 22 Error Unknown Image Header Type in Rel Download None 23 Error Reading Load List header failed None 24 Error Getting Load Entry failed None 25 Error Unknown Image Type: %x 0x10-0x13 = Rev/Ver/ID(*) 26 Infor SLI Adapter %d Mode (**) 0x10 = SLI mode 1 or 2(*) 27 Error Unknown Adapter Found: %x (**) 0x10-0x13 = JEDEC ID 28 Error Slot Resources Assignment Failed: %x 0x10 = NTSTATUS 29 Error Port registers not in I/O Space None 30 Error Port registers must be in 32 bit address space None 31 Error Memory registers must be in memory space None 32 Error Could not map memory registers None 33 Error SLIM must be in memory space None 34 Error Could not map onboard SLIM None 35 Infor Found point to point topology (**) None 36 Infor Loop topology (**) None 37 Warning PLOGI Timeout with node DID: %x (***) 0x10-0x12 = Node DID 38 Error Firmware Trap None 39 Error Link never up at boot None 40 Infor Link speed not supported. Enable auto detection None 41 Infor Link speed not available. Enable auto detection None 42 Infor Auto topology not available. Disable auto detection None 43 Error Fail allocating IRP for SCSI Request Sense command None 44 Error User SNS logon completed with no request pending None (*) Emulex Internal Status (**) Event ID 26,27 35 and 36 need SLI_TRACE_INIT mask enable (***) Event ID 37 needs SLI_TRACE_ELS_ERRORS mask enable Errata It is not expected that current NT utilities for the LP 6000 Miniport driver will work with this driver. Removal of the port driver does not remove the configuration utility. (CR#748) The system may blue screen if aspi32.sys is present. If this driver is present and a blue screen occurs, download a new aspi32.sys from the Adaptec support web site. During text-mode setup installation, the ELXCFG configuration tool is not copy to the host system. It is a known limitation in text-mode setup installation. It is recommended to update the driver after text-mode setup installation. Using the Emulex Configuration Tool to change the adapter firmware to an earlier version may cause the system to lock or devices connected via the adapter to become unavailable, requiring a reboot. Changes from driver version 2.10a7 The clussim portion of the Microsoft certification will now run correctly. (CR#3749) The driver will no longer generate an event log entry if the link speed is set to 1 GIG and the adapter is indeed capable of 1 GIG. (CR#3750) The driver can now communicate with the Brocade switch internal IP port via Fibre Channel. (CR#3751) The driver now enables Scsi FCP-2 error recovery by default. (CR#3752) The driver no longer retries SCSI commands to non-disk devices. (CR#3753) ExcludeFromSelect directives have been added to the inf files for installation. (CR#3754) The driver no longer causes the checked version of Windows 2000 and NT4.0 to assert during initialization. (CR#3755) The driver will no longer cause a BSOD when used with Computer Associates tape backup utilities. (CR#3756) The driver will no longer cause drives to spin down when the system is shutdown. (CR#3760) The driver will resume I/O in a more timely fashion after receiving a LOGO from a target device. (CR#3761) Changes from driver version 2.11a0 The driver will now operate more efficiently with more than one adapter in a system. (CR# 3871) The driver now will issue a request sense when an FCP_RSP is received with check condition status, but no sense data. (CR#3872) The driver will correctly reinitialize if moved from a public loop to a private loop. (CR#3875) The driver now reports robotic changes as a "Changer" instead of "MediumChanger". (CR#3881) The driver will now verify the adapter type for BIOS downloads. (CR#3876) Changes from driver version 2.11a1 The driver no longer has an interrupt sharing race condition that could result in a hung I/O when two or more adapters share an interrupt. (CR#3971) The driver will no longer have I/Os hang in the deferred completion queue. (CR#3971) Changes from driver version 2.11a2 The driver now handles large Common Transport requests and responses. (CR#3873) The driver now handles link failures during Common Transport requests. (CR#3873) The driver no longer forces E_D_TOV to 32 milliseconds when issuing PLOGI. (CR#4079) Numerous editorial changes were made to the readme file. (CR#4201) The driver will no longer stop initialization if it receives its own FLOGI. (CR#4272) The driver will return STATUS_BUSY for IOCTLs that require the use of the mailbox on the adapter during a F/W download. (CR#4277) The driver will now delete obsolete HBAAPI registry entries upon installation. (CR#4276) The driver now issues SCR before querying the name server during link initialization. (CR#4275) The driver will no longer log an error when the HBAAPI is used and VPD is not present in the adapter NVRAM. (CR#4274) The driver now presents the length word in RNID payloads to the application library. (CR#4280) Changes from driver version 2.12a0 The driver will no longer initiate login with devices that have been removed from a soft zone. (CR#3891) The HBAAPI call for FC Target Mapping information will no longer overflow the buffer. (CR#4343) The HBAAPI will no longer report devices that have been removed. (CR#3891) The driver will no longer cause a BSOD when a CT Passthrough IRP is aborted. (CR#4367) A surprise removal of an adapter will no longer cause a BSOD. (CR#4368) Release 2.13a0 changes from driver version GR 2.12 (2.12a1) The support for LP9802 and LP982 HBAs is added to this driver version. The Firmware version number is returned in the correct format during the HBAAPI call. (CR#3531) The driver will no longer hang while performing IP ping to the Brocade switch when other system is restarted in the same loop. (CR#3796) LP900x will no longer show up as a target in the configuration utility. (CR#3878) Under heavy IP traffic on a Windows.NET ia64 machine, the elxnet driver may stop working. (CR#4361) The event log code description is added into the Readme file. (CR#4405) The driver will now handle the RSCN type 3 according to specification. (CR#4406) The warning message in the event log "unknown XRI aborted..." is fixed. (CR#4421) The driver will not crash when CT pass-thru receiving buffer is too small. (CR#4424) The driver will no longer allow the disabling of the scan for SCSI devices (FCP Poll) if the adapter controls the boot device. (CR#4437) The driver will set queue depth to 1 and use untagged requests to a LUN if the LUN sets the Queue Enable bit in Inquiry data byte 7 to 0. (CR#4686) PNP QueryDeviceCapability to the driver will now return the UINumber. The UINumber is found in the registry database under the Emulex enum\PCI\... field. (CR#4735) The driver will now use the correct RPI when issuing a UNREG_LOGIN mailbox command in response to a LOGO sent from another node. (no CR) The driver will return an error code when receiving a SRB_FUNCTION_IO_CONTROL SRB sent to the Adapter device object when the SRB indicates an invalid device. (CR#4592) Release 2.13a1 changes from driver version 2.13a0 When the boot bios firmware version(1.60a7) is set to auto topology mode, Windows NT/2000 may crash during the installation. (CR#4411) More options are added to the Elxcfg configuration. (CR#4741) All features of the firmware download to LP982/LP9802 HBAs are fully implemented. (CR#4753) The Driver for Windows NT 4.0 is fixed to initialize the LP982/LP9802 HBAs correctly. (CR#4858) The Driver will now accept the UniqueNodeWWN value during text-mode setup. (CR#4951) A new feature is added to Disable Target Reset for Tape Devices. (CR#4953) The link-speed is decouple from some OEM auto-settings checkbox in Elxcfg. (CR#4954) The text-mode setup for Windows 2000 is defaulted to LP9000 HBA. (CR#4955) The default WaitReadyTimeValPort is set to 45 sec for some OEM setup. (CR#4956) Text-mode setup in Windows NT 4.0 does not copy ELXCFG to host system. The solution is documented in the readme file. (CR#4957) The state of a single discovered port can be determined in real-time by calling GetPortAttributeByWWN in the HBA API call. (CR#4962) Heavy CT-passthrough traffic may cause the process login to Management Server to fail. A fix is added to make it more robust. (CR#4406) Release 2.13a2 changes from driver version 2.13a1 The driver will now verify the LP98XX adapter type for firmware downloads. (CR#5042) The driver reports correct link speed in HBA API for LP952, LP9802 and LP982. (CR#5043) Digital signature will be copied during textmode setup. (CR#5044) Fix for larger file transfer using HTTP causing driver to blue screen in IA32 system. (CR#4866) Port driver will respond to ADISC (address discovery) according to specification. (CR#4964) The driver will handle text-mode setup correctly without causing installation blue screen crash. (CR#5047) Release 2.13a3 changes from driver version 2.13a2 The reply for FARP reports Port ID in reversed order. It is corrected in this release. (CR#5052) The LP982 is not correctly detected in Windows NT 4.0. A fix is added to correct this problem. (CR#5087) A fix is added for HBA API to return the correct supported link speed for LP9002. (CR#5086) Release 2.13a4 changes from driver version 2.13a3 The UniqueNodeWwns is defaulted to 1 instead of 0. The driver will use the Node World Wide name stored in the NVRAM. (CR#5215) The Port Driver is defaulted to use auto-topology during driver installation. The adapter will first attempt the selected topology type. If initialization fails, the adapter will try the other topology. (CR#5216) Changes from configuration utility version 1.40a1 The ability to select default configurations for an adapter has been added. (CR#3757) The configuration utility has had major cosmetic changes to allow incorporation of the above change. Release 1.41a1 changes from configuration utility version 1.41a0 The utility can now set a customized Maximum LUN value. (CR#3877) Release 1.41a2 changes from configuration utility version 1.41a1 The utility updates various customized parameters. (CR#3877) Release 1.41a3 changes from configuration utility version 1.41a2 The utility no longer auto-configures itself based on detected target devices. (CR#4273) Release 1.41a4 changes from configuration utility version 1.41a3 The utility has a new set of customized parameters. (CR#4741) Adapter type is not listed correctly in the GUI if the adapter is removed from the PCI slot. (CR#3879) A new option is added to Disable Target Reset for Tape Devices. (CR#4953) Release 1.41a5 changes from configuration utility version 1.41a4 The UniqueNodeWwns is defaulted to 1 instead of 0. The driver will use the Node World Wide name stored in the NVRAM. (CR#5215) On non-OEM configuration setting, the topology is defaulted to use auto-topology for all selections. (CR#5216) Changes from HBA API Library version 1.3 The OSDeviceName is now reported properly. Changes from HBA API Library version 1.4 The Library now expects the length word in the RNID payload. (CR#4280) *** NOTE ABOUT MAPPING *** Targets and LUNs may be added dynamically by running Disk Administrator after added the Target and/or LUN maps via the Emulex Configuration Utility. To delete or modify a Target or LUN Map, the system must be rebooted after making the changes in the Emulex Configuration Utility. This will correctly clean up device objects NT's class drivers have created.Download Driver Pack
After your driver has been downloaded, follow these simple steps to install it.
Expand the archive file (if the download file is in zip or rar format).
If the expanded file has an .exe extension, double click it and follow the installation instructions.
Otherwise, open Device Manager by right-clicking the Start menu and selecting Device Manager.
Find the device and model you want to update in the device list.
Double-click on it to open the Properties dialog box.
From the Properties dialog box, select the Driver tab.
Click the Update Driver button, then follow the instructions.
Very important: You must reboot your system to ensure that any driver updates have taken effect.
For more help, visit our Driver Support section for step-by-step videos on how to install drivers for every file type.