Re: [HELP] USB 3.0 PCI Endpoint problem
Hi Felipe, On 2/22/2016 8:39 AM, Felipe Balbi wrote: > > Could this be a bug in your emulation environment ? Have you tested any > other PCIe endpoints ? > We tried with a SATA endpoint and experienced the same problem, so there's some problem that must be solved in our virtualization environment. Thanks. Joao -- 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
Re: [HELP] USB 3.0 PCI Endpoint problem
Hi, Joao Pintowrites: > Hi to all! > I am testing a PCIe Root Complex prototyping setup in which I have a USB 3.0 > host as a PCI Endpoint. > Running in an ARC CPU platform it works well, but when running in an emulated > ARM64 (this is done by a Synopsys virtualization tool) the endpoint > initialization fails as can be seen in the following log: > > xhci_hcd :01:00.0: xHCI Host Controller > xhci_hcd :01:00.0: new USB bus registered, assigned bus number 1 > xhci_hcd :01:00.0: xHCI capability registers at ff80002c4000: > xhci_hcd :01:00.0: CAPLENGTH AND HCIVERSION 0x960020: > xhci_hcd :01:00.0: CAPLENGTH: 0x20 > xhci_hcd :01:00.0: HCIVERSION: 0x96 > xhci_hcd :01:00.0: HCSPARAMS 1: 0x4000820 > xhci_hcd :01:00.0: Max device slots: 32 > xhci_hcd :01:00.0: Max interrupters: 8 > xhci_hcd :01:00.0: Max ports: 4 > xhci_hcd :01:00.0: HCSPARAMS 2: 0x11 > xhci_hcd :01:00.0: Isoc scheduling threshold: 1 > xhci_hcd :01:00.0: Maximum allowed segments in event ring: 1 > xhci_hcd :01:00.0: HCSPARAMS 3 0x0: > xhci_hcd :01:00.0: Worst case U1 device exit latency: 0 > xhci_hcd :01:00.0: Worst case U2 device exit latency: 0 > xhci_hcd :01:00.0: HCC PARAMS 0x14042cb: > xhci_hcd :01:00.0: HC generates 64 bit addresses > xhci_hcd :01:00.0: FIXME: more HCCPARAMS debugging > xhci_hcd :01:00.0: RTSOFF 0x600: > xhci_hcd :01:00.0: xHCI operational registers at ff80002c4020: > xhci_hcd :01:00.0: USBCMD 0x0: > xhci_hcd :01:00.0: HC is being stopped > xhci_hcd :01:00.0: HC has finished hard reset > xhci_hcd :01:00.0: Event Interrupts disabled > xhci_hcd :01:00.0: Host System Error Interrupts disabled > xhci_hcd :01:00.0: HC has finished light reset > xhci_hcd :01:00.0: USBSTS 0x9: > xhci_hcd :01:00.0: Event ring is not empty > xhci_hcd :01:00.0: No Host System Error > xhci_hcd :01:00.0: HC is halted > xhci_hcd :01:00.0: ff80002c4420 port status reg = 0x2a0 > xhci_hcd :01:00.0: ff80002c4424 port power reg = 0x0 > xhci_hcd :01:00.0: ff80002c4428 port link reg = 0x0 > xhci_hcd :01:00.0: ff80002c442c port reserved reg = 0x0 > xhci_hcd :01:00.0: ff80002c4430 port status reg = 0x2a0 > xhci_hcd :01:00.0: ff80002c4434 port power reg = 0x0 > xhci_hcd :01:00.0: ff80002c4438 port link reg = 0x0 > xhci_hcd :01:00.0: ff80002c443c port reserved reg = 0x0 > xhci_hcd :01:00.0: ff80002c4440 port status reg = 0x2a0 > xhci_hcd :01:00.0: ff80002c port power reg = 0x0 > xhci_hcd :01:00.0: ff80002c4448 port link reg = 0x0 > xhci_hcd :01:00.0: ff80002c444c port reserved reg = 0x0 > xhci_hcd :01:00.0: ff80002c4450 port status reg = 0x2a0 > xhci_hcd :01:00.0: ff80002c4454 port power reg = 0x0 > xhci_hcd :01:00.0: ff80002c4458 port link reg = 0x0 > xhci_hcd :01:00.0: ff80002c445c port reserved reg = 0x0 > xhci_hcd :01:00.0: // Halt the HC > xhci_hcd :01:00.0: Resetting HCD > xhci_hcd :01:00.0: // Reset the HC > xhci_hcd :01:00.0: Wait for controller to be ready for doorbell rings > xhci_hcd :01:00.0: Reset complete > xhci_hcd :01:00.0: Enabling 64-bit DMA addresses. > xhci_hcd :01:00.0: Calling HCD init > xhci_hcd :01:00.0: xhci_init > xhci_hcd :01:00.0: xHCI doesn't need link TRB QUIRK > xhci_hcd :01:00.0: Supported page size register = 0x1 > xhci_hcd :01:00.0: Supported page size of 4K > xhci_hcd :01:00.0: HCD page size set to 4K > xhci_hcd :01:00.0: // xHC can handle at most 32 device slots. > xhci_hcd :01:00.0: // Setting Max device slots reg = 0x20. > xhci_hcd :01:00.0: // Device context base array address = 0xfcafb000 > (DMA), > ff80002c7000 (virt) > xhci_hcd :01:00.0: Allocated command ring at ffc07db28cc0 > xhci_hcd :01:00.0: First segment DMA is 0xfc42c000 > xhci_hcd :01:00.0: // Setting command ring address to 0x20 > xhci_hcd :01:00.0: // xHC command ring deq ptr low bits + flags = > @ > xhci_hcd :01:00.0: // xHC command ring deq ptr high bits = @ > xhci_hcd :01:00.0: // Doorbell array is located at offset 0x800 from cap > regs base addr > xhci_hcd :01:00.0: // xHCI capability registers at ff80002c4000: > xhci_hcd :01:00.0: // @ff80002c4000 = 0x960020 (CAPLENGTH AND > HCIVERSION) > xhci_hcd :01:00.0: // CAPLENGTH: 0x20 > xhci_hcd :01:00.0: // xHCI operational registers at ff80002c4020: > xhci_hcd :01:00.0: // @ff80002c4018 = 0x600 RTSOFF > xhci_hcd :01:00.0: // xHCI runtime registers at ff80002c4600: > xhci_hcd :01:00.0: // @ff80002c4014 = 0x800 DBOFF > xhci_hcd :01:00.0: // Doorbell array at ff80002c4800: > xhci_hcd :01:00.0: xHCI runtime registers at ff80002c4600: > xhci_hcd :01:00.0: ff80002c4600: Microframe index = 0x0 > xhci_hcd
[HELP] USB 3.0 PCI Endpoint problem
Hi to all! I am testing a PCIe Root Complex prototyping setup in which I have a USB 3.0 host as a PCI Endpoint. Running in an ARC CPU platform it works well, but when running in an emulated ARM64 (this is done by a Synopsys virtualization tool) the endpoint initialization fails as can be seen in the following log: xhci_hcd :01:00.0: xHCI Host Controller xhci_hcd :01:00.0: new USB bus registered, assigned bus number 1 xhci_hcd :01:00.0: xHCI capability registers at ff80002c4000: xhci_hcd :01:00.0: CAPLENGTH AND HCIVERSION 0x960020: xhci_hcd :01:00.0: CAPLENGTH: 0x20 xhci_hcd :01:00.0: HCIVERSION: 0x96 xhci_hcd :01:00.0: HCSPARAMS 1: 0x4000820 xhci_hcd :01:00.0: Max device slots: 32 xhci_hcd :01:00.0: Max interrupters: 8 xhci_hcd :01:00.0: Max ports: 4 xhci_hcd :01:00.0: HCSPARAMS 2: 0x11 xhci_hcd :01:00.0: Isoc scheduling threshold: 1 xhci_hcd :01:00.0: Maximum allowed segments in event ring: 1 xhci_hcd :01:00.0: HCSPARAMS 3 0x0: xhci_hcd :01:00.0: Worst case U1 device exit latency: 0 xhci_hcd :01:00.0: Worst case U2 device exit latency: 0 xhci_hcd :01:00.0: HCC PARAMS 0x14042cb: xhci_hcd :01:00.0: HC generates 64 bit addresses xhci_hcd :01:00.0: FIXME: more HCCPARAMS debugging xhci_hcd :01:00.0: RTSOFF 0x600: xhci_hcd :01:00.0: xHCI operational registers at ff80002c4020: xhci_hcd :01:00.0: USBCMD 0x0: xhci_hcd :01:00.0: HC is being stopped xhci_hcd :01:00.0: HC has finished hard reset xhci_hcd :01:00.0: Event Interrupts disabled xhci_hcd :01:00.0: Host System Error Interrupts disabled xhci_hcd :01:00.0: HC has finished light reset xhci_hcd :01:00.0: USBSTS 0x9: xhci_hcd :01:00.0: Event ring is not empty xhci_hcd :01:00.0: No Host System Error xhci_hcd :01:00.0: HC is halted xhci_hcd :01:00.0: ff80002c4420 port status reg = 0x2a0 xhci_hcd :01:00.0: ff80002c4424 port power reg = 0x0 xhci_hcd :01:00.0: ff80002c4428 port link reg = 0x0 xhci_hcd :01:00.0: ff80002c442c port reserved reg = 0x0 xhci_hcd :01:00.0: ff80002c4430 port status reg = 0x2a0 xhci_hcd :01:00.0: ff80002c4434 port power reg = 0x0 xhci_hcd :01:00.0: ff80002c4438 port link reg = 0x0 xhci_hcd :01:00.0: ff80002c443c port reserved reg = 0x0 xhci_hcd :01:00.0: ff80002c4440 port status reg = 0x2a0 xhci_hcd :01:00.0: ff80002c port power reg = 0x0 xhci_hcd :01:00.0: ff80002c4448 port link reg = 0x0 xhci_hcd :01:00.0: ff80002c444c port reserved reg = 0x0 xhci_hcd :01:00.0: ff80002c4450 port status reg = 0x2a0 xhci_hcd :01:00.0: ff80002c4454 port power reg = 0x0 xhci_hcd :01:00.0: ff80002c4458 port link reg = 0x0 xhci_hcd :01:00.0: ff80002c445c port reserved reg = 0x0 xhci_hcd :01:00.0: // Halt the HC xhci_hcd :01:00.0: Resetting HCD xhci_hcd :01:00.0: // Reset the HC xhci_hcd :01:00.0: Wait for controller to be ready for doorbell rings xhci_hcd :01:00.0: Reset complete xhci_hcd :01:00.0: Enabling 64-bit DMA addresses. xhci_hcd :01:00.0: Calling HCD init xhci_hcd :01:00.0: xhci_init xhci_hcd :01:00.0: xHCI doesn't need link TRB QUIRK xhci_hcd :01:00.0: Supported page size register = 0x1 xhci_hcd :01:00.0: Supported page size of 4K xhci_hcd :01:00.0: HCD page size set to 4K xhci_hcd :01:00.0: // xHC can handle at most 32 device slots. xhci_hcd :01:00.0: // Setting Max device slots reg = 0x20. xhci_hcd :01:00.0: // Device context base array address = 0xfcafb000 (DMA), ff80002c7000 (virt) xhci_hcd :01:00.0: Allocated command ring at ffc07db28cc0 xhci_hcd :01:00.0: First segment DMA is 0xfc42c000 xhci_hcd :01:00.0: // Setting command ring address to 0x20 xhci_hcd :01:00.0: // xHC command ring deq ptr low bits + flags = @ xhci_hcd :01:00.0: // xHC command ring deq ptr high bits = @ xhci_hcd :01:00.0: // Doorbell array is located at offset 0x800 from cap regs base addr xhci_hcd :01:00.0: // xHCI capability registers at ff80002c4000: xhci_hcd :01:00.0: // @ff80002c4000 = 0x960020 (CAPLENGTH AND HCIVERSION) xhci_hcd :01:00.0: // CAPLENGTH: 0x20 xhci_hcd :01:00.0: // xHCI operational registers at ff80002c4020: xhci_hcd :01:00.0: // @ff80002c4018 = 0x600 RTSOFF xhci_hcd :01:00.0: // xHCI runtime registers at ff80002c4600: xhci_hcd :01:00.0: // @ff80002c4014 = 0x800 DBOFF xhci_hcd :01:00.0: // Doorbell array at ff80002c4800: xhci_hcd :01:00.0: xHCI runtime registers at ff80002c4600: xhci_hcd :01:00.0: ff80002c4600: Microframe index = 0x0 xhci_hcd :01:00.0: // Allocating event ring xhci_hcd :01:00.0: TRB math tests passed. xhci_hcd :01:00.0: // Allocated event ring segment table at 0xfc42e000 xhci_hcd :01:00.0: Set ERST to 0; private num segs = 1, virt addr =