Celerity FC Windows Registry Settings
-------- -- ------- -------- --------
CAUTION - Modifying your registry incorrectly may result in making your
machine unbootable. Please use care in editing the registry. This should
only be performed by users experienced with the registry editor.
NOTE - Some of the following requires knowledge of hexadecimal arithmetic and
a sense for basic SCSI command processing. For most users, the defaults
set by the adapter driver installation .INF file will suffice. "If it ain't
broke, don't fix it!"
A registry entry can be used to control various parameters and settings used
to control the initialization and operation of the Celerity FC adapter.
All of the parameters are DWORD values and are under the registry key
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ClrtyFC\Parameters\Device.
The following are the registry values.
/************************************************************/
/* */
/* ** NOTE ** */
/* */
/* All the registry entries apply to all installed adapters */
/* */
/************************************************************/
MaxLogins:
This variable defines the maximum number of ports that can
be logged in. Each logged in port requires 756 bytes of system
Cached memory if Target Mode is enabled, or 504 bytes if not.
Minimum 8, maximum 2048, default 256.
NumSest:
Number of entries in the SCSI Exchange State Table (SEST). One
of these structures is used per active Exchange, either Initiator
or Target Mode. Each SEST entry can accommodate an I/O request
of from 8 to 12 k, depending on buffer alignment. For I/O
requests over this limit, see SglPageSize and NumSgLists.
The default value for this is 256. Minimum value is 8, maximum
is 2048. Keep in mind that each entry occupies 64 bytes of
memory in the Uncached memory pool, which is a limited operating
system resource.
If the driver runs out of these structures, nothing bad happens;
commands sent to the driver are simply placed on a backup list
until structures are available. If you are trying to get the
highest level of performance, and your application(s) have a
large number of transfers outstanding at any given time,
you may want to try to increase this allocation to see if it has
any effect. Using the default value, the driver can handle 256
simultaneous SCSI commands without placing any commands on the
backup list.
NumImq:
Incoming Message Queue (IMQ) entries. Each entry requires 32
bytes in the system Uncached memory pool. Minimum 4, maximum
4096, default 256. These are used to report completion of I/O
requests and to notify the host driver of certain other kinds
of events detected by the hardware. If all of these become
used up, nothing bad happens; the hardware simply waits for
the host driver to acknowledge entries before reporting more
events.
NumErq:
Exchange Request Queue (ERQ) entries. Each entry requires 32
bytes in the system Uncached memory pool. Minimum 4, maximum
4096, default 256. In general, one ERQ entry is required for
each SEST entry. See comments for NumSest.
SglPageSize:
Scatter/Gather List (SGL) Page Size in number of S/G entries.
Each entry requires 8 bytes in the system Uncached memory pool.
Minimum 8, maximum 256, default 128. One entry is needed to
map each 4k of data transfer. SGL pages are only used when
the I/O request exceeds the 8-12k that can be handled directly
by the SEST entries. The last entry of each SGL page is
reserved for a link to the next page for a given data transfer.
So, for example, the default 32 entry page size means that each
page can map up to 31 x 4 = 124k bytes. If your application is
doing a lot of very large transfers, you may want to increase the
SGL page size and possibly reduce the number of SG Lists
(see NumSgLists).
NumSgLists:
Number of SGL pages. Each list contains SglPageSize x 4 bytes
in the system Uncached memory pool and 16 bytes in the Cached
memory pool. Minimum 4, maximum 2048, default 256. As usual,
if there are insufficient SGL pages, nothing bad happens unless
a single I/O request requires more than the available pool. As
long as no single I/O request requires more than the available
pool, see the comments for NumSest.
DisableBusChangeNotification:
A nonzero value causes the driver not to issue Bus Change
notifications to the OS. This applies to Windows 2000 and XP
only at the present time. We have found that some versions of
Windows 2000 do not handle these notifications well, and there
may be some other circumstances where the user may not want the
notifications. The default value is 0 (Bus Change notification
enabled).
ForceOrderedQueue:
A nonzero value in this registry value forces all Simple Queue
Tag requests to use Ordered Queue Tag requests. There are some
disk drives that don't respond well to a lot of Simple Queue Tag
requests. The only case we have seen where this was needed was
with certain disk drives with more than 16 initiators accessing
the drives simultaneously. The default value for this value
is 0.
EventLogMask:
For debugging purposes, it is possible to log events
in the WIndows Event Log. Events are classified by various
types. The value in this parameter determines what events
are logged. It is the sum of the desired Event Types to log.
The default value of this variable is 1, logging only
all fatal initialization errors. See the file events.txt for
a description of the EventLogMask bits and the events reported.
TargetMode:
Enables Target Mode support if the value is nonzero. The default
for this value is 0, disabling Target Mode support. Reinstalling
the driver DOES NOT reset this value.
Support for Target Mode requires specialized upper-level system
drivers that are application-specific.
NumXcb:
Number of simultaneous Exchanges that can be handled
in Target Mode. Each received SCSI command utilizes
one XCB. Each XCB requires 76 bytes of memory. The
default value is 512; minimum 64, maximum 2048.
Incoming commands above the set limit are dropped.
This value is disregarded if TargetMode is set to 0.
NumScb:
Number of simultaneous Sequences that can be handled
in Target Mode. When responding to a SCSI command,
the upper level driver will initiate one or more
Sequences (data transfer and/or completion status)
to process the command. Each SCB requires 168 bytes
of memory. The minimum is the setting for NumXcb;
maximum 2048. The default value is 1024. This
value is disregarded if TargetMode is set to 0.
MaxMemRead:
This variable defines the largest byte count used for a PCI
master Read command according to the following table.
0 = 512 2 = 2048
1 = 1024 3 = 4096
MaxWriteBurst:
This variable defines the maximum PCI burst used during PCI
Memory Write or Memory Write & Invalidate commands. The following
table describes the values encoded into this variable; the
default value is 7, corresponding to a maximum burst size of
4096 bytes. There are some video capture cards that may
depend on being able to gain access to the PCI bus on shorter
notice, so if you have performance problems with these cards,
you may consider playing with this value.
0 = 128 4 = 2048
1 = 246 5 = 4096
2 = 512 6 = 4096
3 = 1024 7 = 4096
MaxReadBurst:
This variable defines the maximum PCI burst used during PCI
Memory Reads or Memory Read Line commands. The following
table describes the values encoded into this variable; the
default value is 7, corresponding to a maximum burst size of
4096 bytes. There are some video capture cards that may
depend on being able to gain access to the PCI bus on shorter
notice, so if you have performance problems with these cards,
you may consider playing with this value.
0 = 128 4 = 2048
1 = 246 5 = 4096
2 = 512 6 = 4096
3 = 1024 7 = 4096
RetryCount:
Number of times to retry a request for a port that disappeared.
CacheLineZero:
A nonzero value causes the driver to set the PCI Cache Line Size
register to 0. We have seen cases where certain PCI-to-PCI
bridges cause poor performance under some circumstances. Setting
the PCI Cache Line Size register to 0 causes the chip to use
the PCI Read Multiple command instead of the Read Line command.
The default value is 0 (Cache Line Size remains set to its
system-initialized value).
MaximumSgList
This value, if present, specifies the maximum number of scatter/
gather list entries in any request. If the value is not present,
a value of 17 will be used. Each scatter/gather entry maps to
at least a 4k byte page. The default value of 17 can allow an
I/O request covering 65537 to 69632 bytes depending on buffer
alignment requirements. Two special values, 254 and 255 (hex FE
and FF) have special meanings. A value of 254 allows a transfer
size of 1 meg and a value of 255 allows transfer sizes limited
only by the NumSgLists and SglPageSize entries above. For
convenience, we have provided the exp-64k.reg, exp-256k.reg,
exp-1m.reg and exp-unl.reg registry files to allow the user to
set this value to allow 64k, 256k, 1 meg and "unlimited" transfer
sizes respectively.
If the entry is not present, a value of 17 will be used by the
operating system.
If there is a MaxXferSize entry (see below) and the calculated
value is greater than MaxXferSize, then the MaxXferSize value
will be used.
If there is no MaxXferSize entry and the calculated value is
greater than 8 megs, then the maximum transfer length will be
limited to 8 megs.
EnableFdmi
A nonzero value enables registration of the HBA and Port
Attributes with the Fabric Management Server if a connection
with a fabric switch is established. If this value is zero or
not present, Management Server registration is disabled.
MaximumNumberOfTargets
From a historical perspective, a SCSI bus can address only 8
devices on a narrow (8 bit) SCSI bus or 16 on a wide (16 bit)
SCSI bus. (There was a concept of a 32 bit SCSI bus that
nobody ever implemented where 32 devices could be addressed.)
Windows uses the SCSI model to accommodate Fibre Channel. Fibre
Channel can address virtually millions of devices in a Fabric
topology. To allow addressing of more devices than covered by
the standard SCSI model, special accommodations must be made.
By default Celerity will tell Windows that it can handle 32
targets on each SCSI bus. Combined with the default
NumberOfBusses of 8 described below, this allows Windows to
discover up to 255 targets per adapter.
The Celerity driver utilizes a Port Database to keep track of
logged in ports. As each device is logged in during device
discovery procedures, the Port Database is scanned for that
port's World Wide Port Name (WWPN. Once an entry is established
for a given WWPN, the port's address and other information is
always placed in that slot. When new ports are logged in that
have not been seen before, their information is simply placed in
the next unused database entry. When an I/O request is received
from the OS, the bus (PathId) and Target ID are combined to
index into the Port Database. Assuming that the addressed port
is logged in, the command is sent to the appropriate Fibre
Channel address.
The MaximumNumberOfTargets and NumberOfBusses registry entries
can be used to modify the mapping from SCSI address to Fibre
Channel address. The MaximumNumberOfTargets value can be set
as high as 128 or as low as 8. It should be noted that some
application programs that assume they are talking to a SCSI
adapter may have trouble with a value as high as 128 (or even
above 8), and also that some older versions of Windows may have
problems addressing past 32.
NumberOfBusses
See the description for MaximumNumberOfTargets above. Most
SCSI adapters address only one SCSI bus. However, to allow
for expanded Fibre Channel device addressability, by default
Celerity tells the OS that there are actually 8 busses connected
to the adapter. As stated above, this allows Celerity to
address as many as 255 devices using the default value for
MaximumNumberOfTargets.
NumberOfBusses can be set to any value from 1 through 8. The
mapping from SCSI address takes the bus number, multiplies by
MaximumNumberOfTargets, then adds the Target ID to get the index
into the Port Database, uniquely addressing a given device. By
setting NumberOfBusses to 8 and MaximumNumberOfTargets to 128,
up to 1023 devices can be addressed. Note, however, to address
this many devices, the MaxLogins value described above must be
increased to that value. (If the adapter has been set to
Discover By Node Name, and every device can have two ports
logged in, then MaxLogins should be twice NumberOfBusses times
MaximumNumberOfTargets.)
DisableInitiatorMode
A nonzero value in this entry disables Initiator mode. All
adapters will fail all SCSI initiator mode commands with a
Selection Timeout error.
MaxXferSize
Maximum data transfer size. The value, to be valid, must be
at least 69,632 (4096 * 17). If this value is not present or
not valid, it is assumed to be 8 megs. If the calculated
maximum transfer size based on MaximumSgList, SglPageSize and
NumSgLists is greater than this value, then the maximum transfer
size is limited to this value.
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.