From owner-freebsd-usb@freebsd.org Sat Aug 27 18:05:05 2016 Return-Path: Delivered-To: freebsd-usb@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 48FA5B77082 for ; Sat, 27 Aug 2016 18:05:05 +0000 (UTC) (envelope-from kungfujesus06@gmail.com) Received: from mail-lf0-x22a.google.com (mail-lf0-x22a.google.com [IPv6:2a00:1450:4010:c07::22a]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id ABCC0ACF for ; Sat, 27 Aug 2016 18:05:04 +0000 (UTC) (envelope-from kungfujesus06@gmail.com) Received: by mail-lf0-x22a.google.com with SMTP id l89so76406800lfi.1 for ; Sat, 27 Aug 2016 11:05:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=zLVPHc8KTeevulfYwrasGqdULPpIHQF/T07yCZ61Afw=; b=l+TaZm8XN2WIayrEPJHSqoLXg0/pQQP/tbKKv1XHGmdq5gwCMYrk3otWi+PJrfjF/i z1zGU7rniT6G5CwzbUgalZYtmVMI7UdfVPcuz9sB+XGP6Ct5ujLMGnbvA0As9QAjM/X7 PPkDIi3Gzj8fsZypCP6FNQJoMxhffxbaM6kMJTi6Xtp+4zk8gRbpOxKFza15L3UWH4Fe HeAUvfODxPwg91zuB5+KcYZLzT9m1eiLvonAgH56l9zYgY22pMH22wMALi3SClc+dBjg bPlFBwQetoQpLpFStb6/+iPYnyrSkj2SwL7xxo5qgQN6c7iXvKJ3RtKx0xYJnIsiTwY3 2WSw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=zLVPHc8KTeevulfYwrasGqdULPpIHQF/T07yCZ61Afw=; b=MmtDWyAaHsYmK3dwBP/pwB6tmGj04Wb6gGRpn4QZCWFMAwcFqPlJpSUWMXtECVQEBL Sr+ZJavxwbmb2nICyeb+9sMDevQbdgDf4/MgMa2rkkmb2vS6uZYQV5Dk/MD33SfSHVSM plBuSWBVrtlJKEITPxrDUnTsJS1MraBF3V5yK23F5grjpjKuik2mJhU8HaDdqNp6B/Op 5GRbYk51cUmT1KZZvaah1YQQrzzsnwQmAqTGKdUll9Zsuo8EYFdV+VQLEv0uUfTLjOAD XD+HFgrbJNT7/PseS/5/NpY8HH/IshwvQ5cXCmbapJmCP/J6qVSd14MbpGZ3Fx4xocoG rr6A== X-Gm-Message-State: AE9vXwOe9JTHHYoKdTCj37wbEsC0NA7UV3X0h68HHMBQeGK+4s4yWwFbeon/PuSKStEsIlGsvGpvI7LKXymTeA== X-Received: by 10.25.80.212 with SMTP id e203mr3691031lfb.115.1472321102385; Sat, 27 Aug 2016 11:05:02 -0700 (PDT) MIME-Version: 1.0 Received: by 10.25.30.83 with HTTP; Sat, 27 Aug 2016 11:05:01 -0700 (PDT) In-Reply-To: <2a28aa4b-3256-b091-9a6e-c2a29f993d6c@selasky.org> References: <2a28aa4b-3256-b091-9a6e-c2a29f993d6c@selasky.org> From: Adam Stylinski Date: Sat, 27 Aug 2016 14:05:01 -0400 Message-ID: Subject: Re: USB 3.0 devices negotiate to spd=HIGH for all ports To: Hans Petter Selasky Cc: freebsd-usb@freebsd.org Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.22 X-BeenThere: freebsd-usb@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: FreeBSD support for USB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 27 Aug 2016 18:05:05 -0000 The only quirk specific code I can find in Linux's kernel for XHCI is this: http://lxr.free-electrons.com/source/drivers/usb/host/pci-quirks.c I believe I have one of the SBxxx AMD chipsets, though I can't recall which one. I don't see anything in there referring to my PCI IDs, unless I'm looking at the wrong outputs in pciconf -lv. I see one quirk in particular regarding power management but that seems to be more about stability rather than speed. I'm sure I'm missing something. On Sat, Aug 27, 2016 at 1:43 PM, Hans Petter Selasky wrote: > On 08/27/16 18:41, Adam Stylinski wrote: > >> Hello, >> >> I definitely have a USB 3.0 controller that is being recognized by XHCI: >> >> [adam@nasbox ~]$ sudo usbconfig >> ugen0.1: at usbus0, cfg=0 md=HOST spd=SUPER >> (5.0Gbps) pwr=SAVE (0mA) >> ugen2.1: at usbus2, cfg=0 md=HOST spd=FULL (12Mbps) >> pwr=SAVE (0mA) >> ugen1.1: at usbus1, cfg=0 md=HOST spd=SUPER >> (5.0Gbps) pwr=SAVE (0mA) >> ugen3.1: at usbus3, cfg=0 md=HOST spd=HIGH (480Mbps) >> pwr=SAVE (0mA) >> ugen4.1: at usbus4, cfg=0 md=HOST spd=FULL (12Mbps) >> pwr=SAVE (0mA) >> ugen5.1: at usbus5, cfg=0 md=HOST spd=HIGH (480Mbps) >> pwr=SAVE (0mA) >> ugen7.1: at usbus7, cfg=0 md=HOST spd=FULL (12Mbps) >> pwr=SAVE (0mA) >> ugen6.1: at usbus6, cfg=0 md=HOST spd=FULL (12Mbps) >> pwr=SAVE (0mA) >> ugen8.1: at usbus8, cfg=0 md=HOST spd=HIGH (480Mbps) >> pwr=SAVE (0mA) >> ugen0.2: at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) >> pwr=ON (200mA) >> >> >> xhci0@pci0:3:0:0: class=0x0c0330 card=0x70231849 chip=0x70231b6f rev=0x01 >> hdr=0x00 >> vendor = 'Etron Technology, Inc.' >> device = 'EJ168 USB 3.0 Host Controller' >> class = serial bus >> subclass = USB >> xhci1@pci0:4:0:0: class=0x0c0330 card=0x70231849 chip=0x70231b6f rev=0x01 >> hdr=0x00 >> vendor = 'Etron Technology, Inc.' >> device = 'EJ168 USB 3.0 Host Controller' >> class = serial bus >> subclass = USB >> >> However, when I connect a USB 3.0 device into a USB 3.0 port, it only >> gives >> me spd=HIGH. This is a Sandisk CZ80, but I've other devices in the past >> and have had the same behavior. Plugging a device in with >> hw.usb.xhci.debug=1 doesn't appear to print too many useful things, at >> least not to an end user. I won't yet paste the full output, but it looks >> something like this: >> >> xhci_transfer_insert: qh_pos = 2 >> xhci_check_transfer: slot=1 epno=3 stream=256 remainder=0 status=1 >> xhci_check_transfer: stream_id=0 >> xhci_check_transfer: TD is last >> xhci_check_transfer: slot=1 epno=3 stream=256 remainder=0 status=1 >> xhci_check_transfer: stream_id=0 >> xhci_device_generic_enter: >> xhci_setup_generic_chain_sub: NTRB=1 >> xhci_setup_generic_chain_sub: LINK=0x241ff800 >> xhci_setup_generic_chain: first=0xfffff800241ff980 last=0xfffff800241ff980 >> xhci_device_generic_start: >> xhci_transfer_insert: qh_pos = 2 >> xhci_check_transfer: slot=1 epno=4 stream=256 remainder=0 status=1 >> xhci_check_transfer: stream_id=0 >> xhci_check_transfer: TD is last >> xhci_check_transfer: slot=1 epno=4 stream=256 remainder=0 status=1 >> xhci_check_transfer: stream_id=0 >> xhci_device_generic_enter: >> xhci_setup_generic_chain_sub: NTRB=1 >> xhci_setup_generic_chain_sub: LINK=0x55fc6a300 >> xhci_setup_generic_chain: first=0xfffff8055fc6a480 last=0xfffff8055fc6a480 >> xhci_device_generic_start: >> xhci_transfer_insert: qh_pos = 0 >> xhci_check_transfer: slot=1 epno=3 stream=256 remainder=0 status=1 >> xhci_check_transfer: stream_id=0 >> xhci_check_transfer: TD is last >> xhci_check_transfer: slot=1 epno=3 stream=256 remainder=0 status=1 >> xhci_check_transfer: stream_id=0 >> xhci_device_generic_enter: >> xhci_setup_generic_chain_sub: NTRB=1 >> xhci_setup_generic_chain_sub: LINK=0x3d958d000 >> xhci_setup_generic_chain: first=0xfffff803d958d180 last=0xfffff803d958d180 >> xhci_device_generic_start: >> xhci_transfer_insert: qh_pos = 1 >> xhci_check_transfer: slot=1 epno=3 stream=256 remainder=0 status=1 >> xhci_check_transfer: stream_id=0 >> xhci_check_transfer: TD is last >> xhci_check_transfer: slot=1 epno=3 stream=256 remainder=0 status=1 >> xhci_check_transfer: stream_id=0 >> xhci_device_generic_enter: >> xhci_setup_generic_chain_sub: NTRB=1 >> xhci_setup_generic_chain_sub: LINK=0x7d676f000 >> xhci_setup_generic_chain: first=0xfffff807d676f180 last=0xfffff807d676f180 >> xhci_device_generic_start: >> xhci_transfer_insert: qh_pos = 0 >> xhci_check_transfer: slot=1 epno=4 stream=256 remainder=0 status=1 >> xhci_check_transfer: stream_id=0 >> xhci_check_transfer: TD is last >> xhci_check_transfer: slot=1 epno=4 stream=256 remainder=0 status=1 >> xhci_check_transfer: stream_id=0 >> >> What can I do to end this frustrating issue of USB 2.0 only-ness? >> > > Try to google the PCI IDs of your device and see if Linux has any quirks > for your card. Sometimes these cards need special register writes to enable > USB 3.0. > > --HPS > >