View Issue Details

IDProjectCategoryView StatusLast Update
0003583BuildRootBuildrootpublic2019-01-18 11:18
ReporterKeller Assigned To 
Status resolvedResolutionfixed 
Product Versionfsimx6sx-V1.0 
Target Versionfsimx6-V3.0Fixed in Versionfsimx6-V3.0 
Summary0003583: Support Media Transfer Protocol (MTD)
DescriptionStoring data on a device or reading data from a device from the outside is often done by providing the contents of a storage media as USB Mass Storage Gadget. The outside sees all the data on this media and can read and write arbitrarily.

However when doing this, the host needs exclusive access to this storage media, because the access to it takes place on a very low level. This means to be efficient, the host will cache data like FAT tables, directories, etc. If the device itself would change some of this data in parallel, all these caches on the host side would be dirty without the host knowing about this. This must not be allowed, so the media must be under the exclusive control of the host.

This is sometimes annoying as other clients would like to access the data, too. For example an image file that is transferred to the device should already be shown in an application while more data is transferred. So the application needs access to this file after it has been stored. With Mass Storage Gadget, the external access must be disconnected first before the local application can be allowed access to the file. So either the application must wait until all transfers are done, or further transfers must be done after the local application has finished its access and the host can reconnect again to the Mass Storage Media. If several such alternating accesses happen, this might result in an unfortunate sequence of: mount externally, mount locally, mount externally, mount locally, ...

A newer protocol, called Media Transfer Protocol (MTP) works differently. Here the access to the media is actually done by the device alone and the host only sees the media through this protocol. So the device can easily deal with parallel accesses by external and local clients, i.e. local and external accesses can be done at the same time, synchronization happens through the local file locking mechanisms of Linux.

This is what we want. So add a way to use MTP on F&S platforms.
Forum Link


There are no notes attached to this issue.