Bug 188403 - [patch] USB3 USB_ERR_TIMEOUT and USB_ERR_STALLED issues
Summary: [patch] USB3 USB_ERR_TIMEOUT and USB_ERR_STALLED issues
Status: Open
Alias: None
Product: Base System
Classification: Unclassified
Component: usb (show other bugs)
Version: unspecified
Hardware: Any Any
: Normal Affects Only Me
Assignee: Hans Petter Selasky
URL:
Keywords: patch
Depends on:
Blocks:
 
Reported: 2014-04-09 16:40 UTC by jseidel
Modified: 2019-02-21 16:48 UTC (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description jseidel 2014-04-09 16:40:00 UTC
I have an intel NUC D34010WYKH, and there is an issue with the USB3 in
release 10 and 11. I was running freebsd 10 release and saw this issue
but i needed to upgrade to stable because release didn't contain the axge
driver for a usb network adapter. after updating to stable, the driver
was available but the usb errors were still there. I saw some messages
about issues like this and that a fix was uploaded, so I went to current
to see if it fixed the problem, but the issue was still there.

usb_alloc_device: set address 5 failed (USB_ERR_TIMEOUT, ignored)
usbd_setup_device_desc: getting device descriptor at addr 5 failed, USB_ERR_STALLED
Root mount waiting for: usbus1
usbd_req_re_enumerate: addr=5, set address failed! (USB_ERR_TIMEOUT, ignored)
usbd_setup_device_desc: getting device descriptor at addr 5 failed, USB_ERR_STALLED
Root mount waiting for: usbus1
Root mount waiting for: usbus1
usbd_req_re_enumerate: addr=5, set address failed! (USB_ERR_TIMEOUT, ignored)
usbd_setup_device_desc: getting device descriptor at addr 5 failed, USB_ERR_STALLED
Root mount waiting for: usbus1
usbd_req_re_enumerate: addr=5, set address failed! (USB_ERR_TIMEOUT, ignored)
usbd_setup_device_desc: getting device descriptor at addr 5 failed, USB_ERR_STALLED
Root mount waiting for: usbus1
Root mount waiting for: usbus1
usbd_req_re_enumerate: addr=5, set address failed! (USB_ERR_TIMEOUT, ignored)
usbd_setup_device_desc: getting device descriptor at addr 5 failed, USB_ERR_STALLED


$ pciconf -lv
hostb0@pci0:0:0:0:      class=0x060000 card=0x20548086 chip=0x0a048086 rev=0x09 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = 'Haswell-ULT DRAM Controller'
    class      = bridge
    subclass   = HOST-PCI
vgapci0@pci0:0:2:0:     class=0x030000 card=0x20548086 chip=0x0a268086 rev=0x09 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = 'Haswell-ULT Integrated Graphics Controller'
    class      = display
    subclass   = VGA
hdac0@pci0:0:3:0:       class=0x040300 card=0x20548086 chip=0x0a0c8086 rev=0x09 hdr=0x00
    vendor     = 'Intel Corporation'
    class      = multimedia
    subclass   = HDA
xhci0@pci0:0:20:0:      class=0x0c0330 card=0x20548086 chip=0x9c318086 rev=0x04 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = 'Lynx Point-LP USB xHCI HC'
    class      = serial bus
    subclass   = USB
none0@pci0:0:22:0:      class=0x078000 card=0x20548086 chip=0x9c3a8086 rev=0x04 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = 'Lynx Point-LP HECI'
    class      = simple comms
em0@pci0:0:25:0:        class=0x020000 card=0x20548086 chip=0x15598086 rev=0x04 hdr=0x00
    vendor     = 'Intel Corporation'
    class      = network
    subclass   = ethernet
hdac1@pci0:0:27:0:      class=0x040300 card=0x20548086 chip=0x9c208086 rev=0x04 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = 'Lynx Point-LP HD Audio Controller'
    class      = multimedia
    subclass   = HDA
pcib1@pci0:0:28:0:      class=0x060400 card=0x20548086 chip=0x9c108086 rev=0xe4 hdr=0x01
    vendor     = 'Intel Corporation'
    device     = 'Lynx Point-LP PCI Express Root Port 1'
    class      = bridge
    subclass   = PCI-PCI
pcib2@pci0:0:28:3:      class=0x060400 card=0x20548086 chip=0x9c168086 rev=0xe4 hdr=0x01
    vendor     = 'Intel Corporation'
    device     = 'Lynx Point-LP PCI Express Root Port 4'
    class      = bridge
    subclass   = PCI-PCI
ehci0@pci0:0:29:0:      class=0x0c0320 card=0x20548086 chip=0x9c268086 rev=0x04 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = 'Lynx Point-LP USB EHCI'
    class      = serial bus
    subclass   = USB
isab0@pci0:0:31:0:      class=0x060100 card=0x20548086 chip=0x9c438086 rev=0x04 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = 'Lynx Point-LP LPC Controller'
    class      = bridge
    subclass   = PCI-ISA
ahci0@pci0:0:31:2:      class=0x010601 card=0x20548086 chip=0x9c038086 rev=0x04 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = 'Lynx Point-LP SATA Controller 1 [AHCI mode]'
    class      = mass storage
    subclass   = SATA
none1@pci0:0:31:3:      class=0x0c0500 card=0x20548086 chip=0x9c228086 rev=0x04 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = 'Lynx Point-LP SMBus Controller'
    class      = serial bus
    subclass   = SMBus
none2@pci0:2:0:0:       class=0x028000 card=0x40708086 chip=0x08b18086 rev=0x73 hdr=0x00
    vendor     = 'Intel Corporation'
    class      = network

# usbconfig
ugen1.1: <EHCI root HUB Intel> at usbus1, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE (0mA)
ugen0.1: <XHCI root HUB 0x8086> at usbus0, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=SAVE (0mA)
ugen1.2: <product 0x8000 vendor 0x8087> at usbus1, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE (0mA)
ugen1.3: <AX88179 ASIX Elec. Corp.> at usbus1, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (248mA)
ugen1.4: <USB Receiver Logitech> at usbus1, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (98mA)

Fix: 

I have gotten it to "somewhat" stabilize by adding hw.usb.xhci.xhci_port_route=-1 into /boot/loader.conf
How-To-Repeat: fresh install of freebsd exibits this issue.
Comment 1 jseidel 2014-04-09 18:06:06 UTC
One typo, my NUC is D54250WYKH.
Comment 2 hps 2014-04-09 21:30:15 UTC
Hi,

Can you try this patch:

http://svnweb.freebsd.org/changeset/base/264294

--HPS
Comment 3 jseidel 2014-04-09 23:08:34 UTC
Just as an FYI, I'm running freebsd 10 stable again the amd64 version.

I tried the patch and removed the entry from the loader.conf; but I still get
errors with the patch.

Repeats over and over again.

xhci0: Resetting controller
usb_alloc_device: set address 3 failed (USB_ERR_TIMEOUT, ignored)
usbd_setup_device_desc: getting device descriptor at addr 3 failed,
USB_ERR_TIMEOUT
usbd_req_re_enumerate: addr=3, set address failed! (USB_ERR_TIMEOUT, ignored)
usbd_setup_device_desc: getting device descriptor at addr 3 failed,
USB_ERR_TIMEOUT
usbd_req_re_enumerate: addr=3, set address failed! (USB_ERR_TIMEOUT, ignored)
usbd_setup_device_desc: getting device descriptor at addr 3 failed,
USB_ERR_TIMEOUT
usbd_req_re_enumerate: addr=3, set address failed! (USB_ERR_TIMEOUT, ignored)
usbd_setup_device_desc: getting device descriptor at addr 3 failed,
USB_ERR_TIMEOUT
usbd_req_re_enumerate: addr=3, set address failed! (USB_ERR_TIMEOUT, ignored)
usbd_setup_device_desc: getting device descriptor at addr 3 failed,
USB_ERR_TIMEOUT
ugen0.3: <Unknown> at usbus0 (disconnected)
uhub_reattach_port: could not allocate new device
uhub1: at usbus0, port 1, addr 1 (disconnected)
ugen0.2: <Logitech> at usbus0 (disconnected)
ukbd0: at uhub1, port 4, addr 1 (disconnected)
ums0: at uhub1, port 4, addr 1 (disconnected)
uhid0: at uhub1, port 4, addr 1 (disconnected)
xhci0: 32 byte context size.
xhci0: Port routing mask set to 0xffffffff
uhub1: <0x8086 XHCI root HUB, class 9/0, rev 3.00/1.00, addr 1> on usbus0
uhub1: 13 ports with 13 removable, self powered
ugen0.2: <Logitech> at usbus0
ukbd0: <Logitech USB Receiver, class 0/0, rev 2.00/12.01, addr 1> on usbus0
kbd0 at ukbd0
ums0: <Logitech USB Receiver, class 0/0, rev 2.00/12.01, addr 1> on usbus0
ums0: 16 buttons and [XYZT] coordinates ID=2
uhid0: <Logitech USB Receiver, class 0/0, rev 2.00/12.01, addr 1> on usbus0
xhci0: Resetting controller
usb_alloc_device: set address 3 failed (USB_ERR_TIMEOUT, ignored)
usbd_setup_device_desc: getting device descriptor at addr 3 failed,
USB_ERR_TIMEOUT
Comment 4 hps 2014-04-10 07:41:07 UTC
On 04/10/14 00:08, Jason Seidel wrote:
> Just as an FYI, I'm running freebsd 10 stable again the amd64 version.
>
> I tried the patch and removed the entry from the loader.conf; but I still get
> errors with the patch.
>
> Repeats over and over again.
>
> xhci0: Resetting controller

How did you apply the patch? You should not see the "Resetting 
controller" any more after the patch.

--HPS
Comment 5 Mark Linimon freebsd_committer freebsd_triage 2014-05-04 05:43:19 UTC
Responsible Changed
From-To: freebsd-usb->hselasky

hps has a patch.
Comment 6 Phil Pennock 2014-11-18 02:12:19 UTC
What's the easiest way to create an ISO with this patch applied, please?  I have an Asus laptop which is displaying this, and reporting no network devices attached, so I _think_ that perhaps the non-enumerable device is earlier in the USB device walk than the network drivers, locking them out, making it hard to fetch and install the patch locally.  A bit of a catch-22.
Comment 7 Hans Petter Selasky freebsd_committer 2014-11-18 04:51:42 UTC
Hi,

The 10.1-RELEASE ISO has all recent USB patches included.

--HPS
Comment 8 jseidel 2014-11-18 17:10:54 UTC
I upgraded to 10.1-RELEASE and everything seems to be working. But I'm still seeing these errors.

uhub1: 2 ports with 2 removable, self powered
Root mount waiting for: usbus1 usbus0
ugen1.2: <vendor 0x8087> at usbus1
uhub2: <vendor 0x8087 product 0x8000, class 9/0, rev 2.00/0.04, addr 2> on usbus1
uhub2: 8 ports with 8 removable, self powered
usb_alloc_device: set address 2 failed (USB_ERR_TIMEOUT, ignored)
usbd_setup_device_desc: getting device descriptor at addr 2 failed, USB_ERR_TIMEOUT
Root mount waiting for: usbus0
usbd_req_re_enumerate: addr=2, set address failed! (USB_ERR_TIMEOUT, ignored)
Root mount waiting for: usbus0
usbd_setup_device_desc: getting device descriptor at addr 2 failed, USB_ERR_TIMEOUT
Root mount waiting for: usbus0
Root mount waiting for: usbus0
usbd_req_re_enumerate: addr=2, set address failed! (USB_ERR_TIMEOUT, ignored)
usbd_setup_device_desc: getting device descriptor at addr 2 failed, USB_ERR_TIMEOUT
Root mount waiting for: usbus0
usbd_req_re_enumerate: addr=2, set address failed! (USB_ERR_TIMEOUT, ignored)
Root mount waiting for: usbus0
usbd_setup_device_desc: getting device descriptor at addr 2 failed, USB_ERR_TIMEOUT
Root mount waiting for: usbus0
usbd_req_re_enumerate: addr=2, set address failed! (USB_ERR_TIMEOUT, ignored)
Root mount waiting for: usbus0
usbd_setup_device_desc: getting device descriptor at addr 2 failed, USB_ERR_TIMEOUT
ugen0.2: <Unknown> at usbus0 (disconnected)
uhub_reattach_port: could not allocate new device
Comment 9 Phil Pennock 2014-11-18 18:04:08 UTC
Okay, my problem must be unrelated then, because I was seeing this exact same error message after installing 10.1-release from a USB stick.
Comment 10 michael.kristofic 2015-02-24 20:29:52 UTC
Hi I'm on a fresh install of 10.1-RELEASE-p5

and after connecting WD MyBook Essentials (USB3.0 powered external HDD) to an USB2.0 port on my server I got this:

Root mount waiting for: usbus4
Root mount waiting for: usbus4
Root mount waiting for: usbus4
uhub3: 8 ports with 8 removable, self powered
Root mount waiting for: usbus4
Root mount waiting for: usbus4
usb_alloc_device: set address 2 failed (USB_ERR_TIMEOUT, ignored)
Root mount waiting for: usbus4
Root mount waiting for: usbus4
usbd_setup_device_desc: getting device descriptor at addr 2 failed, USB_ERR_IOERROR
Root mount waiting for: usbus4
Root mount waiting for: usbus4
usbd_req_re_enumerate: addr=2, set address failed! (USB_ERR_TIMEOUT, ignored)
Root mount waiting for: usbus4
usbd_setup_device_desc: getting device descriptor at addr 2 failed, USB_ERR_IOERROR
Root mount waiting for: usbus4
Root mount waiting for: usbus4
Root mount waiting for: usbus4
usbd_req_re_enumerate: addr=2, set address failed! (USB_ERR_TIMEOUT, ignored)
Root mount waiting for: usbus4
usbd_setup_device_desc: getting device descriptor at addr 2 failed, USB_ERR_IOERROR
Root mount waiting for: usbus4
Root mount waiting for: usbus4
usbd_req_re_enumerate: addr=2, set address failed! (USB_ERR_TIMEOUT, ignored)
Root mount waiting for: usbus4
Root mount waiting for: usbus4
usbd_setup_device_desc: getting device descriptor at addr 2 failed, USB_ERR_IOERROR
Root mount waiting for: usbus4
Root mount waiting for: usbus4
usbd_req_re_enumerate: addr=2, set address failed! (USB_ERR_TIMEOUT, ignored)
Root mount waiting for: usbus4
Root mount waiting for: usbus4
usbd_setup_device_desc: getting device descriptor at addr 2 failed, USB_ERR_IOERROR
ugen4.2: <Unknown> at usbus4 (disconnected)
uhub_reattach_port: could not allocate new device

What can I do to be able to mount my drive? Thanks
Comment 11 Hans Petter Selasky freebsd_committer 2015-02-24 21:30:17 UTC
Hi,

You should try upgrading the kernel to 10-stable first.

--HPS
Comment 12 michael.kristofic 2015-02-25 12:27:36 UTC
Hi Hans, 

is there by any chance a way to avoid upgrading my kernel to a development branch?

Mike
Comment 13 Hans Petter Selasky freebsd_committer 2015-02-25 14:07:28 UTC
Yes, I think you can checkout and replace sys/dev/usb from 10-stable only, or possibly only xhci*.[ch] in sys/dev/usb/controller .

10-stable is not a development branch. 11-current is.

BTW: Try this patch first:

https://svnweb.freebsd.org/changeset/base/279233

Also try setting:

hw.usb.xhci.xhci_port_route=-1

In /boot/loader.conf and reboot.

--HPS
Comment 14 michael.kristofic 2015-07-17 07:31:44 UTC
After updating to FreeBSD 10.1-RELEASE-p14 (GENERIC) I don't see the errors anymore and the drive looks to be recognized properly:

+ugen4.2: <Western Digital> at usbus4
+umass0: <MSC Bulk-Only Transport> on usbus4
+umass0:  SCSI over Bulk-Only; quirks = 0x0000
+umass0:7:0:-1: Attached to scbus7
+Trying to mount root from zfs:zroot/ROOT/default []...
+da0 at umass-sim0 bus 0 scbus7 target 0 lun 0
+da0: <WD My Book 1140 1003> Fixed Direct Access SCSI-6 device
+da0: Serial Number 574341563553343831363231
+da0: 40.000MB/s transfers
+da0: 953837MB (1953458176 512 byte sectors: 255H 63S/T 121597C)
+da0: quirks=0x2<NO_6_BYTE>
+ses0 at umass-sim0 bus 0 scbus7 target 0 lun 1
+ses0: <WD SES Device 1003> Fixed Enclosure Services SCSI-6 device
+ses0: Serial Number 574341563553343831363231
+ses0: 40.000MB/s transfers
+ses0: SCSI-3 ENC Device

Many thanks for all the efforts!
Comment 15 michael.kristofic 2015-07-18 15:33:10 UTC
OK that may have been a premature conclusion - after another restart I'm back with the timeouts. So it worked only once and randomly? I would really prefer to have this solved :(

Thanks
Comment 16 Eitan Adler freebsd_committer freebsd_triage 2018-05-28 19:44:12 UTC
batch change:

For bugs that match the following
-  Status Is In progress 
AND
- Untouched since 2018-01-01.
AND
- Affects Base System OR Documentation

DO:

Reset to open status.


Note:
I did a quick pass but if you are getting this email it might be worthwhile to double check to see if this bug ought to be closed.