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.