xhci on Intel Lynx Point still broke

Doug White dwhite at gumbysoft.com
Tue Oct 22 19:22:11 UTC 2013


Hello,

I did a build this morning from HEAD with the XHCI change committed the other day and no change in status. The machine doesn't react at all to plug/unplug events.

I read through the XHCI spec and noticed that it allows MSI-X configuration but the current driver is MSI-only -- maybe this is related?

vmstat -i might help give an idea:

interrupt                          total       rate
cpu0:timer                         26368         22
irq264: xhci0                          1          0


On Oct 17, 2013, at 11:24 PM, Hans Petter Selasky wrote:

> On 10/18/13 03:23, Doug White wrote:
>> 
>> On Oct 16, 2013, at 10:53 PM, Hans Petter Selasky wrote:
>> 
>>> Is the problem fixed if you set:
>>> 
>>> hw.usb.xhci.xhci_port_route=-1
>>> 
>>> in /boot/loader.conf
>> 
>> No, no change in (lack of) functionality.
>> 
>> I uploaded these bootverbose-enabled dmesg outputs:
>> 
>> With XHCI Mode = Disabled in BIOS (reverts ports to EHCI control):
>> 
>> http://people.freebsd.org/~dwhite/dmesg.xhci_off_in_bios.20131017
>> 
>> With XHCI Mode = Enabled in BIOS and with tunable hw.usb.xhci.xhci_port_route=-1 set:
>> 
>> http://people.freebsd.org/~dwhite/dmesg.xhci_on.with_routing.20131017
>> 
>>> XHCI is a more high-level controller, and I suspect that the makers have added some propritary glue to switch ports back and forth between XHCI and EHCI which is not documented anywhere.
>> 
>> On the first board (X10SLM-F), XHCI Mode is a BIOS setting and affects all USB ports. I haven't experimented with settings on the Atom yet. The Atom uses a Renesas chip for its USB ports, though, and no USB from the SoC itself, that I can tell.
>> 
> 
> Hi Doug,
> 
> It looks like the XHCI controller is not getting any port events, like it should. Basically the XHCI controller you've got does not behave like I would expect, according to the XHCI specification from INTEL.
> 
> I've CC'ed Sarah Sharp @ Intel which is working on the Linux XHCI driver.
> 
> --HPS
> 
> Hi Sarah!
> 
> We FreeBSD guys have seen several oddities regarding the Lynx Point Intel based controllers, and would like to know if some additional datasheets exist regarding how ports switch actually works.
> 
> The last issue on the block was that the Lynx Point's returned a invalid parameter error on the set address command which configures the device context (no set address sent), if a USB device was plugged into the XHCI controller, and the port routing was enabled. If the command was issued when no USB device was plugged in by faking a port connection status change, then it would succeed.
> 
>> http://svnweb.freebsd.org/base/head/sys/dev/usb/controller/xhci.c?r1=255356&r2=255768
> 
> I'm sorry to say I fear this extra magic about the port routing for Lynx Points is not working like expected. Sarah, do you have any more clues for us FreeBSD USB guys?
> 
> Thank you!
> 
> --HPS



More information about the freebsd-usb mailing list