Date: Fri, 12 Nov 2021 13:49:24 +0100 From: Hans Petter Selasky <hps@selasky.org> To: Milan Obuch <freebsd-usb@dino.sk>, freebsd-usb@freebsd.org Subject: Re: USBDMSC emulated device does not work on FreeBSD Message-ID: <df6b1571-54a3-91e2-6da5-82df6644bd64@selasky.org> In-Reply-To: <20211112123438.6305fc56@zeta.dino.sk> 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> <20211112123438.6305fc56@zeta.dino.sk>
next in thread | previous in thread | raw e-mail | index | archive | help
On 11/12/21 12:34, Milan Obuch wrote: > 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 > There is also "usbdump -i usbus1 -f 3 -s 65536 -vvv" which may point at the exact command which is failing. -_HPS
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?df6b1571-54a3-91e2-6da5-82df6644bd64>