has anybody tested the PCIe port with an of the shelf PCIe card?
I know there is a diagnostic test from Mistral that sends and receives a few packet but one of my customer struggling with a real PCIe application!
thanks
F
I've successfully used a TUSB7340 EVM from TI with the TI8148 EVM. I needed to disable MSI and fell back to legacy PCI interrupts as there seems to be a problem there. Additionally, I had to setup a PCI quirk to set the Max Read Request Size to 256 since the TUSB7340 defaults to 512 (off the top of my head...). The PCIe device enumerates and loads the xHCI driver, USB 3.0, 2.0, and 1.1 work from there. Tested with a USB 3.0 HDD, numerous USB 2.0 flash drives, and a low speed keyboard.
The TI wiki ( http://processors.wiki.ti.com/index.php/DM81xx_AM38xx_PCI_Express_Root_Complex_Driver_User_Guide ) also describes how to make everything work with a Broadcom NetXtreme BCM5751 based Gigabit Ethernet Controller.
Thanks Kyle
That was good info and great help,
Faraz
Thanks for the hint ! Now my TUSB7340 seems to works too.
If you want to use MSI than just comment out in /drivers/usb/host/xhci.c at the int xhci_run the lines (around line 400)
ret=xhci_setup_msic(xhci);
if (ret)
So that the TUSB7340 uses MSI and not MSI-X - for me it seems that the TI814x isn't able to do MSI-X.
Regards, Andy
Hi,
Can you please clarify if you commented the following?
// ret = xhci_setup_msix(xhci);// if (ret) /* fall back to msi*/ ret = xhci_setup_msi(xhci);
... and thus used MSI? Or did you use legacy interrupt as Kyle mentioned earlier in this thread?
I want to rule out any issue in MSI handling on 816x, 814x, ideally xhci_setup_msix() should return error but xhci_setup_msi() should succeed.
I am particularly referring to the error you got for MSI on thread:
xhci_hcd 0000:01:00.0: Failed to enable MSI-X>>> xhci_hcd 0000:01:00.0: failed to allocate MSI entry
(Sorry for not following up earlier as I was offline most of the time last month.)
Thanks.
--- Hemant
Yes, this is right - this will use MSI, not MSI-X or legacy interrupts.
And Yes I think too, that the xhci_setup_msix() should not succeed.
The log with the msi error you mentioned was made with msi/msi-x disabled in the kernel, to show that I've tested all I can ;) - the "right" log - with mis/msi-x enabled in the kernel looks like that:
...
PCI: enabling device 0000:01:00.0 (0140 -> 0142)xhci_hcd 0000:01:00.0: xHCI Host Controllerxhci_hcd 0000:01:00.0: new USB bus registered, assigned bus number 3xhci_hcd 0000:01:00.0: irq 48, io mem 0x20000000
and a cat on /proc/interrupts will show something like that:
CPU0 4: 0 INTC omap2_elm 12: 205 INTC edma 14: 0 INTC edma_error 16: 0 INTC ahci 17: 0 INTC cppi41_dma 18: 1 INTC musb-hdrc.0 19: 1 INTC musb-hdrc.1 28: 607 INTC mmc0 30: 1 INTC omap_i2c 38: 0 INTC HDMI 40: 0 INTC cpsw.0 41: 32504 INTC cpsw.0 42: 30681 INTC cpsw.0 43: 0 INTC cpsw.0 44: 0 INTC serial idle 45: 0 INTC serial idle 46: 0 INTC serial idle 67: 1629 INTC gp timer 70: 251 INTC omap_i2c 72: 337 INTC serial idle, OMAP UART0 73: 0 INTC serial idle 74: 0 INTC serial idle 75: 0 INTC rtc0 76: 0 INTC rtc0 77: 2439 INTC mailbox-dsp, mailbox-video, mailbox-vpss122: 0 INTC omap-iommu.1123: 0 INTC omap-iommu.0368: 0 PCIe-MSI xhci_hcd