Changeset 76 for trunk/src/os2ahci/ata.h
- Timestamp:
- Feb 18, 2011, 10:09:10 PM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/os2ahci/ata.h
r57 r76 424 424 425 425 /****************************************************************************** 426 * Generic ATA-8 command structure. This is based on ATA-8, i.e. we won't have 427 * to deal with different command structures depending on whether a device is 428 * 48-bit capable, etc. because this is handled by the transport (AHCI in our 429 * case). Unsupported bits have to be cleared to zero, of course (e.g. the 430 * high 20 bits of the LBA when talking to a device that supports only 28 431 * bits). 426 * Generic ATA-8 command structure. This is loosely based on ATA-8, i.e. we 427 * don't have to deal with shadow registers and map them to the low bytes of 428 * adjecent words, etc. but there are still some oddities which need to be 429 * taken into consideration. For example, ATA-8 says LBA-28 sector addresses 430 * are simply the lower 28 bits in the LBA field. However, the underlying 431 * transport (SATA in our case) only looks at the three lower bytes of the 432 * LBA field, much like an IDE device would do. This means that only 3 bytes 433 * of the LBA field are processed and this yields only 24 bits. The remaining 434 * 4 bits need to be stored in the "device" register.... 435 * 436 * Everything else seems to behave normally, as far as this term can be 437 * applied to IDE/ATA. Further details can be found in section 7.1.5.1 of the 438 * ATA-8 spec (Inputs for 28-bit Read/Write Commands). 432 439 */ 433 440 typedef struct {
Note:
See TracChangeset
for help on using the changeset viewer.