Date: Mon, 05 Apr 2021 14:03:23 +0800 From: "Ben Woods" <woodsb02@freebsd.org> To: freebsd-usb@freebsd.org Subject: mount_msdosfs not working for USB device SparkFun Pro nRF52840 Mini Message-ID: <dde56279-b27c-4b16-a154-c3bfe177be4b@www.fastmail.com>
next in thread | raw e-mail | index | archive | help
Hi FreeBSD USB peeps, I recently bought myself a small bluetooth development board to tinker with - a SparkFun Pro nRF52840 Mini: https://www.sparkfun.com/products/15025 But I am having difficulty mounting the mass storage device it presents when in bootloader mode (accessible by double tapping the reset button). In this mode it presents 3 devices at once - a USB serial (CDC), a DFU (device firmware upgrade) and a mass-storage device (MSD). When I attempt to mount the FAT32 formatted mass storage device I get the error: mount_msdosfs: /dev/da1: Invalid argument I suspect the issue is a USB quirk, and I may just need to use usbconfig with the right command to fix it. I'm hoping someone is able to help me get this mounting, or troubleshoot further? Cheers, Ben --- Output below from bootloader mode --- # camcontrol devlist <Generic- SD/MMC CRW 1.00> at scbus0 target 0 lun 0 (pass0,da0) <SparkFun nRF525840 Mini 1.0> at scbus1 target 0 lun 0 (pass1,da1) # ls -lah /dev/da1* crw-r----- 1 root operator 0xc9 5 Apr 13:56 /dev/da1 # mount -t msdosfs /dev/da1 /mnt mount_msdosfs: /dev/da1: Invalid argument # mount -t msdosfs /dev/msdosfs/NRF52BOOT /mnt mount_msdosfs: /dev/msdosfs/NRF52BOOT: Invalid argument # fstyp -lu /dev/da1 msdosfs NRF52BOOT # file -s /dev/da1 /dev/da1: DOS/MBR boot sector, code offset 0x3c+2, OEM-ID "UF2 UF2 ", root entries 64, sectors 7998 (volumes <=32 MB), Media descriptor 0xf8, sectors/FAT 32, sectors/track 1, heads 1, serial number 0x420042, label: "NRF52BOOT ", FAT (16 bit) # dmesg ugen0.10: <Adafruit Industries Bluefruit nRF52840 DFU> at usbus0 umodem0 on uhub1 umodem0: <Bluefruit Serial> on usbus0 umodem0: data interface 1, has no CM over data, has no break umass1 on uhub1 umass1: <Bluefruit UF2> on usbus0 umass1: SCSI over Bulk-Only; quirks = 0x0000 umass1:1:1: Attached to scbus1 da1 at umass-sim1 bus 1 scbus1 target 0 lun 0 da1: <SparkFun nRF525840 Mini 1.0> Removable Direct Access SCSI-2 device da1: Serial Number C1599CE596019A19 da1: 1.000MB/s transfers da1: 3MB (8000 512 byte sectors) da1: quirks=0x2<NO_6_BYTE> # usbconfig -d 0.10 dump_all_desc ugen0.10: <Adafruit Industries Bluefruit nRF52840 DFU> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (100mA) bLength = 0x0012 bDescriptorType = 0x0001 bcdUSB = 0x0200 bDeviceClass = 0x00ef <Miscellaneous device> bDeviceSubClass = 0x0002 bDeviceProtocol = 0x0001 bMaxPacketSize0 = 0x0040 idVendor = 0x1b4f idProduct = 0x5284 bcdDevice = 0x0100 iManufacturer = 0x0001 <Adafruit Industries> iProduct = 0x0002 <Bluefruit nRF52840 DFU> iSerialNumber = 0x0003 <C1599CE596019A19> bNumConfigurations = 0x0001 Configuration index 0 bLength = 0x0009 bDescriptorType = 0x0002 wTotalLength = 0x0062 bNumInterfaces = 0x0003 bConfigurationValue = 0x0001 iConfiguration = 0x0000 <no string> bmAttributes = 0x0080 bMaxPower = 0x0032 Additional Descriptor bLength = 0x08 bDescriptorType = 0x0b bDescriptorSubType = 0x00 RAW dump: 0x00 | 0x08, 0x0b, 0x00, 0x02, 0x02, 0x02, 0x01, 0x00 Interface 0 bLength = 0x0009 bDescriptorType = 0x0004 bInterfaceNumber = 0x0000 bAlternateSetting = 0x0000 bNumEndpoints = 0x0001 bInterfaceClass = 0x0002 <Communication device> bInterfaceSubClass = 0x0002 bInterfaceProtocol = 0x0001 iInterface = 0x0004 <Bluefruit Serial> Additional Descriptor bLength = 0x05 bDescriptorType = 0x24 bDescriptorSubType = 0x00 RAW dump: 0x00 | 0x05, 0x24, 0x00, 0x20, 0x01 Additional Descriptor bLength = 0x05 bDescriptorType = 0x24 bDescriptorSubType = 0x01 RAW dump: 0x00 | 0x05, 0x24, 0x01, 0x00, 0x01 Additional Descriptor bLength = 0x04 bDescriptorType = 0x24 bDescriptorSubType = 0x02 RAW dump: 0x00 | 0x04, 0x24, 0x02, 0x02 Additional Descriptor bLength = 0x05 bDescriptorType = 0x24 bDescriptorSubType = 0x06 RAW dump: 0x00 | 0x05, 0x24, 0x06, 0x00, 0x01 Endpoint 0 bLength = 0x0007 bDescriptorType = 0x0005 bEndpointAddress = 0x0081 <IN> Interface 1 bLength = 0x0009 bDescriptorType = 0x0004 bInterfaceNumber = 0x0001 bAlternateSetting = 0x0000 bNumEndpoints = 0x0002 bInterfaceClass = 0x000a <CDC-data> bInterfaceSubClass = 0x0000 bInterfaceProtocol = 0x0000 iInterface = 0x0000 <no string> Endpoint 0 bLength = 0x0007 bDescriptorType = 0x0005 bEndpointAddress = 0x0002 <OUT> bmAttributes = 0x0002 <BULK> wMaxPacketSize = 0x0040 bInterval = 0x0000 bRefresh = 0x0000 bSynchAddress = 0x0000 Endpoint 1 bLength = 0x0007 bDescriptorType = 0x0005 bEndpointAddress = 0x0082 <IN> bmAttributes = 0x0002 <BULK> wMaxPacketSize = 0x0040 bInterval = 0x0000 bRefresh = 0x0000 bSynchAddress = 0x0000 Interface 2 bLength = 0x0009 bDescriptorType = 0x0004 bInterfaceNumber = 0x0002 bAlternateSetting = 0x0000 bNumEndpoints = 0x0002 bInterfaceClass = 0x0008 <Mass storage> bInterfaceSubClass = 0x0006 bInterfaceProtocol = 0x0050 iInterface = 0x0005 <Bluefruit UF2> Endpoint 0 bLength = 0x0007 bDescriptorType = 0x0005 bEndpointAddress = 0x0003 <OUT> bmAttributes = 0x0002 <BULK> wMaxPacketSize = 0x0040 bInterval = 0x0001 bRefresh = 0x0000 bSynchAddress = 0x0000 Endpoint 1 bLength = 0x0007 bDescriptorType = 0x0005 bEndpointAddress = 0x0083 <IN> bmAttributes = 0x0002 <BULK> wMaxPacketSize = 0x0040 bInterval = 0x0001 bRefresh = 0x0000 bSynchAddress = 0x0000 -- From: Ben Woods woodsb02@freebsd.org
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?dde56279-b27c-4b16-a154-c3bfe177be4b>