This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DM3730 USB Mass Storage devices don't work on Linux

Other Parts Discussed in Thread: DM3730

Hello,

I'm relatively new to configuring Linux, and I'm trying to do some USB Mass Storage tests on my DM3730 Eval kit (TMDXEVM3730).  To be clear, the DM3730 board is the USB host, and I just want to read/write various USB Flash sticks and USB HDD's (all FAT32) from inside Linux.  I'm not trying to boot from mass storage, nor am I implementing a mass storage device.

The prebuilt Linux image works great--whenever I plug in a mass storage device, it appears under /dev and gets mounted automatically, e.g. /media/sda1, so I know it's possible.  However, when I build my own kernel using the DVSDK (ti-dvsdk_dm3730-evm-4_02_00_06), I can't seem to get Linux to mount my mass storage devices.  Instead, I'll see a bunch of USB and SCSI traces on the console and in dmesg, e.g:

...

<7>usb-storage: Command MODE_SENSE (6 bytes)
<7>usb-storage: Bulk Command S 0x43425355 T 0x1a L 192 F 128 Trg 0 LUN 0 CL 6
<7>usb-storage: usb_stor_bulk_transfer_buf: xfer 31 bytes
<7>usb-storage: Status code 0; transferred 31/31
<7>usb-storage: -- transfer complete
<7>usb-storage: Bulk command transfer result=0
<7>usb-storage: usb_stor_bulk_transfer_sglist: xfer 192 bytes, 1 entries
<7>usb-storage: Status code -121; transferred 4/192
<7>usb-storage: -- short read transfer
<7>usb-storage: Bulk data transfer result 0x1
<7>usb-storage: Attempting to get CSW...
<7>usb-storage: usb_stor_bulk_transfer_buf: xfer 13 bytes
usb 1-2: reset high speed USB device using ehci-omap and address 2
<6>usb 1-2: reset high speed USB device using ehci-omap and address 2
<7>usb-storage: command_abort called
<7>usb-storage: usb_stor_stop_transport called
<7>usb-storage: -- cancelling URB
<7>usb-storage: Status code -104; transferred 0/13
<7>usb-storage: -- transfer cancelled
<7>usb-storage: Bulk status result = 4
<7>usb-storage: -- command was aborted
<7>usb-storage: usb_stor_pre_reset
usb 1-2: reset high speed USB device using ehci-omap and address 2
sd 0:0:0:0: [sda] Assuming drive cache: write through
 sda:
 sda1 sda2
<7>usb-storage: queuecommand called
<7>usb-storage: *** thread awakened.
<7>usb-storage: Command MODE_SENSE (6 bytes)

<7>usb-storage:  1a 00 3f 00 c0 00

...

 

Sometimes after this continues for around 10 minutes my mass storage device may get recognized and mountable.

In my Linux configuration, I have enabled, among others:

USB_STORAGE=y

USB_STORAGE_*=y

SCSI=y

BLK_DEV_SD=y

 

What should I try next?

 

Thanks,

Brian

  • Some TI Wiki Linux USB config info here:
    http://processors.wiki.ti.com/index.php/UserGuideUsbDriver_PSP_04_02_00_07
    Usually the default config for your board will be same one used for the pre-built. In theory, you should be able to build a kernel the same as the pre-built.

  • I think when I first installed the ti-dvsdk that I ran a 'make menuconfig' directly on linux in the psp/linux-2.6.32... directory (in the process of exploring), and I'm betting that set me up with a different initial .config from what the top-level ti Makefile would have chosen.  I'm now using an only slightly modified variant of omap3_evm_defconfig (presumably TI's prebuilt config), and mass storage is working in my builds just like the prebuilt image.

    Thanks!