Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 22 Feb 2016 08:05:54 +0100
From:      Hans Petter Selasky <hps@selasky.org>
To:        Larry Rosenman <ler@lerctr.org>
Cc:        Dimitry Andric <dim@freebsd.org>, freebsd-current@freebsd.org, owner-freebsd-current@freebsd.org
Subject:   Re: new computer, strange usb messages at boot
Message-ID:  <56CAB352.70408@selasky.org>
In-Reply-To: <de4e88850e47dc95aa86de8991485044@thebighonker.lerctr.org>
References:  <20160220051951.GA47875@lrosenman-dell.lerctr.org> <56C8310B.4010908@selasky.org> <9F54F75F-9FF4-4587-8FFD-C6BE6DC20E17@FreeBSD.org> <56C9BF13.4000408@selasky.org> <de4e88850e47dc95aa86de8991485044@thebighonker.lerctr.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Hi,

On 02/21/16 17:27, Larry Rosenman wrote:
> On 2016-02-21 07:43, Hans Petter Selasky wrote:
>> On 02/21/16 14:33, Dimitry Andric wrote:
>>> If you ask me, something is just seriously broken in the way the xhci
>>> driver works on Haswell or higher Intel CPUs.  For example, on an
>>> embedded Haswell box with USB3 ports:
>>
>> Hi,
>>
>> Nothing is seriously broken in the XHCI driver. Try to set:
>>
>> hw.usb.xhci.xhci_port_route=0
>
> Does this DISABLE USB3?

No, only the USB 2.x and 1.x part of the XHCI controller.

>>
>> Which will route all devices to the EHCI, in your /boot/loader.conf
>>
>> Does it make any difference?
>>
>> Refer to the following print:
>>> xhci0: Port routing mask set to 0xffffffff
>>
>> The chipset you're using is special in that the binding of ports
>> between XHCI and EHCI is not fixed. Maybe some combinations are simply
>> not supported.
>>

>
> Why is it "special"?  It seems it's the norm for haswell and newer (in
> my case Skylake).

With special I mean, that the XHCI controller chipset has additional 
registers to switch the port routing between XHCI and EHCI for USB 2.0 
and 1.0 devices. This was not part of the initial XHCI standard. I 
believe that is what the enumeration failures are about, that the USB 
2.x/1.x lines are not properly routed to the XHCI in hardware.

For the sake of the matter you can try to boot the Haswell chipset 
setting hw.usb.xhci.debug=16 in /boot/loader.conf, and send me the 
resulting log off-list, without using the hw.usb.xhci.xhci_port_route 
setting. And I'll see if there are any errors there which we can handle 
in software.

--HPS



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?56CAB352.70408>