From owner-freebsd-usb@freebsd.org Sat Aug 27 17:39:26 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 61F29B777F9 for ; Sat, 27 Aug 2016 17:39:26 +0000 (UTC) (envelope-from hps@selasky.org) Received: from mail.turbocat.net (heidi.turbocat.net [88.198.202.214]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id F1BF8C5A for ; Sat, 27 Aug 2016 17:39:25 +0000 (UTC) (envelope-from hps@selasky.org) Received: from laptop015.home.selasky.org (unknown [62.141.129.119]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.turbocat.net (Postfix) with ESMTPSA id C9E881FE022; Sat, 27 Aug 2016 19:39:16 +0200 (CEST) Subject: Re: USB 3.0 devices negotiate to spd=HIGH for all ports To: Adam Stylinski , freebsd-usb@freebsd.org References: From: Hans Petter Selasky Message-ID: <2a28aa4b-3256-b091-9a6e-c2a29f993d6c@selasky.org> Date: Sat, 27 Aug 2016 19:43:50 +0200 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:45.0) Gecko/20100101 Thunderbird/45.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit 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 17:39:26 -0000 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