This document describes the eCosPro USB Mass Storage class driver. This driver provides support for USB memory sticks, Hard disks and any other devices that supports the same protocol.
Protocol support is limited to Bulk transport only, and only the SCSI transparent command set is supported. This covers most modern devices, however very old devices may support other protocols.
The CYGPKG_DEVS_DISK_USBMS package needs to be loaded in order to use the driver. In addition the CYGPKG_IO_USB USB package must be loaded to provide generic USB functionality and the board target entry in ecos.db must contain a Host Controller Driver package and a platform configuration package in order to access the USB hardware. This package also depends on support from the generic disk package CYGPKG_IO_DISK. If file system support is needed, then packages like CYGPKG_FS_FAT and CYGPKG_IO_FILEIO will need to be loaded along with any packages that they depend upon. Depending on the template used to create the initial configuration some of these may be loaded already.
- cdl_option CYGDAT_DEVS_DISK_USBMS_DISK_NAME
This is the base device name used to access the raw disk devices in eCos, for example for mount operations. Individual mass storage devices will be named using a trailing number and partitions with a yet further trailing partition number. For example disk 2, partition 3 would be named /dev/usbms/2/3.
- cdl_option CYGNUM_DEVS_DISK_USBMS_MAX_TRANSFER
This defines the maximum transfer size submitted to the device. Larger disk transfer requests will be split into smaller transfers of this size. If the USB stack or host device drivers have reduced resources, this value should be reduced to consume fewer resources for each transfer.
- cdl_option CYGNUM_DEVS_DISK_USBMS_CONTROLLER_COUNT
This defines the number of disk controllers the USBMS driver can handle simultaneously. There is a one-to-one correspondence between controllers and USB devices, so this defines the number of USB mass storage devices that can be accessed at one time.
- cdl_option CYGNUM_DEVS_DISK_USBMS_CHANNEL_COUNT
This defines the number of disk channels the USBMS driver can handle simultaneously. Each channel corresponds to a Logical Unit Number within a controller or device. Most USB mass storage devices contain a single LUN, so the default is to set this to the same value as the controller count. If devices with more LUNs are expected to be used regularly, then this value should be increased.