Re: FX3 on Linux

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Please find reply inline

On Fri, Jun 12, 2015 at 11:48 PM, <Philip.Joslin@xxxxxxxxxxxxx> 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 majordomo@xxxxxxxxxxxxxxx
> 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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux