
ISD-300A1
30
October 19, 2001
ATA Command Block
ATA commands for the ISD-300A1 are supported by command encoding in the command block portion of
the
MSC
Command Block Wrapper
(CBW)
. Refer to the
USB Mass Storage Class (MSC) Bulk Only
Transport Specification
for information on CBW formatting.
The ATA Command Block
(ATACB)
provides a means of passing ATA commands and ATA register
accesses for execution. The
ATACB
resides in the
CBWCB
portion of the
CBW
. The
ATACB
is
distinguished from other command blocks by the first two bytes of the command block matching the
wATACBSignature
. Only command blocks that have a valid
wATACBSignature
are interpreted as ATA
Command Blocks. All other fields of the
CBW
and restrictions on the
CBWCB
shall remain as defined in
the
USB Mass Storage Class Bulk Only Transport Specification
. The
ATACB
shall be 16 bytes in length.
The following table and text defines the fields of the
ATACB
.
Byte
7
6
5
4
3
2
1
0
0-1
wATACBSignature
2
bmATACBActionSelect
3
bmATACBRegisterSelect
4
bATACBTransferBlockCount
5-12
bATACBTaskFileWriteData
13-15
Reserved (0)
Table 15 – ATA Command Block Formatting
Field Descriptions
wATACBSignature –
This signature indicates that the
CBWCB
contains an
ATACB
. The signature field shall contain the
ATA Command Designator value obtained from ISD-300A1 configuration space to indicate an
ATACB
(the default value is 0x2424). Devices capable of accepting only ATA Command Blocks
shall return a command failed status if the
wATACBSignature
is not correct.
bmATACBActionSelect –
The bit fields of this register shall control the execution of the
ATACB
. Refer to
Figure 3– ATA
Command Block Flow Diagram
for further clarification. The bitmap of the
bmATACBActionSelect
shall be defined as follows:
Bit 7
IdentifyPacketDevice
– ATA/ATAPI Identify Packet Device Command. Setting
IdentifyPacketDevice
indicates the data phase will contain ATAPI (A1h) or
ATA (Ech) IDENTIFY device data. Setting
IdentifyPacketDevice
when the data
phase is not IDENTIFY data will cause undetermined device behavior.
0 = Normal operation.
1 = Data phase of command will contain ATAPI or ATA IDENTIFY data,
allowing the device to parse data for required device information.
Bit 6
UDMACommand
- Ultra DMA Data Transfer Enable (Multi-word DMA not
supported). Setting
UDMA Command
with non-UDMA capable devices or
using it with non-UDMA commands will cause undetermined behavior.
0 = Do not use DMA data transfers (PIO transfers only).
1 = Utilize Ultra DMA for data transfers (device must be capable).