;
; Installation INF for the QLogic BR-series Fibre Channel Adapter
; (c) COPYRIGHT 2005-2013 Brocade Communications Inc, ALL RIGHTS RESERVED.
; (c) COPYRIGHT 2014 QLogic Corporation, ALL RIGHTS RESERVED.
;

[Version]
Signature="$Windows NT$"
Provider=%MfgName%
ClassGUID={4D36E97B-E325-11CE-BFC1-08002BE10318}
Class=SCSIAdapter
DriverVer=02/14/2015,3.2.26.1

;
; Source file information
;

[SourceDisksNames]
3426 = windows cd

[SourceDisksFiles]
bfadi.sys = 3426

[SourceDisksFiles.amd64]
bfadi.sys = 3426

[DestinationDirs]
;
;[file-list-section=dirid[,subdir]]
;
DefaultDestDir   = 12	; %windir%\system32\drivers directory on NT-based systems

;
; Driver information
;

[Manufacturer]
;
; The manufacturer-identifier for the HBA device.
;
%MfgName%   = BrcdModelsSection, NTx86, NTamd64

[BrcdModelsSection.NTx86]
%CrossbowFC.DeviceDesc% = BrcdCBInstallSection.NTx86, PCI\%VENDOR_ID%&%DEVICE_ID_CBW_2PORT%&%CLASS_CODE%
%Ct2FC.DeviceDesc% = BrcdCt2InstallSection.NTx86, PCI\%VENDOR_ID%&%DEVICE_ID_CT2_FC%&%CT2_FC_SUBSYS_ID%
%CatapultFC.DeviceDesc% = BrcdCatapultInstallSection.NTx86, PCI\%VENDOR_ID%&%DEVICE_ID_CT_FC%&%CLASS_CODE%
%CrossbowFCfilter.DeviceDesc% = BrcdCBInstallSection.NTx86, PCI\%VENDOR_ID%&%DEVICE_ID_CBW_1PORT%&%CLASS_CODE%
%CrossbowFC.DeviceDesc% = BrcdCBInstallSection.NTx86, PCI\%VENDOR_ID%&%DEVICE_ID_CBW_2PORT%&%SUBSYSTEM_ID%
%CrossbowFCfilter.DeviceDesc% = BrcdCBInstallSection.NTx86, PCI\%VENDOR_ID%&%DEVICE_ID_CBW_1PORT%&%SUBSYSTEM_ID%

[BrcdModelsSection.NTamd64]
%CrossbowFC.DeviceDesc% = BrcdCBInstallSection.NTamd64, PCI\%VENDOR_ID%&%DEVICE_ID_CBW_2PORT%&%CLASS_CODE%
%Ct2FC.DeviceDesc% = BrcdCt2InstallSection.NTamd64, PCI\%VENDOR_ID%&%DEVICE_ID_CT2_FC%&%CT2_FC_SUBSYS_ID%
%CatapultFC.DeviceDesc% = BrcdCatapultInstallSection.NTamd64, PCI\%VENDOR_ID%&%DEVICE_ID_CT_FC%&%CLASS_CODE%
%CrossbowFCfilter.DeviceDesc% = BrcdCBInstallSection.NTamd64, PCI\%VENDOR_ID%&%DEVICE_ID_CBW_1PORT%&%CLASS_CODE%
%CrossbowFC.DeviceDesc% = BrcdCBInstallSection.NTamd64, PCI\%VENDOR_ID%&%DEVICE_ID_CBW_2PORT%&%SUBSYSTEM_ID%
%CrossbowFCfilter.DeviceDesc% = BrcdCBInstallSection.NTamd64, PCI\%VENDOR_ID%&%DEVICE_ID_CBW_1PORT%&%SUBSYSTEM_ID%

[ControlFlags]
ExcludeFromSelect = PCI\%VENDOR_ID%&%DEVICE_ID_CBW_2PORT%&%CLASS_CODE%
ExcludeFromSelect = PCI\%VENDOR_ID%&%DEVICE_ID_CBW_1PORT%&%CLASS_CODE%
ExcludeFromSelect = PCI\%VENDOR_ID%&%DEVICE_ID_CT2_FC%&%CT2_FC_SUBSYS_ID%
ExcludeFromSelect = PCI\%VENDOR_ID%&%DEVICE_ID_CT_FC%&%CLASS_CODE%
ExcludeFromSelect = PCI\%VENDOR_ID%&%DEVICE_ID_CBW_2PORT%&%SUBSYSTEM_ID%
ExcludeFromSelect = PCI\%VENDOR_ID%&%DEVICE_ID_CBW_1PORT%&%SUBSYSTEM_ID%

;
; Upper Filter
;
[BrcdCBInstallSection.NTx86.HW]
Needs = BrcdInstallSection_2k8.HW

[BrcdCBInstallSection.NTamd64.HW]
Needs = BrcdInstallSection_2k8.HW

[BrcdCatapultCopyfiles]
bfadi.sys

[BrcdCbwCopyfiles]
bfadi.sys

[BrcdCBInstallSection.NTx86]
Needs=BrcdInstallSection_2k8
CopyFiles=BrcdCbwCopyfiles

[BrcdCBInstallSection.NTamd64]
Needs=BrcdInstallSection_2k8
CopyFiles=BrcdCbwCopyfiles

[BrcdCBInstallSection.NTx86.Services]
Needs=BrcdInstallSection_2k8.Services

[BrcdCBInstallSection.NTamd64.Services]
Needs=BrcdInstallSection_2k8.Services

;
; Device installation section

[BrcdInstallSection_2k8]
AddReg=BrcdAddRegSection_Common

[BrcdInstallSection_2k8.HW]
Include = machine.inf
Needs   = PciIoSpaceNotRequired
AddReg=BrcdHwAddRegSection

[BrcdInstallSection_2k8.Services]
AddService = bfadi, %SPSVCINST_ASSOCSERVICE%, BrcdServiceInstallSection, BrcdEventLogInstallSection

[BrcdCatapultInstallSection.NTx86]
AddReg=BrcdAddRegSection_Common
CopyFiles=BrcdCatapultCopyfiles

[BrcdCatapultInstallSection.NTamd64]
AddReg=BrcdAddRegSection_Common
CopyFiles=BrcdCatapultCopyfiles

[BrcdCatapultInstallSection.NTx86.HW]
AddReg=BrcdHwAddRegSection, BrcdCtFcHwAddRegSection

[BrcdCatapultInstallSection.NTamd64.HW]
AddReg=BrcdHwAddRegSection, BrcdCtFcHwAddRegSection

[BrcdCatapultInstallSection.NTx86.Services]
AddService = bfadi, %SPSVCINST_ASSOCSERVICE%, BrcdServiceInstallSection, BrcdEventLogInstallSection

[BrcdCatapultInstallSection.NTamd64.Services]
AddService = bfadi, %SPSVCINST_ASSOCSERVICE%, BrcdServiceInstallSection, BrcdEventLogInstallSection

[BrcdCt2InstallSection.NTx86]
AddReg=BrcdAddRegSection_Common
CopyFiles=BrcdCatapultCopyfiles

[BrcdCt2InstallSection.NTamd64]
AddReg=BrcdAddRegSection_Common
CopyFiles=BrcdCatapultCopyfiles

[BrcdCt2InstallSection.NTx86.HW]
AddReg=BrcdHwAddRegSection, BrcdCtFcHwAddRegSection

[BrcdCt2InstallSection.NTamd64.HW]
AddReg=BrcdHwAddRegSection, BrcdCtFcHwAddRegSection

[BrcdCt2InstallSection.NTx86.Services]
AddService = bfadi, %SPSVCINST_ASSOCSERVICE%, BrcdServiceInstallSection, BrcdEventLogInstallSection

[BrcdCt2InstallSection.NTamd64.Services]
AddService = bfadi, %SPSVCINST_ASSOCSERVICE%, BrcdServiceInstallSection, BrcdEventLogInstallSection

[BrcdServiceInstallSection]
ServiceType    = %SERVICE_KERNEL_DRIVER%
StartType      = %SERVICE_BOOT_START%
ErrorControl   = %SERVICE_ERROR_NORMAL%
ServiceBinary  = %12%\bfadi.sys			; %windir%\system32\Drivers\<DriverName>.sys
LoadOrderGroup = SCSI miniport
AddReg         = pnpsafe_pci_addreg
AddReg         = bustype_addreg

[BrcdEventLogInstallSection]
AddReg = Brocade_EventLog_AddReg

[Brocade_EventLog_AddReg]
HKR,,EventMessageFile,%REG_EXPAND_SZ%,"%%SystemRoot%%\System32\drivers\bfadi.sys;%%SystemRoot%%\System32\IoLogMsg.dll"
HKR,,TypesSupported,%REG_DWORD%,7

[pnpsafe_pci_addreg]
HKR, "Parameters\PnpInterface", "5", %REG_DWORD%, 0x00000001

[bustype_addreg]
HKR, "Parameters", "BusType", %REG_DWORD%, 0x00000006

[BrcdAddRegSection_Common]
;
; Driver specific parameters
;
HKLM,SYSTEM\CurrentControlSet\Services\bfadi\Parameters\Device,BusType,%REG_DWORD%,0x00000006                       ; BusType is FC
;HKLM,SYSTEM\CurrentControlSet\Services\bfadi\Parameters\Device,bfa_ioc_queue_depth,%REG_DWORD_NO_CLOBBER%,1024
HKLM,SYSTEM\CurrentControlSet\Services\bfadi\Parameters\Device,bfa_lun_queue_depth,%REG_DWORD_NO_CLOBBER%,0x20
HKLM,SYSTEM\CurrentControlSet\Services\bfadi\Parameters\Device,bfa_max_xfer_len,%REG_DWORD_NO_CLOBBER%,2048
HKLM,SYSTEM\CurrentControlSet\Services\bfadi\Parameters\Device,ioc_auto_recover,%REG_DWORD_NO_CLOBBER%,0x1
HKLM,SYSTEM\CurrentControlSet\Services\bfadi\Parameters\Device,reqq_size,%REG_DWORD_NO_CLOBBER%,%BRCD_REQQ_SIZE%
HKLM,SYSTEM\CurrentControlSet\Services\bfadi\Parameters\Device,rspq_size,%REG_DWORD_NO_CLOBBER%,%BRCD_RSPQ_SIZE%
HKLM,SYSTEM\CurrentControlSet\Services\bfadi\Parameters\Device,rport_del_timeout,%REG_DWORD_NO_CLOBBER%,90
HKLM,SYSTEM\CurrentControlSet\Services\bfadi\Parameters\Device,pbind_enable,%REG_DWORD_NO_CLOBBER%,0x1
HKLM,SYSTEM\CurrentControlSet\Services\bfadi\Parameters\Device,fdmi_enable,%REG_DWORD_NO_CLOBBER%,0x1
HKLM,SYSTEM\CurrentControlSet\Services\bfadi\Parameters, IoTimeoutValue, %REG_DWORD%, 0x3C	; the adapter specific disk I/O timeout value
HKLM,SYSTEM\CurrentControlSet\Services\bfadi\Parameters\Device,msix_disable,%REG_DWORD%,0
HKLM,SYSTEM\CurrentControlSet\Services\bfadi\Parameters\Device,perf_opts,%REG_DWORD%,0x5	; DPC and InterruptRedirection

[BrcdHwAddRegSection]
HKR,"Interrupt Management", , 0x00000010
HKR,"Interrupt Management\MessageSignaledInterruptProperties", , 0x00000010
HKR,"Interrupt Management\MessageSignaledInterruptProperties", MSISupported, %REG_DWORD%, 1
HKR,"Interrupt Management\MessageSignaledInterruptProperties", MessageNumberLimit, %REG_DWORD%, 22
HKR,"Interrupt Management\Affinity Policy", , 0x00000010
HKR,"Interrupt Management\Affinity Policy", DevicePolicy, %REG_DWORD%, 5

[BrcdCtFcHwAddRegSection]
HKR,"Interrupt Management\MessageSignaledInterruptProperties", MessageNumberLimit, %REG_DWORD%, 9

[Strings]
;
; Localizable Strings
;
DiskDesc = "QLogic BR-series 4G/8G/16G FC HBA Driver Installation Disk"
CatapultFC.DeviceDesc = "QLogic BR-804 8G Mezzanine FC HBA"
CatapultFC.SvcDesc = "QLogic BR-804 8G Mezzanine FC HBA driver"
Ct2FC.DeviceDesc = "QLogic BR-series 16G FC HBA"
Ct2FC.SvcDesc = "QLogic BR-series 16G FC HBA driver"
CrossbowFC.DeviceDesc = "QLogic BR-425/825 4G/8G FC HBA"
CrossbowFC.SvcDesc = "QLogic BR-425/825 4G/8G FC HBA driver"
CrossbowFCfilter.DeviceDesc = "QLogic BR-415/815 4G/8G FC HBA"
CrossbowFCfilter.SvcDesc = "QLogic BR-415/815 4G/8G FC HBA filter driver"
MfgName = "QLogic Corporation"
PkgName = "QLogic BR-series 4G/8G/16G FC HBA"

;
; Non-Localizable Strings
;
REG_SZ                  = 0x00000000		; Default flag
REG_SZ_NO_CLOBBER       = 0x00000002
REG_DWORD               = 0x00010001
REG_DWORD_NO_CLOBBER    = 0x00010003
REG_MULTI_SZ            = 0x00010000
REG_EXPAND_SZ           = 0x00020000

SERVICE_KERNEL_DRIVER   = 1
SPSVCINST_ASSOCSERVICE  = 0x00000002
SERVICE_BOOT_START      = 0
SERVICE_SYSTEM_START    = 1
SERVICE_DEMAND_START    = 3
SERVICE_ERROR_NORMAL    = 1
SERVICE_ERROR_CRITICAL  = 3

VENDOR_ID               = "VEN_1657"
DEVICE_ID_CBW_2PORT     = "DEV_0013"
DEVICE_ID_CBW_1PORT     = "DEV_0017"
DEVICE_ID_CT_FC         = "DEV_0021"
DEVICE_ID_CT2_FC        = "DEV_0022"
CLASS_CODE              = "CC_0C0400"
SUBSYSTEM_ID            = "SUBSYS_00141657"
CT2_FC_SUBSYS_ID        = "SUBSYS_00241657"

BRCD_DEVICE_QUEUE_DEPTH         = 64
BRCD_REQQ_SIZE                  = 512
BRCD_RSPQ_SIZE               	= 512
;BRCD_MAX_SGPG                  = 2048
;BRCD_MAX_TARGETS               = 256       ; Windows allows an IOC to support up to 1024 targets (8 buses, 128 targets on each)
;BRCD_MAX_LUNS                  = 255
;BRCD_MAX_OUTSTANDING_COMMANDS  = 2048


