Changeset 76 for trunk/src/os2ahci/ata.h


Ignore:
Timestamp:
Feb 18, 2011, 10:09:10 PM (14 years ago)
Author:
chris
Message:
  • APM support
  • Generic IOCTL interface for adapter passthrough commands (ATA and ATAPI)
  • Fixes to ATAPI sense data handling
  • Cosmetic changes to debug reporting
  • Fixed missing interrupt enable flag for PIO transfer completions
  • Added command line switch /I to ignore specific adapters
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/os2ahci/ata.h

    r57 r76  
    424424
    425425/******************************************************************************
    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).
    432439 */
    433440typedef struct {
Note: See TracChangeset for help on using the changeset viewer.