Date: Fri, 12 Nov 2021 12:34:38 +0100 From: Milan Obuch <freebsd-usb@dino.sk> To: freebsd-usb@freebsd.org Subject: Re: USBDMSC emulated device does not work on FreeBSD Message-ID: <20211112123438.6305fc56@zeta.dino.sk> In-Reply-To: <85cdc03e-e8f1-871c-6e1d-66181e45dcb1@selasky.org> References: <20211112095915.226af6be@zeta.dino.sk> <6a6850f5-8233-aae7-8e65-42594402fcb5@selasky.org> <20211112120714.73f195a9@zeta.dino.sk> <972a650d-d490-1965-13a4-2fb984531f1d@selasky.org> <20211112121806.2db2a908@zeta.dino.sk> <85cdc03e-e8f1-871c-6e1d-66181e45dcb1@selasky.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 12 Nov 2021 12:20:45 +0100 Hans Petter Selasky <hps@selasky.org> wrote: > On 11/12/21 12:18, Milan Obuch wrote: > > On Fri, 12 Nov 2021 12:11:38 +0100 > > Hans Petter Selasky <hps@selasky.org> wrote: > > > >> Hi, > >> > >>> kernel: ugen1.3: <Microchip Inc PolarFireSoc-FlashDrive> at usbus1 > >>> > >>> line in console (and later in dmesg). Relevant line in output of > >>> 'usbconfig show_ifdrv' command is > >>> > >>> ugen1.3: <Microchip Inc PolarFireSoc-FlashDrive> at usbus1, > >>> cfg=255 md=HOST spd=HIGH (480Mbps) pwr=ON (100mA) > >> > >> cfg=255 means something very low level USB failed. It was not able > >> to set the configuration number. > >> > >> Try: > >> > >> usbconfig -d ugen1.3 set_config 0 > >> > >> --HPS > >> > > > > I tried, basically no change (no output on console, no change in > > output of 'usbconfig show_ifdrv' command). > > > > Also, I tried 'usbconfig -d ugen1.3 dump_all_desc' just out of > > curiosity, output is > > > > ugen1.3: <Microchip Inc PolarFireSoc-FlashDrive> at usbus1, cfg=255 > > md=HOST spd=HIGH (480Mbps) pwr=ON (100mA) > > > > bLength = 0x0012 > > bDescriptorType = 0x0001 > > bcdUSB = 0x0200 > > bDeviceClass = 0x0000 <Probed by interface class> > > bDeviceSubClass = 0x0000 > > bDeviceProtocol = 0x0000 > > bMaxPacketSize0 = 0x0008 > > idVendor = 0x1514 > > idProduct = 0x0001 > > bcdDevice = 0x3000 > > iManufacturer = 0x0001 <retrieving string failed> > > iProduct = 0x0002 <retrieving string failed> > > iSerialNumber = 0x0003 <retrieving string failed> > > bNumConfigurations = 0x0001 > > > > Hi, > > I suspect the USB implementation in this device is buggy and not > fully spec. compliant. > > You may try to set the UQ_NO_STRINGS quirk on this device and re-plug: > > usbconfig -d ugen1.3 add_quirk UQ_NO_STRINGS > > Then physically re-plug the device. > > --HPS > I agree this device has buggy USB implementation - there is __assert_func(): services/mmc/mmc_api.c:214: HSS_MMC_ReadBlock() Assertion failed: ((size_t)srcOffset & (HSS_MMC_SECTOR_SIZE-1)) == 0u soon after 'usbdmsc' command execution (when connected to FreeBSD box). That could explain it does not work :) Trying the command you wrote I get just Adding quirk 'UQ_NO_STRINGS' failed, continuing. I tested this on both 11.4 and 12.2 boxes. So I think something FreeBSD did in early stage after discovering new device on USB bus disturbs this device's USB stack badly and somehow it crashes (I need reset in order to continue working with it). Regards, Milan
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20211112123438.6305fc56>