Information Technology Reference
In-Depth Information
MODE SENSE(6) with PAGE CODE = 1Ch and SUBPAGE CODE =
00h. The host requests the Informational Exceptions Control Mode page in
page_0 format.
MODE SENSE(6) with PAGE CODE = 3Fh and SUBPAGE CODE =
00h. The host requests all mode pages with subpage = 00h in page_0 for-
mat.
TEST UNIT READY. The host requests a CSW and checks the value in
bCSWStatus to determine if the logical unit is ready for use. If bCSWStatus
= 00h, the logical unit is ready. If the value isn't zero, the host can issue a
REQUEST SENSE command to learn more.
READ(10). The host can use additional READ commands to read the boot
sector, root directory, and other information in a volume.
Handling Non-compliant Devices
Not every mass-storage device complies perfectly with the mass-storage
specifications. The mass-storage drivers in Windows and Linux include
many work-arounds to enable communicating with non-compliant devices.
An embedded host that wants to communicate with a variety of off-the-shelf
devices will need to implement many of these work-arounds. If you're writ-
ing device firmware, you'll want to avoid these errors.
In Linux, the source file unusual_devs.h in the USB mass-storage driver lists
non-compliant devices and shows what the operating system does to enable
communicating.
Below are some behaviors found in non-compliant devices.
Descriptor Problems
The device's bInterfaceSubClass is FFh instead of 06h or another value
defined by the USB mass-storage specifications.
The device's bInterfaceProtocol is invalid (should be 50h for bulk-only
transport).
The device has no serial number or the serial number has invalid characters
as defined in the bulk-only transport specification.
Multiple devices with the same Vendor ID and Product ID have the same
serial number.
Search WWH ::




Custom Search