ps2sdk  1.1
A collection of Open Source libraries used for developing applications on Sony's PlayStation 2® (PS2).
atahw.h File Reference
#include <tamtypes.h>
#include <aifregs.h>
#include <speedregs.h>
+ Include dependency graph for atahw.h:

Go to the source code of this file.

Data Structures

struct  ata_hwport_t
 

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)
 

Enumerations

enum  ATA_C_CODES {
  ATA_C_NOP = 0x00 ,
  ATA_C_CFA_REQUEST_EXTENDED_ERROR_CODE = 0x03 ,
  ATA_C_DEVICE_RESET = 0x08 ,
  ATA_C_READ_SECTOR = 0x20 ,
  ATA_C_READ_SECTOR_EXT = 0x24 ,
  ATA_C_READ_DMA_EXT ,
  ATA_C_WRITE_SECTOR = 0x30 ,
  ATA_C_WRITE_LONG = 0x32 ,
  ATA_C_WRITE_SECTOR_EXT = 0x34 ,
  ATA_C_WRITE_DMA_EXT ,
  ATA_C_CFA_WRITE_SECTORS_WITHOUT_ERASE = 0x38 ,
  ATA_C_READ_VERIFY_SECTOR = 0x40 ,
  ATA_C_READ_VERIFY_SECTOR_EXT = 0x42 ,
  ATA_C_SEEK = 0x70 ,
  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_PACKET = 0xa0 ,
  ATA_C_IDENTIFY_PACKET_DEVICE ,
  ATA_C_SERVICE ,
  ATA_C_SMART = 0xb0 ,
  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_WRITE_DMA = 0xca ,
  ATA_C_WRITE_DMA_QUEUED = 0xcc ,
  ATA_C_CFA_WRITE_MULTIPLE_WITHOUT_ERASE ,
  ATA_C_GET_MEDIA_STATUS = 0xda ,
  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_FLUSH_CACHE_EXT = 0xea ,
  ATA_C_IDENTIFY_DEVICE = 0xec ,
  ATA_C_MEDIA_EJECT ,
  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_SECTOTAL_LO = 60 ,
  ATA_ID_SECTOTAL_HI = 61 ,
  ATA_ID_COMMAND_SETS_SUPPORTED = 83 ,
  ATA_ID_48BIT_SECTOTAL_LO = 100 ,
  ATA_ID_48BIT_SECTOTAL_MI = 101 ,
  ATA_ID_48BIT_SECTOTAL_HI = 102 ,
  ATA_ID_SECURITY_STATUS = 128
}
 

Detailed Description

ATA hardware types and definitions.

Definition in file atahw.h.

Macro Definition Documentation

◆ 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.

◆ ATA_DEV9_HDD_BASE

#define ATA_DEV9_HDD_BASE   (SPD_REGBASE + 0x40)

Definition at line 23 of file atahw.h.

◆ ATA_ERR_ABORT

#define ATA_ERR_ABORT   0x04

Definition at line 52 of file atahw.h.

◆ ATA_ERR_ECC

#define ATA_ERR_ECC   0x40

Definition at line 56 of file atahw.h.

◆ ATA_ERR_ICRC

#define ATA_ERR_ICRC   0x80

Definition at line 57 of file atahw.h.

◆ ATA_ERR_ID

#define ATA_ERR_ID   0x10

Definition at line 54 of file atahw.h.

◆ ATA_ERR_MARK

#define ATA_ERR_MARK   0x01

Definition at line 50 of file atahw.h.

◆ ATA_ERR_MC

#define ATA_ERR_MC   0x20

Definition at line 55 of file atahw.h.

◆ ATA_ERR_MCR

#define ATA_ERR_MCR   0x08

Definition at line 53 of file atahw.h.

◆ ATA_ERR_TRACK0

#define ATA_ERR_TRACK0   0x02

Definition at line 51 of file atahw.h.

◆ ATA_F_SEC_ENABLED

#define ATA_F_SEC_ENABLED   (1<<1)

Definition at line 168 of file atahw.h.

◆ ATA_F_SEC_LOCKED

#define ATA_F_SEC_LOCKED   (1<<2)

Definition at line 169 of file atahw.h.

◆ ATA_SEL_LBA

#define ATA_SEL_LBA   0x40

Definition at line 70 of file atahw.h.

◆ ATA_STAT_BUSY

#define ATA_STAT_BUSY   0x80

Definition at line 67 of file atahw.h.

◆ ATA_STAT_DRQ

#define ATA_STAT_DRQ   0x08

Definition at line 63 of file atahw.h.

◆ ATA_STAT_ECC

#define ATA_STAT_ECC   0x04

Definition at line 62 of file atahw.h.

◆ ATA_STAT_ERR

#define ATA_STAT_ERR   0x01

Definition at line 60 of file atahw.h.

◆ ATA_STAT_INDEX

#define ATA_STAT_INDEX   0x02

Definition at line 61 of file atahw.h.

◆ ATA_STAT_READY

#define ATA_STAT_READY   0x40

Definition at line 66 of file atahw.h.

◆ ATA_STAT_SEEK

#define ATA_STAT_SEEK   0x10

Definition at line 64 of file atahw.h.

◆ ATA_STAT_WRERR

#define ATA_STAT_WRERR   0x20

Definition at line 65 of file atahw.h.

◆ r_command

#define r_command   r_status

Definition at line 38 of file atahw.h.

◆ r_feature

#define r_feature   r_error

Definition at line 31 of file atahw.h.

◆ USE_AIF_ATA_REGS

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

Definition at line 46 of file atahw.h.

◆ USE_ATA_REGS

#define USE_ATA_REGS
Value:
volatile ata_hwport_t *ata_hwport = \
#define ATA_DEV9_HDD_BASE
Definition: atahw.h:23

Definition at line 43 of file atahw.h.

Enumeration Type Documentation

◆ _ata_identify_offsets

Offsets for the data returned from IDENTIFY DEVICE commands.

Enumerator
ATA_ID_SECTOTAL_LO 
ATA_ID_SECTOTAL_HI 
ATA_ID_COMMAND_SETS_SUPPORTED 
ATA_ID_48BIT_SECTOTAL_LO 
ATA_ID_48BIT_SECTOTAL_MI 
ATA_ID_48BIT_SECTOTAL_HI 
ATA_ID_SECURITY_STATUS 

Definition at line 160 of file atahw.h.

160  {
165 };
@ ATA_ID_SECTOTAL_HI
Definition: atahw.h:161
@ ATA_ID_SECTOTAL_LO
Definition: atahw.h:161
@ ATA_ID_48BIT_SECTOTAL_HI
Definition: atahw.h:163
@ ATA_ID_COMMAND_SETS_SUPPORTED
Definition: atahw.h:162
@ ATA_ID_SECURITY_STATUS
Definition: atahw.h:164
@ ATA_ID_48BIT_SECTOTAL_LO
Definition: atahw.h:163
@ ATA_ID_48BIT_SECTOTAL_MI
Definition: atahw.h:163

◆ ATA_C_CODES

ATA command codes.

Enumerator
ATA_C_NOP 
ATA_C_CFA_REQUEST_EXTENDED_ERROR_CODE 
ATA_C_DEVICE_RESET 
ATA_C_READ_SECTOR 
ATA_C_READ_SECTOR_EXT 
ATA_C_READ_DMA_EXT 
ATA_C_WRITE_SECTOR 
ATA_C_WRITE_LONG 
ATA_C_WRITE_SECTOR_EXT 
ATA_C_WRITE_DMA_EXT 
ATA_C_CFA_WRITE_SECTORS_WITHOUT_ERASE 
ATA_C_READ_VERIFY_SECTOR 
ATA_C_READ_VERIFY_SECTOR_EXT 
ATA_C_SEEK 
ATA_C_CFA_TRANSLATE_SECTOR 
ATA_C_SCE_SECURITY_CONTROL 
ATA_C_EXECUTE_DEVICE_DIAGNOSTIC 
ATA_C_INITIALIZE_DEVICE_PARAMETERS 
ATA_C_DOWNLOAD_MICROCODE 
ATA_C_PACKET 
ATA_C_IDENTIFY_PACKET_DEVICE 
ATA_C_SERVICE 
ATA_C_SMART 
ATA_C_CFA_ERASE_SECTORS 
ATA_C_READ_MULTIPLE 
ATA_C_WRITE_MULTIPLE 
ATA_C_SET_MULTIPLE_MODE 
ATA_C_READ_DMA_QUEUED 
ATA_C_READ_DMA 
ATA_C_WRITE_DMA 
ATA_C_WRITE_DMA_QUEUED 
ATA_C_CFA_WRITE_MULTIPLE_WITHOUT_ERASE 
ATA_C_GET_MEDIA_STATUS 
ATA_C_MEDIA_LOCK 
ATA_C_MEDIA_UNLOCK 
ATA_C_STANDBY_IMMEDIATE 
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_FLUSH_CACHE_EXT 
ATA_C_IDENTIFY_DEVICE 
ATA_C_MEDIA_EJECT 
ATA_C_SET_FEATURES 
ATA_C_SECURITY_SET_PASSWORD 
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 
ATA_C_SET_MAX_ADDRESS 

Definition at line 73 of file atahw.h.

73  {
74  ATA_C_NOP = 0x00,
76  ATA_C_DEVICE_RESET = 0x08,
77  ATA_C_READ_SECTOR = 0x20,
78  ATA_C_READ_SECTOR_EXT = 0x24,
80  ATA_C_WRITE_SECTOR = 0x30,
81  ATA_C_WRITE_LONG = 0x32,
87  ATA_C_SEEK = 0x70,
93  ATA_C_PACKET = 0xa0,
96  ATA_C_SMART = 0xb0,
98  ATA_C_READ_MULTIPLE = 0xc4,
103  ATA_C_WRITE_DMA = 0xca,
104  ATA_C_WRITE_DMA_QUEUED = 0xcc,
106  ATA_C_GET_MEDIA_STATUS = 0xda,
107  ATA_C_MEDIA_LOCK = 0xde,
112  ATA_C_IDLE,
115  ATA_C_SLEEP,
118  ATA_C_FLUSH_CACHE_EXT = 0xea,
119  ATA_C_IDENTIFY_DEVICE = 0xec,
121 
122  ATA_C_SET_FEATURES = 0xef,
123 
130 
133 };
@ ATA_C_WRITE_SECTOR
Definition: atahw.h:80
@ ATA_C_INITIALIZE_DEVICE_PARAMETERS
Definition: atahw.h:91
@ ATA_C_SECURITY_FREEZE_LOCK
Definition: atahw.h:128
@ ATA_C_READ_MULTIPLE
Definition: atahw.h:98
@ ATA_C_SLEEP
Definition: atahw.h:115
@ ATA_C_SMART
Definition: atahw.h:96
@ ATA_C_WRITE_LONG
Definition: atahw.h:81
@ ATA_C_WRITE_DMA_QUEUED
Definition: atahw.h:104
@ ATA_C_WRITE_DMA_EXT
Definition: atahw.h:83
@ ATA_C_MEDIA_LOCK
Definition: atahw.h:107
@ ATA_C_SECURITY_ERASE_PREPARE
Definition: atahw.h:126
@ ATA_C_READ_DMA_QUEUED
Definition: atahw.h:101
@ ATA_C_CFA_WRITE_MULTIPLE_WITHOUT_ERASE
Definition: atahw.h:105
@ ATA_C_FLUSH_CACHE_EXT
Definition: atahw.h:118
@ ATA_C_IDLE
Definition: atahw.h:112
@ ATA_C_IDENTIFY_DEVICE
Definition: atahw.h:119
@ ATA_C_SERVICE
Definition: atahw.h:95
@ ATA_C_STANDBY
Definition: atahw.h:111
@ ATA_C_SECURITY_DISABLE_PASSWORD
Definition: atahw.h:129
@ ATA_C_STANDBY_IMMEDIATE
Definition: atahw.h:109
@ ATA_C_IDLE_IMMEDIATE
Definition: atahw.h:110
@ ATA_C_READ_VERIFY_SECTOR_EXT
Definition: atahw.h:86
@ ATA_C_DOWNLOAD_MICROCODE
Definition: atahw.h:92
@ ATA_C_SCE_SECURITY_CONTROL
Definition: atahw.h:89
@ ATA_C_MEDIA_EJECT
Definition: atahw.h:120
@ ATA_C_SET_FEATURES
Definition: atahw.h:122
@ ATA_C_SEEK
Definition: atahw.h:87
@ ATA_C_WRITE_BUFFER
Definition: atahw.h:117
@ ATA_C_READ_NATIVE_MAX_ADDRESS
Definition: atahw.h:131
@ ATA_C_SECURITY_ERASE_UNIT
Definition: atahw.h:127
@ ATA_C_CHECK_POWER_MODE
Definition: atahw.h:114
@ ATA_C_GET_MEDIA_STATUS
Definition: atahw.h:106
@ ATA_C_READ_SECTOR
Definition: atahw.h:77
@ ATA_C_WRITE_DMA
Definition: atahw.h:103
@ ATA_C_READ_DMA_EXT
Definition: atahw.h:79
@ ATA_C_READ_DMA
Definition: atahw.h:102
@ ATA_C_WRITE_MULTIPLE
Definition: atahw.h:99
@ ATA_C_NOP
Definition: atahw.h:74
@ ATA_C_SET_MAX_ADDRESS
Definition: atahw.h:132
@ ATA_C_SET_MULTIPLE_MODE
Definition: atahw.h:100
@ ATA_C_DEVICE_RESET
Definition: atahw.h:76
@ ATA_C_FLUSH_CACHE
Definition: atahw.h:116
@ ATA_C_WRITE_SECTOR_EXT
Definition: atahw.h:82
@ ATA_C_CFA_WRITE_SECTORS_WITHOUT_ERASE
Definition: atahw.h:84
@ ATA_C_CFA_TRANSLATE_SECTOR
Definition: atahw.h:88
@ ATA_C_MEDIA_UNLOCK
Definition: atahw.h:108
@ ATA_C_CFA_ERASE_SECTORS
Definition: atahw.h:97
@ ATA_C_CFA_REQUEST_EXTENDED_ERROR_CODE
Definition: atahw.h:75
@ ATA_C_PACKET
Definition: atahw.h:93
@ ATA_C_EXECUTE_DEVICE_DIAGNOSTIC
Definition: atahw.h:90
@ ATA_C_SECURITY_UNLOCK
Definition: atahw.h:125
@ ATA_C_READ_BUFFER
Definition: atahw.h:113
@ ATA_C_SECURITY_SET_PASSWORD
Definition: atahw.h:124
@ ATA_C_READ_SECTOR_EXT
Definition: atahw.h:78
@ ATA_C_IDENTIFY_PACKET_DEVICE
Definition: atahw.h:94
@ ATA_C_READ_VERIFY_SECTOR
Definition: atahw.h:85

◆ ATA_S_SMART_CODES

Enumerator
ATA_S_SMART_READ_DATA 
ATA_S_SMART_ENABLE_DISABLE_AUTOSAVE 
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 
ATA_S_SMART_DISABLE_OPERATIONS 
ATA_S_SMART_RETURN_STATUS 

Definition at line 147 of file atahw.h.

147  {
148  ATA_S_SMART_READ_DATA = 0xd0,
157 };
@ ATA_S_SMART_ENABLE_DISABLE_AUTOSAVE
Definition: atahw.h:149
@ ATA_S_SMART_SAVE_ATTRIBUTE_VALUES
Definition: atahw.h:150
@ ATA_S_SMART_EXECUTE_OFF_LINE
Definition: atahw.h:151
@ ATA_S_SMART_ENABLE_OPERATIONS
Definition: atahw.h:154
@ ATA_S_SMART_WRITE_LOG
Definition: atahw.h:153
@ ATA_S_SMART_READ_LOG
Definition: atahw.h:152
@ ATA_S_SMART_RETURN_STATUS
Definition: atahw.h:156
@ ATA_S_SMART_DISABLE_OPERATIONS
Definition: atahw.h:155
@ ATA_S_SMART_READ_DATA
Definition: atahw.h:148

◆ ATA_SCE_SECURITY_CODES

Enumerator
ATA_SCE_IDENTIFY_DRIVE 
ATA_SCE_SECURITY_SET_PASSWORD 
ATA_SCE_SECURITY_UNLOCK 
ATA_SCE_SECURITY_ERASE_PREPARE 
ATA_SCE_SECURITY_ERASE_UNIT 
ATA_SCE_SECURITY_FREEZE_LOCK 
ATA_SCE_SECURITY_READ_ID 
ATA_SCE_SECURITY_WRITE_ID 

Definition at line 135 of file atahw.h.

135  {
136  ATA_SCE_IDENTIFY_DRIVE = 0xec,
137 
145 };
@ ATA_SCE_SECURITY_FREEZE_LOCK
Definition: atahw.h:142
@ ATA_SCE_SECURITY_WRITE_ID
Definition: atahw.h:144
@ ATA_SCE_SECURITY_READ_ID
Definition: atahw.h:143
@ ATA_SCE_IDENTIFY_DRIVE
Definition: atahw.h:136
@ ATA_SCE_SECURITY_ERASE_UNIT
Definition: atahw.h:141
@ ATA_SCE_SECURITY_ERASE_PREPARE
Definition: atahw.h:140
@ ATA_SCE_SECURITY_UNLOCK
Definition: atahw.h:139
@ ATA_SCE_SECURITY_SET_PASSWORD
Definition: atahw.h:138