Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 23 Apr 2015 09:10:51 +0200
From:      Dimitry Andric <dim@FreeBSD.org>
To:        fate <fate10@gmail.com>
Cc:        FreeBSD stable <freebsd-stable@freebsd.org>, Hans Petter Selasky <hselasky@FreeBSD.org>
Subject:   Re: Strange USB behavior
Message-ID:  <2FA5D6D3-E115-4BF2-9552-D1552522DECB@FreeBSD.org>
In-Reply-To: <CAGBb1ccZCt=gyv2rqYLPr4HT5UcPoeZHWkaZ7RM-Sea_Go9z%2Bg@mail.gmail.com>
References:  <CAGBb1ccZCt=gyv2rqYLPr4HT5UcPoeZHWkaZ7RM-Sea_Go9z%2Bg@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help

--Apple-Mail=_032339E9-F7D1-43AC-AE92-8D985FA9CD8B
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

On 23 Apr 2015, at 01:54, fate <fate10@gmail.com> wrote:
> Strange USB behavior on Gigabyte BRIX GB-BXA8-5545.
> Need number of connect - disconnect cycles before usb subsystem
> recognize devices.
>=20
> Apr 19 02:09:01 brix kernel: ugen0.2: <vendor 0x0409> at usbus0 =
(disconnected)
> Apr 19 02:09:05 brix kernel: usb_alloc_device: Failure selecting
> configuration index 0:USB_ERR_TIMEOUT, port 4, addr 1 (ignored)
> Apr 19 02:09:05 brix kernel: ugen0.2: <vendor 0x0409> at usbus0
> Apr 19 02:09:07 brix kernel: ugen0.2: <vendor 0x0409> at usbus0 =
(disconnected)
> Apr 19 02:18:15 brix kernel: usb_alloc_device: Failure selecting
> configuration index 0:USB_ERR_TIMEOUT, port 4, addr 1 (ignored)
> Apr 19 02:18:15 brix kernel: ugen0.2: <vendor 0x0409> at usbus0
> Apr 19 02:18:17 brix kernel: ugen0.2: <vendor 0x0409> at usbus0 =
(disconnected)
> Apr 19 02:18:21 brix kernel: usb_alloc_device: Failure selecting
> configuration index 0:USB_ERR_TIMEOUT, port 4, addr 1 (ignored)
> Apr 19 02:18:21 brix kernel: ugen0.2: <vendor 0x0409> at usbus0
> Apr 19 02:18:23 brix kernel: ugen0.2: <vendor 0x0409> at usbus0 =
(disconnected)
> Apr 19 02:18:27 brix kernel: usb_alloc_device: Failure selecting
> configuration index 0:USB_ERR_TIMEOUT, port 4, addr 1 (ignored)
> Apr 19 02:18:27 brix kernel: ugen0.2: <vendor 0x0409> at usbus0
> Apr 19 02:18:29 brix kernel: ugen0.2: <vendor 0x0409> at usbus0 =
(disconnected)
> Apr 19 02:18:36 brix kernel: usb_alloc_device: Failure selecting
> configuration index 0:USB_ERR_TIMEOUT, port 4, addr 1 (ignored)
> Apr 19 02:18:36 brix kernel: ugen0.2: <vendor 0x0409> at usbus0
> Apr 19 02:18:40 brix kernel: ugen0.2: <vendor 0x0409> at usbus0 =
(disconnected)
> Apr 19 03:17:14 brix kernel: ugen0.2: <vendor 0x0409> at usbus0
> Apr 19 03:17:15 brix kernel: uhub7: <vendor 0x0409 product 0x005a,
> class 9/0, rev 2.00/1.00, addr 1> on usbus0
> Apr 19 03:17:15 brix kernel: uhub7: 4 ports with 4 removable, self =
powered
> Apr 19 03:17:17 brix kernel: ugen0.3: <NEC> at usbus0
> Apr 19 03:17:18 brix kernel: ugen0.4: <Logitech> at usbus0
> Apr 19 03:17:18 brix kernel: uhid0: <Logitech USB Receiver, class 0/0,
> rev 2.00/5.00, addr 3> on usbus0
> Apr 19 03:17:19 brix kernel: ugen0.5: <Logitech> at usbus0
> Apr 19 03:17:19 brix kernel: ukbd0: <Logitech Logitech Illuminated
> Keyboard, class 0/0, rev 2.00/55.01, addr 4> on usbus0
> Apr 19 03:17:19 brix kernel: kbd1 at ukbd0
> Apr 19 03:17:19 brix kernel: uhid1: <Logitech Logitech Illuminated
> Keyboard, class 0/0, rev 2.00/55.01, addr 4> on usbus0
> Apr 19 03:17:20 brix kernel: ugen0.6: <C-Media Electronics Inc.> at =
usbus0
> Apr 19 03:17:20 brix root: Unknown USB device: vendor 0x06f8 product
> 0x2101 bus uhub7
> Apr 19 03:17:20 brix kernel: uhid2: <C-Media Electronics Inc. XPS
> SOUND BAR USB, class 0/0, rev 1.10/1.00, addr 5> on usbus0
> Apr 19 03:17:20 brix kernel: uhid3: <NEC PA271W, class 0/0, rev
> 1.10/0.01, addr 2> on usbus0
> Apr 19 03:17:20 brix kernel: ums0: <Logitech USB Receiver, class 0/0,
> rev 2.00/5.00, addr 3> on usbus0
> Apr 19 03:17:20 brix kernel: ums0: 16 buttons and [XYZT] coordinates =
ID=3D0
> Apr 19 03:17:20 brix kernel: uaudio0: <C-Media Electronics Inc. XPS
> SOUND BAR USB, class 0/0, rev 1.10/1.00, addr 5> on usbus0
> Apr 19 03:17:20 brix kernel: uaudio0: Play: 48000 Hz, 2 ch, 16-bit
> S-LE PCM format, 2x8ms buffer.
> Apr 19 03:17:20 brix kernel: uaudio0: Play: 44100 Hz, 2 ch, 16-bit
> S-LE PCM format, 2x8ms buffer.
> Apr 19 03:17:20 brix kernel: uaudio0: No recording.
> Apr 19 03:17:20 brix kernel: uaudio0: No MIDI sequencer.
> Apr 19 03:17:20 brix kernel: pcm1: <USB audio> on uaudio0
> Apr 19 03:17:20 brix kernel: uaudio0: HID volume keys found.
> Apr 19 03:18:32 brix kernel: ugen0.2: <vendor 0x0409> at usbus0 =
(disconnected)
> Apr 19 03:18:32 brix kernel: uhub7: at uhub0, port 4, addr 1 =
(disconnected)

Is this a Haswell Brix?  I have something similar on my Haswell box, at =
boot time it goes:

Timecounter "TSC-low" frequency 1247142608 Hz quality 1000
Root mount waiting for: usbus1 usbus0
uhub0: 13 ports with 13 removable, self powered
Root mount waiting for: usbus1 usbus0
uhub1: 3 ports with 3 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=3D2, 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=3D2, set address failed! (USB_ERR_TIMEOUT, =
ignored)
usbd_setup_device_desc: getting device descriptor at addr 2 failed, =
USB_ERR_IOERROR
Root mount waiting for: usbus0
usbd_req_re_enumerate: addr=3D2, 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
Root mount waiting for: usbus0
usbd_req_re_enumerate: addr=3D2, set address failed! (USB_ERR_TIMEOUT, =
ignored)
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
Root mount waiting for: usbus0
Root mount waiting for: usbus0
Root mount waiting for: usbus0
Root mount waiting for: usbus0
usbd_req_re_enumerate: addr=3D2, set address failed! (USB_ERR_IOERROR, =
ignored)
Root mount waiting for: usbus0
ugen0.2: <Seagate> at usbus0
umass0: <Seagate Expansion, class 0/0, rev 3.00/1.00, addr 2> on usbus0
umass0:  SCSI over Bulk-Only; quirks =3D 0xc101
umass0:1:0:-1: Attached to scbus1
Root mount waiting for: usbus0
Root mount waiting for: usbus0
Root mount waiting for: usbus0
Root mount waiting for: usbus0
usbd_req_re_enumerate: addr=3D3, set address failed! (USB_ERR_IOERROR, =
ignored)
ugen0.3: <Seagate> at usbus0
umass1: <Seagate Expansion, class 0/0, rev 3.00/1.00, addr 3> on usbus0
umass1:  SCSI over Bulk-Only; quirks =3D 0xc101
umass1:2:1:-1: Attached to scbus2
Trying to mount root from zfs:zroot/ROOT/stable10-r281866 []...
ugen0.2: <Seagate> at usbus0 (disconnected)
umass0: at uhub0, port 10, addr 2 (disconnected)
(probe0:umass-sim0:0:0:0): INQUIRY. CDB: 12 00 00 00 24 00
(probe0:umass-sim0:0:0:0): CAM status: CCB request completed with an =
error
(probe0:umass-sim0:0:0:0): Retrying command
(probe0:umass-sim0:0:0:0): INQUIRY. CDB: 12 00 00 00 24 00
(probe0:umass-sim0:0:0:0): CAM status: CCB request completed with an =
error
(probe0:umass-sim0:0:0:0): Retrying command
ugen0.2: <Seagate> at usbus0
umass0: <Seagate Expansion, class 0/0, rev 3.00/1.00, addr 4> on usbus0
umass0:  SCSI over Bulk-Only; quirks =3D 0x0100
umass0:1:0:-1: Attached to scbus1
ugen0.3: <Seagate> at usbus0 (disconnected)
umass1: at uhub0, port 11, addr 3 (disconnected)
(probe1:umass-sim1:1:0:0): INQUIRY. CDB: 12 00 00 00 24 00
(probe1:umass-sim1:1:0:0): CAM status: CCB request completed with an =
error
(probe1:umass-sim1:1:0:0): Retrying command
(probe1:umass-sim1:1:0:0): INQUIRY. CDB: 12 00 00 00 24 00
(probe1:umass-sim1:1:0:0): CAM status: CCB request completed with an =
error
(probe1:umass-sim1:1:0:0): Retrying command
da0 at umass-sim0 bus 0 scbus1 target 0 lun 0
da0: <Seagate Expansion 0502> Fixed Direct Access SPC-4 SCSI device
da0: Serial Number NAAAAAAA
da0: 400.000MB/s transfers
da0: 1907729MB (3907029167 512 byte sectors: 255H 63S/T 243201C)
da0: quirks=3D0x2<NO_6_BYTE>
ugen0.3: <Seagate> at usbus0
umass1: <Seagate Expansion, class 0/0, rev 3.00/1.00, addr 5> on usbus0
umass1:  SCSI over Bulk-Only; quirks =3D 0x0100
umass1:2:1:-1: Attached to scbus2
da1 at umass-sim1 bus 1 scbus2 target 0 lun 0
da1: <Seagate Expansion 0502> Fixed Direct Access SPC-4 SCSI device
da1: Serial Number NBBBBBBB
da1: 400.000MB/s transfers
da1: 1907729MB (3907029167 512 byte sectors: 255H 63S/T 243201C)
da1: quirks=3D0x2<NO_6_BYTE>

To work around it, I've just put in a random script that waits for ~20 =
seconds during boot, to let the USB devices "settle".  But it's rather =
ugly.

I also see something similar when I boot a VMware guest on a Haswell =
box, and pass through the USB 3 support.

My suspicion is that something is broken in the xhci driver on Haswell.

-Dimitry


--Apple-Mail=_032339E9-F7D1-43AC-AE92-8D985FA9CD8B
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
	filename=signature.asc
Content-Type: application/pgp-signature;
	name=signature.asc
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2.0.27

iEYEARECAAYFAlU4mv4ACgkQsF6jCi4glqOQwACgj/Crkm2MtbYqz35+bIxrgRJI
5+4AoMfHwExdJbOhG7i3DVMFpfeKFjY5
=DyLu
-----END PGP SIGNATURE-----

--Apple-Mail=_032339E9-F7D1-43AC-AE92-8D985FA9CD8B--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?2FA5D6D3-E115-4BF2-9552-D1552522DECB>