blob: 9c6cb93f8a291eee3efafae3f22f2ed2cc3c3181 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
|
/*
* This file is part of the coreboot project.
*
* Copyright (C) 2013 Google Inc.
* Copyright (C) 2015 Intel Corp.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; version 2 of the License.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#ifndef _SOC_SATA_H_
#define _SOC_SATA_H_
#define SATA_PORT_SUPPORT 0x03
#define SATA_PORT_MASK 0x3f
/* PCI Configuration Space */
#define SATA_PID 0x70
#define SATA_PID_NEXT 0xff00
#define SATA_PID_CID 0xff
#define SATA_MAP 0x90
#define SATA_MAP_SPD3 (1 << 11)
#define SATA_MAP_SPD2 (1 << 10)
#define SATA_MAP_SPD1 (1 << 9)
#define SATA_MAP_SPD0 (1 << 8)
#define SATA_MAP_SPD_MASK (SATA_MAP_SPD0 | SATA_MAP_SPD1 \
| SATA_MAP_SPD2 | SATA_MAP_SPD3)
#define SATA_MAP_SMS_RAID 0x40
#define SATA_PCS 0x92
#define SATA_PCS_ORM (1 << 15)
#define SATA_PCS_PORT5 (1 << 5)
#define SATA_PCS_PORT4 (1 << 4)
#define SATA_PCS_PORT3 (1 << 3)
#define SATA_PCS_PORT2 (1 << 2)
#define SATA_PCS_PORT1 (1 << 1)
#define SATA_PCS_PORT0 (1 << 0)
#define SATA_PCS_PORTS (SATA_PCS_PORT0 | SATA_PCS_PORT1 | SATA_PCS_PORT2 \
| SATA_PCS_PORT3 | SATA_PCS_PORT4 | SATA_PCS_PORT5)
#define SATA_TM 0x94
#define SATA_TM_PCD5 (1 << 29)
#define SATA_TM_PCD4 (1 << 28)
#define SATA_TM_PCD3 (1 << 27)
#define SATA_TM_PCD2 (1 << 26)
#define SATA_TM_PCD1 (1 << 25)
#define SATA_TM_PCD0 (1 << 24)
#define SATA_TM_PCD_MASK (SATA_TM_PCD0 | SATA_TM_PCD1 | SATA_TM_PCD2 \
| SATA_TM_PCD3 | SATA_TM_PCD4 | SATA_TM_PCD5)
#define SATA_SIRI 0xa0
#define SATA_SIRD 0xa4
/* Memory Mapped I/O Space */
#define AHCI_GHC_CAP 0
#define AHCI_GHC_CAP_S64A (1 << 31)
#define AHCI_GHC_CAP_SCQA (1 << 30)
#define AHCI_GHC_CAP_SSNTF (1 << 29)
#define AHCI_GHC_CAP_SMPS (1 << 28)
#define AHCI_GHC_CAP_SSS (1 << 27)
#define AHCI_GHC_CAP_SALP (1 << 26)
#define AHCI_GHC_CAP_SAL (1 << 25)
#define AHCI_GHC_CAP_SCLO (1 << 24)
#define AHCI_GHC_CAP_ISS 0x00f00000
#define AHCI_GHC_CAP_ISS_GEN1 (1 << 20)
#define AHCI_GHC_CAP_ISS_GEN2 (2 << 20)
#define AHCI_GHC_CAP_ISS_GEN3 (3 << 20)
#define AHCI_GHC_CAP_SNZO (1 << 19)
#define AHCI_GHC_CAP_SAM (1 << 18)
#define AHCI_GHC_CAP_SMP (1 << 17)
#define AHCI_GHC_CAP_FBSS (1 << 16)
#define AHCI_GHC_CAP_PMD (1 << 15)
#define AHCI_GHC_CAP_SSC (1 << 14)
#define AHCI_GHC_CAP_PSC (1 << 13)
#define AHCI_GHC_CAP_NCS 0x00000f00
#define AHCI_GHC_CAP_CCCS (1 << 7)
#define AHCI_GHC_CAP_EMS (1 << 6)
#define AHCI_GHC_CAP_SXS (1 << 5)
#define AHCI_GHC_CAP_NP 0x0000001f
#define AHCI_HBA_CTRL 4
#define AHCI_HBA_CTRL_AE (1 << 31)
#define AHCI_HBA_CTRL_MRSM (1 << 2)
#define AHCI_HBA_CTRL_IE (1 << 1)
#define AHCI_HBA_CTRL_HR (1 << 0)
#define AHCI_GHC_PI 0x000c
#define AHCI_GHC_CAP2 0x0024
#define AHCI_GHC_CAP2_DESO (1 << 5)
#define AHCI_GHC_CAP2_SADM (1 << 4)
#define AHCI_GHC_CAP2_SDS (1 << 3)
#define AHCI_GHC_CAP2_APST (1 << 2)
#define AHCI_GHC_CAP2_BOH (1 << 0)
#define AHCI_VSP 0x00a0
#define AHCI_VSP_SFMS (1 << 6)
#define AHCI_VSP_PFS (1 << 5)
#define AHCI_VSP_PT (1 << 4)
#define AHCI_VSP_SRPIR (1 << 3)
#define AHCI_SFM 0xc8
#define AHCI_SFM_OROM_UI 0x0c00
#define AHCI_SFM_OROM_UI_2SEC 0
#define AHCI_SFM_OROM_UI_4SEC (1 << 10)
#define AHCI_SFM_OROM_UI_6SEC (2 << 10)
#define AHCI_SFM_OROM_UI_8SEC (3 << 10)
#define AHCI_SFM_SRT (1 << 9)
#define AHCI_SFM_RRT_ESATA (1 << 8)
#define AHCI_SFM_LED (1 << 7)
#define AHCI_SFM_HDDUNLOCK (1 << 6)
#define AHCI_SFM_OROM_UI_BANNER (1 << 5)
#define AHCI_SFM_RRT (1 << 4)
#define AHCI_SFM_R5 (1 << 3)
#define AHCI_SFM_R10 (1 << 2)
#define AHCI_SFM_R1 (1 << 1)
#define AHCI_SFM_R0 (1 << 0)
#define AHCI_PXCMD0 0x0118
#define AHCI_PXCMD1 0x0198
#define AHCI_PXCMD_ICC 0xf0000000
#define AHCI_PXCMD_ASP (1 << 27)
#define AHCI_PXCMD_ALPE (1 << 26)
#define AHCI_PXCMD_DLAE (1 << 25)
#define AHCI_PXCMD_ATAPI (1 << 24)
#define AHCI_PXCMD_APSTE (1 << 23)
#define AHCI_PXCMD_FBSCP (1 << 22)
#define AHCI_PXCMD_ESP (1 << 21)
#define AHCI_PXCMD_CPD (1 << 20)
#define AHCI_PXCMD_MPSP (1 << 19)
#define AHCI_PXCMD_HPCP (1 << 18)
#define AHCI_PXCMD_PMA (1 << 17)
#define AHCI_PXCMD_CR (1 << 15)
#define AHCI_PXCMD_FR (1 << 14)
#define AHCI_PXCMD_MPSS (1 << 13)
#define AHCI_PXCMD_CCS 0x00001f00
#define AHCI_PXCMD_PSP (1 << 6)
#define AHCI_PXCMD_FRE (1 << 4)
#define AHCI_PXCMD_CLO (1 << 3)
#define AHCI_PXCMD_POD (1 << 2)
#define AHCI_PXCMD_SUD (1 << 1)
#define AHCI_PXCMD_ST (1 << 0)
#endif /* _SOC_SATA_H_ */
|