Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 01 Jul 2014 00:17:16 +0800
From:      Tur-Wei Chan <twchan@singnet.com.sg>
To:        Hans Petter Selasky <hps@selasky.org>, freebsd-usb@FreeBSD.org
Subject:   Re: Zotac ID91 USB3 devices attach as USB2
Message-ID:  <53B18D8C.3080401@singnet.com.sg>
In-Reply-To: <53B046A0.4010102@selasky.org>
References:  <53B025AF.3010602@singnet.com.sg> <53B046A0.4010102@selasky.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Hi,
On 30/6/2014 1:02 AM, Hans Petter Selasky wrote:
> On 06/29/14 16:41, Tur-Wei Chan wrote:
>> Hi,
>>
>> Got a Zotac ID91 mini-PC
>> (http://www.zotac.com/products/mini-pcs/zbox/product/zbox/detail/zbox-id91-1.html) 
>>
>> recently and installed FreeBSD (10-STABLE, r267719) on it.
>>
>> Hooking up my Mediasonic ProRaid HUR3-SU3S3 to the USB3 ports however
>> showed the drives up at only USB2.0 speeds:
>>
>
> Hi,
>
> What does "pciconf -lv" say?
>
> I see you have a Lynx Point USB 3.0. They are a bit troublesome. Have 
> you played with the port routing mask under hw.usb.xhci ?
>
> --HPS
>

pciconf -lv said (as attached previously):

xhci0@pci0:0:20:0:      class=0x0c0330 card=0xb20619da chip=0x8c318086 
rev=0x05 hdr=0x00
     vendor     = 'Intel Corporation'
     device     = 'Lynx Point USB xHCI Host Controller'
     class      = serial bus
     subclass   = USB

I set hw.usb.xhci.xhci_port_route=-1 in /boot/loader.conf but it did not 
seem to have any effect as another poster has reported. Looking at xhci.c:

         if (sc->sc_port_route != NULL) {
                 /* Route all ports to the XHCI by default */
                 sc->sc_port_route(sc->sc_bus.parent,
                     ~xhciroute, xhciroute);
         }

It seems that if xhciroute=-1 as set by the tunable, the code above will 
actually call sc_port_route() with set=0, clear=~0.  Maybe that's not 
what's intended?

Anyway I tried again with hw.usb.xhci.xhci_port_route=0 and then I did 
see the initial setting of the mask:
Jul  1 00:14:14 z2 kernel: xhci0: Port routing mask set to 0xffffffff
Jul  1 00:14:14 z2 kernel: usbus0 on xhci0

However, not long after that, the port fails and the mask is reset to 0.
Jul  1 00:14:14 z2 kernel: xhci_cmd_set_address:
Jul  1 00:14:14 z2 kernel: xhci_do_command: command[1] = 11 
(0x000000000728d000, 0x00000000, 0x01002e00)
Jul  1 00:14:14 z2 kernel: xhci_interrupt: real interrupt 
(status=0x00000008)
Jul  1 00:14:14 z2 kernel: xhci_interrupt_poll: event[5] = 33 
(0x00000000bef63d90 0x11000000 0x01008401)
Jul  1 00:14:14 z2 kernel: xhci_check_command: Received command event
Jul  1 00:14:14 z2 kernel: xhci0: Port routing mask set to 0x00000000
Jul  1 00:14:14 z2 kernel: xhci_interrupt: real interrupt 
(status=0x00000018)
Jul  1 00:14:14 z2 kernel: xhci_set_address: Could not set address for 
slot 1.
Jul  1 00:14:14 z2 kernel: xhci_interrupt_poll: event[6] = 34 
(0x0000000003000000 0x01000000 0x00008801)
Jul  1 00:14:14 z2 kernel: usb_alloc_device: device init 2 failed 
(USB_ERR_IOERROR, ignored)
Jul  1 00:14:14 z2 kernel: xhci_interrupt_poll: Unhandled event = 34
Jul  1 00:14:14 z2 kernel: xhci_device_state_change:
Jul  1 00:14:14 z2 kernel: xhci_root_intr: port 3 changed
Jul  1 00:14:14 z2 kernel: ugen0.2: <Unknown> at usbus0 (disconnected)

I guess this system is lost cause then...


Regards

   -T.W.Chan-




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