Yep, me again!

USB device is working. I can create a ram disk, format it as FAT, set it as
a LUN device and Windows and Linux see it as an MSD device. I can read and
write to it, reliably. 

I have an MT25QL256A device (32Mbyte) which is correctly connected to the
SAMA5D17 via SPI0, has a block driver, and I can format it as FAT

nsh> df
  Block    Number
    Size     Blocks       Used   Available Mounted on
16384       2046          2        2044       /mnt/fs
  1024       1004          2        1002       /mnt/ramfs
         0             0           0              0       /proc

When I run msconn it is pretty much always seen by Linux, but it's very
unpredictable with Win10 (get the connection sound, device manager sees it
as a drive, but doesn't reliably do the Windows equivalent of mounting it.
Mostly.

If I copy a 1Mbyte file to it (Ubuntu 20.04) it seems to write the file - it
appears in "Files" in Ubuntu. But if I try and eject the MSD, it tells me
one or more applications are keeping the device busy.

Windows behaviour is much quirkier but similar. The file seems not to write,
or Windows wants to fix errors, or just sits there. Eventually, if detected
properly, the file appears not to write, but an msdis followed by msconn
shows it is there....but it is corrupted if I compare to the original file
written. The size is right but it is not the same contents.

Go back to Linux, and it no longer wants to see the MSD, unless I reformat
it via nsh.

My belief is that the USB MSD, or FAT, or this flash device, is somehow not
working right for me. Everything else has absolutely been me not setting up
something right, or a stack issue, or not understanding dumb things, but I
have eventually got there (with help from you guys...thanks!). Right now,
though, this has me completely stumped again :(

Anyone seen anything like this before and got any suggestions of things for
me to look at or try tomorrow? 


Reply via email to