ps2sdk  1.1
A collection of Open Source libraries used for developing applications on Sony's PlayStation 2® (PS2).
atahw.h
Go to the documentation of this file.
1 /*
2 # _____ ___ ____ ___ ____
3 # ____| | ____| | | |____|
4 # | ___| |____ ___| ____| | \ PS2DEV Open Source Project.
5 #-----------------------------------------------------------------------
6 # Copyright (c) 2003 Marcus R. Brown <mrbrown@0xd6.org>
7 # Licenced under Academic Free License version 2.0
8 # Review ps2sdk README & LICENSE files for further details.
9 */
10 
16 #ifndef __ATAHW_H__
17 #define __ATAHW_H__
18 
19 #include <tamtypes.h>
20 #include <aifregs.h>
21 #include <speedregs.h>
22 
23 #define ATA_DEV9_HDD_BASE (SPD_REGBASE + 0x40)
25 #define ATA_AIF_HDD_BASE (AIF_REGBASE + AIF_ATA)
26 
28 typedef struct _ata_hwport {
29  u16 r_data; /* 00 */
30  u16 r_error; /* 02 */
31 #define r_feature r_error
32  u16 r_nsector; /* 04 */
33  u16 r_sector; /* 06 */
34  u16 r_lcyl; /* 08 */
35  u16 r_hcyl; /* 0a */
36  u16 r_select; /* 0c */
37  u16 r_status; /* 0e */
38 #define r_command r_status
39  u16 pad[6];
40  u16 r_control; /* 1c */
41 } ata_hwport_t;
42 
43 #define USE_ATA_REGS volatile ata_hwport_t *ata_hwport = \
44  (volatile ata_hwport_t *)ATA_DEV9_HDD_BASE
45 
46 #define USE_AIF_ATA_REGS volatile ata_hwport_t *ata_hwport = \
47  (volatile ata_hwport_t *)ATA_AIF_HDD_BASE
48 
49 /* r_error bits. */
50 #define ATA_ERR_MARK 0x01
51 #define ATA_ERR_TRACK0 0x02
52 #define ATA_ERR_ABORT 0x04
53 #define ATA_ERR_MCR 0x08
54 #define ATA_ERR_ID 0x10
55 #define ATA_ERR_MC 0x20
56 #define ATA_ERR_ECC 0x40
57 #define ATA_ERR_ICRC 0x80
58 
59 /* r_status bits. */
60 #define ATA_STAT_ERR 0x01
61 #define ATA_STAT_INDEX 0x02
62 #define ATA_STAT_ECC 0x04
63 #define ATA_STAT_DRQ 0x08
64 #define ATA_STAT_SEEK 0x10
65 #define ATA_STAT_WRERR 0x20
66 #define ATA_STAT_READY 0x40
67 #define ATA_STAT_BUSY 0x80
68 
69 /* r_select bits. */
70 #define ATA_SEL_LBA 0x40
71 
74  ATA_C_NOP = 0x00,
87  ATA_C_SEEK = 0x70,
93  ATA_C_PACKET = 0xa0,
96  ATA_C_SMART = 0xb0,
121 
123 
130 
133 };
134 
137 
145 };
146 
157 };
158 
165 };
166 
167 /* Bits in the security status word. */
168 #define ATA_F_SEC_ENABLED (1<<1)
169 #define ATA_F_SEC_LOCKED (1<<2)
170 
171 #endif /* __ATAHW_H__ */
ATA_C_CODES
Definition: atahw.h:73
@ 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_SCE_SECURITY_CODES
Definition: atahw.h:135
@ 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
ATA_S_SMART_CODES
Definition: atahw.h:147
@ 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_identify_offsets
Definition: atahw.h:160
@ 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
u16 r_status
Definition: atahw.h:37
u16 r_control
Definition: atahw.h:40
u16 r_error
Definition: atahw.h:30
u16 r_nsector
Definition: atahw.h:32
u16 r_sector
Definition: atahw.h:33
u16 r_select
Definition: atahw.h:36
u16 r_data
Definition: atahw.h:29
u16 r_lcyl
Definition: atahw.h:34
u16 r_hcyl
Definition: atahw.h:35
unsigned short u16
Definition: tamtypes.h:24