Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 8 Jun 2020 22:45:35 -0700
From:      Mark Millard <marklmi@yahoo.com>
To:        bob prohaska <fbsd@www.zefox.net>
Cc:        freebsd-arm@freebsd.org
Subject:   Re: Confusing USB device conflict
Message-ID:  <9DE60D49-7C14-45AE-8B0F-D4DB1ACC51AF@yahoo.com>
In-Reply-To: <42BBC517-8237-489E-BABD-B65720286BCB@yahoo.com>
References:  <20200606223853.GA37281@www.zefox.net> <DC8818E7-270E-4A3B-882F-8A60A763760A@yahoo.com> <20200608230350.GA44587@www.zefox.net> <ED19C188-5363-4420-BC0A-B893D327A20B@yahoo.com> <20200609003827.GB44587@www.zefox.net> <42BBC517-8237-489E-BABD-B65720286BCB@yahoo.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 2020-Jun-8, at 19:19, Mark Millard <marklmi at yahoo.com> wrote:

> On 2020-Jun-8, at 17:38, bob prohaska <fbsd at www.zefox.net> wrote:
>=20
>> On Mon, Jun 08, 2020 at 05:07:56PM -0700, Mark Millard wrote:
>>> On 2020-Jun-8, at 16:03, bob prohaska <fbsd at www.zefox.net> wrote:
>>>=20
>>>> On Sat, Jun 06, 2020 at 06:22:03PM -0700, Mark Millard wrote:
>>>>>=20
>>>>>=20
>>>>>=20
>>>>> Does this happen with FreeBSD head? It looked like there
>>>>> was a late 2019 check-in that was related to a context
>>>>> that involved the above types of messages on a RPi*. If
>>>>> you are lucky, may be there is something someone could
>>>>> MFC back into 12 that would help. (I do not know the
>>>>> details or if what I saw really would help if head
>>>>> works okay.)
>>>>>=20
>>>> [In sum, the new hub can't be hot-swapped. I thought that would
>>>> be possible, but if not there's nothing wrong]
>>>=20
>>> Interesting.
>>>=20
>>> As I have my root file system for booting on the powered
>>> hub, I do not ever hot-swap the powered hub. So I'd never
>>> have noticed such behavior.
>>>=20
>>> I can probably get access to another one at some point,
>>> of the same type as is used at boot, and plug it in to
>>> a separate port while the RPi3 is in operation.
>>>=20
>>>> Now using a Pi3:
>>>>=20
>>>> Head as of r361820 behaves differently than the Pi2 running 12.1,=20=

>>>> but it does not seem better: Plugging the new hub and disk into=20
>>>> a running machine produces:
>>>>=20
>>>> ugen0.6: <GenesysLogic USB2.0 Hub> at usbus0
>>>> uhub2 on uhub1
>>>> uhub2: <GenesysLogic USB2.0 Hub, class 9/0, rev 2.00/92.24, addr 6> =
on usbus0
>>>> uhub2: MTT enabled
>>>> uhub2: 4 ports with 4 removable, self powered
>>>> usb_alloc_device: set address 8 failed (USB_ERR_IOERROR, ignored)
>>>> usbd_setup_device_desc: getting device descriptor at addr 8 failed, =
USB_ERR_IOERROR
>>>> usbd_req_re_enumerate: addr=3D8, set address failed! =
(USB_ERR_IOERROR, ignored)
>>>> smsc0: warning: bulk read error, USB_ERR_IOERROR
>>>> usbd_setup_device_desc: getting device descriptor at addr 8 failed, =
USB_ERR_IOERROR
>>>> usbd_req_re_enumerate: addr=3D8, set address failed! =
(USB_ERR_IOERROR, ignored)
>>>> smsc0: warning: Failed to read register 0x114
>>>> smsc0: warning: MII is busy
>>>> smsc0: warning: Failed to read register 0x114
>>>> smsc0: warning: MII is busy
>>>> smsc0: warning: Failed to read register 0x114
>>>> smsc0: warning: MII is busy
>>>> smsc0: warning: Failed to read register 0x114
>>>> smsc0: warning: MII is busy
>>>> usbd_setup_device_desc: getting device descriptor at addr 8 failed, =
USB_ERR_TIMEOUT
>>>> smsc0: warning: Failed to read register 0x114
>>>> smsc0: warning: MII is busy
>>>>=20
>>>> The smsc0 complaints continued, so I unplugged the hub and disk .
>>>> To my surprise the error messages didn't stop, but they did change:
>>>>=20
>>>> 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
>>>> 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
>>>> 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
>>>> 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
>>>> 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)
>>>>=20
>>>> This looked like an endless loop, so I rebooted.
>>>>=20
>>>> Next, I tried the new 1TB disk with the old hub. worked fine.
>>>>=20
>>>> Then I tried the new hub with the old 80GB disk. The console =
reported:
>>>> uhub2: <GenesysLogic USB2.0 Hub, class 9/0, rev 2.00/92.24, addr 7> =
on usbus0
>>>> uhub2: MTT enabled
>>>> uhub2: 4 ports with 4 removable, self powered
>>>> usb_alloc_device: set address 8 failed (USB_ERR_IOERROR, ignored)
>>>> usbd_setup_device_desc: getting device descriptor at addr 8 failed, =
USB_ERR_IOERROR
>>>> usbd_req_re_enumerate: addr=3D8, set address failed! =
(USB_ERR_STALLED, ignored)
>>>> usbd_setup_device_desc: getting device descriptor at addr 8 failed, =
USB_ERR_STALLED
>>>> usbd_req_re_enumerate: addr=3D8, set address failed! =
(USB_ERR_STALLED, ignored)
>>>> usbd_setup_device_desc: getting device descriptor at addr 8 failed, =
USB_ERR_STALLED
>>>> usbd_req_re_enumerate: addr=3D8, set address failed! =
(USB_ERR_STALLED, ignored)
>>>> usbd_setup_device_desc: getting device descriptor at addr 8 failed, =
USB_ERR_STALLED
>>>> usbd_req_re_enumerate: addr=3D8, set address failed! =
(USB_ERR_STALLED, ignored)
>>>> usbd_setup_device_desc: getting device descriptor at addr 8 failed, =
USB_ERR_STALLED
>>>> ugen0.8: <Unknown > at usbus0 (disconnected)
>>>> uhub_reattach_port: could not allocate new device
>>>> uhub_explore: illegal enable change, port 1
>>>>=20
>>>> The error stream stopped, the disk didn't show up in /dev.
>>>> Usbconfig reports=20
>>>> ugen0.7: <GenesysLogic USB2.0 Hub> at usbus0, cfg=3D0 md=3DHOST =
spd=3DHIGH (480Mbps) pwr=3DSAVE (100mA)
>>>> Not sure how that gybes with address 8 in the console messages.
>>>>=20
>>>> Finally, I tried leaving the new hub connected with the old disk
>>>> and rebooting. Came up just fine. Unplugging the old disk and
>>>> plugging the new disk in its place also works fine.
>>>>=20
>>>> Likewise, with 12.1 the Pi3 works correctly provided the hub
>>>> is connected before booting. Didn't try the other permutations.
>>>>=20
>>>> So, if hot-swapping the hub isn't in the cards, things seem
>>>> to work.=20
>>>> . . .
>> . . .
>>> . . .
>>=20
>> FWIW, I did check the Pi2 running 12.1 at r360926. The new hub
>> does not work, even if connected and powered before boot. It
>> does not prevent boot, but somehow interferes with discovery
>> of other USB devices. I believe the old hub did work, but that=20
>> was long ago. I haven't checked in the last year at least.
>=20
> Unfortunately, the only pre-aarch64 RPi2 that I've
> access to has its microsd card slot messed up: it
> forces the card back out. (The RPI2 v1.1 no longer
> latches the card in place but just ejects it.)

By holding the microsd card in place, I tried the
armv7 RPi2 V1.1. It had no trouble using the
powered USB3 hub and USB3 SSD on that hub to
boot, with the USB3 SSD providing the root file
system. (Head -r360311 based context, the same
media used for the OPi+2e.) There was no problem
with it finding and using its Ethernet.

I did not try any hot-plugging experiments with
this configuration.

One point is that I use ssh and a serial console
generally, so I do not normally have a keyboard
or mouse or anything but the powered hub(s)
externally plugged in to a RPi* USB port (and
an Ethernet cable plugged into the built-in
Ethernet). I also generally do not have a
video connection (HDMI or other).

> As for the aarch64 based RPi2 V1.2, I use the same
> type of powered USB3-capable hub and USB3 SSD with
> that RPi2 that I use with the RPi3. I do so in the
> same way: the USB3 SSD is the root file system for
> the boot. (I've not done any hot-plugging
> experiments for this context.) I have done such
> booting with the USB3 SSD having an armv7 system.
> (Same media used to boot the OrangePi+ 2ed. The
> OPi+2e does not need the powered hub, at least
> when the USB3 SSD is the only external USB
> connection.)
>=20
> You may want to test the hub with a microsd card
> reader and microsd card instead of the spinning
> media and see if that makes a difference. (Unless
> the hub alone [no media] is enough to mess things
> up in your context.)



=3D=3D=3D
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?9DE60D49-7C14-45AE-8B0F-D4DB1ACC51AF>