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

Reply via email to