readme.txt Driver File Contents (Port-5-2.23a6-1e.zip)

    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

How To Update Drivers Manually

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.

server: web4, load: 1.31