USB 3 issues
Jan Henrik Sylvester
me at janh.de
Tue Nov 15 13:14:32 UTC 2011
On 11/05/2011 13:15, Hans Petter Selasky wrote:
> On Friday 04 November 2011 12:33:53 Jan Henrik Sylvester wrote:
>> On 11/04/2011 10:18, Hans Petter Selasky wrote:
>>> On Thursday 03 November 2011 22:04:44 Xin LI wrote:
>>>> Xin LI
>>>
>>> Please try the following patch:
>>>
>>> http://svn.freebsd.org/changeset/base/227075
>>>
>>> Then send me the XHCI attach error.
>>>
>>> Probably something which we can fix.
>>
>> Ok, I have found a minute to test 9.0-RC1 + 227075:
>>
>> xhci0:<XHCI (generic) USB 3.0 controller> mem 0xf1f00000-0xf1f0ffff irq
>> 19 at device 0.0 on pci5
>> xhci0: 32 byte context size.
>> xhci0: Controller reset timeout.
>> xhci0: XHCI halt/start/probe failed err=18
>> WARNING: A USB process has been left suspended
>> device_attach: xhci0 attach returned 6
>>
>> BTW: I think it is this device from "pciconf -l":
>> xhci0 at pci0:5:0:0: class=0x0c0330 card=0x10001d5c chip=0x10001b73
>> rev=0x01 hdr=0x00
> In sys/dev/usb/controller/xhci.c
>
> Try to increase the usb_pause_mtx() from hz/1000 to hz/100.
>
> If that doesn't work try to continue, even if the HC is not clearing the HCRST
> bit. Also print "temp" at the end of the loop.
>
> /* Reset controller */
> XWRITE4(sc, oper, XHCI_USBCMD, XHCI_CMD_HCRST);
>
> for (i = 0; i != 100; i++) {
> usb_pause_mtx(NULL, hz / 1000);
> temp = XREAD4(sc, oper, XHCI_USBCMD)&
> (XHCI_CMD_HCRST | XHCI_STS_CNR);
> if (!temp)
> break;
> }
>
> if (temp) {
> device_printf(sc->sc_bus.parent, "Controller "
> "reset timeout.\n");
> return (USB_ERR_IOERROR);
> }
I have put hz/100 in all four places of usb_pause_mtx(), replacing
hz/1000 three times and hz/250 once. temp is never != 0 in that loop now
and the controller attaches:
xhci0: <XHCI (generic) USB 3.0 controller> mem 0xf1f00000-0xf1f0ffff irq
19 at d
evice 0.0 on pci5
xhci0: 32 byte context size.
usbus1 on xhci0
Anyhow, trying to attach an umass device fails:
xhci_do_command: Command timeout!
xhci_do_command: Command timeout!
xhci_do_command: Command timeout!
ugen1.2: <FUJITSU> at usbus1
umass0: <FUJITSU MB86C311, class 0/0, rev 3.00/0.01, addr 1> on usbus1
umass0: SCSI over Bulk-Only; quirks = 0x0000
xhci_do_command: Command timeout!
xhci_do_command: Command timeout!
umass0: Get Max Lun not supported (USB_ERR_TIMEOUT)
umass0:5:0:-1: Attached to scbus5
xhci_do_command: Command timeout!
And many more "Command timeout!" after that.
What should I try next? (This time I will reply more promptly, sorry for
the delay.)
Cheers,
Jan Henrik
More information about the freebsd-usb
mailing list