UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Adventurer
Adventurer
2,617 Views
Registered: ‎04-23-2014

Corrupted bulk transfers with USB 3.0 and Zynq Ultrascale+

Jump to solution

I have a set of different USB3 industrial cameras by different vendors that I'm trying to connect to a ZU3EG ES1 board. All cameras use the same protocol (USB3Vision), which transmits particularly long bulk transfers. When I try to access them from the PS, the bulk transfers are corrupted. Typically the transfers contain a random arrangement of chunks with valid pixel data from random image locations. When I access two cameras simultaneously, the bulk transfers for each camera contain chunks of pixel data from both cameras. So, I would guess that there's something going horribly wrong with the ring buffer inside the kernel USB driver.

 

All cameras work when I force them to use USB 2. USB 3.0 seems to work flawlessly with storage devices, even at high transfer rates. With some settings, the cameras only occasionally deliver corrupted data, while with other settings all data is corrupted. The code that I use for accessing the cameras is actually a piece of well-tested open source code.

 

In the Ultrascale+ USB driver wiki I have read the following:

 

For silicon 1.0 & 2.0 USB ip has HW bugs , we see intermidate resets during transfers. To get USB host/device to work properly we need to make sure below mentioned workarounds are added in fsbl

 

I have applied the recommended workarounds (HSRX disable bypass, USB2 phy suspend disable), but did not notice any differences. Are there any other known bugs that could cause this and are there known workarounds?

 

Thanks!

0 Kudos
1 Solution

Accepted Solutions
Adventurer
Adventurer
4,729 Views
Registered: ‎04-23-2014

Re: Corrupted bulk transfers with USB 3.0 and Zynq Ultrascale+

Jump to solution

This seems to have been an issue with the kernel that I was using (was a patched Xilinx kernel). With the standard Petalinux kernel things work fine.

0 Kudos
1 Reply
Adventurer
Adventurer
4,730 Views
Registered: ‎04-23-2014

Re: Corrupted bulk transfers with USB 3.0 and Zynq Ultrascale+

Jump to solution

This seems to have been an issue with the kernel that I was using (was a patched Xilinx kernel). With the standard Petalinux kernel things work fine.

0 Kudos