CYGPKG_DEVS_DISK_USBMS — eCosPro Support for USB Mass Storage


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.

Configuration Options

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, CYGPKG_IO_FILEIO and CYGPKG_LINUX_COMPAT will need to be loaded along with any packages that they may depend upon. Depending on the template used to create the initial configuration some of these may be loaded already.

For more information on the USB subsystem and supported classes, consult the general USB documentation.

cdl_component CYGPKG_IO_USB_HOST
Ensure that the host USB package has been loaded and enabled for your target so that USB mass storage can function.
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 0, partition 1 would be named /dev/usbms/0/1. This is the default mount point for a standard USB memory stick.
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.
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.
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.