86
90
#define ATA_CB_DC_NIEN 0x02 // disable interrupts
88
92
// Most mandtory and optional ATA commands (from ATA-3),
89
#define ATA_CMD_CFA_ERASE_SECTORS 0xC0
93
#define ATA_CMD_NOP 0x00
90
94
#define ATA_CMD_CFA_REQUEST_EXT_ERR_CODE 0x03
91
#define ATA_CMD_CFA_TRANSLATE_SECTOR 0x87
92
#define ATA_CMD_CFA_WRITE_MULTIPLE_WO_ERASE 0xCD
93
#define ATA_CMD_CFA_WRITE_SECTORS_WO_ERASE 0x38
94
#define ATA_CMD_CHECK_POWER_MODE1 0xE5
95
#define ATA_CMD_CHECK_POWER_MODE2 0x98
96
95
#define ATA_CMD_DEVICE_RESET 0x08
97
#define ATA_CMD_EXECUTE_DEVICE_DIAGNOSTIC 0x90
98
#define ATA_CMD_FLUSH_CACHE 0xE7
99
#define ATA_CMD_FORMAT_TRACK 0x50
100
#define ATA_CMD_IDENTIFY_DEVICE 0xEC
101
#define ATA_CMD_IDENTIFY_PACKET_DEVICE 0xA1
102
#define ATA_CMD_IDLE1 0xE3
103
#define ATA_CMD_IDLE2 0x97
104
#define ATA_CMD_IDLE_IMMEDIATE1 0xE1
105
#define ATA_CMD_IDLE_IMMEDIATE2 0x95
106
#define ATA_CMD_INITIALIZE_DRIVE_PARAMETERS 0x91
107
#define ATA_CMD_INITIALIZE_DEVICE_PARAMETERS 0x91
108
#define ATA_CMD_NOP 0x00
109
#define ATA_CMD_PACKET 0xA0
110
#define ATA_CMD_READ_BUFFER 0xE4
111
#define ATA_CMD_READ_DMA 0xC8
96
#define ATA_CMD_RECALIBRATE 0x10
97
#define ATA_CMD_READ_SECTORS 0x20
98
#define ATA_CMD_READ_SECTORS_EXT 0x24
112
99
#define ATA_CMD_READ_DMA_EXT 0x25
113
#define ATA_CMD_READ_DMA_QUEUED 0xC7
114
100
#define ATA_CMD_READ_DMA_QUEUED_EXT 0x26
101
#define ATA_CMD_READ_NATIVE_MAX_ADDRESS_EXT 0x27
102
#define ATA_CMD_READ_MULTIPLE_EXT 0x29
115
103
#define ATA_CMD_READ_LOG_EXT 0x2F
116
#define ATA_CMD_READ_MULTIPLE 0xC4
117
#define ATA_CMD_READ_MULTIPLE_EXT 0x29
118
#define ATA_CMD_READ_NATIVE_MAX_ADDRESS 0xF8
119
#define ATA_CMD_READ_NATIVE_MAX_ADDRESS_EXT 0x27
120
#define ATA_CMD_READ_SECTORS 0x20
121
#define ATA_CMD_READ_SECTORS_EXT 0x24
104
#define ATA_CMD_WRITE_SECTORS 0x30
105
#define ATA_CMD_WRITE_SECTORS_EXT 0x34
106
#define ATA_CMD_WRITE_DMA_EXT 0x35
107
#define ATA_CMD_WRITE_DMA_QUEUED_EXT 0x36
108
#define ATA_CMD_SET_MAX_ADDRESS_EXT 0x37
109
#define ATA_CMD_CFA_WRITE_SECTORS_WO_ERASE 0x38
110
#define ATA_CMD_WRITE_MULTIPLE_EXT 0x39
111
#define ATA_CMD_WRITE_VERIFY 0x3C
112
#define ATA_CMD_WRITE_LOG_EXT 0x3F
122
113
#define ATA_CMD_READ_VERIFY_SECTORS 0x40
123
114
#define ATA_CMD_READ_VERIFY_SECTORS_EXT 0x42
124
#define ATA_CMD_RECALIBRATE 0x10
125
#define ATA_CMD_REQUEST_SENSE 0x03
115
#define ATA_CMD_FORMAT_TRACK 0x50
126
116
#define ATA_CMD_SEEK 0x70
127
#define ATA_CMD_SET_FEATURES 0xEF
128
#define ATA_CMD_SET_MAX 0xF9
129
#define ATA_CMD_SET_MAX_ADDRESS_EXT 0x37
117
#define ATA_CMD_CFA_TRANSLATE_SECTOR 0x87
118
#define ATA_CMD_EXECUTE_DEVICE_DIAGNOSTIC 0x90
119
#define ATA_CMD_INITIALIZE_DEVICE_PARAMETERS 0x91
120
#define ATA_CMD_STANDBY_IMMEDIATE2 0x94
121
#define ATA_CMD_IDLE_IMMEDIATE2 0x95
122
#define ATA_CMD_STANDBY2 0x96
123
#define ATA_CMD_IDLE2 0x97
124
#define ATA_CMD_CHECK_POWER_MODE2 0x98
125
#define ATA_CMD_SLEEP2 0x99
126
#define ATA_CMD_PACKET 0xA0
127
#define ATA_CMD_IDENTIFY_PACKET_DEVICE 0xA1
128
#define ATA_CMD_CFA_ERASE_SECTORS 0xC0
129
#define ATA_CMD_READ_MULTIPLE 0xC4
130
#define ATA_CMD_WRITE_MULTIPLE 0xC5
130
131
#define ATA_CMD_SET_MULTIPLE_MODE 0xC6
131
#define ATA_CMD_SLEEP1 0xE6
132
#define ATA_CMD_SLEEP2 0x99
133
#define ATA_CMD_STANDBY1 0xE2
134
#define ATA_CMD_STANDBY2 0x96
135
#define ATA_CMD_STANDBY_IMMEDIATE1 0xE0
136
#define ATA_CMD_STANDBY_IMMEDIATE2 0x94
137
#define ATA_CMD_WRITE_BUFFER 0xE8
132
#define ATA_CMD_READ_DMA_QUEUED 0xC7
133
#define ATA_CMD_READ_DMA 0xC8
138
134
#define ATA_CMD_WRITE_DMA 0xCA
139
#define ATA_CMD_WRITE_DMA_EXT 0x35
140
135
#define ATA_CMD_WRITE_DMA_QUEUED 0xCC
141
#define ATA_CMD_WRITE_DMA_QUEUED_EXT 0x36
142
#define ATA_CMD_WRITE_LOG_EXT 0x3F
143
#define ATA_CMD_WRITE_MULTIPLE 0xC5
144
#define ATA_CMD_WRITE_MULTIPLE_EXT 0x39
145
#define ATA_CMD_WRITE_SECTORS 0x30
146
#define ATA_CMD_WRITE_SECTORS_EXT 0x34
147
#define ATA_CMD_WRITE_VERIFY 0x3C
136
#define ATA_CMD_CFA_WRITE_MULTIPLE_WO_ERASE 0xCD
137
#define ATA_CMD_STANDBY_IMMEDIATE 0xE0
138
#define ATA_CMD_IDLE_IMMEDIATE 0xE1
139
#define ATA_CMD_STANDBY 0xE2
140
#define ATA_CMD_IDLE 0xE3
141
#define ATA_CMD_READ_BUFFER 0xE4
142
#define ATA_CMD_CHECK_POWER_MODE 0xE5
143
#define ATA_CMD_SLEEP 0xE6
144
#define ATA_CMD_FLUSH_CACHE 0xE7
145
#define ATA_CMD_WRITE_BUFFER 0xE8
146
#define ATA_CMD_IDENTIFY_DEVICE 0xEC
147
#define ATA_CMD_SET_FEATURES 0xEF
148
#define ATA_CMD_READ_NATIVE_MAX_ADDRESS 0xF8
149
#define ATA_CMD_SET_MAX 0xF9