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

Reply via email to