Q1) I have obtained a unique VID/PID combination for my VCP or USBXpress (Direct Access) driver and have contacted Silicon Labs to obtain reseller status, however the package that is shipped to me via Microsoft Dashboard has the Silicon Labs default VID/PID. How do I recertify a driver with my VID/PID combination?
Q2) Changing the VID/PID of the default Silicon Labs driver invalidates the driver signature. I understand that that means I must recertify the driver. Does that also mean that I must rigorously retest the driver prior to recertification?
A1) In the case that you have your own VID/PID combination already, you must customize both your devices and your driver with this VID/PID combination according to AN721: CP210x/CP211x Device Customization Guide and AN220: USB Driver Customization, as well as complete the following steps:
1. Purchase the appropriate certificate from a certificate vendor.
2. Contact Silicon Labs technical support (http://www.silabs.com/support) for reseller status. Please provide the driver used (VCP or USBXpress), driver version, and the WHQL registered company name.
3. Add your certificate to the Microsoft Hardware Dashboard.
4. Add the certificate to the certificate store on your computer.
5. Download a file to sign, sign it, and upload the signed file.
6. Download the DUA shell (a .hlkx file) from the driver shipped to you.
7. Download the signed files. Modify the .inf file as desired. (Or upload the modified .inf output of AN220: USB Driver Customization Software. This is how you can create a customized driver using your VID/PID combination.)
8. Download and install the latest version of HLK Studio. Open HLK Studio.
9. Change to the package tab. Right click on the driver and choose [Replace Driver]. Choose a folder with the signed driver files and your modified .inf file.
10. Click [Create Package].
11. Sign from the certificate store on your computer. Save the .hlkx file.
12. In the Microsoft dashboard, click [Upload New] and choose your new .hlkx file.
You can find greater detail on this list of steps in AN807: Recertifying a Customized Windows HCK Driver Package, including illustrative screenshots.
A2) Many driver customizations, including changing the VID/PID, product and manufacturer strings, and other minor changes require modification of the .inf file only and do not affect the binary executable or functional portion of the driver. In such cases the resigning process is eligible for re-certification as Driver Update Acceptable (DUA), which is a streamlined re-certification process that does not require the detailed testing that Silicon Labs must undergo for the initial submission of the original driver that Silicon Labs ships to customers via the Microsoft dashboard. Please follow the steps outlined above and in the linked documentation and customization utilities to complete the process.
See the Errata sheet for your device to see the complete description of this errata and affected products:
CP2102N revision A01
Additional Notes Regarding the Failure Mode
The CP2102N uses the incorrect byte of the SERIAL_HANDFLOW structure (https://msdn.microsoft.com/en-us/library/windows/hardware/jj680685(v=vs.85).aspx) to control the RTS signal. Instead of looking at the first byte of FlowReplace, the device is reading the first byte of the XonLimit and interpreting that as the first byte of FlowReplace.
Applications written in .NET set the Xon/Xoff limits to 160, equal to 0xA0, which the CP2102N interprets as hardware flow control, and so it returns an error when manually setting RTS.
For .NET applications, it is possible to create a software workaround for this issue by setting the XON/XOFF limits to 0x00. Because of additional .NET limitations, the workaround also has to enable hardware flow control, enable the port, then switch to none. These changes enable the CP2102N to properly set or clear the RTS signal manually.
The attached source file contains a software workaround for .NET applications.
Driver recertification is required any time a certified driver is modified, which includes the modified VCP or USBXpress driver output from AN220. The driver recertification process is always changing and Microsoft is currently migrating to a new "Hardware dashboard" system. The current version of the application note AN807: Recertifying a Customized Windows Driver Package explains the resell process in the new system.
So far, all the VCP drivers have been moved to the new dashboard, however, the USBXpress drivers are still present in the old system. The timeline for the completion of the migration is decided by Microsoft.
Hence, if you are looking for instructions on reselling the USBXpress driver, please read through the older version of AN807 (attached to this article).
For VCPXpress drivers, you can always obtain the instructions from AN807 here - https://www.silabs.com/documents/public/application-notes/an807-recertifying-a-customized-windows-driver-package.pdf
As of this update, USBXpress (Direct Access) drivers are now migrated to the new Microsoft Hardware dashboard system. Thus, customized USBXpress drivers can certified according to the same method as customized VCP drivers, as given in the link to AN807 above.