PS2SDK
PS2 Homebrew Libraries
Loading...
Searching...
No Matches
atahw.h File Reference
#include <tamtypes.h>
#include <aifregs.h>
#include <speedregs.h>
+ Include dependency graph for atahw.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  _ata_hwport
 

Macros

#define ATA_DEV9_HDD_BASE   (SPD_REGBASE + 0x40)
 
#define ATA_AIF_HDD_BASE   (AIF_REGBASE + AIF_ATA)
 
#define r_feature   r_error
 
#define r_command   r_status
 
#define USE_ATA_REGS
 
#define USE_AIF_ATA_REGS
 
#define ATA_ERR_MARK   0x01
 
#define ATA_ERR_TRACK0   0x02
 
#define ATA_ERR_ABORT   0x04
 
#define ATA_ERR_MCR   0x08
 
#define ATA_ERR_ID   0x10
 
#define ATA_ERR_MC   0x20
 
#define ATA_ERR_ECC   0x40
 
#define ATA_ERR_ICRC   0x80
 
#define ATA_STAT_ERR   0x01
 
#define ATA_STAT_INDEX   0x02
 
#define ATA_STAT_ECC   0x04
 
#define ATA_STAT_DRQ   0x08
 
#define ATA_STAT_SEEK   0x10
 
#define ATA_STAT_WRERR   0x20
 
#define ATA_STAT_READY   0x40
 
#define ATA_STAT_BUSY   0x80
 
#define ATA_SEL_LBA   0x40
 
#define ATA_F_SEC_ENABLED   (1 << 1)
 
#define ATA_F_SEC_LOCKED   (1 << 2)
 

Typedefs

typedef struct _ata_hwport ata_hwport_t
 

Enumerations

enum  ATA_C_CODES {
  ATA_C_NOP = 0x00 , ATA_C_CFA_REQUEST_EXTENDED_ERROR_CODE = 0x03 , ATA_C_DATA_SET_MANAGEMENT = 0x06 , ATA_C_DATA_SET_MANAGEMENT_XL = 0x07 ,
  ATA_C_DEVICE_RESET = 0x08 , ATA_C_REQUEST_SENSE_DATA_EXT = 0x0B , ATA_C_RECALIBRATE = 0x10 , ATA_C_RECALIBRATE_11H = 0x11 ,
  ATA_C_RECALIBRATE_12H = 0x12 , ATA_C_RECALIBRATE_13H = 0x13 , ATA_C_RECALIBRATE_14H = 0x14 , ATA_C_RECALIBRATE_15H = 0x15 ,
  ATA_C_RECALIBRATE_16H = 0x16 , ATA_C_RECALIBRATE_17H = 0x17 , ATA_C_RECALIBRATE_18H = 0x18 , ATA_C_RECALIBRATE_19H = 0x19 ,
  ATA_C_RECALIBRATE_1AH = 0x1A , ATA_C_RECALIBRATE_1BH = 0x1B , ATA_C_RECALIBRATE_1CH = 0x1C , ATA_C_RECALIBRATE_1DH = 0x1D ,
  ATA_C_RECALIBRATE_1EH = 0x1E , ATA_C_RECALIBRATE_1FH = 0x1F , ATA_C_READ_SECTOR = 0x20 , ATA_C_READ_SECTOR_WITHOUT_RETRY = 0x21 ,
  ATA_C_READ_LONG = 0x22 , ATA_C_READ_LONG_WITHOUT_RETRY = 0x23 , ATA_C_READ_SECTOR_EXT = 0x24 , ATA_C_READ_DMA_EXT ,
  ATA_C_READ_DMA_QUEUED_EXT = 0x26 , ATA_C_READ_NATIVE_MAX_ADDRESS_EXT = 0x27 , ATA_C_READ_MULTIPLE_EXT = 0x29 , ATA_C_READ_STREAM_DMA = 0x2A ,
  ATA_C_READ_STREAM_EXT = 0x2B , ATA_C_READ_LOG_EXT = 0x2F , ATA_C_WRITE_SECTOR = 0x30 , ATA_C_WRITE_SECTOR_WITHOUT_RETRY = 0x31 ,
  ATA_C_WRITE_LONG = 0x32 , ATA_C_WRITE_LONG_WITHOUT_RETRY = 0x33 , ATA_C_WRITE_SECTOR_EXT = 0x34 , ATA_C_WRITE_DMA_EXT ,
  ATA_C_WRITE_DMA_QUEUED_EXT = 0x36 , ATA_C_SET_MAX_ADDRESS_EXT = 0x37 , ATA_C_CFA_WRITE_SECTORS_WITHOUT_ERASE = 0x38 , ATA_C_WRITE_MULTIPLE_EXT = 0x39 ,
  ATA_C_WRITE_STREAM_DMA = 0x3A , ATA_C_WRITE_STREAM_EXT = 0x3B , ATA_C_WRITE_VERIFY = 0x3C , ATA_C_WRITE_DMA_FUA_EXT = 0x3D ,
  ATA_C_WRITE_DMA_QUEUED_FUA_EXT = 0x3E , ATA_C_WRITE_LOG_EXT = 0x3F , ATA_C_READ_VERIFY_SECTOR = 0x40 , ATA_C_READ_VERIFY_SECTOR_WITHOUT_RETRY = 0x41 ,
  ATA_C_READ_VERIFY_SECTOR_EXT = 0x42 , ATA_C_ZERO_EXT = 0x44 , ATA_C_WRITE_UNCORRECTABLE_EXT = 0x45 , ATA_C_READ_LOG_DMA_EXT = 0x47 ,
  ATA_C_ZAC_MANAGEMENT_IN = 0x4A , ATA_C_FORMAT_TRACK = 0x50 , ATA_C_CONFIGURE_STREAM = 0x51 , ATA_C_WRITE_LOG_DMA_EXT = 0x57 ,
  ATA_C_TRUSTED_NON_DATA = 0x5B , ATA_C_TRUSTED_RECEIVE = 0x5C , ATA_C_TRUSTED_RECEIVE_DMA = 0x5D , ATA_C_TRUSTED_SEND = 0x5E ,
  ATA_C_TRUSTED_SEND_DMA = 0x5F , ATA_C_READ_FPDMA_QUEUED = 0x60 , ATA_C_WRITE_FPDMA_QUEUED = 0x61 , ATA_C_SATA_62H = 0x62 ,
  ATA_C_NCQ_NON_DATA = 0x63 , ATA_C_SEND_FPDMA_QUEUED = 0x64 , ATA_C_RECEIVE_FPDMA_QUEUED = 0x65 , ATA_C_SATA_66H = 0x66 ,
  ATA_C_SATA_67H = 0x67 , ATA_C_SATA_68H = 0x68 , ATA_C_SATA_69H = 0x69 , ATA_C_SATA_6AH = 0x6A ,
  ATA_C_SATA_6BH = 0x6B , ATA_C_SATA_6CH = 0x6C , ATA_C_SATA_6DH = 0x6D , ATA_C_SATA_6EH = 0x6E ,
  ATA_C_SATA_6FH = 0x6F , ATA_C_SEEK = 0x70 , ATA_C_SEEK_71H = 0x71 , ATA_C_SEEK_72H = 0x72 ,
  ATA_C_SEEK_73H = 0x73 , ATA_C_SEEK_74H = 0x74 , ATA_C_SEEK_75H = 0x75 , ATA_C_SEEK_76H = 0x76 ,
  ATA_C_SET_TIME_DATA_EXT = 0x77 , ATA_C_ACCESSIBLE_MAX_ADDRESS_CONFIGURATION = 0x78 , ATA_C_SEEK_79H = 0x79 , ATA_C_SEEK_7AH = 0x7A ,
  ATA_C_SEEK_7BH = 0x7B , ATA_C_REMOVE_ELEMENT_AND_TRUNCATE = 0x7C , ATA_C_RESTORE_ELEMENTS_AND_REBUILD = 0x7D , ATA_C_SEEK_7EH = 0x7E ,
  ATA_C_SEEK_7FH = 0x7F , ATA_C_CFA_TRANSLATE_SECTOR = 0x87 , ATA_C_SCE_SECURITY_CONTROL = 0x8e , ATA_C_EXECUTE_DEVICE_DIAGNOSTIC = 0x90 ,
  ATA_C_INITIALIZE_DEVICE_PARAMETERS = 0x91 , ATA_C_DOWNLOAD_MICROCODE = 0x92 , ATA_C_DOWNLOAD_MICROCODE_DMA = 0x93 , ATA_C_STANDBY_IMMEDIATE_94H = 0x94 ,
  ATA_C_IDLE_IMMEDIATE_95H = 0x95 , ATA_C_MUTATE = 0x96 , ATA_C_IDLE_97H = 0x97 , ATA_C_CHECK_POWER_MODE_98H = 0x98 ,
  ATA_C_SLEEP_99H = 0x99 , ATA_C_ZAC_MANAGEMENT_OUT = 0x9F , ATA_C_PACKET = 0xa0 , ATA_C_IDENTIFY_PACKET_DEVICE ,
  ATA_C_SERVICE , ATA_C_SMART = 0xb0 , ATA_C_DEVICE_CONFIGURATION , ATA_C_SET_SECTOR_CONFIGURATION_EXT ,
  ATA_C_SANATIZE_DEVICE = 0xb4 , ATA_C_NV_CACHE = 0xb6 , ATA_C_CFA_KEY_MANAGEMENT = 0xb9 , ATA_C_CFA_ERASE_SECTORS = 0xc0 ,
  ATA_C_READ_MULTIPLE = 0xc4 , ATA_C_WRITE_MULTIPLE , ATA_C_SET_MULTIPLE_MODE , ATA_C_READ_DMA_QUEUED ,
  ATA_C_READ_DMA , ATA_C_READ_DMA_WITHOUT_RETRIES , ATA_C_WRITE_DMA = 0xca , ATA_C_WRITE_DMA_WITHOUT_RETRIES ,
  ATA_C_WRITE_DMA_QUEUED = 0xcc , ATA_C_CFA_WRITE_MULTIPLE_WITHOUT_ERASE , ATA_C_WRITE_MULTIPLE_FUA_EXT , ATA_C_CHECK_MEDIA_CARD_TYPE = 0xd1 ,
  ATA_C_GET_MEDIA_STATUS = 0xda , ATA_C_ACKNOWLEDGE_MEDIA_CHANGE = 0xdb , ATA_C_BOOT_POST_BOOT = 0xdc , ATA_C_BOOT_PRE_BOOT = 0xdd ,
  ATA_C_MEDIA_LOCK = 0xde , ATA_C_MEDIA_UNLOCK , ATA_C_STANDBY_IMMEDIATE = 0xe0 , ATA_C_IDLE_IMMEDIATE ,
  ATA_C_STANDBY , ATA_C_IDLE , ATA_C_READ_BUFFER , ATA_C_CHECK_POWER_MODE ,
  ATA_C_SLEEP , ATA_C_FLUSH_CACHE , ATA_C_WRITE_BUFFER , ATA_C_WRITE_SAME_READ_BUFFER_DMA = 0xe9 ,
  ATA_C_FLUSH_CACHE_EXT = 0xea , ATA_C_WRITE_BUFFER_DMA = 0xeb , ATA_C_IDENTIFY_DEVICE = 0xec , ATA_C_MEDIA_EJECT ,
  ATA_C_IDENTIFY_DEVICE_DMA = 0xee , ATA_C_SET_FEATURES = 0xef , ATA_C_SECURITY_SET_PASSWORD = 0xf1 , ATA_C_SECURITY_UNLOCK ,
  ATA_C_SECURITY_ERASE_PREPARE , ATA_C_SECURITY_ERASE_UNIT , ATA_C_SECURITY_FREEZE_LOCK , ATA_C_SECURITY_DISABLE_PASSWORD ,
  ATA_C_READ_NATIVE_MAX_ADDRESS = 0xf8 , ATA_C_SET_MAX_ADDRESS
}
 
enum  ATA_SCE_SECURITY_CODES {
  ATA_SCE_IDENTIFY_DRIVE = 0xec , ATA_SCE_SECURITY_SET_PASSWORD = 0xf1 , ATA_SCE_SECURITY_UNLOCK , ATA_SCE_SECURITY_ERASE_PREPARE ,
  ATA_SCE_SECURITY_ERASE_UNIT , ATA_SCE_SECURITY_FREEZE_LOCK , ATA_SCE_SECURITY_READ_ID = 0x20 , ATA_SCE_SECURITY_WRITE_ID = 0x30
}
 
enum  ATA_S_SMART_CODES {
  ATA_S_SMART_READ_DATA = 0xd0 , ATA_S_SMART_ENABLE_DISABLE_AUTOSAVE = 0xd2 , ATA_S_SMART_SAVE_ATTRIBUTE_VALUES , ATA_S_SMART_EXECUTE_OFF_LINE ,
  ATA_S_SMART_READ_LOG , ATA_S_SMART_WRITE_LOG , ATA_S_SMART_ENABLE_OPERATIONS = 0xd8 , ATA_S_SMART_DISABLE_OPERATIONS ,
  ATA_S_SMART_RETURN_STATUS
}
 
enum  _ata_identify_offsets {
  ATA_ID_GENERAL_CONFIGURATION = 0 , ATA_ID_SPECIFIC_CONFIGURATION = 2 , ATA_ID_CFA_NUMBER_OF_SECTORS_PER_CARD_0 = 7 , ATA_ID_CFA_NUMBER_OF_SECTORS_PER_CARD_1 = 8 ,
  ATA_ID_SERIAL_NUMBER_0 = 10 , ATA_ID_SERIAL_NUMBER_1 = 11 , ATA_ID_SERIAL_NUMBER_2 = 12 , ATA_ID_SERIAL_NUMBER_3 = 13 ,
  ATA_ID_SERIAL_NUMBER_4 = 14 , ATA_ID_SERIAL_NUMBER_5 = 15 , ATA_ID_SERIAL_NUMBER_6 = 16 , ATA_ID_SERIAL_NUMBER_7 = 17 ,
  ATA_ID_SERIAL_NUMBER_8 = 18 , ATA_ID_SERIAL_NUMBER_9 = 19 , ATA_ID_FIRMWARE_REVISION_0 = 23 , ATA_ID_FIRMWARE_REVISION_1 = 24 ,
  ATA_ID_FIRMWARE_REVISION_2 = 25 , ATA_ID_FIRMWARE_REVISION_3 = 26 , ATA_ID_MODEL_NUMBER_00 = 27 , ATA_ID_MODEL_NUMBER_01 = 28 ,
  ATA_ID_MODEL_NUMBER_02 = 29 , ATA_ID_MODEL_NUMBER_03 = 30 , ATA_ID_MODEL_NUMBER_04 = 31 , ATA_ID_MODEL_NUMBER_05 = 32 ,
  ATA_ID_MODEL_NUMBER_06 = 33 , ATA_ID_MODEL_NUMBER_07 = 34 , ATA_ID_MODEL_NUMBER_08 = 35 , ATA_ID_MODEL_NUMBER_09 = 36 ,
  ATA_ID_MODEL_NUMBER_10 = 37 , ATA_ID_MODEL_NUMBER_11 = 38 , ATA_ID_MODEL_NUMBER_12 = 39 , ATA_ID_MODEL_NUMBER_13 = 40 ,
  ATA_ID_MODEL_NUMBER_14 = 41 , ATA_ID_MODEL_NUMBER_15 = 42 , ATA_ID_MODEL_NUMBER_16 = 43 , ATA_ID_MODEL_NUMBER_17 = 44 ,
  ATA_ID_MODEL_NUMBER_18 = 45 , ATA_ID_MODEL_NUMBER_19 = 46 , ATA_ID_TRUSTED_COMPUTING_FEATURE_SET_OPTIONS = 48 , ATA_ID_CAPABILITIES_49 = 49 ,
  ATA_ID_CAPABILITIES_50 = 50 , ATA_ID_CAPABILITIES_53 = 53 , ATA_ID_CAPABILITIES_59 = 59 , ATA_ID_SECTOTAL_LO = 60 ,
  ATA_ID_SECTOTAL_HI = 61 , ATA_ID_MULTIWORD_DMA_MODES = 63 , ATA_ID_CAPABILITIES_64 = 64 , ATA_ID_MINIMUM_MULTIWORD_DMA_TRANSFER_CYCLE_TYPE_PER_WORD = 65 ,
  ATA_ID_MANUFACTURERS_RECOMMENDED_MULTIWORD_DMA_TRANSFER_CYCLE_TIME = 66 , ATA_ID_MINIMUM_PIO_TRANSFER_CYCLE_TIME_WITHOUT_FLOW_CONTROL = 67 , ATA_ID_MINIMUM_PIO_TRANSFER_CYCLE_TIME_WITH_IORDY_FLOW_CONTROL = 68 , ATA_ID_ADDITIONAL_SUPPORTED = 69 ,
  ATA_ID_QUEUE_DEPTH = 75 , ATA_ID_SERIAL_ATA_CAPABILITIES = 76 , ATA_ID_SERIAL_ATA_ADDITIONAL_CAPABILITIES = 77 , ATA_ID_SERIAL_ATA_FEATURES_SUPPORTED = 78 ,
  ATA_ID_SERIAL_ATA_FEATURES_ENABLED = 79 , ATA_ID_MAJOR_VERSION_NUMBER = 80 , ATA_ID_MINOR_VERSION_NUMBER = 81 , ATA_ID_COMMANDS_AND_FEATURE_SETS_SUPPORTED_82 = 82 ,
  ATA_ID_COMMAND_SETS_SUPPORTED = 83 , ATA_ID_COMMANDS_AND_FEATURE_SETS_SUPPORTED_84 = 84 , ATA_ID_COMMANDS_AND_FEATURE_SETS_SUPPORTED_OR_ENABLED_85 = 85 , ATA_ID_COMMANDS_AND_FEATURE_SETS_SUPPORTED_OR_ENABLED_86 = 86 ,
  ATA_ID_COMMANDS_AND_FEATURE_SETS_SUPPORTED_OR_ENABLED_87 = 87 , ATA_ID_UDMA_CONTROL = 88 , ATA_ID_TIME_REQUIRED_FOR_A_NORMAL_ERASE_MODE_SECURITY_ERASE_UNIT_COMMAND = 89 , ATA_ID_TIME_REQUIRED_FOR_AN_ENHANCED_ERASE_MODE_SECURITY_ERASE_UNIT_COMMAND = 90 ,
  ATA_ID_CAPABILITIES_91 = 91 , ATA_ID_MASTER_PASSWORD_IDENTIFIER = 92 , ATA_ID_HARDWARE_RESET_RESULTS = 93 , ATA_ID_STREAM_MINIMUM_REQUEST_SIZE = 95 ,
  ATA_ID_STREAMING_TRANSFER_TIME = 96 , ATA_ID_STREAMING_ACCESS_LATENCY = 97 , ATA_ID_STREAMING_PERFORMANCE_GRANULARITY_0 = 98 , ATA_ID_STREAMING_PERFORMANCE_GRANULARITY_1 = 99 ,
  ATA_ID_48BIT_SECTOTAL_LO = 100 , ATA_ID_48BIT_SECTOTAL_MI = 101 , ATA_ID_48BIT_SECTOTAL_HI = 102 , ATA_ID_48BIT_SECTOTAL_UI = 103 ,
  ATA_ID_STREAMING_TRANSFER_TIME_PIO = 104 , ATA_ID_MAXIMUM_NUMBER_OF_512_BYTE_BLOCKS_PER_DATA_SET_MANAGEMENT_COMMAND = 105 , ATA_ID_PHYSICAL_SECTOR_SIZE_LOGICAL_SECTOR_SIZE = 106 , ATA_ID_INTER_SEEK_DELAY_FOR_ISO_IEC_7779_STANDARD_ACOUSTIC_TESTING = 107 ,
  ATA_ID_WORLD_WIDE_NAME_0 = 108 , ATA_ID_WORLD_WIDE_NAME_1 = 109 , ATA_ID_WORLD_WIDE_NAME_2 = 110 , ATA_ID_WORLD_WIDE_NAME_3 = 111 ,
  ATA_ID_LOGICAL_SECTOR_SIZE_0 = 117 , ATA_ID_LOGICAL_SECTOR_SIZE_1 = 118 , ATA_ID_COMMANDS_AND_FEATURE_SETS_SUPPORTED_119 = 119 , ATA_ID_COMMANDS_AND_FEATURE_SETS_SUPPORTED_OR_ENABLED_120 = 120 ,
  ATA_ID_SECURITY_STATUS = 128 , ATA_ID_CFA_POWER_REQUIREMENT_DESCRIPTION = 160 , ATA_ID_CFA_KEY_MANAGEMENT_SCHEMES_SUPPORTED = 162 , ATA_ID_CFA_CF_ADVANCED_TRUE_IDE_TIMING_MODE_CAPABILITY_AND_SETTING = 163 ,
  ATA_ID_CFA_CF_ADVANCED_PC_CARD_IO_AND_MEMORY_TIMING_MODE_CAPABILITY = 164 , ATA_ID_CAPABILITIES_168 = 168 , ATA_ID_DATA_SET_MANAGEMENT_COMMAND_SUPPORT = 169 , ATA_ID_ADDITIONAL_PRODUCT_IDENTIFIER_0 = 170 ,
  ATA_ID_ADDITIONAL_PRODUCT_IDENTIFIER_1 = 171 , ATA_ID_ADDITIONAL_PRODUCT_IDENTIFIER_2 = 172 , ATA_ID_ADDITIONAL_PRODUCT_IDENTIFIER_3 = 173 , ATA_ID_CURRENT_MEDIA_SERIAL_NUMBER_00 = 176 ,
  ATA_ID_CURRENT_MEDIA_SERIAL_NUMBER_01 = 177 , ATA_ID_CURRENT_MEDIA_SERIAL_NUMBER_02 = 178 , ATA_ID_CURRENT_MEDIA_SERIAL_NUMBER_03 = 179 , ATA_ID_CURRENT_MEDIA_SERIAL_NUMBER_04 = 180 ,
  ATA_ID_CURRENT_MEDIA_SERIAL_NUMBER_05 = 181 , ATA_ID_CURRENT_MEDIA_SERIAL_NUMBER_06 = 182 , ATA_ID_CURRENT_MEDIA_SERIAL_NUMBER_07 = 183 , ATA_ID_CURRENT_MEDIA_SERIAL_NUMBER_08 = 184 ,
  ATA_ID_CURRENT_MEDIA_SERIAL_NUMBER_09 = 185 , ATA_ID_CURRENT_MEDIA_SERIAL_NUMBER_10 = 186 , ATA_ID_CURRENT_MEDIA_SERIAL_NUMBER_11 = 187 , ATA_ID_CURRENT_MEDIA_SERIAL_NUMBER_12 = 188 ,
  ATA_ID_CURRENT_MEDIA_SERIAL_NUMBER_13 = 189 , ATA_ID_CURRENT_MEDIA_SERIAL_NUMBER_14 = 190 , ATA_ID_CURRENT_MEDIA_SERIAL_NUMBER_15 = 191 , ATA_ID_CURRENT_MEDIA_SERIAL_NUMBER_16 = 192 ,
  ATA_ID_CURRENT_MEDIA_SERIAL_NUMBER_17 = 193 , ATA_ID_CURRENT_MEDIA_SERIAL_NUMBER_18 = 194 , ATA_ID_CURRENT_MEDIA_SERIAL_NUMBER_19 = 195 , ATA_ID_CURRENT_MEDIA_SERIAL_NUMBER_20 = 196 ,
  ATA_ID_CURRENT_MEDIA_SERIAL_NUMBER_21 = 197 , ATA_ID_CURRENT_MEDIA_SERIAL_NUMBER_22 = 198 , ATA_ID_CURRENT_MEDIA_SERIAL_NUMBER_23 = 199 , ATA_ID_CURRENT_MEDIA_SERIAL_NUMBER_24 = 200 ,
  ATA_ID_CURRENT_MEDIA_SERIAL_NUMBER_25 = 201 , ATA_ID_CURRENT_MEDIA_SERIAL_NUMBER_26 = 202 , ATA_ID_CURRENT_MEDIA_SERIAL_NUMBER_27 = 203 , ATA_ID_CURRENT_MEDIA_SERIAL_NUMBER_28 = 204 ,
  ATA_ID_CURRENT_MEDIA_SERIAL_NUMBER_29 = 205 , ATA_ID_SCT_COMMAND_TRANSPORT = 206 , ATA_ID_ALIGNMENT_OF_LOGICAL_SECTORS_WITHIN_A_PHYSICAL_SECTOR = 209 , ATA_ID_WRITE_READ_VERIFY_SECTOR_MODE_3_COUNT_0 = 210 ,
  ATA_ID_WRITE_READ_VERIFY_SECTOR_MODE_3_COUNT_1 = 211 , ATA_ID_WRITE_READ_VERIFY_SECTOR_MODE_2_COUNT_0 = 212 , ATA_ID_WRITE_READ_VERIFY_SECTOR_MODE_2_COUNT_1 = 213 , ATA_ID_NOMINAL_MEDIA_ROTATION_RATE = 217 ,
  ATA_ID_CAPABILITIES_220 = 220 , ATA_ID_TRANSPORT_MAJOR_VERSION_NUMBER = 222 , ATA_ID_TRANSPORT_MINOR_VERSION_NUMBER = 223 , ATA_ID_EXTENDED_NUMBER_OF_USER_ADDRESSABLE_SECTORS_0 = 230 ,
  ATA_ID_EXTENDED_NUMBER_OF_USER_ADDRESSABLE_SECTORS_1 = 231 , ATA_ID_EXTENDED_NUMBER_OF_USER_ADDRESSABLE_SECTORS_2 = 232 , ATA_ID_EXTENDED_NUMBER_OF_USER_ADDRESSABLE_SECTORS_3 = 233 , ATA_ID_MINIMUM_NUMBER_OF_512_BYTE_DATA_BLOCKS_PER_DOWNLOAD_MICROCODE_OPERATION = 234 ,
  ATA_ID_MAXIMUM_NUMBER_OF_512_BYTE_DATA_BLOCKS_PER_DOWNLOAD_MICROCODE_OPERATION = 235 , ATA_ID_INTEGRITY_WORD = 255
}
 

Detailed Description

ATA hardware types and definitions.

Definition in file atahw.h.


Data Structure Documentation

◆ _ata_hwport

struct _ata_hwport

A port contains all of the ATA controller registers.

Definition at line 28 of file atahw.h.

Data Fields
vu16 r_data
vu16 r_error
vu16 r_nsector
vu16 r_sector
vu16 r_lcyl
vu16 r_hcyl
vu16 r_select
vu16 r_status
vu16 pad[6]
vu16 r_control

Macro Definition Documentation

◆ ATA_DEV9_HDD_BASE

#define ATA_DEV9_HDD_BASE   (SPD_REGBASE + 0x40)

Definition at line 23 of file atahw.h.

◆ ATA_AIF_HDD_BASE

#define ATA_AIF_HDD_BASE   (AIF_REGBASE + AIF_ATA)

AIF on T10Ks - supported with aifatad.

Definition at line 25 of file atahw.h.

◆ r_feature

#define r_feature   r_error

Definition at line 32 of file atahw.h.

◆ r_command

#define r_command   r_status

Definition at line 39 of file atahw.h.

◆ USE_ATA_REGS

#define USE_ATA_REGS
Value:
ata_hwport_t *ata_hwport = \
(ata_hwport_t *)ATA_DEV9_HDD_BASE

Definition at line 44 of file atahw.h.

◆ USE_AIF_ATA_REGS

#define USE_AIF_ATA_REGS
Value:
ata_hwport_t *ata_hwport = \
#define ATA_AIF_HDD_BASE
Definition atahw.h:25

Definition at line 47 of file atahw.h.

◆ ATA_ERR_MARK

#define ATA_ERR_MARK   0x01

Definition at line 51 of file atahw.h.

◆ ATA_ERR_TRACK0

#define ATA_ERR_TRACK0   0x02

Definition at line 52 of file atahw.h.

◆ ATA_ERR_ABORT

#define ATA_ERR_ABORT   0x04

Definition at line 53 of file atahw.h.

◆ ATA_ERR_MCR

#define ATA_ERR_MCR   0x08

Definition at line 54 of file atahw.h.

◆ ATA_ERR_ID

#define ATA_ERR_ID   0x10

Definition at line 55 of file atahw.h.

◆ ATA_ERR_MC

#define ATA_ERR_MC   0x20

Definition at line 56 of file atahw.h.

◆ ATA_ERR_ECC

#define ATA_ERR_ECC   0x40

Definition at line 57 of file atahw.h.

◆ ATA_ERR_ICRC

#define ATA_ERR_ICRC   0x80

Definition at line 58 of file atahw.h.

◆ ATA_STAT_ERR

#define ATA_STAT_ERR   0x01

Definition at line 61 of file atahw.h.

◆ ATA_STAT_INDEX

#define ATA_STAT_INDEX   0x02

Definition at line 62 of file atahw.h.

◆ ATA_STAT_ECC

#define ATA_STAT_ECC   0x04

Definition at line 63 of file atahw.h.

◆ ATA_STAT_DRQ

#define ATA_STAT_DRQ   0x08

Definition at line 64 of file atahw.h.

◆ ATA_STAT_SEEK

#define ATA_STAT_SEEK   0x10

Definition at line 65 of file atahw.h.

◆ ATA_STAT_WRERR

#define ATA_STAT_WRERR   0x20

Definition at line 66 of file atahw.h.

◆ ATA_STAT_READY

#define ATA_STAT_READY   0x40

Definition at line 67 of file atahw.h.

◆ ATA_STAT_BUSY

#define ATA_STAT_BUSY   0x80

Definition at line 68 of file atahw.h.

◆ ATA_SEL_LBA

#define ATA_SEL_LBA   0x40

Definition at line 71 of file atahw.h.

◆ ATA_F_SEC_ENABLED

#define ATA_F_SEC_ENABLED   (1 << 1)

Definition at line 421 of file atahw.h.

◆ ATA_F_SEC_LOCKED

#define ATA_F_SEC_LOCKED   (1 << 2)

Definition at line 422 of file atahw.h.

Typedef Documentation

◆ ata_hwport_t

typedef struct _ata_hwport ata_hwport_t

A port contains all of the ATA controller registers.

Enumeration Type Documentation

◆ ATA_C_CODES

ATA command codes.

Definition at line 74 of file atahw.h.

◆ ATA_SCE_SECURITY_CODES

enum ATA_SCE_SECURITY_CODES

Definition at line 242 of file atahw.h.

◆ ATA_S_SMART_CODES

enum ATA_S_SMART_CODES

Definition at line 254 of file atahw.h.

◆ _ata_identify_offsets

Offsets for the data returned from IDENTIFY DEVICE commands.

Definition at line 267 of file atahw.h.