Shared_Includes/constants/ATA.inc
Anatoliy Belyanskiy 785b2adeb8 ATA.inc
2023-07-31 01:45:06 +10:00

116 lines
3.3 KiB
PHP

; ATA-2 commands ************************
ATA_EXECUTE_DEVICE_DIAGNOSTIC equ 0x90
ATA_IDENTIFY_DEVICE equ 0xec
ATA_INITIALIZE_DEVICE_PARAMETERS equ 0x91
ATA_READ_SECTORS equ 0x20 ; WITH RETRY
ATA_READ_VERIFY_SECTORS equ 0x40 ; WITH RETRY
; equ 0x70-0x7f
ATA_SEEK equ 0x70
ATA_WRITE_SECTORS equ 0x30 ; WITH RETRY
; ****** additional commands ************
ATA_ACKNOWLEDGE_MEDIA_CHANGE equ 0xdb
ATA_POST_BOOT equ 0xdc
ATA_PRE_BOOR equ 0xdd
ATA_CHECK_POWER_MODE equ 0x98
ATA_CHECK_POWER_MODE2 equ 0xe5
ATA_DOOR_LOCK equ 0xde
ATA_DOOR_UNLOCK equ 0xdf
ATA_DOWNLOAD_MICROCODE equ 0x92
ATA_IDLE equ 0x97
ATA_IDLE2 equ 0xe3
ATA_IDLE_IMMENDIATE equ 0x95
ATA_IDLE_IMMENDIATE2 equ 0xe1
ATA_MEDIA_EJECT equ 0xed
ATA_NOP equ 0x00
ATA_READ_BUFFER equ 0xe4
ATA_READ_DMA equ 0xc8
ATA_READ_LONG equ 0x22
ATA_READ_MULTIPLE equ 0xc4
; equ 0x10-0x1f
ATA_RECALIBRATE equ 0x10
ATA_SET_FEATURES equ 0xef
ATA_SET_MULTIPLE_MODE equ 0xc6
ATA_SLEEP equ 0x99
ATA_SLEEP2 equ 0xe6
ATA_STANDBY equ 0x96
ATA_STANDBY2 equ 0xe2
ATA_STANDBY_IMMENDIATE equ 0x94
ATA_STANDBY2_IMMENDIATE equ 0xe0
ATA_WRITE_BUFFER equ 0xe8
ATA_WRITE_DMA equ 0xca
ATA_WRITE_LONG equ 0x32
ATA_WRITE_MULTIPLE equ 0xc5
ATA_WRITE_SAME equ 0xe9
ATA_WRITE_VERIFY equ 0x3c
; **** device specific commands *************
; TODO remap command
ATA_FORMAT_TRACK equ 0x50
; command modificators
; for ATA_READ_SECTORS, ATA_WRITE_SECTORS, ATA_VERIFY_SECTORS,
; ATA_READ_DMA, ATA_WRITE_DMA, ATA_READ_LONG, ATA_WRITE_LONG
ATA_WITHOUT_RETRY equ 0x01
; ATA registers *****************************
; command registers
ATA_DATA_REG equ 0
ATA_ERROR_REG equ 1
ATA_FEATURES_REG equ 1
ATA_SECTOR_COUNT equ 2
ATA_SECTOR_NUMBER equ 3
ATA_CYLINDER_LOW equ 4
ATA_CYLINDER_HIGH equ 5
ATA_DEVICE_HEAD equ 6
ATA_STATUS equ 7
ATA_COMMAND equ 7
; control registers
ATA_ALTERNATE_STATUS equ 0x16
ATA_DEVICE_CONTROL equ 0x16
ATA_DRIVE_ADDRESS equ 0x17
; status register bits
ATA_BUSY equ 0x80
ATA_READY equ 0x40
ATA_FAULT equ 0x20
ATA_SEEK_COMPLETE equ 0x10
ATA_DATA_REQUEST equ 0x08
ATA_CORRECTED_DATA equ 0x04
ATA_INDEX equ 0x02
ATA_ERROR equ 0x01
; device/head register bits
ATA_LBA equ 0x40
ATA_DEVICE equ 0x10
; device control register bits
ATA_SOFT_RESET equ 0x04
ATA_INTERRUPT_DISABLE equ 0x02
; error register bits
ATA_UNCORRECTABLE equ 0x40
ATA_MEDIA_CHANGED equ 0x20
ATA_ID_NOT_FOUND equ 0x10
ATA_ABORTED equ 0x08
ATA_MEDIA_CHANGE_REQUESTED equ 0x04
ATA_TRACK_0_NOT_FOUND equ 0x02
ATA_ADDERSS_MARK_NOT_FOUND equ 0x01
;