History: usbd_cd_mst

This page describes all changes made to the usbd_cd_mst package, USB Device Mass Storage Class Driver, since its release.


6.16r2 (2019-10-17, 14:28):

  • Package media_drv_base added to the dependency list in the .info file.

6.16 (2019-09-13, 12:00):

  • Eliminated C++ compiler errors.

6.15 (2019-04+05, 11:33):

  • Double-buffered Rx operation fixed: USB reception occurs in parallel with SCSI media driver access in overlapped (dual buffer) mode.
  • Cleanup, formal changes.

6.14 (2018-11-14, 18:24):

  • Changed sequence of mstd_delete(). Events were deleted while usbd_mst_task was still running (which could wake-up the task).

6.13r2 (2018-08-29, 18:19):

  • Document HTML link added to the documentation folder.
  • History and document files renamed to the package name.

6.13 (2018-03-10, 16:26):

  • No operation was possible if using VMST interface without using MST interface.


  • Wrong table was returned for SCSI READ TOC/PMA/ATIP command.
  • Refactoring to comply with coding standard rules.


  • Compiler warning was eliminated.


  • Use of uninitialized buffer was eliminated.


  • Operation without RTOS was fixed


  • Bug was fixed that occurred if MST device was removed during transfer.


  • Fixed compilation issue with the latest psp_template_base package.


  • LUN reports "no medium" once after getting enabled and in case the medium was changed between two "Test Unit Ready" requests. This modification was required to force Windows to re-read the LUN if it was disabled/enabled or changed too fast.


  • Added support for transfers > 65535 Bytes.


  • Added CDROM support.


  • VMST buffer handling fixed in reset_buffers().
  • Warnings (using uninitialized variables) removed.


  • Operation fixed for systems without an OS.


  • Added support to VMST interface.


  • Warning removed.


  • Do not stall the endpoint if the command failed and there is no data phase (otherwise the status phase was stalled).
  • VER_SCSI_TGT_xx definitions are replaced by VER_USBD_MST_xx.

Original SCSI_TGT history:


     - comment changed.


     - scsis_setup_command() could return false value in case of MODE SENSE 10 command.


     - Boot Device mode supported.


     - Medium Removal and Start Stop Unit commands are implemented.


     - warning removed.


     - Fix for compliance test case 9. Phase error was indicated instead of "normal" failure.


     - phase error fix.


     - set scsi error in case of unknown command.


     - return success if get_status is not present for the media. Caused error for static medias where get_status is not present.


     - mutex used to protect media driver to be used after scsis_lun_disable().

     - driver cleanup.


     - system could crash if scsi_disable_lun() called multiple times or while SCSI was accessing the media.  

     - internal SCSI driver cleanup.


     - initial release.


 - call of oal_task_yield() added to mstd_task().


 - Medium Removal and Start Stop Unit commands are implemented  


 - set state to MSTST_NOT_CFG in case of state MSTST_WAIT_CBW while waiting for transfer end and endpoint became invalid.

 - corrected halted bit handling in case of CBW commands.


 - changed to allocate only data area required for the transfers using hcc_mem module. This means only MST_BUFFER_SIZE needs to be available (or *2 if MST_OVERLAPPED is enabled).


 - fix for mst transfer errors: call usbd_clr_halt() after usbd_set_halt() to make sure the host can clear EP HALT status.


 - mst_info structure cleared at initialization.


 - mass storage calls scsis_init() and scsis_delete().


 - double buffered read fixed; as a consequence read is much faster.


 - initial release.