CYUSB.SYS and the driver from http://www.cypress.com/documentation/software-and-drivers/ez-usb-fx3-sof...gives signed drivers.About Winusb driver usage with USBFS component much info is not there
Thanks for replay,
But, if I understood correctly, isn't this driver intended for FX3 devices?
2 of 2 people found this helpful
I suppose you are looking for Microsoft OS Descriptors for USB Devices | Microsoft Docs section Extended Compat ID. The USBFS component in the String descriptor tab has an option "Include MS OS String descriptor" but descriptor value is hard coded. So most probably you would need to modify Component to serve your needs.
Thanks for joining discussion.
You are right, "Include MS OS String descriptor" option must be checked in order to append the "MSFT100" string to OS descriptor index location of 0xEE.
Maybe I don't understood whole procedure correctly, but according to WCID Devices · pbatard/libwdi Wiki · GitHub I think that some other descriptors should be set in firmware ("Thus, the second part of making your device WCID is ensuring that your firmware answers a Vendor Request with
bRequest=0x##, to return a Compatible ID").
I'm just not sure is it possible to include this statements in firmware, or is possible to do whole procedure inside USBFS graphical commponent setup.
The Component provide an option to handle vendor specific requests. But you need to implement required requests processing in FW. Here is extract from datasheet:
Handle vendor requests in user code
The Component provides an empty vendor request handler (available in the USBFS_vnd.c file) for unsupported vendor requests. This parameter overrides the vendor request handler function with a user implementation. The USBFS_HandleVendorRqst() function must be implemented by the user to service incoming vendor requests. This function is invoked whenever the vendor request is received and must return with an indication on whether it was handled or not. This option is unchecked by default.
Thank you for pointing me to that explanation. I will try to implement this
function inside FW somehow.
2 of 2 people found this helpful
Just in case that someone is interested, it is possible to make Windows 10 load WINUSB driver if "CYUSB" is changed to WINUSB inside USBFS_descr.c file:
(uint8)'C', (uint8)'Y', (uint8)'U', (uint8)'S', (uint8)'B',
should be put:
(uint8)'W', (uint8)'I',(uint8)'N', (uint8)'U', (uint8)'S', (uint8)'B',
Also 'Include MS OS String Descriptor' option should be checked inside setup of USBFS component.
After every full project regeneration it is necessary to change string again.
It looks like a pre-build User Command (Build Settings -> yr project -> User Commands -> Pre Build) happens after code generation but before compilation. So it'd be possible to add a script here which edits the CYUSB to a WINUSB in the descriptor file.
That's kinda horrible, though --- is there a better way?
FWIW, I have a script which correctly patches the file here:
If you add this to your project route and then put cscript patcher.vbs in your user command pre build box (and then edit the script to update the path), it'll patch the generated file on every build. Probably. At least it does when I try it. There's no error checking. But my device now works fine with WinUSB without needing an explicit driver or .inf file, which is great.
Dear friendly folk at Cypress: can we have this configurable, please? This script makes me a little nauseous every time I look at it.