This message is from the T13 list server.

Lets be a little more accurate...

For traditional ATA/ATAPI devices a PIO DRQ data block is one of the following:
...

c) For ATAPI PACKET commands, the Command packet block is either 12 or 16 bytes as indicated by ID word 0 from the device.

d) For ATAPI PACKET commands, a Data packet block is between 2 and 65534 bytes as indicated by the Byte Count for the DRQ data packet and that Byte Count shall not exceed the Byte Count Limit set by the host for the execution of the PACKET command. A PACKET command may transfer any number of Data packet blocks of 2 bytes to 65534 bytes. Note that the last block may have a Byte Count of 1 - this transfers 1 data byte plus a pad byte.

Ouch.

I suppose we all also agree an ATAPI PIO DRQ block shouldn't have 3 or 65533 bytes, except the last block.

I'd say,

ATAPI DRQ blocks have a Byte Count of 0 to xFFFF bytes, which should not be odd before the last block and should never be zero and should never be xFFFF. Some hosts works better by allowing the rudeness of an odd or xFFFF Byte Count for any block and resetting any device rude enough to ask for a block of 0 bytes. Other hosts behave less deterministically, e.g., hang when a device asks for a block of 0 bytes.

Reply via email to