Re: USB regression on Overdrive 1000

From: Emmanuel Vadot <manu_at_bidouilliste.com>
Date: Wed, 16 Mar 2022 15:52:43 UTC
 Hi Hans,

On Wed, 16 Mar 2022 16:50:59 +0100
Hans Petter Selasky <hps@selasky.org> wrote:

> On 3/16/22 16:43, John F Carr wrote:
> > 
> >> On Mar 16, 2022, at 10:51 , Hans Petter Selasky <hps@selasky.org> wrote:
> >>
> >> On 3/16/22 14:46, John F Carr wrote:
> >>> I updated my kernel from 13.0-STABLE from early December to 13.1-STABLE from yesterday and I am having USB problems on my Overdrive 1000 ARM box.  I see some usb_msc_auto_quirk messages I haven't seen before and there is a long delay "Root mount waiting for: usbus0".  It does boot eventually off of the internal drive, ada0, but it continues to spew USB errors to the console.  It doesn't register a "CAMuhub0" device and it never finds the USB stick plugged into the external port which should appear as da0.  Any ideas?
> >>> dmesg output attached, "good" comes from "boot kernel.old".  The if_msk error is probably caused by a mismatch between old kernel and new root filesystem.
> >>> CPU  3: ARM Cortex-A57 r1p2 affinity:  1  1
> >>> Release APs...done
> >>> usbus0: 5.0Gbps Super Speed USB v3.0
> >>> Trying to mount root from zfs:zroot/ROOT/default []...
> >>> ugen0.1: <(0x1b73) XHCI root HUB> at usbus0
> >>> uhub0 on usbus0
> >>> uhub0: <(0x1b73) XHCI root HUB, class 9/0, rev 3.00/1.00, addr 1> on usbus0
> >>> ada0 at ahcich1 bus 0 scbus1 target 0 lun 0
> >>> ada0: <Patriot P200 1TB S0424A0> ACS-2 ATA SATA 3.x device
> >>> ...
> >>> Root mount waiting for: usbus0
> >>> usb_msc_auto_quirk: UQ_MSC_NO_GETMAXLUN set for USB mass storage device Generic Mass Storage Device (0x14cd:0x125d)
> >>> usb_msc_auto_quirk: UQ_MSC_NO_TEST_UNIT_READY set for USB mass storage device Generic Mass Storage Device (0x14cd:0x125d)
> >>> usb_msc_auto_quirk: UQ_MSC_NO_PREVENT_ALLOW set for USB mass storage device Generic Mass Storage Device (0x14cd:0x125d)
> >>> usb_msc_auto_quirk: UQ_MSC_NO_SYNC_CACHE set for USB mass storage device Generic Mass Storage Device (0x14cd:0x125d)
> >>> Root mount waiting for: usbus0
> >>> xhci0: Resetting controller
> >>> Root mount waiting for: usbus0
> >>> usbd_req_re_enumerate: addr=1, set address failed! (USB_ERR_TIMEOUT, ignored)
> >>> Root mount waiting for: usbus0
> >>> ...
> >>> xhci0: Resetting controller
> >>
> >> Hi,
> >>
> >> Can you cherry pick this commit:
> >>
> >> https://cgit.freebsd.org/src/commit/?id=33cbbf268f7d0f3daff0c2aa06836d932faf56a9
> >>
> >> to your 13-stable and enable it in the loader either manually or in /boot/loader.conf:
> >>
> >> set hw.usb.xhci.dcepquirk=1
> >>
> >> hw.usb.xhci.dcepquirk=1
> >>
> >> --HPS
> > 
> > That fixed it.  I attached a diff to recognize the USB controller in my system.
> > 
> 
> Hi,
> 
> Here you go:
> https://cgit.freebsd.org/src/commit/?id=19837718ab51756183046e5162b8b3b7b3cb8c3d
> 
> Will be MFC'ed to 13-stable next week.
> 
> I will try to get these patches int 13.1, but no promise.

 This need to go to 13.1, thanks.

> --HPS
> 


-- 
Emmanuel Vadot <manu@bidouilliste.com> <manu@freebsd.org>