1
\$\begingroup\$

I have been looking at implementing the Media Storage Class on a FX3 from Cypress. There is already a pre-written firmware example using MSC BOT (Bulk Only Transport) and SCSI commands and I was wondering is BOT the best implementation to use in conjunction with e.MMC for my design? I have been looking at UFS as well however I am not able to purchase single chips easily for this prototype and I am lacking the documentation for implementing it.

I have also considered writing a UASP driver from scratch however that doesn't look like a worth-while investment considering the fact only a small selection of motherboards support, or an external piece of hardware would have to be used. So for the only type of hardware I've seen to be capable of this is SATA to UASP, nothing capable of dealing with pure SLC/TLC NAND.

\$\endgroup\$
  • \$\begingroup\$ MSC stands for "Mass Storage Class". Get your terminology straight. \$\endgroup\$ – Ale..chenski Sep 27 '17 at 17:03
  • \$\begingroup\$ @AliChen I know. No need to be so rude about it. \$\endgroup\$ – E Skal Sep 28 '17 at 16:11
2
\$\begingroup\$

The USB Mass Storage Class with Bulk-Only Transport was a necessity of USB 2.0 link layer limitations, stemmed from the half-duplex nature of USB 2.0 transfers and lack of individualized responses within transactions. So the EHCI controller had to wait for response before issuing some other sense request. This resulted in sub-optimal bus utilization and loss of performance.

With advent of USB 3.0 full-duplex physical layer, the responses to individual requests/pipes can come back asynchronously, which opened the possibility for implementation of full-scale SCSI interface.

Therefore, to answer the question literally, the best implementation of MSC in USB 3.0 environment is UASP. This has nothing to do with eMMC or any other types of your local storage. However, you must work hard to implement the multi-threaded device-side controller to comply with UASP intricacies and get all performance advantages.

Regarding the support of UASP on host side, this is purely a matter of having the corresponding OS driver, since the whole UASP is purely software thing on host side.

| improve this answer | |
\$\endgroup\$
1
\$\begingroup\$

USB BOT is a safe bet. I have not seen any system that does not supports that until now. I am pretty sure that USAP will replace BOT in the future, but we are not there yet.

| improve this answer | |
\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.