SCSI Miniport Driver for Windows 2000
Version 5-4.54a7 / Windows 2000 Release
Oct 12, 2001
The contents of this kit are listed below. This kit contains release notes
and necessary files to install the SCSI Miniport driver 5-4.54a7 in a
Windows 2000 system.
\README.TXT The file you are now reading
\OEMSETUP.INF Driver installation script for WIN2K
setup program
\TXTSETUP.OEM Driver installation script for WIN2K Boot-time
setup program (boot BIOS must be installed)
\LPSCSI Tag file used by the installation
\cpqkgpsa.sys WIN2K Scsi Miniport driver v5-4.54a7
\lputilnt.exe v1.3a3 GUI Utility (F/W down-load, etc)
\hbaapi.dll Common HBA API library v1.3
\emulexhbaapi.dll Emulex vendor specific HBA API library v1.3
\cocpyinf.dll CopyInf coninstaller
\lpsimdev.inf Installation script of Emulex Simulate Device
Compatibility
The LP6000 host adapter with firmware version 2.30 or higher
The LP7000E, LP8000, LP8000DC, LP850 HBA's with firmware version 3.03 or
higher, however to support all current driver features we recommend
version 3.20
All Boot Bios versions however we recommend 1.50 or higher
Aribtrated loop, point to point and fabric topologies
Upcoming LP9xxx HBA releases.
Prerequisites:
Windows 2000 running on an x86 platform
Windows 2000 Service Pack 2 (recommended but not necessary)
Emulex SCSI Mini-Port driver Version 5-4.54a7 for Windows 2000
Installed LP6000, LP7000E, LP8000, LP8000DC, LP9000, LP950 or LP850
INSTALLATION INSTRUCTIONS:
--------------------------
To upgrade an existing installation, follow the Windows 2000 driver update
procedure:
NOTE: Updating the OEMSETUP.INF file will overwrite existing registry settings.
We suggest you write down the registry settings, if this file was modified,
before updating the OEMSETUP.INF file.
From the Windows 2000 desktop
Select Start, Settings, and Control Panel
Double click the System icon
Select Hardware tab
Click Device Manager
Open SCSI and RAID controllers item in list
Double click the Emulex Adapter
Select drivers tab
Select Update Driver
Click Next
Select "Display a list of known drivers for this device so that I can choose
a specific driver"
Click Next The driver will affect only the selected adapter. If there are
other adapters in the system, you will need to repeat this process for each
adapter.
Click Have Disk; Direct the Device Wizard to the location of the driver kit
Click Yes to restart the computer (This may not be shown)
Select Start, Settings, and Control Panel
Double click System Icon
Select the Hardware tab
Click Device Manager
Verify the MiniPort Driver is present
Driver installation is complete.
To install the Emulex Simulate Device:
The Emulex Simulate Device is enabled by setting the registry paramater,
SimulateDevice, to 1 (See Registry Options for more details).
A "Found New Hardware Wizard" box is poped to ask for driver installation.
Click "Next".
Select "Display a list of known drivers for this device so that I can
choose a specific driver"
Choose "System Devices" and Click "Next"
Choose "Emulex" in Manufacturers window, choose "Emulex Simulate Device" in
Models window and Click "Next"
Click "Yes" on the warning box that the driver cannot be verified whether it
is compatible with the Hardware.
Follow the instructions to finish the installation.
Win2K ISSUES / INFORMATION:
----------------------------------
1. Win2K supports configuring the number of out-standing SCSI requests per
SCSI bus. The default setting is 150 SCSI requests per SCSI bus
Use regedt32 under the following key to change the number of requests.
"HKEY_LOCAL_MACHINE->SYSTEM->CurrentControlSet->Services->cpqkgpsa"
Add (if not already present) the following Keys under cpqkgpsa
Parameters->Device (Parameters apply to ALL LPxxx adapters)
| or
->Devicen (Parameters apply to LPxxx adapter number 'n' 0-99)
Under Device add a value of "NumberOfRequests" Type REG_DWORD,
with a value of from 16 to 512 (decimal). Microsoft specifies to use
this value sparingly, as these request entries come from Non-Page-Pool
(this is especially true with the ALPHA systems).
NOTE: We do not recommend using Devicen for multiple contollers since the
Devicen setting may not work properly. This is caused by a Microsoft
ScsiPort driver bug. Please refer to Microsoft Knowledge Base
Article Q140269.
NOTE: However, for optimum performance, the setting should be between 16 and
255. Values above 255 will consume additional nonpaged memory and will
not produce more concurrent requests than the 255 registry setting.
Please refer to Microsoft Knowledge Base Article Q240314.
2. Win2K allows a disk I/O time-out to be increased.
The Win2K SCSI subsystem allows the disk I/O time-out value to be
increased in case of frequent device I/O time-outs: (The default setting
is 60 seconds)
Use regedt32 under the following key to change the I/O time-out value.
"HKEY_LOCAL_MACHINE->SYSTEM->CurrentControlSet->Services->Disk"
Add a value of "TimeOutValue" Type REG_DWORD, the value specified is
in seconds.
3. Win2K LargeLuns parameter enforces to scan more than 8 Luns.
NOTE: The driver installation will set this parameter to "1" for GenDisk.
Using regedt32 under the following key:
"HKEY_LOCAL_MACHINE->SYSTEM->CurrentControlSet->Control->ScsiPort->SpecialTargetList"
Add the HardwareID as the key to describe the Hardware to have LargeLuns
set. GenDisk is used to apply to all generic disks. Please refer to
Knowledge Base Article Q182541 for the format of the HardwareID.
Add a value of LargeLuns: REG_DWORD: 0x1
LPxxx DRIVER RELEASE NOTES:
-----------------------------
General Features / Behavior:
-----------------------------
Win2k Boot Support:
Booting from Win2k is supported with the textsetup option (TXTSETUP.OEM
on this kit).
- Win2k GUI utility support:
This driver currently supports an Win2K GUI utility that allows firmware
update and all of the registry parameters to be set / queried
dynamically and permanently, thru the registry. All parameters are
read by the utility through the driver's IOCTL interface, so as new
parameters are added / subtracted the utility need not change (the
utility also provides help for each registry option when an option is
single clicked).
The utility also allows firmware down-load and many other operations
such as adapter reset and revision information.
- Fabric Support:
This driver currently supports two modes of operation based on the registry
parameter "Topology=n":
. Topology=0*;
. FC-AL (Loop) topology only will be used
After successful Loop Initialization, the driver attempts login with
an FL_Port (Switched Fabric Loop Port):
If FL_Port login is unsuccessful, private loop mode will be
entered. This involves the steps listed below for private loop
operation.
If FL_Port login is successful then public loop operation will
be employed. This involves the steps listed below for Fabric
operation.
. Topology=1*;
. Switched F_Port (PT-PT) topology only will be used
After successful PT-PT Initialization, the driver attempts login with
an F_Port (Switched Fabric PT-PT Port). In this mode of operation a
Switched Fabric is required, PT-PT to a Target is not supported (for
these configurations use Topology=0;).
* NOTE: Some versions of adapter firmware support automatic topology fail
-over. For the purposes of this discussion, Topology options 0,2
are analogous and options 1,3 are analogous.
. Private Loop Operation:
If a switch is not discovered in FC-AL mode (Toplogy=0;) the the driver
will perform the following steps:
. If an FC-AL device map is present, each node described in the map
will be logged into and verified to be a Target.
. If an FC-AL device map is not present, logins will be attempted with
all 126 possible FC-AL addresses.
. LOGO/PRLO are also handled by the driver. Reception of either will
cause new discovery/logins to take place.
. Fabric Operation:
If a switch is discovered the driver will perform the following
steps:
. FL_Port login (Topology=0;)
. F_Port login (Topology=1;)
. Simple Name Server login
. State Change Registration
. Symbolic Name Registration
. FCP type Registration if RegFcpType is set to 1
. Logout and Re-login Name Server to indicate done with Registration
. Simple Name Server query for devices (the registry parameter SnsAll
determines whether or not all N_Ports are requested (SnsALL=1;) or
only SCSI FCP N_Ports (SnsAll=0; default) )
. Discovery / device creation will then occur to each Target device
described by the Name Server
. RSCN and LOGO/PRLO are also handled by the driver. Reception of
either will cause a new NameServer query to occur, followed by new
LOGINs.
NOTE1: This driver is "Soft-Zone-Safe".
NOTE2: In a Fabric environment the order that disk devices are created
is based on the Name Server response data (which is not guaranteed
to be in any special order). This means that between successive
boots the same device MAY BE IDENTIFIED WITH A DIFFERENT PHYSICAL
DEVICE NUMBER. However, any devices which have been assigned a
device letter through disk administrator will continue to use that
letter regardless of the physical device number.
- Driver Addressing Mapping / Hot-Swap Concerns:
Once a device is initially assigned a Bus/Target ID (at boot), the device
will continue to be mapped to its Bus/Target ID based on WWPN,
Nodename or Fibre Channel address (D_ID) depending upon the following
registry options:
. WWPN: HardAddress=0;MapNodeName=0;
. NodeName: HardAddress=0;MapNodeName=1;
. D_ID: HardAddress=1;(MapNodeName=don't care)
By default, a device is mapped via WWPN which allows the device to be moved
from one switch port (or JBOD slot) to another and have the Host I/O
continue to be routed to that specific device.
Environments that involve hot-swapping of an array controller or
drive typically require mapping the "new" device in place of the
old device. If the swapped-in device presents a different WWPN (than the
original device) then it will be mapped as a new device, unless
mapping takes place by either D_ID or NodeName. If hot-swapping
is required use the following guidelines:
. Map by NodeName when:
An array controller with hot swappable controller(s) is employed that
maintains the same Fibre Channel NodeName after replacement, but
uses a unique Fibre Channel WWPN per controller.
. Map by D_ID when:
A native Fibre Channel disk drive or array controller is employed
that when replaced will identify itself with a different Fibre
Channel NodeName and WWPN from the original.
NOTE: LPUTILNT allows the MapNodeName and HardAddress options
to be dynamically managed. This allows user to temporarily
change the option, swap the array controller/drive and then
go back to the default of mapping based on WWPN.
- The internal name in the properties item for CPQKGPSA.SYS reflects SLI-2
interface support.
- SLI-2 driver interface support.
The driver supports a lighter-weight interface called SLI-2 available
in v2.00 firmware (and above) that reduces CPU overhead by causing the
adapter to DMA command/response/buffer lists to/from Host memory without
CPU intervention.
- Third Party Process Logout may be used to break reservations.
By default a TPRLO will be sent when BUS_RESET() is called
to clear SCSI reservations. This is the recommended way to clear
Target reservations. This action is controlled by the ResetTPRLO=1
(default) registry parameter.
In the case that the Target is a legacy Seagate Fibre Channel disk
drive that does not support TPRLO, we provide the ResetFF option
that tansmits LIP(FF) instead of LIP(F7) when BUS_RESET() is called.
This option is off by default (ResetFF=0) and is only applicabale to
FC_AL Private Loop connections.
- Command Queue Full / SCSI Logical Busy handling:
The driver (by default) will issue a status of SRB_STATUS_BUSY when it
processes a SCSI_COMMAND_QUEUE_FULL or SCSI LOGICAL BUSY error returned
from the Target. The Win2K Port driver will delay 1-2 seconds before re-
queuing this request which gives the Target drain time.
This is to avoid an Win2K Scsi subsystem error when Win2K re-queues a command
that returns QUEUE_FULL (Win2K can re-queue the Srb with a 0 byte count
(BAD) and limit the queue depth to the level when the QUEUE_FULL was
received).
The behavior of returning SRB_STATUS_BUSY can be turned off by using
the EmulexOption registry parameter (documented below).
- Fibre Channel Link Speed
The driver by default is set to automatic link speed detection on adapters
that support speeds other than 1.0625 Gb/s. The LinkSpeed registry
parameter allows the user to force the adapter to a desired (and
supported) link speed. See documentation for this parameter below.
Bug Fixes / New Features:
-------------------------
This version of the Win2K SCSI driver incorporates the following changes
and new features from the v4.53 release:
1. Added Compaq Voyager support:
- Volume Set Addressing mode support is on by default; i.e. the default
value of EmulexOption is 0x00000200.
- Reserve Bus 0 for the Compaq array controller (See Scsi Address Mapping
section below for more details). This removes the MapBus0 option.
Bus 0 is available if Volume Set Addressing mode support is off.
- Add Compaq voyager Ioctl support.
Changes since 5-454a0:
2. Added Login Status for FC_NODE_INFORMATION.
3. Modified to support new Voyager inquiry string to "MSA1000 ".
(The Voyager inquiry string is used to determine whether the array
controller will be exposed on Bus0; i.e. if the inquiry string of the
found controller matches the Voyager inquiry string, it will be exposed
on Bus0)
4. Supported Target mode in Fabric environment.
5. Fixed loss of Vnode information of a purged node.
Changes since 5-454a1:
6. Fixed duplicate controller issue for unconfigured Voyager (ISSUE0000201335).
7. Fixed returning incorrect status for Scsi3PassThru (ISSUE0000201372).
Changes since 5-454a2:
8. Fixed to return SRB_STATUS_BUS_RESET for Vnode.
9. Returned OFFLINE_REASON_BACKSIDE_BUS_DEGRADED instead of
OFFLINE_REASON_NO_REASON (ISSUE0000202625).
10. Returned subsystemId and subVendorId for CPQ_CSMI_GET_CNTLR_CONFIG
(ISSUE0000202635).
11. Fixed dynamically switching from Fabric to Private Loop with a Brocade
switch.
12. Logged "link down at boot time" as BUS_TIME_OUT event instead of
INTERNAL_ADAPTER_ERROR event.
13. Added BUSCHG_LNKCHGRPT option to report BusChangeDetected notification
at linkUp after linkDown. This allows Microsoft MPIO to do failback.
14. Changed not to expose the controller on Bus 0 for Voyager phase II if it
is not VSA mode and it has Luns.
Changes since 5-454a3:
15. Enhanced BUSCHG_LNKCHGRPT option to also report BusChangeDetected
notification at linkDown and the HLinkTimeOut expired.
16. Fixed oemsetup.inf issue.
Changes since 5-454a4:
17. Changed to handle PRLO and LOGO in Fabric by relogin to the node if the
node is previously logined to the host. (The previous implementation
handled the PRLO and LOGO as a RSCN event)
18. Fixed Compaq Voyager configuration changes (from No Lun to Luns or from
Luns to No Lun) issue.
Changes since 5-454a5:
19. Invalidated all rpi in node table after sending UnRegLogin All.
20. Added Fcp2 Handling for PRLI response.
21. Added an in-progress timer to timing out ResetBus, RSCN discovery,
VSA mode discovery and ReLogin process which does not cover by
linkTimeOut.
22. Fixed bLoginStatus of CPQ_CSMI_GET_NODE_INFORMATION issue.
Changes since 5-454a6:
23. updated oemsetup.inf (per Compaq request).
Registry Options:
-----------------
The Win2K SCSI driver has many options which may be modified to allow
different behavior without the need to recompile the driver. These
options all have defaults within the driver, such that when not specified
in the registry driver defaults are exercised. Below is a list of the
individual options and how to set them.
Under "HKEY_LOCAL_MACHINE->SYSTEM->CurrentControlSet->Services->cpqkgpsa"
Add (if not already present) the following Keys under cpqkgpsa
Parameters->Device (Parameters apply to ALL LPxxxx adapters)
| or
->Devicen (Parameters apply to LPxxxx adapter number 'n' 0-99)
Under Device add a value of "DriverParameter" Type Reg_SZ.
The string can contain multiple entries separated by a semi-colon (;).
Current parameters that can be set are as follows:
NOTE: We do not recommend using Devicen for multiple contollers since the
Devicen setting may not work properly. This is caused by a Microsoft
ScsiPort driver bug. Please refer to Microsoft Knowledge Base
Article Q140269.
AbortStatus=0xn; values from 0x00-0xFF, controls Win2K SRB error status for
general Abort conditions, default=SRB_STATUS_BUS_RESET
(0x0E) which will not cause the current Win2K class driver
to throttle down I/O performance after 4 of these errors
have been received (on a per-LUN basis)
Class=n; values from 0-2, default=2, controls which Fibre Channel
Class will be used: 1=Class 2, 2=Class 3
CrfIntrpt=n; values from 0-1, default=0, Coalesce Response Interrupt
Feature, this feature must be used in conjuction with
CrfMsCnt and CrfRspCnt and allows the HBA to hold off
from interrupting the Host as long as the Host has made
progress on the outstanding response queue during the
last CrfMsCnt period.
CrfMsCnt=n; values from 0-63, default=0, Coalesce Response Feature,
this value specifies a count of milliseconds after which
an Interrupt response is generated if CrfRspCnt has not
been satisfied. Zero specifies immediate reponse
notification. The CRF feature allows either 'n'
milliseconds or 'y' response entries posted prior to
generating an Interrupt.
CrfRspCnt=n; values from 0-255, default=0, Coalesce Response Feature,
this value specifies a count of Response Entries after
which an Interrupt response is generated. Zero specifies
immediate reponse notification. The CRF feature allows
either 'n' milliseconds or 'y' response entries posted
prior to generating an Interrupt.
DisableAck0=n; values from 0-1, default=0, 0=Enable ACK_0 functionality,
1=Disable ACK_0 functionality.
DiscoveryDelay=n; values from 0-7, default=0, controls whether the driver
waits for 'n' seconds to start port discovery after
link up.
0= Don't wait after link-up
1-7 = #seconds to wait after link-up before starting
port discovery
Setting this parameter from 2-5 seconds helps device
availability with certain Target vendors.
NOTE: Any Target that enters PDISC Pending state upon
receipt of a Fabric RSCN, requires this parameter
to be set >= 2 seconds. Check with your Target
vendor to see if this is required.
ElsRetryCount=n; values from 1-255, default=1, controls how many retries
are used when an ELS_REQUEST (like PLOGI, PRLI, etc.)
times-out.
ElsRjtCount=n; values from 0-255, default=45, and controls how to
treat LINK_SERVICE_REJECTs with either
LOGICAL_BUSY/INVALID_NODE or
UNABLE_PROCESS/CMD_IN_PROCESS, reasons/explainations.
A non-zero count allows these responses to be retried
on a fixed 2 second interval for up to the value
specified.
This feature has been strongly recommended
by certain array vendors.
ElsTimeOut=n; values from 0-1, default=0, controls whether the driver
issues a LIP when 2 consecutive Extended Link Service
requests (like PLOGI or PRLI) time-out.
0= Don't issue a LIP when 2 consecutive ELS's time-out
1= Issue a LIP when 2 consecutive ELS's time-out
EmulexOption=n; values from 0x0 - 0xEFFFFFFF, default=0x00000200, this
is a bit vector of options, one bit per option listed
below:
Value: 0x00000001 DISABLE_SCSI_BUSY -
Don't return SRB_STATUS_BUSY
to SCSI_BUSY errors
Value: 0x00000002 LOG_STARTIO_ERRORS -
Log ALL returned errors from
STARTIO into the Event Log
Value: 0x00000004 RESERVED
Value: 0x00000008 DISABLE_SCSI_QBUSY -
Don't return SRB_STATUS_BUSY
to SCSI QUEUE FULL errors
Value: 0x00000010 DISABLE_SCSI_RSP_CHECK -
Don't validate SCSI RSP
field validity
Value: 0x00000060 BUSCHG_DISABLE -
This is a 2-bits option:
0x00000020: disable all the
BusChangeDetected
notification reported.
0x00000040: disable only
BusChangeDetected of
device removal notification
reported.
0x00000060: RESERVED.
Notes: This only disables the BusChangeDetected
report from miniport to ScsiPort driver.
ScsiPort driver can still find out the
Bus Changes if it decides to scan the bus.
However, this option is not recommended
for standard usage since it will take
away some parts of Pnp functionality.
Value: 0x00000080 LIRP_DISABLE -
Don't allow LIRP/LILP loop init
phase
Value: 0x00000100 HBA_RESET_DISABLE -
Debugging option to prevent the
driver from resetting the HBA
Value: 0x00000200 VSA_ENABLE -
Allow Volume Set Addressing
Value: 0x00000400 FORCE_32_BIT_XFER -
Force to 32-bit mode transfer
instead of 64-bit mode transfer
Value: 0x00000800 Reserved.
Value: 0x00001000 BUSCHG_LNKCHGRPT -
Report BusChangeDetected
Notificiation at linkDown (after
HLinkTimeOut expired) and linkUp
after linkDown (HLinkTimeOut
expired). This is overrided by
BUSCHG_DISABLE 0x00000020. This
allows Microsoft MPIO to do
failback.
EnableDPC=n; values 0 or 1, default=0, 0=process I/O completion at
interrupt level, 1=process at DPC level.
FrameSizeMSB=n; values from 0-8, default=0, controls the upper byte of
receive FrameSize in issued in PLOGI (0 and 8 are
synonyms). This allows the frameSize to be constrained
on 256 byte increments from 256 (1) - 2048 (8).
HardAddress=n; values from 0-1, default=0, controls whether the driver
maps addresses based on World Wide Port Name (WWPN) or
expects FC-AL HARD ADDRESSING:
0= Map Win2K Bus/Target addresses to a WWPN
1= Map Win2K Bus/Target addresses to fixed FC-AL Hard
address
some hot-swap applications may require HardAddress=1;
HardAlPa=0xn; values from 0x01 - 0xEF, default=0x00 (0x00 says use soft
addressing, or FLASH stored Hard address value),
ONLY VALID ALPAs may be used !! Allows the Adapter to
use a HARD assigned loop address. See AL_PA table below:
0x01, 0x02, 0x04, 0x08, 0x0F, 0x10, 0x17, 0x18, 0x1B,
0x1D, 0x1E, 0x1F, 0x23, 0x25, 0x26, 0x27, 0x29, 0x2A,
0x2B, 0x2C, 0x2D, 0x2E, 0x31, 0x32, 0x33, 0x34, 0x35,
0x36, 0x39, 0x3A, 0x3C, 0x43, 0x45, 0x46, 0x47, 0x49,
0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x51, 0x52, 0x53, 0x54,
0x55, 0x56, 0x59, 0x5A, 0x5C, 0x63, 0x65, 0x66, 0x67,
0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x71, 0x72, 0x73,
0x74, 0x75, 0x76, 0x79, 0x7A, 0x7C, 0x80, 0x81, 0x82,
0x84, 0x88, 0x8F, 0x90, 0x97, 0x98, 0x9B, 0x9D, 0x9E,
0x9F, 0xA3, 0xA5, 0xA6, 0xA7, 0xA9, 0xAA, 0xAB, 0xAC,
0xAD, 0xAE, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB9,
0xBA, 0xBC, 0xC3, 0xC5, 0xC6, 0xC7, 0xC9, 0xCA, 0xCB,
0xCC, 0xCD, 0xCE, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6,
0xD9, 0xDA, 0xDC, 0xE0, 0xE1, 0xE2, 0xE4, 0xE8, 0xEF
HlinkTimeOut=n; values are in seconds from 1-255, default=30, controls
the time-out from Hardware link-down to Hardware link-up.
If this time-out is exceeded then the driver will stop
issuing BUSY status for requests and starts to issue
SELECTION_TIMEOUT error status. This value may be set
smaller than LinkTimeOut as it does not include port
discovery.
HostName="name"; "name" is used to specify the system host name and as
part of node symbolic name to be registered to the
Name Server. It is limited to 32 characters long.
(Notes: lputilnt.exe will be modified to allow user
to change this value in future release.)
HppIoTimeOut=n; values are in seconds from 1-255, default=30, controls
the maximum length of time that I/O will be returned
with BUSY status while the adapter is in a Hot Plug
PCI "not ready state" (just powered off/on, but not
yet ready). If this time-out is exceeded prior to
replacing/powering on the HBA, I/O requests will be
returned with SRB_STATUS_ERROR status.
InitialDelay=n; values from 0-1, default=1, controls whether the driver
waits for 2 seconds to start port discovery, at the
initial link up or not.
0= Don't wait 2 seconds at startup
1= Wait 2 seconds at startup
The initial 2 second delay is strongly recommended
by certain array vendors.
LinkSpeed=n; values are in Gbit from 1-2, default=0 (auto speed
selection), allows user to force link speed. This
option is only meaningful to a Host Adapter which
supports other than 1 Gbit. Setting this option
incorrectly may cause the Host Adapter to fail to
initialize.
LinkTimeOut=n; values are in seconds from 1-500, default=60, controls
the time-out when a "Down-Link" stops issuing a BUSY
status for requests and starts to issue SELECTION_TIMEOUT
error status. This linkTimeOut includes port login and
discovery time.
LipFFrecovery=n; values from 0-1, default=0, controls whether the driver
issues a LIP when the link has been down for LinkTimeOut/2
0= Don't issue a LIP when linkDownTime = LinkTimeOut/2
1= Issue a LIP when linkDownTime = LinkTimeOut/2, helps
recover some dual-port devices whose "other port" is
"stuck"
LogErrors=n; values 0 or 1, default=0, 0=don't log general adapter/
disk errors, 1=use Event Log to log general errors.
See below for information on the event codes.
MapNodeName=n; values from 0-1, default=0, controls whether the driver
maps devices based on WWPN or NodeName.
0= Map devices based on WWPN (World-Wide-Port-Name)
1= Map devices based on NodeName
NodeTimeOut=n; values are in seconds from 1-255, default=20, controls
the time-out at which a formerly logged in node will
issue SELECTION_TIMEOUT error status to an I/O request.
This provides some hysterysis for a node that may re-
enter the configuration soon. The timer starts after
port discovery has been completed, and the node is no
longer present.
QueueAction=n; values 0-2, default=0:
0 = QueueAction is Win2K Specified
(SIMPLE_QUEUE_TAG)
1 = QueueAction will be HEAD_OF_QUEUE_TAG
2 = QueueAction will be ORDERED_QUEUE_TAG
QueueDepth=n; values from 1-64 requests per *LUN/Target, default=32
*see "QueueTarget" parameter.
QueueTarget=n; values 0 or 1, default=0:
0 = QueueDepth applies on a per Lun basis
1 = QueueDepth applies on a per Target basis
RegFcpType=n; values 0 or 1, default=0. 1=register the Fcp type with
the Name Server.
ResetFF=n; values 0 or 1, default=0, 0=ResetBus translates to
LIP(F7) 1=ResetBus translates to LIP(FF), used for
WolfPack to force reservations to be freed when
ResetBus issued. Only meaningful for FC-AL topology
and Seagate native FC disk drives. Emulex reccom-
mends breaking WolfPack reservations with ResetTPRLO.
ResetTPRLO=n; values 0 or 1, default=1, 0=ResetBus translates to
LIP() 1=ResetBus translates to ThirdPartyProcessLogout
+ LIP(), used for WolfPack to force reservations to
be freed when ResetBus issued (this can now be used
with Seagate native Fibre drives).
RetryNodePurge=n; values from 0-1, default=1, controls whether the driver
causes Port discovery just prior to purging a node, due
to NodeTimeOut exceeded.
Setting this parameter (=1) allows the driver to retry
discovery of a Node prior to Purge. This option should
be enabled for all HUBs that do not issue a LIP whenever
a port is "un-bypassed". The Emulex Digital HUB does
not require this option to be enabled.
RTTOV=n; values are in milliseconds from 100 to 511, default=256
time-out between phases of Offline to Online protocol.
ScanDown=n; values 0 or 1, default=0, 0=Lowest AL_PA = Lowest
physical disk, 1=Highest AL_PA = Lowest Physical Disk,
i.e. 0=Ascending AL_PA order, 1=Ascending SEL_ID order
This value applies to Private Loop Only.
SendEcho=n; values from 0-1, default=0, controls whether the driver
sends an echo frame to itself every 4 seconds or not.
Setting this parameter (=1) allows early detection of a
spurious HUB Port bypass, and should be enabled for all
HUBs that do not issue a LIP whenever a port is "un-
bypassed". The Emulex Digital HUB does not require this
option to be enabled.
SimulateDevice=n; values 0 or 1, default=0, 0=don't create a "dummy" disk
device, 1=create a dummy disk to force the driver to
load if no disk devices are present at boot time.
SnsALL=n; values from 0-1, default=0, controls which N_Ports are
queried from the NameServer, =0 SCSI FCP only, =1 ALL
N_Ports.
TargetBlkSize=n; values from 0-16384, default=16384, specifies number
of blocks to allocate for internal target.
TargetEnable=n; values from 0-2, default=0,
0= disable
1= enable Target from boot
2= enable Target after IOCTL
Topology=n; values 0-3, default=2,
0= FC-AL (Loop)
1= PT-PT Fabric
2= *FC-AL first, then attempt PT-PT
3= *PT-PT first, then attempt FC-AL
Note *: Topology fail-over requires v3.20 firmware or
higher. With out using firmware that supports
Topology fail-over, options 0,2 and 1,3 are
analagous.
TrafficCop=n; values 0 or 1, default=0, 1=enable FC-AL loop master
to run unfair and break potential arbitration problems
by sending frames to itself, 0= run fair no frames.
Win2K Miniport Event Log Codes:
--------------------------------------------------
The Win2K Miniport driver can log events / errors in the Win2K event log. Serious errors will always be logged, while informational events will only be logged if the registry parameter "LogErrors=1" is used.
All Miniport logged events are issued with an Event ID of 11, INTERNAL
ADAPTER ERROR, but do not necessarily indicate an adapter error occurred.
("Link down at boot time", 0xED, is logged with Event ID of 9, BUS_TIME_OUT,
instead.)
Byte offset 0x10 of the event is the driver event code, while byte offset
0x11-0x13 contain event specific information.
NOTE: Entries marked with an asterisk (*) are logged only when "LogErrors=1"
is used.
Offset Explanation 0x11 - 0x13 further information
0x10
-------------------------------------------------------------------------------
0xC0 Invalid Link Speed selection
0xD0 SNS_REQ (XMIT_SEQ) failed 0x11= cmdStat, 12= Parm err
0xD1 SNS_RSP (RCV_SEQ) failed 0x11= cmdStat, 12= Parm err
0xD3 * RCV_ELS_REQ failed 0x11= cmdStat, 12= Parm err
0xD4 * XMT_ELS_RSP failed 0x11= cmdStat, 12= Parm err
0xD5 Too many Targets found (160+) 0x11 - 13 = d_id that didn't fit
0xD6 * SNS request time-out 0x11 - 13 no additional information
0xD7 * Mailbox Irupt Time-out 0x11= Mailbox word 0
0xD8 * TPRLO requested when busy 0x11= local req. state, 12= discState
13= Mailbox word 0
0xD9 * Link down time-out occurred 0x11= local req. state, 12= discState
13= Mailbox word 0
0xDA * Hard link down time-out occurred 0x11= local req. state, 12= discState
13= Mailbox word 0
0xE0 * Node Purged from Configuration 0x11 - 0x13 = D_ID of node purged
0xE1 Error Interrupt occurred Status reg bytes 1-3 in event 11-13
!! E1 error indicates an adapter H/W
!! Failure, return this HBA for repair
0xE2 Mailbox cmd Timeout 0x11= command
0xE3 Mailbox rsp err 0x11= command, 12-13 = mbxStatus
0xE4 Adapter not ready after Init Status reg bytes 1-3 in event 11-13
0xE6 Mailbox int. but cmd not cmplt 0x11= MB cmd, 12-13 = mbxStatus
0xE7 SRB already queued to ring
0xE8 RESTART Failed
0xE9 PORT BYPASS (LPB) rcv'd
0xEB Unknown IOCB cmd rsp 0x11= 15:8=cmd field
0xEC Uncached Extension alloc. error
0xED Link down @boot time (30 sec.)
0xEF Too many Irupts at initial boot
0xF0 * Rcv ELS Request (possible logout) 0x11= ELS type, 12-13 = X_ID
0xF1 LinkUp err; LP6/7 Dwn, driver Up 0x11= parameter field, 12=IOCB cmd
0xF2 LinkUp w/ Illegal or corrupt RPI 0x11= parameter field, 12=IOCB cmd
0xF3 * DeQueue ring->iotCmd.head 0x11= callerID
0xF4 Adapter Reset 0x11= coded reason for reset:
bit 0=IOCB Requeue; bit 1=ReadLa rty
bit 2=InitLink rty; bit 3=RstBus rty
bit 4=Mailbox time-out
0xF5 * FCP_IXXX_CR IOCB rsp err 0x11= cmdStat, 12= Parm err, 13= ALPA
0xF6 * FCP_IXXX_CX IOCB rsp err 0x11= cmdStat, 12= Parm err, 13= ALPA
0xF8 Inavlid FCP_RSP 0x11= FcpCntrl, 12= ScsiStat, 13= Len
0xF9 * Two consec. timeouts, issue LIP
0xFA START_IO error 0x11= ErrType, 12= SrbStat, 13= LinkUp
0xFB * ELS_REQ_CR IOCB rsp err 0x11= cmdStat, 12= Parm err, 13= ALPA
0xFC * ELS_REQ_CX IOCB rsp err 0x11= cmdStat, 12= Parm err, 13= ALPA
0xFE FLOGI Failed 0x11= cmdStat, 12= Parm err
NOTE: Entries marked with an asterisk (*) are logged only when "LogErrors=1"
is used.
CmdStat values:
IOSTAT_FCP_RSP_ERR 0x1
IOSTAT_REMOTE_STOP 0x2 Remote sent an ABTS
IOSTAT_LOCAL_REJECT 0x3 Parm field contains additional info
IOSTAT_NPORT_RJT 0x4
IOSTAT_FABRIC_RJT 0x5
IOSTAT_NPORT_BSY 0x6
IOSTAT_FABRIC_BSY 0x7
IOSTAT_INTERMED_RSP 0x8
IOSTAT_LS_RJT 0x9 Remote sent LS_RJT
IOSTAT_BA_RJT 0xA Remote Sent BA_RJT
Parm error values (valid only when cmdStat=0x3):
IOERR_SUCCESS 0x00
IOERR_MISSING_CONTINUE 0x01
IOERR_SEQUENCE_TIMEOUT 0x02 Possible bad cable/link noise
IOERR_INTERNAL_ERROR 0x03
IOERR_INVALID_RPI 0x04 Remote port login data invalid
IOERR_NO_XRI 0x05
IOERR_ILLEGAL_COMMAND 0x06
IOERR_XCHG_DROPPED 0x07
IOERR_ILLEGAL_FIELD 0x08
IOERR_BAD_CONTINUE 0x09
IOERR_TOO_MANY_BUFFERS 0x0A
IOERR_RCV_BUFFER_WAITING 0x0B
IOERR_NO_CONNECTION 0x0C
IOERR_TX_DMA_FAILED 0x0D
IOERR_RX_DMA_FAILED 0x0E
IOERR_ILLEGAL_FRAME 0x0F Possible bad cable/link noise
IOERR_EXTRA_DATA 0x10
IOERR_NO_RESOURCES 0x11
IOERR_RESERVED 0x12
IOERR_ILLEGAL_LENGTH 0x13
IOERR_UNSUPPORTED_FEATURE 0x14
IOERR_ABORT_IN_PROGRESS 0x15
IOERR_ABORT_REQUESTED 0x16
IOERR_RECEIVE_BUFFER_TIMEOUT 0x17
IOERR_LOOP_OPEN_FAILURE 0x18 FC_AL target not responding. Rcvd our
own transmitted frame back. Port may
be bypassed by a hub.
IOERR_RING_RESET 0x19
IOERR_LINK_DOWN 0x1A
IOERR_CORRUPTED_DATA 0x1B
IOERR_CORRUPTED_RPI 0x1C
IOERR_OUT_OF_ORDER 0x1D Possible bad cable/link noise
IOERR_OUT_OF_ORDER_ACK 0x1E
IOERR_DUPLICATE_FRAME 0x1F
IOERR_INVALID_ACK 0x20
IOERR_BAD_40BIT_ADDRESS 0x21
IOERR_RESERVED 0x22
IOERR_RESERVED 0x23
IOERR_RESERVED 0x24
IOERR_ABORT_MULTI_REQUESTED 0x25
IOERR_RESERVED 0x26
IOERR_RESERVED 0x27
IOERR_LINK_BUFFER_SHORTAGE 0x28
IOERR_RCV_XRIBUF_WAITING 0x29
-------------------------------------------------------------------------------
SCSI Address Mapping:
---------------------
The driver emulates 2 SCSI busses and 128 targets each bus to map 256 devices
maximum. The last device is reserved for the simulate device. If the registry
parameter, SimulateDevice, is set to 1, the simulate device responds to the
OS request.
The device mapping starts on either Bus 0 or Bus 1 depending on the registry
parameter, EmulexOption. If bit 9 of EmulexOption is 1 (i.e. 0x00000200), the
Bus 0 is used for the COmpaq array controller; then, the bus mapping starts
from Bus 1 to Bus 2. Otherwise, the bus mapping starts from Bus 0 to Bus 1.
The mapping scheme is different between Fabric Device and Private Loop Device.
Refer to the following two sections for more details.
Fabric Device Mapping:
----------------------
In a Fabric (switched) environment, devices are initially created based on
the order that they are returned from the Simple Name Server (SNS). Once
created (at boot) the devices will continue to be tracked based on:
- WWPN: HardAddress=0;MapNodeName=0;
- NodeName: HardAddress=0;MapNodeName=1;
- D_ID: HardAddress=1;(MapNodeName=don't care)
Private Loop Device Mapping:
----------------------------
In a private loop environment (FC-AL, no switch), devices are initially
created based on a fixed address ordering (described below). Once
created (at boot) the devices will continue to be tracked based on:
- WWPN: HardAddress=0;MapNodeName=0;
- NodeName: HardAddress=0;MapNodeName=1;
- D_ID: HardAddress=1;(MapNodeName=don't care)
This section identifies the initial FIXED mapping between Win2K's
Bus/Target/Lun and a Fibre Channel native address (AL_PA / SEL_ID).
There are two potential mappings based on a registry parameter (ScanDown=0;
(driver default) use *, ScanDown=1; ).
The index into the following table can be derived by:
#define TARGETS_PER_BUS 128
i = (Srb->PathId > 0) ? Srb->PathId-1 : 0; // Bus 0 = dummy bus
nodeInx = ((i * TARGETS_PER_BUS) + Srb->TargetId);
Current Map Table:
Bus # | Target # | Lun # | *AL_PA | *SEL_ID | **AL_PA | **SEL_ID
---------------------------------------------------------------------------
| 0 | 0-127 | 0-255 | NONE | NONE | NONE | NONE |
---------------------------------------------------------------------------
| 1*** | 0 | 0-255 | 0x01 | 0x7D | 0xEF | 0x00 |
| | 1 | 0-255 | 0x02 | 0x7C | 0xE8 | 0x01 |
| | 2 | 0-255 | 0x04 | 0x7B | 0xE4 | 0x02 |
| | 3 | 0-255 | 0x08 | 0x7A | 0xE2 | 0x03 |
| | 4 | 0-255 | 0x0F | 0x79 | 0xE1 | 0x04 |
| | 5 | 0-255 | 0x10 | 0x78 | 0xE0 | 0x05 |
| | 6 | 0-255 | 0x17 | 0x77 | 0xDC | 0x06 |
| | 7 | 0-255 | 0x18 | 0x76 | 0xDA | 0x07 |
| | 8 | 0-255 | 0x1B | 0x75 | 0xD9 | 0x08 |
| | 9 | 0-255 | 0x1D | 0x74 | 0xD6 | 0x09 |
| | 10 | 0-255 | 0x1E | 0x73 | 0xD5 | 0x0A |
| | 11 | 0-255 | 0x1F | 0x72 | 0xD4 | 0x0B |
| | 12 | 0-255 | 0x23 | 0x71 | 0xD3 | 0x0C |
| | 13 | 0-255 | 0x25 | 0x70 | 0xD2 | 0x0D |
| | 14 | 0-255 | 0x26 | 0x6F | 0xD1 | 0x0E |
| | 15 | 0-255 | 0x27 | 0x6E | 0xCE | 0x0F |
| | 16 | 0-255 | 0x29 | 0x6D | 0xCD | 0x10 |
| | 17 | 0-255 | 0x2A | 0x6C | 0xCC | 0x11 |
| | 18 | 0-255 | 0x2B | 0x6B | 0xCB | 0x12 |
| | 19 | 0-255 | 0x2C | 0x6A | 0xCA | 0x13 |
| | 20 | 0-255 | 0x2D | 0x69 | 0xC9 | 0x14 |
| | 21 | 0-255 | 0x2E | 0x68 | 0xC7 | 0x15 |
| | 22 | 0-255 | 0x31 | 0x67 | 0xC6 | 0x16 |
| | 23 | 0-255 | 0x32 | 0x66 | 0xC5 | 0x17 |
| | 24 | 0-255 | 0x33 | 0x65 | 0xC3 | 0x18 |
| | 25 | 0-255 | 0x34 | 0x64 | 0xBC | 0x19 |
| | 26 | 0-255 | 0x35 | 0x63 | 0xBA | 0x1A |
| | 27 | 0-255 | 0x36 | 0x62 | 0xB9 | 0x1B |
| | 28 | 0-255 | 0x39 | 0x61 | 0xB6 | 0x1C |
| | 29 | 0-255 | 0x3A | 0x60 | 0xB5 | 0x1D |
| | 30 | 0-255 | 0x3C | 0x5F | 0xB4 | 0x1E |
| | 31 | 0-255 | 0x43 | 0x5E | 0xB3 | 0x1F |
| | 32 | 0-255 | 0x45 | 0x5D | 0xB2 | 0x20 |
| | 33 | 0-255 | 0x46 | 0x5C | 0xB1 | 0x21 |
| | 34 | 0-255 | 0x47 | 0x5B | 0xAE | 0x22 |
| | 35 | 0-255 | 0x49 | 0x5A | 0xAD | 0x23 |
| | 36 | 0-255 | 0x4A | 0x59 | 0xAC | 0x24 |
| | 37 | 0-255 | 0x4B | 0x58 | 0xAB | 0x25 |
| | 38 | 0-255 | 0x4C | 0x57 | 0xAA | 0x26 |
| | 39 | 0-255 | 0x4D | 0x56 | 0xA9 | 0x27 |
| | 40 | 0-255 | 0x4E | 0x55 | 0xA7 | 0x28 |
| | 41 | 0-255 | 0x51 | 0x54 | 0xA6 | 0x29 |
| | 42 | 0-255 | 0x52 | 0x53 | 0xA5 | 0x2A |
| | 43 | 0-255 | 0x53 | 0x52 | 0xA3 | 0x2B |
| | 44 | 0-255 | 0x54 | 0x51 | 0x9F | 0x2C |
| | 45 | 0-255 | 0x55 | 0x50 | 0x9E | 0x2D |
| | 46 | 0-255 | 0x56 | 0x4F | 0x9D | 0x2E |
| | 47 | 0-255 | 0x59 | 0x4E | 0x9B | 0x2F |
| | 48 | 0-255 | 0x5A | 0x4D | 0x98 | 0x30 |
| | 49 | 0-255 | 0x5C | 0x4C | 0x97 | 0x31 |
| | 50 | 0-255 | 0x63 | 0x4B | 0x90 | 0x32 |
| | 51 | 0-255 | 0x65 | 0x4A | 0x8F | 0x33 |
| | 52 | 0-255 | 0x66 | 0x49 | 0x88 | 0x34 |
| | 53 | 0-255 | 0x67 | 0x48 | 0x84 | 0x35 |
| | 54 | 0-255 | 0x69 | 0x47 | 0x82 | 0x36 |
| | 55 | 0-255 | 0x6A | 0x46 | 0x81 | 0x37 |
| | 56 | 0-255 | 0x6B | 0x45 | 0x80 | 0x38 |
| | 57 | 0-255 | 0x6C | 0x44 | 0x7C | 0x39 |
| | 58 | 0-255 | 0x6D | 0x43 | 0x7A | 0x3A |
| | 59 | 0-255 | 0x6E | 0x42 | 0x79 | 0x3B |
| | 60 | 0-255 | 0x71 | 0x41 | 0x76 | 0x3C |
| | 61 | 0-255 | 0x72 | 0x40 | 0x75 | 0x3D |
| | 62 | 0-255 | 0x73 | 0x3F | 0x74 | 0x3E |
| | 63 | 0-255 | 0x74 | 0x3E | 0x73 | 0x3F |
| | 64 | 0-255 | 0x75 | 0x3D | 0x72 | 0x40 |
| | 65 | 0-255 | 0x76 | 0x3C | 0x71 | 0x41 |
| | 66 | 0-255 | 0x79 | 0x3B | 0x6E | 0x42 |
| | 67 | 0-255 | 0x7A | 0x3A | 0x6D | 0x43 |
| | 68 | 0-255 | 0x7C | 0x39 | 0x6C | 0x44 |
| | 69 | 0-255 | 0x80 | 0x38 | 0x6B | 0x45 |
| | 70 | 0-255 | 0x81 | 0x37 | 0x6A | 0x46 |
| | 71 | 0-255 | 0x82 | 0x36 | 0x69 | 0x47 |
| | 72 | 0-255 | 0x84 | 0x35 | 0x67 | 0x48 |
| | 73 | 0-255 | 0x88 | 0x34 | 0x66 | 0x49 |
| | 74 | 0-255 | 0x8F | 0x33 | 0x65 | 0x4A |
| | 75 | 0-255 | 0x90 | 0x32 | 0x63 | 0x4B |
| | 76 | 0-255 | 0x97 | 0x31 | 0x5C | 0x4C |
| | 77 | 0-255 | 0x98 | 0x30 | 0x5A | 0x4D |
| | 78 | 0-255 | 0x9B | 0x2F | 0x59 | 0x4E |
| | 79 | 0-255 | 0x9D | 0x2E | 0x56 | 0x4F |
| | 80 | 0-255 | 0x9E | 0x2D | 0x55 | 0x50 |
| | 81 | 0-255 | 0x9F | 0x2C | 0x54 | 0x51 |
| | 82 | 0-255 | 0xA3 | 0x2B | 0x53 | 0x52 |
| | 83 | 0-255 | 0xA5 | 0x2A | 0x52 | 0x53 |
| | 84 | 0-255 | 0xA6 | 0x29 | 0x51 | 0x54 |
| | 85 | 0-255 | 0xA7 | 0x28 | 0x4E | 0x55 |
| | 86 | 0-255 | 0xA9 | 0x27 | 0x4D | 0x56 |
| | 87 | 0-255 | 0xAA | 0x26 | 0x4C | 0x57 |
| | 88 | 0-255 | 0xAB | 0x25 | 0x4B | 0x58 |
| | 89 | 0-255 | 0xAC | 0x24 | 0x4A | 0x59 |
| | 90 | 0-255 | 0xAD | 0x23 | 0x49 | 0x5A |
| | 91 | 0-255 | 0xAE | 0x22 | 0x47 | 0x5B |
| | 92 | 0-255 | 0xB1 | 0x21 | 0x46 | 0x5C |
| | 93 | 0-255 | 0xB2 | 0x20 | 0x45 | 0x5D |
| | 94 | 0-255 | 0xB3 | 0x1F | 0x43 | 0x5E |
| | 95 | 0-255 | 0xB4 | 0x1E | 0x3C | 0x5F |
| | 96 | 0-255 | 0xB5 | 0x1D | 0x3A | 0x60 |
| | 97 | 0-255 | 0xB6 | 0x1C | 0x39 | 0x61 |
| | 98 | 0-255 | 0xB9 | 0x1B | 0x36 | 0x62 |
| | 99 | 0-255 | 0xBA | 0x1A | 0x35 | 0x63 |
| | 100 | 0-255 | 0xBC | 0x19 | 0x34 | 0x64 |
| | 101 | 0-255 | 0xC3 | 0x18 | 0x33 | 0x65 |
| | 102 | 0-255 | 0xC5 | 0x17 | 0x32 | 0x66 |
| | 103 | 0-255 | 0xC6 | 0x16 | 0x31 | 0x67 |
| | 104 | 0-255 | 0xC7 | 0x15 | 0x2E | 0x68 |
| | 105 | 0-255 | 0xC9 | 0x14 | 0x2D | 0x69 |
| | 106 | 0-255 | 0xCA | 0x13 | 0x2C | 0x6A |
| | 107 | 0-255 | 0xCB | 0x12 | 0x2B | 0x6B |
| | 108 | 0-255 | 0xCC | 0x11 | 0x2A | 0x6C |
| | 109 | 0-255 | 0xCD | 0x10 | 0x29 | 0x6D |
| | 110 | 0-255 | 0xCE | 0x0F | 0x27 | 0x6E |
| | 111 | 0-255 | 0xD1 | 0x0E | 0x26 | 0x6F |
| | 112 | 0-255 | 0xD2 | 0x0D | 0x25 | 0x70 |
| | 113 | 0-255 | 0xD3 | 0x0C | 0x23 | 0x71 |
| | 114 | 0-255 | 0xD4 | 0x0B | 0x1F | 0x72 |
| | 115 | 0-255 | 0xD5 | 0x0A | 0x1E | 0x73 |
| | 116 | 0-255 | 0xD6 | 0x09 | 0x1D | 0x74 |
| | 117 | 0-255 | 0xD9 | 0x08 | 0x1B | 0x75 |
| | 118 | 0-255 | 0xDA | 0x07 | 0x18 | 0x76 |
| | 119 | 0-255 | 0xDC | 0x06 | 0x17 | 0x77 |
| | 120 | 0-255 | 0xE0 | 0x05 | 0x10 | 0x78 |
| | 121 | 0-255 | 0xE1 | 0x04 | 0x0F | 0x79 |
| | 122 | 0-255 | 0xE2 | 0x03 | 0x08 | 0x7A |
| | 123 | 0-255 | 0xE4 | 0x02 | 0x04 | 0x7B |
| | 124 | 0-255 | 0xE8 | 0x01 | 0x02 | 0x7C |
| | 125 | 0-255 | 0xEF | 0x00 | 0x01 | 0x7D |
| | 126 | 0-255 | NONE | NONE | NONE | NONE |
| | 127 | 0-255 | NONE | NONE | NONE | NONE |
---------------------------------------------------------------------------
* Note: Use this translation if registry ScanDown = 0 (default)
** Note: Use this translation if registry ScanDown = 1
*** Note: If bit 9 of EmulexOption =0;, then device addressing starts with
Bus #0, not #1
- end -
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.