On 08/28/16 17:52, Adam Stylinski wrote:
On Sun, Aug 28, 2016 at 10:18 AM, Adam Stylinski <kungfujesu...@gmail.com>
wrote:

Looking at my motherboard's manual, this is what my BIOS exposes:

USB 2.0 Controller Use this item to enable or disable the use of USB 2.0
controller. USB 3.0 Controller Use this item to enable or disable the use
of USB 3.0 controller. Legacy USB Support Use this option to select legacy
support for USB devices. There are four con guration options: [Enabled],
[Disabled], [Auto] and [UEFI Setup Only]. The default value is [Enabled].
Please refer to below descriptions for the details of these four options:
[Enabled] - Enables support for legacy USB. [Disabled] - USB devices are
not allowed to use under legacy OS and UEFI setup when [Disabled] is
selected. If you have USB compatibility issue, it is recommended to select
[Disabled] to enter OS. [Auto] - Enables legacy support if USB devices are
connected. [UEFI Setup Only] - USB devices are allowed to use only under
UEFI setup and Windows / Linux OS. Legacy USB 3.0 Support Use this option
to enable or disable legacy support for USB 3.0 devices.

I believe 3.0 controller is enabled, or I wouldn't be able to use those
ports at all.  Now the Legacy USB 3.0 option is a bit vaguely named, as it
could be taken to mean, use USB 3.0 ports in legacy mode.  It could also
mean, "allow USB 2.0 devices with 3.0 ports".  The default for that option
is disabled, but it may have been misconstrued and enabled at one point.
Getting to the BIOS unfortunately requires me installing a video card in
there that's not 15 years old, unfortunately, as it's one of those
sophisticated new BIOSes that work with a mouse and require fancier VGA
BIOSes than what this S3 Virge card provides.  It's definitely worth a
look, though.

On Sat, Aug 27, 2016 at 2:05 PM, Adam Stylinski <kungfujesu...@gmail.com>
wrote:

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 <h...@selasky.org>
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: <XHCI root HUB 0x1b6f> at usbus0, cfg=0 md=HOST spd=SUPER
(5.0Gbps) pwr=SAVE (0mA)
ugen2.1: <OHCI root HUB ATI> at usbus2, cfg=0 md=HOST spd=FULL (12Mbps)
pwr=SAVE (0mA)
ugen1.1: <XHCI root HUB 0x1b6f> at usbus1, cfg=0 md=HOST spd=SUPER
(5.0Gbps) pwr=SAVE (0mA)
ugen3.1: <EHCI root HUB ATI> at usbus3, cfg=0 md=HOST spd=HIGH (480Mbps)
pwr=SAVE (0mA)
ugen4.1: <OHCI root HUB ATI> at usbus4, cfg=0 md=HOST spd=FULL (12Mbps)
pwr=SAVE (0mA)
ugen5.1: <EHCI root HUB ATI> at usbus5, cfg=0 md=HOST spd=HIGH (480Mbps)
pwr=SAVE (0mA)
ugen7.1: <OHCI root HUB ATI> at usbus7, cfg=0 md=HOST spd=FULL (12Mbps)
pwr=SAVE (0mA)
ugen6.1: <OHCI root HUB ATI> at usbus6, cfg=0 md=HOST spd=FULL (12Mbps)
pwr=SAVE (0mA)
ugen8.1: <EHCI root HUB ATI> at usbus8, cfg=0 md=HOST spd=HIGH (480Mbps)
pwr=SAVE (0mA)
ugen0.2: <Extreme SanDisk> 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




Alright, so I went through the crazy hurdles to actually get to the BIOS,
and the USB legacy support for USB 3.0 was enabled.  I disabled it, and it
has no apparently effect, other than the fact that setting up the device
takes a lot longer now:

usbd_setup_device_desc: getting device descriptor at addr 1 failed,
USB_ERR_TIMEOUT
usbd_setup_device_desc: getting device descriptor at addr 1 failed,
USB_ERR_TIMEOUT
usbd_setup_device_desc: getting device descriptor at addr 1 failed,
USB_ERR_TIMEOUT
usbd_setup_device_desc: getting device descriptor at addr 1 failed,
USB_ERR_TIMEOUT
usbd_setup_device_desc: getting device descriptor at addr 1 failed,
USB_ERR_TIMEOUT
ugen0.2: <Unknown> at usbus0 (disconnected)
uhub_reattach_port: could not allocate new device
ugen0.2: <SanDisk> at usbus0
umass0: <SanDisk Extreme, class 0/0, rev 2.10/0.10, addr 1> on usbus0
umass0:  SCSI over Bulk-Only; quirks = 0x0100
umass0:14:0:-1: Attached to scbus14
da23 at umass-sim0 bus 0 scbus14 target 0 lun 0
da23: <SanDisk Extreme 0001> Removable Direct Access SPC-4 SCSI device
da23: Serial Number [PROBABLY NOT IMPORTANT ENOUGH TO SCRUB, BUT DOING SO
ANYWAY]
da23: 40.000MB/s transfers
da23: 59840MB (122552320 512 byte sectors)
da23: quirks=0x2<NO_6_BYTE>

[adam@nasbox ~]$ sudo usbconfig
ugen0.1: <XHCI root HUB 0x1b6f> at usbus0, cfg=0 md=HOST spd=SUPER
(5.0Gbps) pwr=SAVE (0mA)
ugen2.1: <OHCI root HUB ATI> at usbus2, cfg=0 md=HOST spd=FULL (12Mbps)
pwr=SAVE (0mA)
ugen1.1: <XHCI root HUB 0x1b6f> at usbus1, cfg=0 md=HOST spd=SUPER
(5.0Gbps) pwr=SAVE (0mA)
ugen3.1: <EHCI root HUB ATI> at usbus3, cfg=0 md=HOST spd=HIGH (480Mbps)
pwr=SAVE (0mA)
ugen4.1: <OHCI root HUB ATI> at usbus4, cfg=0 md=HOST spd=FULL (12Mbps)
pwr=SAVE (0mA)
ugen6.1: <OHCI root HUB ATI> at usbus6, cfg=0 md=HOST spd=FULL (12Mbps)
pwr=SAVE (0mA)
ugen5.1: <EHCI root HUB ATI> at usbus5, cfg=0 md=HOST spd=HIGH (480Mbps)
pwr=SAVE (0mA)
ugen7.1: <OHCI root HUB ATI> at usbus7, cfg=0 md=HOST spd=FULL (12Mbps)
pwr=SAVE (0mA)
ugen8.1: <EHCI root HUB ATI> at usbus8, cfg=0 md=HOST spd=HIGH (480Mbps)
pwr=SAVE (0mA)
ugen0.2: <Extreme SanDisk> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps)
pwr=ON (200mA)

Which steps are next?  I apologize to the list for top-posting, it's been a
while since I've been to a mailing list and I decided to do it through
Gmail for whatever reason instead of mutt.


Hi,

Typically USB 3.0 replaces all the USB 2.0 ones, so you should only have USB 3.0 enabled.

BTW: Can you apply and try these patches. Do they make any difference? Especially in the case of the USB_ERR_TIMEOUT's.

https://svnweb.freebsd.org/changeset/base/304597
https://svnweb.freebsd.org/changeset/base/304629

--HPS


_______________________________________________
freebsd-usb@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-usb
To unsubscribe, send any mail to "freebsd-usb-unsubscr...@freebsd.org"

Reply via email to