;*******************************************************************************
;*
;*  File:                     Oxpci.inf
:*
;*  Copyright (C) 2006 Oxford Semiconductor Ltd.
;*
;*  Description:
;*      Multifunction installer for OXPCI products (Win9x/Win2000)
;*      Loads the enumerators, which create the child devnodes
;*
;*
;*
;*******************************************************************************

[Version]
Signature=$CHICAGO$
Class=MultiFunction
ClassGuid={4D36E971-E325-11CE-BFC1-08002BE10318}
Provider=%mfg%
CatalogFile=Oxpci.cat
DriverVer=01/24/2007, 6.5.1.5


[DestinationDirs]
Null.NT.Copy   = 12      ; LDID_DRIVER
Null.NT64.Copy = 12      ; LDID_DRIVER

Drv.NT.Copy    = 12      ; LDID_DRIVER
Drv.NT64.Copy  = 12      ; LDID_DRIVER

dll.NT.Copy    = 11      ; LDID_SYS
dll.NT64.Copy  = 11      ; LDID_SYS

Inf.Copy       = 17      ; LDID_INF



;-------------------------------------------------------------------------------
;                    Install class "Multifunction"
;-------------------------------------------------------------------------------
[ClassInstall]
AddReg=MF_Class.AddReg

[MF_Class.AddReg]
HKR,,,,%MF_ClassName%

[ClassInstall32.NT]
AddReg=MF_Class.NT.AddReg

[ClassInstall32.NTAMD64]
AddReg=MF_Class.NT.AddReg

[MF_Class.NT.AddReg]
HKR,,,,%MF_ClassName%
HKR,,Class,,"MultiFunction"
HKR,,NoInstallClass,,"1"

[ControlFlags]
ExcludeFromSelect=PCI\VEN_1415&DEV_9504
ExcludeFromSelect=PCI\VEN_1415&DEV_9505
ExcludeFromSelect=PCI\VEN_1415&DEV_9501
ExcludeFromSelect=PCI\VEN_1415&DEV_9511
ExcludeFromSelect=PCI\VEN_1415&DEV_9521
ExcludeFromSelect=PCI\VEN_1415&DEV_950A
ExcludeFromSelect=PCI\VEN_1415&DEV_950B
ExcludeFromSelect=PCI\VEN_1415&DEV_8401
ExcludeFromSelect=PCI\VEN_1415&DEV_9512
ExcludeFromSelect=PCI\VEN_1415&DEV_9510
ExcludeFromSelect=PCI\VEN_1415&DEV_9538
ExcludeFromSelect=PCMCIA\PC_CARD-GENERIC-1748
; E2PROMless compact Flash Test Board (D024H01) Rev 1.0
ExcludeFromSelect=PCMCIA\CF_CARD-GENERIC-B012



;-------------------------------------------------------------------------------
;                         Supporting Device List
;-------------------------------------------------------------------------------
; Note: %Card0.DeviceDesc% = CF_950, PCMCIA\CF_CARD-GENERIC-B012
;       => E2PROMless compact Flash Test Board (D024H01) Rev 1.0
;-------------------------------------------------------------------------------
[Manufacturer]
%mfg%=mfg,NTAMD64

;List of available devices
[mfg]
%PCI\VEN_1415&DEV_9504.DeviceDesc% = PCI_9504, PCI\VEN_1415&DEV_9504
%PCI\VEN_1415&DEV_9505.DeviceDesc% = PCI_9505, PCI\VEN_1415&DEV_9505
%PCI\VEN_1415&DEV_9501.DeviceDesc% = PCI_9501, PCI\VEN_1415&DEV_9501
%PCI\VEN_1415&DEV_9511.DeviceDesc% = PCI_9511, PCI\VEN_1415&DEV_9511
%PCI\VEN_1415&DEV_950A.DeviceDesc% = PCI_950A, PCI\VEN_1415&DEV_950A
%PCI\VEN_1415&DEV_950B.DeviceDesc% = PCI_950B, PCI\VEN_1415&DEV_950B
%PCI\VEN_1415&DEV_8401.DeviceDesc% = PCI_8401, PCI\VEN_1415&DEV_8401
%PCI\VEN_1415&DEV_9521.DeviceDesc% = PCI_9521, PCI\VEN_1415&DEV_9521

%PCI\VEN_1415&DEV_9512.DeviceDesc% = PCI_NULL, PCI\VEN_1415&DEV_9512
%PCI\VEN_1415&DEV_9500.DeviceDesc% = PCI_NULL, PCI\VEN_1415&DEV_9500
%PCI\VEN_1415&DEV_9510.DeviceDesc% = PCI_NULL, PCI\VEN_1415&DEV_9510

%PCI\VEN_135A&DEV_0881.DeviceDesc% = PCI_9508, PCI\VEN_1415&DEV_9538

%Card0.DeviceDesc% = CF_950, PCMCIA\PC_CARD-GENERIC-1748
; E2PROMless compact Flash Test Board (D024H01) Rev 1.0
%Card0.DeviceDesc% = CF_950, PCMCIA\CF_CARD-GENERIC-B012

;List of available devices
[mfg.NTAMD64]
%PCI\VEN_1415&DEV_9504.DeviceDesc% = PCI_9504, PCI\VEN_1415&DEV_9504
%PCI\VEN_1415&DEV_9505.DeviceDesc% = PCI_9505, PCI\VEN_1415&DEV_9505
%PCI\VEN_1415&DEV_9501.DeviceDesc% = PCI_9501, PCI\VEN_1415&DEV_9501
%PCI\VEN_1415&DEV_9511.DeviceDesc% = PCI_9511, PCI\VEN_1415&DEV_9511
%PCI\VEN_1415&DEV_950A.DeviceDesc% = PCI_950A, PCI\VEN_1415&DEV_950A
%PCI\VEN_1415&DEV_950B.DeviceDesc% = PCI_950B, PCI\VEN_1415&DEV_950B
%PCI\VEN_1415&DEV_8401.DeviceDesc% = PCI_8401, PCI\VEN_1415&DEV_8401
%PCI\VEN_1415&DEV_9521.DeviceDesc% = PCI_9521, PCI\VEN_1415&DEV_9521

%PCI\VEN_1415&DEV_9512.DeviceDesc% = PCI_NULL, PCI\VEN_1415&DEV_9512
%PCI\VEN_1415&DEV_9500.DeviceDesc% = PCI_NULL, PCI\VEN_1415&DEV_9500
%PCI\VEN_1415&DEV_9510.DeviceDesc% = PCI_NULL, PCI\VEN_1415&DEV_9510

%PCI\VEN_135A&DEV_0881.DeviceDesc% = PCI_9508, PCI\VEN_1415&DEV_9538

%Card0.DeviceDesc% = CF_950, PCMCIA\PC_CARD-GENERIC-1748
; E2PROMless compact Flash Test Board (D024H01) Rev 1.0
%Card0.DeviceDesc% = CF_950, PCMCIA\CF_CARD-GENERIC-B012



;-------------------------------------------------------------------------------
;                                PCI_NULL
;-------------------------------------------------------------------------------

[PCI_NULL.NT]
CopyFiles = Null.NT.Copy
DelReg    = DriverVer.DelReg
AddReg    = DriverVer.AddReg

[PCI_NULL.NTAMD64]
CopyFiles  = Null.NT64.Copy
DelReg     = DriverVer.DelReg
AddReg     = DriverVer.AddReg

[PCI_NULL.NT.Services]
AddService = oxmep, 0x00000002, oxmep_Service_Inst

[PCI_NULL.NTAMD64.Services]
AddService = oxmep, 0x00000002, oxmep_Service_Inst



;-------------------------------------------------------------------------------
;               Install OX16PCI954 unique bars internal UARTs
;-------------------------------------------------------------------------------
; 4 UARTs
;-------------------------------------------------------------------------------
[PCI_9504.NT]
CopyFiles = Drv.NT.Copy, dll.NT.Copy
DelReg    = DriverVer.DelReg
AddReg    = DriverVer.AddReg

[PCI_9504.NTAMD64]
CopyFiles = Drv.NT64.Copy, dll.NT64.Copy
DelReg    = DriverVer.DelReg
AddReg    = DriverVer.AddReg


[PCI_9504.NT.HW]
AddReg    = PCI_9504.NT.HW.AddReg

[PCI_9504.NTAMD64.HW]
AddReg    = PCI_9504.NT.HW.AddReg


[PCI_9504.NT.Services]
AddService = oxmf, 0x00000002, oxmf_Service_Inst

[PCI_9504.NTAMD64.Services]
AddService = oxmf, 0x00000002, oxmf_Service_Inst


[PCI_9504.NT.HW.AddReg]
HKR,,"OxsemiDeviceType", 0x00010001, 0x95040000



;-------------------------------------------------------------------------------
;                     Install OX16PCI958 internal UARTs
;-------------------------------------------------------------------------------
; 8 UARTs
;-------------------------------------------------------------------------------
[PCI_9508.NT]
CopyFiles  = Drv.NT.Copy, dll.NT.Copy
DelReg     = DriverVer.DelReg
AddReg     = DriverVer.AddReg

[PCI_9508.NTAMD64]
CopyFiles  = Drv.NT64.Copy, dll.NT64.Copy
DelReg     = DriverVer.DelReg
AddReg     = DriverVer.AddReg


[PCI_9508.NT.HW]
AddReg     = PCI_9508.NT.HW.AddReg

[PCI_9508.NTAMD64.HW]
AddReg     = PCI_9508.NT.HW.AddReg


[PCI_9508.NT.Services]
AddService = oxmf, 0x00000002, oxmf_Service_Inst

[PCI_9508.NTAMD64.Services]
AddService = oxmf, 0x00000002, oxmf_Service_Inst


[PCI_9508.NT.HW.AddReg]
HKR,,"OxsemiDeviceType", 0x00010001, 0x95380000



;-------------------------------------------------------------------------------
;               Install OX16PCI952 unique bars internal UARTs
;-------------------------------------------------------------------------------
; 2 UARTs
;-------------------------------------------------------------------------------
[PCI_9505.NT]
CopyFiles  = Drv.NT.Copy, dll.NT.Copy
DelReg     = DriverVer.DelReg
AddReg     = DriverVer.AddReg

[PCI_9505.NTAMD64]
CopyFiles  = Drv.NT64.Copy, dll.NT64.Copy
DelReg     = DriverVer.DelReg
AddReg     = DriverVer.AddReg


[PCI_9505.NT.HW]
AddReg     = PCI_9505.NT.HW.AddReg

[PCI_9505.NTAMD64.HW]
AddReg     = PCI_9505.NT.HW.AddReg


[PCI_9505.NT.Services]
AddService = oxmf, 0x00000002, oxmf_Service_Inst

[PCI_9505.NTAMD64.Services]
AddService = oxmf, 0x00000002, oxmf_Service_Inst


[PCI_9505.NT.HW.AddReg]
HKR,,"OxsemiDeviceType",    0x00010001, 0x95050000



;-------------------------------------------------------------------------------
;                    Install OX16PCI954 internal UARTs
;-------------------------------------------------------------------------------
; 4 UARTs
;-------------------------------------------------------------------------------
[PCI_9501.NT]
CopyFiles  = Drv.NT.Copy, dll.NT.Copy
DelReg     = DriverVer.DelReg
AddReg     = DriverVer.AddReg

[PCI_9501.NTAMD64]
CopyFiles  = Drv.NT64.Copy, dll.NT64.Copy
DelReg     = DriverVer.DelReg
AddReg     = DriverVer.AddReg


[PCI_9501.NT.HW]
AddReg     = PCI_9501.NT.HW.AddReg

[PCI_9501.NTAMD64.HW]
AddReg     = PCI_9501.NT.HW.AddReg

[PCI_9501.NT.Services]
AddService = oxmf, 0x00000002, oxmf_Service_Inst

[PCI_9501.NTAMD64.Services]
AddService = oxmf, 0x00000002, oxmf_Service_Inst


[PCI_9501.NT.HW.AddReg]
HKR,,"OxsemiDeviceType", 0x00010001, 0x95010000


;-------------------------------------------------------------------------------
;                            Install OXCB950 UARTs
;-------------------------------------------------------------------------------
[PCI_950B.NT]
CopyFiles = Drv.NT.Copy, dll.NT.Copy
DelReg    = DriverVer.DelReg
AddReg    = DriverVer.AddReg

[PCI_950B.NTAMD64]
CopyFiles = Drv.NT64.Copy, dll.NT64.Copy
DelReg    = DriverVer.DelReg
AddReg    = DriverVer.AddReg


[PCI_950B.NT.HW]
AddReg    = PCI_950B.NT.HW.AddReg

[PCI_950B.NTAMD64.HW]
AddReg    = PCI_950B.NT.HW.AddReg


[PCI_950B.NT.Services]
AddService = oxmf, 0x00000002, oxmf_Service_Inst

[PCI_950B.NTAMD64.Services]
AddService = oxmf, 0x00000002, oxmf_Service_Inst


[PCI_950B.NT.HW.AddReg]
HKR,,"OxsemiDeviceType",    0x00010001, 0x950B0000



;-------------------------------------------------------------------------------
;                      Install OX16PCI954 dual UART
;-------------------------------------------------------------------------------
; 2 UARTs
;-------------------------------------------------------------------------------
[PCI_950A.NT]
CopyFiles  = Drv.NT.Copy, dll.NT.Copy
DelReg     = DriverVer.DelReg
AddReg     = DriverVer.AddReg

[PCI_950A.NTAMD64]
CopyFiles  = Drv.NT64.Copy, dll.NT64.Copy
DelReg     = DriverVer.DelReg
AddReg     = DriverVer.AddReg


[PCI_950A.NT.HW]
AddReg     = PCI_950A.NT.HW.AddReg

[PCI_950A.NTAMD64.HW]
AddReg     = PCI_950A.NT.HW.AddReg


[PCI_950A.NT.Services]
AddService = oxmf, 0x00000002, oxmf_Service_Inst

[PCI_950A.NTAMD64.Services]
AddService = oxmf, 0x00000002, oxmf_Service_Inst


[PCI_950A.NT.HW.AddReg]
HKR,, "OxsemiDeviceType",   0x00010001, 0x95010000
HKR,, "OxsemiPortCount",    0x00010001, 2



;-------------------------------------------------------------------------------
;                    Install OX16PCI95x local bus UARTs
;-------------------------------------------------------------------------------
; 4 UARTs
;-------------------------------------------------------------------------------
[PCI_9511.NT]
CopyFiles  = Drv.NT.Copy, dll.NT.Copy
DelReg     = DriverVer.DelReg
AddReg     = DriverVer.AddReg

[PCI_9511.NTAMD64]
CopyFiles  = Drv.NT64.Copy, dll.NT64.Copy
DelReg     = DriverVer.DelReg
AddReg     = DriverVer.AddReg


[PCI_9511.NT.HW]
AddReg     = PCI_9511.NT.HW.AddReg

[PCI_9511.NTAMD64.HW]
AddReg     = PCI_9511.NT.HW.AddReg


[PCI_9511.NT.Services]
AddService = oxmf, 0x00000002, oxmf_Service_Inst

[PCI_9511.NTAMD64.Services]
AddService = oxmf, 0x00000002, oxmf_Service_Inst


[PCI_9511.NT.HW.AddReg]
HKR,, "OxsemiDeviceType",   0x00010001, 0x95110000



;-------------------------------------------------------------------------------
;                     Install OX9162 local bus UARTs
;-------------------------------------------------------------------------------
; 4 UARTs
;-------------------------------------------------------------------------------
[PCI_8401.NT]
CopyFiles  = Drv.NT.Copy, dll.NT.Copy
DelReg     = DriverVer.DelReg
AddReg     = DriverVer.AddReg

[PCI_8401.NTAMD64]
CopyFiles  = Drv.NT64.Copy, dll.NT64.Copy
DelReg     = DriverVer.DelReg
AddReg     = DriverVer.AddReg


[PCI_8401.NT.HW]
AddReg     = PCI_8401.NT.HW.AddReg

[PCI_8401.NTAMD64.HW]
AddReg     = PCI_8401.NT.HW.AddReg


[PCI_8401.NT.Services]
AddService = oxmf, 0x00000002, oxmf_Service_Inst

[PCI_8401.NTAMD64.Services]
AddService = oxmf, 0x00000002, oxmf_Service_Inst

[PCI_8401.NT.HW.AddReg]
HKR,, "OxsemiDeviceType",   0x00010001, 0x84010000



;-------------------------------------------------------------------------------
;                     Install PCI952 internal UARTs
;-------------------------------------------------------------------------------
; 2 UARTs
;-------------------------------------------------------------------------------
[PCI_9521.NT]
CopyFiles  = Drv.NT.Copy, dll.NT.Copy
DelReg     = DriverVer.DelReg
AddReg     = DriverVer.AddReg

[PCI_9521.NTAMD64]
CopyFiles  = Drv.NT64.Copy, dll.NT64.Copy
DelReg     = DriverVer.DelReg
AddReg     = DriverVer.AddReg

[PCI_9521.NT.HW]
AddReg     = PCI_9521.NT.HW.AddReg

[PCI_9521.NTAMD64.HW]
AddReg     = PCI_9521.NT.HW.AddReg


[PCI_9521.NT.Services]
AddService = oxmf, 0x00000002, oxmf_Service_Inst

[PCI_9521.NTAMD64.Services]
AddService = oxmf, 0x00000002, oxmf_Service_Inst


[PCI_9521.NT.HW.AddReg]
HKR,,"OxsemiDeviceType",    0x00010001, 0x95210000
;HKR,,"OxsemiOverrideBase0",    0x00010001, 0x2F8
;HKR,,"OxsemiOverrideBase1",    0x00010001, 0x3E8


;-------------------------------------------------------------------------------
;                        Install CF950 PCMCIA mode
;-------------------------------------------------------------------------------
; CF950(PCMCIA Mode) + C950
; 2 UARTs
; I/O base & IRQL is defined by LogConfigOrverride.
;-------------------------------------------------------------------------------
[CF_950]
;DriverVer=01/16/2007, 6.5.1.4
;CopyFiles=Drvcf.Copy, Inf.Copy
;AddReg=Drvcf.Reg
;DelReg=DriverVer.DelReg
;AddReg=DriverVer.AddReg
;LogConfig = cfconfig

[CF_950.NT]
CopyFiles = Drv.NT.Copy, dll.NT.Copy
DelReg    = DriverVer.DelReg
AddReg    = DriverVer.AddReg

[CF_950.NTAMD64]
CopyFiles = Drv.NT64.Copy, dll.NT64.Copy
DelReg    = DriverVer.DelReg
AddReg    = DriverVer.AddReg

[CF_950.NT.HW]
AddReg    = CF_950.NT.HW.AddReg

[CF_950.NTAMD64.HW]
AddReg    = CF_950.NT.HW.AddReg


[CF_950.NT.LogConfigOverride]
LogConfig = cfconfig

;[CF_950.NTAMD64.LogConfigOverride]
;LogConfig = cfconfig


[CF_950.NT.Services]
AddService = oxmf, 0x00000002, oxmf_Service_Inst

[CF_950.NTAMD64.Services]
AddService = oxmf, 0x00000002, oxmf_Service_Inst


[CF_950.NT.HW.AddReg]
HKR,, "OxsemiDeviceType",   0x00010001, 0x95CF0000


[cfconfig]
ConfigPriority = HARDRECONFIG;
;IOConfig=DFF0-DFFF     ; Use this line to fix the base address
IOConfig=10@100-ffff%fff0(3ff::)    
IRQConfig=LS:3,4,5,7,9,10,11,12,14,15
PcCardConfig=1(Z0)

[cfconfig.NT]              ; This is for CF950 PCMCIA mode in Win2000 only
ConfigPriority = HARDRECONFIG;
;IOConfig=DFF0-DFFF     ; Use this line to fix the base address
IOConfig=10@100-ffff%fff0(3ff::)    
IRQConfig=3,4,5,7,9,10,11,12,14,15
PcCardConfig=1(Z0)



;-------------------------------------------------------------------------------
;                     Install OxMF as function driver
;-------------------------------------------------------------------------------
[oxmf_Service_Inst]
DisplayName    = %oxmf_driverdescstring%
ServiceType    = 1               ; SERVICE_KERNEL_DRIVER
StartType      = 3               ; SERVICE_DEMAND_START
ErrorControl   = 0               ; SERVICE_ERROR_IGNORE
ServiceBinary  = %12%\oxmf.sys
LoadOrderGroup = Extended base


;-------------------------------------------------------------------------------
;                     Install OxMEP as function driver
;-------------------------------------------------------------------------------
[oxmep_Service_Inst]
DisplayName    = %oxmep_driverdescstring%
ServiceType    = 1               ; SERVICE_KERNEL_DRIVER
StartType      = 3               ; SERVICE_DEMAND_START
ErrorControl   = 0               ; SERVICE_ERROR_IGNORE
ServiceBinary  = %12%\oxmep.sys
LoadOrderGroup = Extended base



;-------------------------------------------------------------------------------
;                                Copy Files
;-------------------------------------------------------------------------------
[Drv.NT.Copy]
oxmf.sys
oxmfuf.sys
oxser.sys

[Drv.NT64.Copy]
oxmf.sys
oxmfuf.sys
oxser.sys

[Null.NT.Copy]
oxmep.sys

[Null.NT64.Copy]
oxmep.sys

[dll.NT.Copy]
oxui.dll

[dll.NT64.Copy]
oxui.dll

[Inf.Copy]
oxpci.inf
oxpci2.inf



;-------------------------------------------------------------------------------
;                     DriverVer.AddReg & DriverVer.DelReg
;-------------------------------------------------------------------------------
[DriverVer.AddReg]
HKR,,Ver,,%OXPCIVersion%

[DriverVer.DelReg]
HKR,,Ver



;-------------------------------------------------------------------------------
;                     SourceDisksName & SourceDiskFiles
;-------------------------------------------------------------------------------
[SourceDisksNames.x86]
1 = %DiskDescription_x86%

[SourceDisksNames.amd64]
1 = %DiskDescription_amd64%


[SourceDisksFiles.x86]
oxmf.sys   =1, x86
oxmfuf.sys =1, x86
oxmep.sys  =1, x86
oxpci.inf  =1, x86
oxpci2.inf =1, x86
oxser.sys  =1, x86
oxui.dll   =1, x86

[SourceDisksFiles.amd64]
oxmf.sys   =1, amd64
oxmfuf.sys =1, amd64
oxmep.sys  =1, amd64
oxpci.inf  =1, amd64
oxpci2.inf =1, amd64
oxser.sys  =1, amd64
oxui.dll   =1, amd64



;-------------------------------------------------------------------------------
;                                 Strings
;-------------------------------------------------------------------------------
[Strings]
mfg                                     = "(Enhanced ports)"
MF_ClassName                            = "Multifunction adapters"
drvDisk                                 = "High-performance ports driver disk"
OXPCIVersion                            = "6.5.1.4"
oxmf_driverdescstring                   = "OXPCI Bus enumerator"
oxmep_driverdescstring                  = "OXPCI support driver"

PCI\VEN_1415&DEV_9504.DeviceDesc        = "OX16PCI954 PCI UARTs (unique bars)"
PCI\VEN_1415&DEV_9538.DeviceDesc        = "OX16PCI958 PCI UARTs (unique bars)"
PCI\VEN_1415&DEV_9505.DeviceDesc        = "OX16PCI952 PCI UARTs (unique bars)"
PCI\VEN_1415&DEV_9501.DeviceDesc        = "OX16PCI954 PCI UARTs"
PCI\VEN_1415&DEV_9511.DeviceDesc        = "OX16PCI95x PCI bridge"
PCI\VEN_1415&DEV_9512.DeviceDesc        = "OX16PCI954 32-bit PCI bridge" 
PCI\VEN_1415&DEV_950A.DeviceDesc        = "OX16PCI954 Dual PCI UART"        
PCI\VEN_1415&DEV_950B.DeviceDesc        = "OXCB950 Cardbus UART"
PCI\VEN_1415&DEV_8401.DeviceDesc        = "OX9162 PCI bridge"
PCI\VEN_1415&DEV_9521.DeviceDesc        = "OX16PCI952 PCI UARTs"
PCI\VEN_1415&DEV_9500.DeviceDesc        = "PCI Function"
PCI\VEN_1415&DEV_9510.DeviceDesc        = "PCI Function"
PCI\VEN_135A&DEV_0881.DeviceDesc        = "OX16PCI958 PCI UARTs"
Card0.DeviceDesc                        = "PC Card OX16CF950"

DiskDescription_x86         = "Oxford Semiconductor UART 32-bit driver disk"
DiskDescription_amd64       = "Oxford Semiconductor UART 64-bit driver disk"

REG_SZ            = 0x00000000
REG_MULTI_SZ      = 0x00010000
REG_EXPAND_SE     = 0x00020000
REG_DWORD         = 0x00010001
