1;/*++
2;
3;Module Name:
4;
5;    SLABVCP.INF
6;
7;    Copyright 2013-2016, Silicon Laboratories Inc.
8;
9;Abstract:
10;    Installation INF for Silicon Labs CP210x device
11;
12;--*/
13
14[Version]
15Signature="$WINDOWS NT$"
16Class=Ports
17ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318}
18Provider=%Provider%
19DriverVer=09/19/2016,6.7.4.261
20CatalogFile=slabvcp.cat
21PnpLockDown=1	; "a driver package should set PnpLockDown to 1" -- MSDN
22
23; ================= Device section =====================
24
25[Manufacturer]
26%ManufacturerName%=SiLabsModelsSection, NTx86.6.1, NTamd64.6.1, NTarm.10, NTarm64.10
27
28;Models section for installation of x86 driver on Windows 7 and above
29[SiLabsModelsSection.NTx86.6.1]
30%USB\VID_10C4&PID_EA60.DeviceDesc%      =SiLabsDDInstallSection.NTx86, USB\VID_10C4&PID_EA60		; USB\VID_v(4)&PID_d(4)
31%USB\VID_10C4&PID_EA63.DeviceDesc%      =SiLabsDDInstallSection.NTx86, USB\VID_10C4&PID_EA63
32%USB\VID_10C4&PID_EA70&Mi_00.DeviceDesc%=SiLabsDDInstallSection.NTx86, USB\VID_10C4&PID_EA70&Mi_00	; USB\VID_v(4)&PID_d(4)&MI_z(2)
33%USB\VID_10C4&PID_EA70&Mi_01.DeviceDesc%=SiLabsDDInstallSection.NTx86, USB\VID_10C4&PID_EA70&Mi_01
34%USB\VID_10C4&PID_EA71&Mi_00.DeviceDesc%=SiLabsDDInstallSection.NTx86, USB\VID_10C4&PID_EA71&Mi_00
35%USB\VID_10C4&PID_EA71&Mi_01.DeviceDesc%=SiLabsDDInstallSection.NTx86, USB\VID_10C4&PID_EA71&Mi_01
36%USB\VID_10C4&PID_EA71&Mi_02.DeviceDesc%=SiLabsDDInstallSection.NTx86, USB\VID_10C4&PID_EA71&Mi_02
37%USB\VID_10C4&PID_EA71&Mi_03.DeviceDesc%=SiLabsDDInstallSection.NTx86, USB\VID_10C4&PID_EA71&Mi_03
38%USB\VID_10C4&PID_EA7A&Mi_00.DeviceDesc%=SiLabsDDInstallSection.NTx86, USB\VID_10C4&PID_EA7A&Mi_00
39%USB\VID_10C4&PID_EA7A&Mi_01.DeviceDesc%=SiLabsDDInstallSection.NTx86, USB\VID_10C4&PID_EA7A&Mi_01
40%USB\VID_10C4&PID_EA7B&Mi_00.DeviceDesc%=SiLabsDDInstallSection.NTx86, USB\VID_10C4&PID_EA7B&Mi_00
41%USB\VID_10C4&PID_EA7B&Mi_01.DeviceDesc%=SiLabsDDInstallSection.NTx86, USB\VID_10C4&PID_EA7B&Mi_01
42%USB\VID_10C4&PID_EA7B&Mi_02.DeviceDesc%=SiLabsDDInstallSection.NTx86, USB\VID_10C4&PID_EA7B&Mi_02
43%USB\VID_10C4&PID_EA7B&Mi_03.DeviceDesc%=SiLabsDDInstallSection.NTx86, USB\VID_10C4&PID_EA7B&Mi_03
44
45;Models section for installation of x64 driver on Windows 7 and above
46[SiLabsModelsSection.NTamd64.6.1]
47%USB\VID_10C4&PID_EA60.DeviceDesc%      =SiLabsDDInstallSection.NTamd64, USB\VID_10C4&PID_EA60			; USB\VID_v(4)&PID_d(4)
48%USB\VID_10C4&PID_EA63.DeviceDesc%      =SiLabsDDInstallSection.NTamd64, USB\VID_10C4&PID_EA63
49%USB\VID_10C4&PID_EA70&Mi_00.DeviceDesc%=SiLabsDDInstallSection.NTamd64, USB\VID_10C4&PID_EA70&Mi_00	; USB\VID_v(4)&PID_d(4)&MI_z(2)
50%USB\VID_10C4&PID_EA70&Mi_01.DeviceDesc%=SiLabsDDInstallSection.NTamd64, USB\VID_10C4&PID_EA70&Mi_01
51%USB\VID_10C4&PID_EA71&Mi_00.DeviceDesc%=SiLabsDDInstallSection.NTamd64, USB\VID_10C4&PID_EA71&Mi_00
52%USB\VID_10C4&PID_EA71&Mi_01.DeviceDesc%=SiLabsDDInstallSection.NTamd64, USB\VID_10C4&PID_EA71&Mi_01
53%USB\VID_10C4&PID_EA71&Mi_02.DeviceDesc%=SiLabsDDInstallSection.NTamd64, USB\VID_10C4&PID_EA71&Mi_02
54%USB\VID_10C4&PID_EA71&Mi_03.DeviceDesc%=SiLabsDDInstallSection.NTamd64, USB\VID_10C4&PID_EA71&Mi_03
55%USB\VID_10C4&PID_EA7A&Mi_00.DeviceDesc%=SiLabsDDInstallSection.NTamd64, USB\VID_10C4&PID_EA7A&Mi_00
56%USB\VID_10C4&PID_EA7A&Mi_01.DeviceDesc%=SiLabsDDInstallSection.NTamd64, USB\VID_10C4&PID_EA7A&Mi_01
57%USB\VID_10C4&PID_EA7B&Mi_00.DeviceDesc%=SiLabsDDInstallSection.NTamd64, USB\VID_10C4&PID_EA7B&Mi_00
58%USB\VID_10C4&PID_EA7B&Mi_01.DeviceDesc%=SiLabsDDInstallSection.NTamd64, USB\VID_10C4&PID_EA7B&Mi_01
59%USB\VID_10C4&PID_EA7B&Mi_02.DeviceDesc%=SiLabsDDInstallSection.NTamd64, USB\VID_10C4&PID_EA7B&Mi_02
60%USB\VID_10C4&PID_EA7B&Mi_03.DeviceDesc%=SiLabsDDInstallSection.NTamd64, USB\VID_10C4&PID_EA7B&Mi_03
61
62;Models section for installation of arm driver on Windows 10 and above
63[SiLabsModelsSection.NTarm.10]
64%USB\VID_10C4&PID_EA60.DeviceDesc%      =SiLabsDDInstallSection.NTarm, USB\VID_10C4&PID_EA60		; USB\VID_v(4)&PID_d(4)
65%USB\VID_10C4&PID_EA63.DeviceDesc%      =SiLabsDDInstallSection.NTarm, USB\VID_10C4&PID_EA63
66%USB\VID_10C4&PID_EA70&Mi_00.DeviceDesc%=SiLabsDDInstallSection.NTarm, USB\VID_10C4&PID_EA70&Mi_00	; USB\VID_v(4)&PID_d(4)&MI_z(2)
67%USB\VID_10C4&PID_EA70&Mi_01.DeviceDesc%=SiLabsDDInstallSection.NTarm, USB\VID_10C4&PID_EA70&Mi_01
68%USB\VID_10C4&PID_EA71&Mi_00.DeviceDesc%=SiLabsDDInstallSection.NTarm, USB\VID_10C4&PID_EA71&Mi_00
69%USB\VID_10C4&PID_EA71&Mi_01.DeviceDesc%=SiLabsDDInstallSection.NTarm, USB\VID_10C4&PID_EA71&Mi_01
70%USB\VID_10C4&PID_EA71&Mi_02.DeviceDesc%=SiLabsDDInstallSection.NTarm, USB\VID_10C4&PID_EA71&Mi_02
71%USB\VID_10C4&PID_EA71&Mi_03.DeviceDesc%=SiLabsDDInstallSection.NTarm, USB\VID_10C4&PID_EA71&Mi_03
72%USB\VID_10C4&PID_EA7A&Mi_00.DeviceDesc%=SiLabsDDInstallSection.NTarm, USB\VID_10C4&PID_EA7A&Mi_00
73%USB\VID_10C4&PID_EA7A&Mi_01.DeviceDesc%=SiLabsDDInstallSection.NTarm, USB\VID_10C4&PID_EA7A&Mi_01
74%USB\VID_10C4&PID_EA7B&Mi_00.DeviceDesc%=SiLabsDDInstallSection.NTarm, USB\VID_10C4&PID_EA7B&Mi_00
75%USB\VID_10C4&PID_EA7B&Mi_01.DeviceDesc%=SiLabsDDInstallSection.NTarm, USB\VID_10C4&PID_EA7B&Mi_01
76%USB\VID_10C4&PID_EA7B&Mi_02.DeviceDesc%=SiLabsDDInstallSection.NTarm, USB\VID_10C4&PID_EA7B&Mi_02
77%USB\VID_10C4&PID_EA7B&Mi_03.DeviceDesc%=SiLabsDDInstallSection.NTarm, USB\VID_10C4&PID_EA7B&Mi_03
78
79;Models section for installation of arm64 driver on Windows 10 and above
80[SiLabsModelsSection.NTarm64.10]
81%USB\VID_10C4&PID_EA60.DeviceDesc%      =SiLabsDDInstallSection.NTarm64, USB\VID_10C4&PID_EA60			; USB\VID_v(4)&PID_d(4)
82%USB\VID_10C4&PID_EA63.DeviceDesc%      =SiLabsDDInstallSection.NTarm64, USB\VID_10C4&PID_EA63
83%USB\VID_10C4&PID_EA70&Mi_00.DeviceDesc%=SiLabsDDInstallSection.NTarm64, USB\VID_10C4&PID_EA70&Mi_00	; USB\VID_v(4)&PID_d(4)&MI_z(2)
84%USB\VID_10C4&PID_EA70&Mi_01.DeviceDesc%=SiLabsDDInstallSection.NTarm64, USB\VID_10C4&PID_EA70&Mi_01
85%USB\VID_10C4&PID_EA71&Mi_00.DeviceDesc%=SiLabsDDInstallSection.NTarm64, USB\VID_10C4&PID_EA71&Mi_00
86%USB\VID_10C4&PID_EA71&Mi_01.DeviceDesc%=SiLabsDDInstallSection.NTarm64, USB\VID_10C4&PID_EA71&Mi_01
87%USB\VID_10C4&PID_EA71&Mi_02.DeviceDesc%=SiLabsDDInstallSection.NTarm64, USB\VID_10C4&PID_EA71&Mi_02
88%USB\VID_10C4&PID_EA71&Mi_03.DeviceDesc%=SiLabsDDInstallSection.NTarm64, USB\VID_10C4&PID_EA71&Mi_03
89%USB\VID_10C4&PID_EA7A&Mi_00.DeviceDesc%=SiLabsDDInstallSection.NTarm64, USB\VID_10C4&PID_EA7A&Mi_00
90%USB\VID_10C4&PID_EA7A&Mi_01.DeviceDesc%=SiLabsDDInstallSection.NTarm64, USB\VID_10C4&PID_EA7A&Mi_01
91%USB\VID_10C4&PID_EA7B&Mi_00.DeviceDesc%=SiLabsDDInstallSection.NTarm64, USB\VID_10C4&PID_EA7B&Mi_00
92%USB\VID_10C4&PID_EA7B&Mi_01.DeviceDesc%=SiLabsDDInstallSection.NTarm64, USB\VID_10C4&PID_EA7B&Mi_01
93%USB\VID_10C4&PID_EA7B&Mi_02.DeviceDesc%=SiLabsDDInstallSection.NTarm64, USB\VID_10C4&PID_EA7B&Mi_02
94%USB\VID_10C4&PID_EA7B&Mi_03.DeviceDesc%=SiLabsDDInstallSection.NTarm64, USB\VID_10C4&PID_EA7B&Mi_03
95
96;DDInstall sections (one per x86, amd64, arm, arm64)
97; Note: If/as we are building a Universal driver package, we can not use a DefaultInstall section.
98[SiLabsDDInstallSection.NTx86]
99AddReg=silabser.AddReg
100CopyFiles=silabser.Files.Ext
101FeatureScore=0x40	; a single-byte hexadecimal number between 0x00 and 0xFF, A lower featurescore value specifies a better feature score rank, where 0x00 is the best feature score rank.
102
103[SiLabsDDInstallSection.NTamd64]
104AddReg=silabser.AddReg
105CopyFiles=silabser.Files.Ext
106FeatureScore=0x40	; a single-byte hexadecimal number between 0x00 and 0xFF, A lower featurescore value specifies a better feature score rank, where 0x00 is the best feature score rank.
107
108[SiLabsDDInstallSection.NTarm]
109AddReg=silabser.AddReg
110CopyFiles=silabser.Files.Ext
111FeatureScore=0x40	; a single-byte hexadecimal number between 0x00 and 0xFF, A lower featurescore value specifies a better feature score rank, where 0x00 is the best feature score rank.
112
113[SiLabsDDInstallSection.NTarm64]
114AddReg=silabser.AddReg
115CopyFiles=silabser.Files.Ext
116FeatureScore=0x40	; a single-byte hexadecimal number between 0x00 and 0xFF, A lower featurescore value specifies a better feature score rank, where 0x00 is the best feature score rank.
117
118
119;DDInstall.Services sections (one per x86, amd64, arm, arm64)
120; Note: If/as we are building a Universal driver package, we can not use a DefaultInstall.Services section.
121[SiLabsDDInstallSection.NTx86.Services]
122AddService = silabser,0x00000002,silabser.AddService
123
124[SiLabsDDInstallSection.NTamd64.Services]
125AddService = silabser,0x00000002,silabser.AddService
126
127[SiLabsDDInstallSection.NTarm.Services]
128AddService = silabser,0x00000002,silabser.AddService
129
130[SiLabsDDInstallSection.NTarm64.Services]
131AddService = silabser,0x00000002,silabser.AddService
132
133[silabser.AddService]
134DisplayName    = %silabser.SvcDesc%
135ServiceType    = 1                  ; SERVICE_KERNEL_DRIVER
136StartType      = 3                  ; SERVICE_DEMAND_START
137ErrorControl   = 1                  ; SERVICE_ERROR_NORMAL
138ServiceBinary  = %12%\silabser.sys
139
140; common registry entries
141[silabser.AddReg]
142HKR,,NTMPDriver,,silabser.sys
143HKR,,RateLimitPurgeMS, 0x10001, 0x64, 0x00, 0x00, 0x00
144HKR,,OverrideDefaultPortSettings, 0x10001, 01,00,00,00
145HKR,,InitialBaudRate, 0x10001, 00,C2,01,00		;115200 initial baud rate
146HKR,,InitialLineControl,, "8N1"				;8-bits, No parity, 1 stop bit
147HKR,,PortSubClass,1,01
148HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"
149
150;DDInstall.HW sections (one per x86, amd64, arm, arm64)
151[SiLabsDDInstallSection.NTx86.HW]
152AddReg=SiLabsDDInstallSection.HW.AddReg
153
154[SiLabsDDInstallSection.NTamd64.HW]
155AddReg=SiLabsDDInstallSection.HW.AddReg
156
157[SiLabsDDInstallSection.NTarm.HW]
158AddReg=SiLabsDDInstallSection.HW.AddReg
159
160[SiLabsDDInstallSection.NTarm64.HW]
161AddReg=SiLabsDDInstallSection.HW.AddReg
162
163[SiLabsDDInstallSection.HW.AddReg]
164HKR,,"SelectiveSuspendTimeout",0x00010001,10000
165HKR,,"DisableHwAccessInModemStatusIoctls",0x00010001,1
166; Attention! The EnablePowerManagewment value is no longer supported.
167; To disable Selective Suspend, uncomment the following line:
168; HKR,,"DisableS0Idle",0x00010001,1
169
170[silabser.Files.Ext]
171silabser.sys
172
173[SourceDisksNames.x86]
1741=%Disk_Description%,"slabvcp.cat"
175[SourceDisksNames.amd64]
1761=%Disk_Description%,"slabvcp.cat"
177[SourceDisksNames.arm]
1781=%Disk_Description%,"slabvcp.cat"
179[SourceDisksNames.arm64]
1801=%Disk_Description%,"slabvcp.cat"
181
182[SourceDisksFiles.x86]
183silabser.sys = 1,x86
184WdfCoinstaller01009.dll=1,x86
185
186[SourceDisksFiles.amd64]
187silabser.sys = 1,x64
188WdfCoinstaller01009.dll=1,x64
189
190[SourceDisksFiles.arm]
191silabser.sys = 1,arm
192WdfCoinstaller01011.dll=1,arm
193
194[SourceDisksFiles.arm64]
195silabser.sys = 1,arm64
196WdfCoinstaller01015.dll=1,arm64
197
198[DestinationDirs]
199Silabser.Files.Ext = 12 ; windows\system32\drivers
200
201;-------------- WDF Coinstaller installation
202[DestinationDirs]
203CoInstaller_CopyFiles.KMDF.1.09 = 11 ; windows\system32
204CoInstaller_CopyFiles.KMDF.1.11 = 11 ; windows\system32
205CoInstaller_CopyFiles.KMDF.1.15 = 11 ; windows\system32
206
207;DDInstall.CoInstallers sections (one per x86, amd64, arm, arm64)
208; "You can use any INF section in a universal INF file except for [CoInstallers]" -- MSDN
209[SiLabsDDInstallSection.NTx86.CoInstallers]
210AddReg=CoInstaller_AddReg.KMDF.1.09
211CopyFiles=CoInstaller_CopyFiles.KMDF.1.09
212
213[SiLabsDDInstallSection.NTamd64.CoInstallers]
214AddReg=CoInstaller_AddReg.KMDF.1.09
215CopyFiles=CoInstaller_CopyFiles.KMDF.1.09
216
217[SiLabsDDInstallSection.NTarm.CoInstallers]
218AddReg=CoInstaller_AddReg.KMDF.1.11
219CopyFiles=CoInstaller_CopyFiles.KMDF.1.11
220
221[SiLabsDDInstallSection.NTarm64.CoInstallers]
222AddReg=CoInstaller_AddReg.KMDF.1.15
223CopyFiles=CoInstaller_CopyFiles.KMDF.1.15
224
225[CoInstaller_CopyFiles.KMDF.1.09]
226WdfCoinstaller01009.dll
227[CoInstaller_CopyFiles.KMDF.1.11]
228WdfCoinstaller01011.dll
229[CoInstaller_CopyFiles.KMDF.1.15]
230WdfCoinstaller01015.dll
231
232[SourceDisksFiles]
233WdfCoinstaller01009.dll=1
234WdfCoinstaller01011.dll=1
235WdfCoinstaller01015.dll=1
236
237[CoInstaller_AddReg.KMDF.1.09]
238HKR,,CoInstallers32,0x00010000, "WdfCoinstaller01009.dll,WdfCoInstaller"
239[CoInstaller_AddReg.KMDF.1.11]
240HKR,,CoInstallers32,0x00010000, "WdfCoinstaller01011.dll,WdfCoInstaller"
241[CoInstaller_AddReg.KMDF.1.15]
242HKR,,CoInstallers32,0x00010000, "WdfCoinstaller01015.dll,WdfCoInstaller"
243
244
245;DDInstall.Wdf sections (one per x86, amd64, arm, arm64)
246[SiLabsDDInstallSection.NTx86.Wdf]
247KmdfService = silabser, SiLabs_wdfsect.1.09
248
249[SiLabsDDInstallSection.NTamd64.Wdf]
250KmdfService = silabser, SiLabs_wdfsect.1.09
251
252[SiLabsDDInstallSection.NTarm.Wdf]
253KmdfService = silabser, SiLabs_wdfsect.1.11
254
255[SiLabsDDInstallSection.NTarm64.Wdf]
256KmdfService = silabser, SiLabs_wdfsect.1.15
257
258[SiLabs_wdfsect.1.09]
259KmdfLibraryVersion = 1.09
260[SiLabs_wdfsect.1.11]
261KmdfLibraryVersion = 1.11
262[SiLabs_wdfsect.1.15]
263KmdfLibraryVersion = 1.15
264
265;---------------------------------------------------------------;
266
267[Strings]
268Provider="Silicon Laboratories Inc."
269ManufacturerName="Silicon Labs"
270Disk_Description=                      "Silicon Labs CP210x USB to UART Bridge Installation Disk"
271USB\VID_10C4&PID_EA60.DeviceDesc=      "Silicon Labs CP210x USB to UART Bridge"
272USB\VID_10C4&PID_EA63.DeviceDesc=      "Silicon Labs CP210x USB to UART Bridge"
273USB\VID_10C4&PID_EA70&Mi_00.DeviceDesc="Silicon Labs Dual CP2105 USB to UART Bridge: Enhanced COM Port"
274USB\VID_10C4&PID_EA70&Mi_01.DeviceDesc="Silicon Labs Dual CP2105 USB to UART Bridge: Standard COM Port"
275USB\VID_10C4&PID_EA71&Mi_00.DeviceDesc="Silicon Labs Quad CP2108 USB to UART Bridge: Interface 0"
276USB\VID_10C4&PID_EA71&Mi_01.DeviceDesc="Silicon Labs Quad CP2108 USB to UART Bridge: Interface 1"
277USB\VID_10C4&PID_EA71&Mi_02.DeviceDesc="Silicon Labs Quad CP2108 USB to UART Bridge: Interface 2"
278USB\VID_10C4&PID_EA71&Mi_03.DeviceDesc="Silicon Labs Quad CP2108 USB to UART Bridge: Interface 3"
279USB\VID_10C4&PID_EA7A&Mi_00.DeviceDesc="Silicon Labs Dual CP2105 USB to UART Bridge: Enhanced COM Port"
280USB\VID_10C4&PID_EA7A&Mi_01.DeviceDesc="Silicon Labs Dual CP2105 USB to UART Bridge: Standard COM Port"
281USB\VID_10C4&PID_EA7B&Mi_00.DeviceDesc="Silicon Labs Quad CP2108 USB to UART Bridge: Interface 0"
282USB\VID_10C4&PID_EA7B&Mi_01.DeviceDesc="Silicon Labs Quad CP2108 USB to UART Bridge: Interface 1"
283USB\VID_10C4&PID_EA7B&Mi_02.DeviceDesc="Silicon Labs Quad CP2108 USB to UART Bridge: Interface 2"
284USB\VID_10C4&PID_EA7B&Mi_03.DeviceDesc="Silicon Labs Quad CP2108 USB to UART Bridge: Interface 3"
285silabser.SvcDesc="Silicon Labs CP210x USB to UART Bridge Driver"
286