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.
_______________________________________________
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