Skip to contentSkip to conversation

xHCI on x86

U-Boot Stefan Roese 2 participants 3 messages Jul 13, 2016 – Jul 18, 2016

lore
Share & tools
lore
#0 lore raw

Hi!

I'm currently trying to get xHCI working on some BayTrail based x86 boards. For this I've added DM support to xhci-pci and made a small change to cache.h to enable compilation of the xhci driver on x86 (please find those 2 patches attached - I'll send then to the list once this is resolved). But I noticed that the xhci driver hangs in xhci_queue_command() in this line:

	xhci_writel(&ctrl->dba->doorbell[0], DB_VALUE_HOST);

when first writing to the doorbell register. Reading from this doorbell register still works just fine.

IIRC, Simon has mentioned that xHCI still has some "issues" on x86. Simon, is this what you have seen as well? Does anyone have some ideas how to solve this?

Thanks,
Stefan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-x86-cache.h-Add-default-for-CONFIG_SYS_CACHELINE_SIZ.patch
Type: text/x-diff
Size: 1163 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20160713/d0a2abee/attachment.patch>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-WIP-usb-xhci-pci-Add-DM-support.patch
Type: text/x-diff
Size: 2631 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20160713/d0a2abee/attachment-0001.patch>

#1 lore raw

Hi,

Quoted 9 lines · Stefan Roese

Hi!

I'm currently trying to get xHCI working on some BayTrail based x86 boards. For this I've added DM support to xhci-pci and made a small change to cache.h to enable compilation of the xhci driver on x86 (please find those 2 patches attached - I'll send then to the list once this is resolved). But I noticed that the xhci driver hangs in xhci_queue_command() in this line:

Quoted 8 lines
        xhci_writel(&ctrl->dba->doorbell[0], DB_VALUE_HOST);

when first writing to the doorbell register. Reading from this doorbell register still works just fine.

IIRC, Simon has mentioned that xHCI still has some "issues" on x86. Simon, is this what you have seen as well? Does anyone have some ideas how to solve this?

I'm really not sure what is wrong, sorry. The discussion about enabling the pin settings correctly may be relevant since I believe two GPIOs need to be set up for both ports to work, and that patch was never cleaned up and applied, so far as I know...

Regards,
Simon

#2 lore raw

Hi Simon,

Quoted 15 lines · Simon Glass
Quoted 14 lines · Stefan Roese

Hi!

I'm currently trying to get xHCI working on some BayTrail based x86 boards. For this I've added DM support to xhci-pci and made a small change to cache.h to enable compilation of the xhci driver on x86 (please find those 2 patches attached - I'll send then to the list once this is resolved). But I noticed that the xhci driver hangs in xhci_queue_command() in this line:

         xhci_writel(&ctrl->dba->doorbell[0], DB_VALUE_HOST);

when first writing to the doorbell register. Reading from this doorbell register still works just fine.

Quoted 8 lines
Quoted 3 lines

IIRC, Simon has mentioned that xHCI still has some "issues" on x86. Simon, is this what you have seen as well? Does anyone have some ideas how to solve this?

I'm really not sure what is wrong, sorry. The discussion about enabling the pin settings correctly may be relevant since I believe two GPIOs need to be set up for both ports to work, and that patch was never cleaned up and applied, so far as I know...

I see.

I my case, it's not related to the GPIO issue - as the ports are not enabled via GPIO on the Congatec board where I'm currently testing on. I've updated the xHCI PCI support a bit (no hangup any more, but still not working correctly) and will post the current version as WIP today, as I need to switch to some other tasks for a while. Perhaps someone else is interested in xHCI on x86 enough to take a look at it in the meantime...

Thanks,
Stefan