[Bug 262882] [13.1-RC5] usb disconnects repeatedly, losing all attached devices on that USB hub

From: <bugzilla-noreply_at_freebsd.org>
Date: Tue, 03 May 2022 19:56:14 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=262882

--- Comment #95 from Mark Millard <marklmi26-fbsd@yahoo.com> ---
(In reply to Mark Millard from comment #86)

The messages that I've reported getting for
USB 3.1 ports when the NVMe SSD USB3 devices
are plugged in:

uhub_reattach_port: port 2 U1 timeout failed, error=USB_ERR_IOERROR
uhub_reattach_port: port 2 U2 timeout failed, error=USB_ERR_IOERROR

seem to be tied to code that looks like (U1 case shown):

        case C(UR_SET_FEATURE, UT_WRITE_CLASS_OTHER):

                i = index >> 8;
                index &= 0x00FF;

                if ((index < 1) ||
                    (index > sc->sc_noport)) {
                        err = USB_ERR_IOERROR;
                        goto done;
                }

                port = XHCI_PORTSC(index);
                v = XREAD4(sc, oper, port) & ~XHCI_PS_CLEAR;

                switch (value) {
                case UHF_PORT_U1_TIMEOUT:
                        if (XHCI_PS_SPEED_GET(v) != 4) {
                                err = USB_ERR_IOERROR;
                                goto done;
                        }

So it seems to be not getting the speed-mode it expects and
it treats that as an error status. I've no clue if the
speed-mode should be guaranteed as the code suggests at the
point of plugging an NMVe SSD into a USB 3.1 port or not.

But it sure looks like a distinct issue from the original
buzilla submittal.

-- 
You are receiving this mail because:
You are the assignee for the bug.