Fibre Channel Multi-protocol Port Driver for Windows 2000/2003 on x86 platform Emulex Corporation Release v2.23a6 Oct 19, 2004 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. 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 Add Adapter program txtsetup.oem The setup file used when installing Windows NT elxnet.sys The network driver for Intel platforms elxsli2.sys The base and SCSI driver for Intel platforms elxsli2.cat Included only with the digitally signed driver elxsli2.dll The setup co-installer file for driver installation Compatibility * Emulex Fibre Channel adapters LP10000DC and LP10000 (minimum firmware version 1.80a2) * Emulex Fibre Channel adapters LP9802DC, LP9802 and LP982 (minimum firmware version 1.00a2) * Emulex Fibre Channel adapter LP101 with firmware version 1.82 or higher IP protocol is not supported in LP101. Network files may not be included in the above file list. * The LP8000, LP8000DC, LP850 HBA's with firmware version 3.03 or higher, however to support all current driver features we recommend version 3.20 * The LP9000, LP9002, LP9002DC, LP9402DC, LP952 HBA's with firmware version 3.81 or higher * The LP7000E HBA with minimum firmware version 3.21a0 * All BootBIOS versions, however we recommend 1.60 or higher. * Supports arbitrated loop, point-to-point and fabric topologies. Prerequisites: * Windows 2000/2003 running on an x86 platform * Windows 2000 Service Pack 1 (recommended when supporting 126 LUNs or more) * Installed LP7000E, LP8000, LP8000DC, LP9000, LP9002, LP9002DC, LP9402DC, LP9802, LP9802DC, LP850, LP952, LP982, LP101, LP10000DC or LP10000. INSTALLATION INSTRUCTIONS: To install the Multi-protocol Port Driver on an installed Windows 2000/2003 system: To install the Fibre Channel (SCSI) protocol stack: 1. Select "Start Menu" 2. Select "Settings" Program Group 3. Select "Control Panel" Program Group 4. Select "System" Icon 5. Select "Hardware" Tab 6. Open SCSI and Raid controllers item in list. 7. Double click on Emulex host bus adapter. 8. Select drivers tab. 9. Select Update Driver 10. Select specify location to search for drivers and indicate path to the driver kit 11. Select the appropriate driver from the list of other drivers. 12. Repeat for each adapter in the system. After installing the Emulex HBA Multi-Protocol port driver, Fibre Channel SCSI disk devices will be automatically detected by Windows 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. To install the IP (LAN) protocol stack: The Emulex Configuration Tool and the SCSI protocol stack must be installed before installing the IP protocol stack. The Emulex Configuration Tool is installed through the emlxapps installation kit. 1. Reboot the system. 2. Select "Start Menu" 3. Select "Programs" 4. Select the Emulex Configuration Tool 5. In the Emulex Configuration Tool, select a host bus adapter. 6. Press the Network button. 7. Select Enable Networking. 8. Change any other options. 9. Press OK. 10. Press Apply. 11. If enabling networking on more than 1 adapter, repeat steps 2-7. 12. The system should prompt for new hardware. If it does not, reboot the system. 13. If the system rebooted, login and the system will prompt for new hardware. 14. Select Specify location to search for drivers and indicate path to the driver distribution. 15. If the network driver does not start, use the Device Manager to disable and then re-enable the network driver. This will cause the driver to start. Installation Options NOTE: The default installation options, when installing or updating a driver, will apply for every adapter in the system. The default settings include Auto-Topology (Loop then Point-to-Point) and Auto Mapping of SCSI Devices set to enabled. To change any driver parameters after installation, install the configuration tool. 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. ******* 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. 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 BusResetForBreakRes If 1, it will issue a bus reset instead of a target reset when receiving an IOCTL_STORAGE_BREAK_RESERVATION IOCTL. The default is 0, where is will issue a target reset to a given target ID. 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 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 EnableFDMI This value enables the Fibre Device Management Interface(FDMI). If EnableFDMI is set to 1, this feature will be enable. The default value is set to 0. Default value: 0 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 InitLinkFlags The InitLinkFlags is divided into several fields. Starting from bit 0, bits 0-2 are the initialization type. If bits 0-2 are 000, the link will be initialized as Arbitrated Loop. If bits 0-2 are 010, 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: 2000 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 1, 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 0, 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: 45 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. 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. Upgrading the driver from version 2.20a2 and earlier will require a reboot. Release 2.21a0 changes from driver version 2.20a12 A fix is added for the unnecessary repetitive rescanning for devices that may cause the system to becoming unresponsive. (CR#7653) Added a feature to support real-time debug message tracing. This DriverTraceMask setting is retrieved from Elxcfg configuration tool. (CR#7557) In a Boot-from-SAN system, hibernation may cause a BSOD during restarting. A fix is in this release to prevent the BSOD. (CR#7619) Some tape devices are not correctly detected during a device rescanned. This is fix in this release. (CR#7739) When there are multiple HBAs in the same system, HBAnyware only displays Node Symbolic Name for one HBA. This is fixed in this release. (CR#7390) Port driver doesn't provide correct Node Symbolic Name for LP850. This is fixed in this release. (CR#7389) When the Port Driver is operating under low memory condition, it may BSOD. A fix is added to prevent this from occurring. (CR#7742) A fix is added to return the correct listing of dual channel HBA to the ElxCfg configuration tool. (CR#7558) Firmware download to latest version of dual-channel HBA is not working correctly. This is fixed in this release. (CR#7741) Release 2.21a1 changes from driver version 2.21a0 LP9802DC string is not displayed correctly in HBAnyware and other utility that calls the emulexhbaapi.dll. This is fixed in this release. (CR#7911) Volume Shadow Services(VSS) is now supported in this release. VSS is available in Windows XP and Windows 2003 server. (CR#7912) When incorrect version of firmware is downloaded to the HBA, some warning messages are too long and truncated. This is fixed in this release. (CR#7914) The driver version 2.21a0 does not display the correct firmware version of LP8XXX and earlier HBAs. This is fixed in this release. (CR#7860) While running heavy IO with HBAnyware, terminating the HBAnyware Service or resetting the HBA may cause BSOD. This is fixed in this release. (CR#7913) Release 2.21a2 changes from driver version 2.21a1 The Hardware Version is displayed as 0s on some HBAs. A fix is added where the Hardware Version number is now displayed correctly on all HBAs. (CR#8587) The support for IOCTL_STORAGE_BREAK_RESERVATION is added to this driver version. This IOCTL will send a target reset to the given target ID. (CR#8257) A fix is added to retry SCSI commands for non-disk devices when the returned SCSI status is either busy or queue full. (CR#8597) A fix is added to resolve a problem for device removal where the device PDO is not created when the device is reconnected. This is more reproducible with filter driver attached to the Port Driver. (CR#8588) When a device is removed from the target end during heavy I/O, it may cause the system to be unstable. A fix is added to resolved this problem. (CR#8589) During SCSI inquiry, the device type for PROCESSOR_DEVICE(0x03) was generating an event in the eventlog. This is fixed in the release. (CR#8580) Release 2.21a3 changes from driver version 2.21a2 During the device rescanning process, devices are incorrectly displayed in the Device Manager. This problem was introduced in 2.21a2 and it is fixed in this release. (CR#8622) Release 2.21a4 changes from driver version 2.21a3 The system may become unstable when a remote HBAnyware host repeatedly sending firmware download to the system. (CR#8935) A fix has been added in the HBAnyware IRP cancellation routine to meet the requirements of the HCT driver verifier test. (CR#8936) A fix is added to correct a problem with the SCSI busy and queue full retry mechanism for non-disk device. (CR#8937) When a link failure occurs during an I/O operation to a device, the system may become unstable and crashed with a "0xFFFFFFFF STOP" error. (CR#8885) An enhancement is added in the device inquiry process where device object is created only on a successful inquiry. (CR#8938) In a Boot-from-SAN system, a fix is added in the crash dump operation to working correctly with LP98xx and newer HBAs (CR#8831) The PCI sub-system IDs for Emulex OEM HBAs are added into the installation .inf and .oem files (CR#8939) An registry option is added to issue a bus reset when the IOCTL_STORAGE_BREAK_ RESERVATION is received. This option is called "BusResetForBreakRes". When this option is 1, it will issue bus reset instead of target reset on receiving this IOCTL. The default is 0. (CR#8941) The BrokenRscn registry setting is no longer a user option. It will always query the Name Server for information on any RSCN payload. (CR#8970) A fix is added in the discovery routine to prevent SCSI command from sending to the device too early. (CR#8953) Release 2.21a5 changes from driver version 2.21a4 After a PRLI to an Initiator host, it will now stay log-in until a LOGO is requested or the Initiator is no longer exists. (CR#9039) Some version of HBAs are not registering with the FDMI interface correctly. This is resolved in the release. (CR#8910) When a target device is unavailable and the host cable is disconnected, the system may become unstable if the device resources is not released immediately by the upper driver or application. A fix is added to prevent the system from becoming unstable. (CR#9029) The repetitive HBAnyware firmware download in very short interval is not fully addressed in the initial fix in previous release. A fix is added to resolve this problem. (CR#8935) Release 2.21a6 changes from driver version 2.21a5 Port Driver may not detect device that does not support Report LUN. A fix is added to resolve this problem. (CR#9154) When an IOCTL_STORAGE_BREAK_RESERVATION is issued to a device that is just removed and it has not completed the PNP removal process yet, the driver may not return the IOCTL IRP timingly. (CR#9153) Release 2.21a7 changes from driver version 2.21a5 A fix has been added to release a memory structure during driver unloading. This is required to meet the requirements of the HCT driver verifier test. (CR#9205) Release 2.21a8 changes from driver version 2.21a6 A fix has been added to release a memory structure during driver unloading. This is required to meet the requirements of the HCT driver verifier test. (CR#9263) A crash may occur during heavy load of multi-thread SCSI pass-through IOCTL calls. A fix is added to resolve this problem. (CR#9265) When a LOGO is received from a target while the driver is still doing a SCSI inquiry, the driver may hang. A fix is added to resolve this problem. (CR#9268) Release 2.22a0 changes from driver version 2.21a8 A fix is added in this release to resolve a system crash during a specific sequence of events during the target reconfiguration process. (CR#9893) A feature to detect hardware failure is added in this release. When the failure occurs, this feature will return all the active I/Os and will try several attempts to reset and restart the HBA. (CR#9895) A crash may occur during heavy load of multi-thread SCSI pass-through IOCTL calls. A fix is added to resolve this problem. (CR#9897) A fix is added in this release to resolve a Tape device problem during a hardware failure. When a hardware failure occurs during tape I/O operations, the I/O may not returned to the application and that may cause the application to become unresponsive. (CR#9898) Some values returned from the IOCTL_STORAGE_QUERY_PROPERTY call is fixed to return the correct values. This fixed will resolve problems found in Volume Shadow Services(VSS) or other applications that have dependency on this call. (CR#9805) Several driver parameters have been updated and the descriptions were re-worded for HBAnyware. All the driver names and default values remained the same. (CR#9604)(CR#9606)(CR#9631) The support for the HBAAPIv2 HBA_GetFC4Statistics() is added to this release. This API call will return the FC4 I/O statistics. (CR#9900) The release provides support for the Emulex Fibre Channel adapter LP101. This is a FC SCSI only and will not support IP. (CR#9901) In a Boot-from-SAN system, it may cause a BSOD at the initial stage of the hibernation. A fix is in this release to prevent the BSOD. (CR#9902) HBAnyware dynamic discovery of HBAs may not work correctly during discovering. A fix is added in the release. (CR#9447) The driver may become unresponsive while running with HBAnyware(RMserver) when the cable is pulled. A fix is added in the release. (CR#9281) Release 2.22a1 changes from driver version 2.22a0 When devices are repeatedly removed and added under stress conditions, it may cause the system to crash. This is caused by a PNP sync problem in the removal process. A fixed is added to resolve this problem in this release. (CR#10311) During device discovery or rediscovery, aborting commands are not correctly handled which may result in a BSOD. A fixed is added to resolve this problem in this release. (CR#10312) PLOGI retry delay is changed to 2*RATOV instead of RATOV seconds. This is changed in accordance to the Fibre Channel specifications. (CR#10313) Hardware failure feature detecting I/O state is not correctly tested when device is re-discovered repeatedly. A fixed is added to resolve this problem in this release. (CR#10314) Release 2.22a2 changes from driver version 2.22a1 Emulex installation AutoPilot Manager v1.0a5 did not detect some remote hosts connected with a switch with Port driver v2.22a1. A fixed is added to resolve this problem in this release. (CR#10430) Updating the FC Port driver multiple times without rebooting may hit a bug in the hardware failure detection code that may cause the system to become unstable. A fixed is added to resolve this problem in this release. (CR#10052) The string size of the device property is not correctly set in some instances which may prevent the device from starting up. A fixed is added to resolve this problem in this release. (CR#10816) During a link up, the driver will no longer retry FLOGI in point-to-point topology. (CR#10854) The response frame to ADISC is not placing the DID in the correct format. A fix is added to swap the 4 bytes. (CR#10853) In a Boot-from-SAN system, a fix is added to resolve hibernation and memory crash dump in large memory system. (CR#10106) Release 2.22a3 changes from driver version 2.22a2 In a Boot-from-SAN system, the crash dump may not get created in the SAN device while there is active I/O at the time of crash. A fix is added into the crash dump routine. (CR#11343) Release 2.22a4 changes from driver version 2.22a3 A fix has been added to resolve the command ring full problem. This problem may occur on very fast CPU system with older HBAs where I/Os are filling up the entire command ring. This may cause the system to hang when this condition occurs. (CR#11469) The command retry for timed out command to unavailable device is not handled properly. This may, in some case, cause the system to appear hang since the driver is retrying the command too many times. A fix is added to retry up to 2 times in this case. (CR#11480) A fix is added to delete a symbolic name, \Device\ScsiPortX, during the Port Driver removal process. This symbolic name is created during Port Driver installation. (CR#11483) Release 2.22a5 changes from driver version 2.22a4 On a multi-HBAs system, updating the FC Port Driver multiple times may result in a BSOD. This is uncommon in normal driver updating process. (CR#11586) Resuming a system from hibernation with heavy I/O may cause the system to BSOD. This was found during the WHQL ACPI test. (CR#11640) Release 2.22a8 changes from driver version 2.22a5 A fix is added to prevent a BSOD during discovery where LUNs are re-mapped. (CR#11718) Emulex installation AutoPilot Manager did not detect some remote hosts connected with a switch when a RSCN is received. A fixed is added to resolve this problem in this release. (CR#11715) In a Boot-from-SAN system, hibernation may cause a BSOD during restarting. A fix is in this release to prevent the BSOD. (CR#11716) Release 2.23a0 changes from driver version 2.22a8 Upgrade Device Driver Wizard shows %9002% and %952% in device name. This is corrected to display the correct description. (CR#11978) During system hibernation, some system may not resume properly after the hibernation. (CR#11813) A fix to correct a system crash when VPD Inquiry is send to an unmapped LUN. (CR#11941) System may become unresponsive when sending I/O to deleting devices where the device PDO is not completely deleted yet. (CR#11804) SLI_TRACE_ENTRIES tracemask may caused a BSOD during device re-configuration. (CR#11745) During a driver upgrade, the slot number may not be correctly displayed in the Device Manager. A fix is added to the installation DLL to correct the slot number. (CR#12968) During a driver upgrade, if the ELXNET key is in the registry, it may prompt for reboot. A fix is added to the installation DLL to prevent the unnecessary reboot. (CR#12822) The IOCTL_STORAGE_QUERY_PROPERTY call to retrieve the StorageDeviceIdProperty is fixed to return the correct info. This fix will prevent BSOD in MPIO and other upper drivers that uses this call. (CR#12962) The discovery process will take a longer time to complete if SCSI VPD and PSN Inquiries are not supported in target devices. This is resolved by reducing the retry and timeout to these devices. (CR#11030) The correct status of SRB_STATUS_SELECTION_TIMEOUT will be returned during a Bus or Target reset. (CR#12581) HCT Driver Verifier test complains Port Driver call IoMarkIrpPending but did not return STATUS_PENDING on that Irp dispatch routine. (CR#12582) The PNP IRP_MN_SURPRISE_REMOVAL for HBA adapter is corrected to prevent the system from becoming unresponsive after the HBA is re-enabled. (CR#13069) Obsolete driver function calls are removed to meet the HCT Driver test requirements. (CR#13071) During startup and Port Driver reset, internal Emulex initializing IOCTL calls may BSOD when the Port is not completely initialized. (CR#12841)(CR#11736) Resetting the PortDriver with HBAnyware under heavy I/O stress condition may BSOD the system. (CR#11883) Emulex HBA LP101 is not correctly displayed in the FC switch Name Server table. The proper string description is added to the nameserver response. (CR#11635) An improvement is made to the CR11469 fix in 2.22a4 release for the ring full handling algorithm. (CR#12969) The support for FDMI hostname registration is added to this driver version. (CR#12974) The support for Name Server RNN_ID registration is added to this driver version. (CR#12975) Hardware failure detection may return active I/O earlier than the I/O timeout value. This will cause an unnecessary adapter reset. A fix is added to resolve this problem. (CR#12970) Multiple device rescan may cause a failure to return an I/O and may result in an unresponsive system. This is caused by the incorrect login counter and it's fixed in this release. (CR#12971) After a PDISC response is received from target device, it will invalidate the current device list if needed. This will ensure all found devices are make available. (CR#12976) The Port Driver will no longer logout from unmapped target devices. This will allow SCSI pass through command to be sent to unmapped devices. (CR#12977) The device type for 0xc(ArrayPeripheral) and 0xd(EnclosurePeripheral) in SCSI Inquiry response is updated to display correctly. (CR#11845) Release 2.23a1 changes from driver version 2.23a0 Obsolete driver function call is re-worked to meet the HCT Driver test requirements. (CR#13072) Device re-discovery process causes redundant rescan resulting in unnecessary device deletion and re-creation (CR#13135) Release 2.23a2 changes from driver version 2.23a1 Implemented the HBA Vital Product Data(VPD) support. This will retrieve the product information from the HBA. (CR#13642) The WaitReadyTimeVal registry option with the value of -1 will cause a longer than expected delay in returning the status. This is resolved in this release to work as documented. (CR#13391) The number of discovered Ports returned in GetAdapterPortAttributes is more than the total number of Ports returned in the list of discovered ports. (CR#13343) Release 2.23a3 changes from driver version 2.23a2 The support for HBA Vital Product Data (VPD) doesn't return correct information. (CR#13642) Release 2.23a4 changes from driver version 2.23a3 Port driver doesn't report NodeSymbolicName (CR#13871) Release 2.23a5 changes from driver version 2.23a4 Release 2.23a5 changes applied to ia64 and x64 Windows Server 2003 only Release 2.23a6 changes from driver version 2.23a5 [10/19/04] Changes added to 2.23a5 may cause failure in 32-bit Windows during HCT hibernation and ACPI testings. (CR#13977) Release 1.41a11 changes from configuration utility version 1.41a10 The latest version of dual-channel HBA is not displaying correcting in the adapter listing. This is fixed in this release. (CR#7558) Added a feature to support real-time debug message tracing. The DriverTraceMask setting is now an option in this version. (CR#7557) Release 1.41a12 change from configuration utility version 1.41a11 When the Automap is enabled, only non-present target can be deleted from the SCSI Target list. Selecting a "Present" target with Automap enabled, the "Delete Mapping" will be disabled. (CR#8603) Release 1.41a13 change from configuration utility version 1.41a12 The BrokenRscn registry setting is no longer a user option. It will always query the Name Server for information on any RSCN payload. (CR#8970) Release 1.41a14 change from configuration utility version 1.41a13 The TranslateQueueFull registry setting is set to 1 for some OEM configuration. (CR#9644) The configuration tool is updated to support the new HBA model. (CR#10316) 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) Issues and Information Note about Device Mapping Targets and LUNs may be added dynamically by scanning for new devices with the Windows 2000 device manager after the mapping parameters have been changed via the Emulex Configuration Utility. If devices are unmapped with the Emulex Configuration Utility, the devices are immediately removed from the system.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.