Please find reply inline On Fri, Jun 12, 2015 at 11:48 PM, <philip.jos...@microchip.com> wrote: > > 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).
Please provide usbmon logs and dmesg prints from xHCI to understand what is happening @ driver level. > > 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? There are no known issue. FX3 works with other platforms. This could be xHCI limitation. >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 -- 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