FX3 firmware won't load, stuck in CyUSB3 loader, Windows 10 update related???

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Anonymous
Not applicable

Hello -

I have an FX3 design that has been manufactured and distributed for about 2 years.  We use the CyUSB3.sys driver (renamed) with our own custom VID/PID and custom (rebuilt) FX3 boot loader firmware to load FINAL firmware onto the FX3 (that does our "stuff").

Starting last fall we've been having problems with the system getting stuck in the loader phase.  The device comes up in device manager but fails to load the final firmware, restart itself, and instantiate itself as the final product.  This is only a problem on Windows 10.  Our final driver (2nd stage) is correctly signed with an EV cert  by Microsoft.

This is a problem ONLY on USB SuperSpeed host ports (USB3.0), high speed works great EVERY time.  Our product does NOT need SS rates, 2.0 rates work fine.

This problem can be intermittent (unplug/plug USB cable fixes it) or pervasive.  Oddly, if a USB3.0 hub is placed in the line between the peripheral and computer, it comes up every time.

Many of these installations were installed and running and suddenly started having a problem.  The field service guys keep backing out Windows updates which sometimes corrects the problem, sometime not.

Anyone seen anything like this????

Regards,  John Svinicki

Embedded Systems Engineer: Xitron, LLC

0 Likes
5 Replies
Anonymous
Not applicable

Hi,

Please use the attached cyusb3 driver.

Regards,

- Madhu

0 Likes
Anonymous
Not applicable

Madhu -

Thank you for your reply.  I have already tried this driver (version 1.2.3.20) earlier in the week when I found it in a post by Hemanth.  It did not correct my problem.

I understand that the problems with the Redstone3 (1709) Fall Creators update by Microsoft has created much confusion with USB 3.0 support.  Our customers have been experiencing problems and are in need of support.  The difficulty is that there are multiple problems that are corrected in different ways.

The SPECIFIC problem I am trying to debug is different than any I have seen described:

1. CyUSB3.sys installs correctly.

2. CyUSB3.sys loads correctly when my FX3 device is plugged in.

3. CyUSB3.sys fails to load firmware and restart my FX3 device as it should.

I may be able to gather further information and maybe even diagnose the source of the problem but I have no clue what is going on in CyUSB3.sys.   Is there any diagnostic output, logging or possibly TraceView.exe information that I can get????

I noticed that the 1.2.3.20 driver came with a .PDB file that might contain traceview logging information but it does not.  I do not have any .PDB file for the previous driver version, 1.2.3.14.

Can you help me diagnose what is happening in CyUSB3.sys?  Where can I look for information about what is happening when it loads and runs????

Regards,

John Svinicki

0 Likes
Anonymous
Not applicable

I've had an opportunity to work on this some more.

No one would tell me how to trace/debug CyUSB3.sys so I used USBlyzer on it and figured out that when this fails (sticks in boot load VID/PID) it's actually failing DURING the firmware download, anywhere from 25-75% complete.  It actually locks up the front end on USBLyzer and it only comes back alive if I unplug my USB device.  I have traces if anyone cares to look at them.

Since this project is a few years old, I feared that the boot loader firmware for CyUSB3.sys might be out of date so I downloaded the latest SDK (1.3.3) and customized the loader firmware from fresh source.  Exactly the same problem.

Since all the problems go away when I use a USB2.0 port on the aberrant machines, I figured that I would make the boot firmware NOT take advantage of the SuperSpeed setting (restrict descriptors to High Speed) but for some reason I could not get the descriptors correct and I can

t get the boot_fw project won't run at High Speed when plugged into a SuperSpeed port.  I always get an enumeration error, no matter what I try.  I can forward that source of someone is interested in looking at it for me.

Just to be sure it wasn't our hardware, I programmed the boot loader into the I2C eeprom on the Cypress FX3 SuperSpeed Explorer Kit (DVK) and I have the exact same problem.

I'm running out of things to try so any suggestions would be helpful.

John Svinicki

Embedded Systems Engineer

0 Likes

Upload the firmware project and the traces here for the review.

Will try to re-produce here.

0 Likes
Anonymous
Not applicable

Hello Srdr -

Sorry for the delay in response.  Got side tracked with a different project.

USBLyzerTraces.zip contains both raw (.ulz) and exported Text (.html) traces from the USBLyzer tool.  There are 2 traces, one good, one bad, for you to compare.  The bad trace stops mid-download at about 60%.  The difference between these 2 is the bad trace is when our device is directly plugged into the PC's USB3.0 port, the good trace shows what happens when a USB3.0 4-port hub is inserted in between our device and the PC.

I've included source for our boot loader in Usb2ScsiBootLoader.zip.  This firmware will enumerate as VID/PID 0x1826/0x0122.

Please let me know if you need more information.  I will try to be more prompt in my response.

Thank you in advance for your help.

Regards,

John Svinicki

0 Likes