Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 5 Nov 2011 13:15:54 +0100
From:      Hans Petter Selasky <hselasky@c2i.net>
To:        Jan Henrik Sylvester <me@janh.de>
Cc:        Josh Paetzel <josh@ixsystems.com>, "xin@ixsystems.com" <xin@ixsystems.com>, d@delphij.net, freebsd-usb@freebsd.org
Subject:   Re: USB 3 issues
Message-ID:  <201111051315.54807.hselasky@c2i.net>
In-Reply-To: <4EB3CDA1.7090708@janh.de>
References:  <4EB2F85A.3060501@ixsystems.com> <201111041018.32296.hselasky@c2i.net> <4EB3CDA1.7090708@janh.de>

next in thread | previous in thread | raw e-mail | index | archive | help
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@pci0:5:0:0:       class=0x0c0330 card=0x10001d5c chip=0x10001b73
> rev=0x01 hdr=0x00
> 
> Thanks,
> Jan Henrik

Hi,

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);
	}

--HPS



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