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