Knowing that you have experts in USB 3.0 support for Linux, I am writing to your organization hoping that you may be able to offer some direction on a problem I have encountered.
I am trying to track down a problem I am having with a USB 3.0 PCIe-x1 card on Linux while trying to talk to a Cypress FX3 explorer board. I posted the following to the Cypress forums. However, after further investigation, I think it is the ASM1042 controller on the PCIe card. Other than going to a different USB 3.0 card, is there anything from the Linux side that I might be able to do to get by the error condition described below? I am doing asynchronous reads through libusb. Thanks for your help and insight. ---- Cypress Post ---- I have run into an odd problem using the FX3 (CYUSB3KIT-003) on Linux using libusb. I have a java test app that calls down through C++ DLLs (so, dylib) to communicate with the FX3 (which is running the default bulk src and sink firmware that came programmed on the board). It does a simple sequence of operations: open, write block, read block, single huge read of data, and close. Prior to each read, I fill the target buffer with a set pattern. The FX3 firmware, on a read, fills the target with 0xAA, overwriting my pattern as it should. The blue LED on the board is blinking, so I know we are using USB 3.0. For Windows, these operations go through WinUSB. There are no problems. Everything works well. Likewise everything works well with the Mac OSX using libusb. The test programs can be run any number of times and the operations and incoming data are fine. With Linux, the first time through the test program, everything is fine. However, running the program a second time results in the very first read either timing out with the target buffer being filled with 0x00 (on one of my test machines) or (on another test machine) having the read "succeed" (result indicates the number of bytes to be read were read without error) but not having anything change in the target buffer. If the read is immediately retried, it works fine (or if subsequent different reads are done, they work fine). It stays in this state until I either unplug and replug the board or reset the system. On a couple of occasions, after unplugging and replugging the board, the blue LED on the board does not even come on at all. At that point, I have to reboot the system in order for it to even recognize that the FX3 is plugged in. When I plug the FX3 board into a USB 2.0 only socket on the Linux machine (blue LED on board is on solid), I see no problems. It is obviously slower, but everything works as expected. At this point, I am suspecting that either the Linux USB 3.0 handling has a problem, libusb has a problem (though it worked fine on the 2.0 port), or the FX3 has a problem (unlikely). Are there know issues in using the FX3 on a USB 3.0 port on Linux? I am running a 64-bit quad core Xeon Intel machine running Mint 16. I have a PPA Int'l USB 3.0 SuperSpeed PCIe-x1 card that provides two USB 3.0 ports (per PPA's support group, the GT50PCIEUSB3 USB 3.0 controller uses the ASM1042 chipset). Thanks. ---- End Cypress Post ---- > lspci -vv (output for ASM1042 controller) 02:00.0 USB controller: ASMedia Technology Inc. ASM1042 SuperSpeed USB Host Controller (prog-if 30 [XHCI]) Subsystem: Device 1234:5678 Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0, Cache Line Size: 64 bytes Interrupt: pin A routed to IRQ 16 Region 0: Memory at d4100000 (64-bit, non-prefetchable) [size=32K] Capabilities: <access denied> Kernel driver in use: xhci_hcd > lspci | grep USB 00:1a.0 USB controller: Intel Corporation 82801JI (ICH10 Family) USB UHCI Controller #4 00:1a.1 USB controller: Intel Corporation 82801JI (ICH10 Family) USB UHCI Controller #5 00:1a.7 USB controller: Intel Corporation 82801JI (ICH10 Family) USB2 EHCI Controller #2 00:1d.0 USB controller: Intel Corporation 82801JI (ICH10 Family) USB UHCI Controller #1 00:1d.1 USB controller: Intel Corporation 82801JI (ICH10 Family) USB UHCI Controller #2 00:1d.2 USB controller: Intel Corporation 82801JI (ICH10 Family) USB UHCI Controller #3 00:1d.3 USB controller: Intel Corporation 82801JI (ICH10 Family) USB UHCI Controller #6 00:1d.7 USB controller: Intel Corporation 82801JI (ICH10 Family) USB2 EHCI Controller #1 02:00.0 USB controller: ASMedia Technology Inc. ASM1042 SuperSpeed USB Host Controller Thanks again. -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html