в этой статье
http://wiki.osdev.org/AHCI#Find_an_AHCI_controller приводится пример поиска устройств на AHCI. собственно для идентификации пределенного устройства (АТА, ATAPI и т.д.) там используются константы
Код:
#define SATA_SIG_ATA 0x00000101 // SATA drive
#define SATA_SIG_ATAPI 0xEB140101 // SATAPI drive
#define SATA_SIG_SEMB 0xC33C0101 // Enclosure management bridge
#define SATA_SIG_PM 0x96690101 // Port multiplier
читается ячейка 24h (сигнатура) в пространстве порта. в спецификации биты трактуются так:
BIT Field
31:24 LBA High Register
23:16 LBA Mid Register
15:08 LBA Low Register
07:00 Sector Count Register
и как собственно эти константы связаны с этими данными?