I'm hardly an expert, but all the specs can be found at http://www.t13.org
"typical" commands that involve platter data as of ATA-7 are:
COMMAND NAME hex decimal
=========================== === =======
standard:
READ SECTOR(S) 20 32
READ SECTOR(S) w/ retry 21 33
WRITE SECTOR(S) 30 48
WRITE SECTOR(S) w/ retry 31 49
WRITE VERIFY 3c 60
READ MULTIPLE c4 196
WRITE MULTIPLE c5 197
READ DMA c8 200
READ DMA w/ retry c9 201
WRITE DMA ca 202
WRITE DMA w/ retry cb 203
48-bit feature set:
READ SECTOR(S) EXT 24 36
READ DMA EXT 25 37
READ MULTIPLE EXT 29 41
WRITE SECTOR(S) EXT 34 52
WRITE DMA EXT 35 53
WRITE MULTIPLE EXT 39 57
queued feature set:
READ DMA QUEUED EXT 26 38
WRITE DMA QUEUED EXT 36 54
SERVICE a2 162
READ DMA QUEUED c7 199
WRITE DMA QUEUED cc 204
ata-7 fua feature set:
WRITE DMA FUA EXT 3d 61
WRITE DMA QUEUED FUA EXT 3e 62
WRITE MULTIPLE FUA EXT ce 206
stream feature set:
READ STREAM DMA 2a 42
READ STREAM 2b 43
WRITE STREAM DMA 3a 58
WRITE STREAM 3b 59
Additionally I think the WRITE BUFFER / READ BUFFER pair are supposed to
work in the same format as a single sector write, however, they never go to
the media. (And of course byte-swapping doesn't matter, since if you issue a
read buffer, you must have immediately prior issued a write buffer command)
--eric
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/