1
/* Copyright 2013-2014 IBM Corp.
3
* Licensed under the Apache License, Version 2.0 (the "License");
4
* you may not use this file except in compliance with the License.
5
* You may obtain a copy of the License at
7
* http://www.apache.org/licenses/LICENSE-2.0
9
* Unless required by applicable law or agreed to in writing, software
10
* distributed under the License is distributed on an "AS IS" BASIS,
11
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
13
* See the License for the specific language governing permissions and
14
* limitations under the License.
18
* PCI Configuration space definitions
23
/* Common cfg space header */
24
#define PCI_CFG_VENDOR_ID 0x0000
25
#define PCI_CFG_DEVICE_ID 0x0002
26
#define PCI_CFG_CMD 0x0004
27
#define PCI_CFG_CMD_IO_EN 0x0001
28
#define PCI_CFG_CMD_MEM_EN 0x0002
29
#define PCI_CFG_CMD_BUS_MASTER_EN 0x0004
30
#define PCI_CFG_CMD_PERR_RESP 0x0040
31
#define PCI_CFG_CMD_SERR_EN 0x0100
32
#define PCI_CFG_CMD_INTx_DIS 0x0400
33
#define PCI_CFG_STAT 0x0006
34
#define PCI_CFG_STAT_INTx 0x0008
35
#define PCI_CFG_STAT_CAP 0x0010
36
#define PCI_CFG_STAT_MDATAPERR 0x0100
37
#define PCI_CFG_STAT_SENT_TABORT 0x0800
38
#define PCI_CFG_STAT_RECV_TABORT 0x1000
39
#define PCI_CFG_STAT_RECV_MABORT 0x2000
40
#define PCI_CFG_STAT_SENT_SERR 0x4000
41
#define PCI_CFG_STAT_RECV_PERR 0x8000
42
#define PCI_CFG_REV_ID 0x0008
43
#define PCI_CFG_CLAS_CODE 0x0009
44
#define PCI_CFG_CACHE_LINE_SIZE 0x000c
45
#define PCI_CFG_LAT_TIMER 0x000d
46
#define PCI_CFG_HDR_TYPE 0x000e
47
#define PCI_CFG_BIST 0x000f
48
#define PCI_CFG_BAR0 0x0010
49
#define PCI_CFG_BAR_TYPE 0x00000001
50
#define PCI_CFG_BAR_TYPE_MEM 0x00000000
51
#define PCI_CFG_BAR_TYPE_IO 0x00000001
52
#define PCI_CFG_BAR_MEM64 0x00000004
53
#define PCI_CFG_BAR_MEM_PREFETCH 0x00000008
54
#define PCI_CFG_BAR1 0x0014
57
#define PCI_CFG_BAR2 0x0018
58
#define PCI_CFG_BAR3 0x001c
59
#define PCI_CFG_BAR4 0x0020
60
#define PCI_CFG_BAR5 0x0024
61
#define PCI_CFG_CARDBUS_CIS 0x0028
62
#define PCI_CFG_SUBSYS_VENDOR_ID 0x002c
63
#define PCI_CFG_SUBSYS_ID 0x002e
64
#define PCI_CFG_ROMBAR 0x0030
65
#define PCI_CFG_CAP 0x0034
66
#define PCI_CFG_INT_LINE 0x003c
67
#define PCI_CFG_INT_PIN 0x003d
68
#define PCI_CFG_INT_MIN_GNT 0x003e
69
#define PCI_CFG_INT_MAX_LAT 0x003f
72
#define PCI_CFG_PRIMARY_BUS 0x0018
73
#define PCI_CFG_SECONDARY_BUS 0x0019
74
#define PCI_CFG_SUBORDINATE_BUS 0x001a
75
#define PCI_CFG_SEC_LAT_TIMER 0x001b
76
#define PCI_CFG_IO_BASE 0x001c
77
#define PCI_CFG_IO_LIMIT 0x001d
78
#define PCI_CFG_SECONDARY_STATUS 0x001e
79
#define PCI_CFG_MEM_BASE 0x0020
80
#define PCI_CFG_MEM_LIMIT 0x0022
81
#define PCI_CFG_PREF_MEM_BASE 0x0024
82
#define PCI_CFG_PREF_MEM_LIMIT 0x0026
83
#define PCI_CFG_PREF_MEM_BASE_U32 0x0028
84
#define PCI_CFG_PREF_MEM_LIMIT_U32 0x002c
85
#define PCI_CFG_IO_BASE_U16 0x0030
86
#define PCI_CFG_IO_LIMIT_U16 0x0032
87
#define PCI_CFG_BR_CAP 0x0034 /* Same as type 0 */
88
#define PCI_CFG_BR_ROMBAR 0x0038 /* Different from type 0 */
89
#define PCI_CFG_BR_INT_LINE 0x003c /* Same as type 0 */
90
#define PCI_CFG_BR_INT_PIN 0x003d /* Same as type 0 */
91
#define PCI_CFG_BRCTL 0x003e
92
#define PCI_CFG_BRCTL_PERR_RESP_EN 0x0001
93
#define PCI_CFG_BRCTL_SERR_EN 0x0002
94
#define PCI_CFG_BRCTL_ISA_EN 0x0004
95
#define PCI_CFG_BRCTL_VGA_EN 0x0008
96
#define PCI_CFG_BRCTL_VGA_16BIT 0x0010
97
#define PCI_CFG_BRCTL_MABORT_REPORT 0x0020
98
#define PCI_CFG_BRCTL_SECONDARY_RESET 0x0040
99
#define PCI_CFG_BRCTL_FAST_BACK2BACK 0x0080
100
#define PCI_CFG_BRCTL_PRI_DISC_TIMER 0x0100
101
#define PCI_CFG_BRCTL_SEC_DISC_TIMER 0x0200
102
#define PCI_CFG_BRCTL_DISC_TIMER_STAT 0x0400
103
#define PCI_CFG_BRCTL_DISC_TIMER_SERR 0x0800
106
* Standard capabilties
108
#define PCI_CFG_CAP_ID 0
109
#define PCI_CFG_CAP_NEXT 1
111
/* PCI bridge subsystem ID capability */
112
#define PCI_CFG_CAP_ID_SUBSYS_VID 0x0d
113
#define PCICAP_SUBSYS_VID_VENDOR 4
114
#define PCICAP_SUBSYS_VID_DEVICE 6
116
/* Vendor specific capability */
117
#define PCI_CFG_CAP_ID_VENDOR 9
119
/* PCI Express capability */
120
#define PCI_CFG_CAP_ID_EXP 0x10
121
/* PCI Express capability fields */
122
#define PCICAP_EXP_CAPABILITY_REG 0x02
123
#define PCICAP_EXP_CAP_VERSION 0x000f
124
#define PCICAP_EXP_CAP_TYPE 0x00f0
125
#define PCIE_TYPE_ENDPOINT 0x0
126
#define PCIE_TYPE_LEGACY 0x1
127
#define PCIE_TYPE_ROOT_PORT 0x4
128
#define PCIE_TYPE_SWITCH_UPPORT 0x5
129
#define PCIE_TYPE_SWITCH_DNPORT 0x6
130
#define PCIE_TYPE_PCIE_TO_PCIX 0x7
131
#define PCIE_TYPE_PCIX_TO_PCIE 0x8
132
#define PCIE_TYPE_RC_INTEGRATED 0x9
133
#define PCIE_TYPE_RC_EVT_COLL 0xa
134
#define PCICAP_EXP_CAP_SLOT 0x0100
135
#define PCICAP_EXP_CAP_MSI_NUM 0x3e00
136
#define PCICAP_EXP_CAP_TCS_ROUTING 0x4000
137
#define PCICAP_EXP_DEVCAP 0x04
138
#define PCICAP_EXP_DEVCAP_MPSS 0x00000007
139
#define PCIE_MPSS_128 0
140
#define PCIE_MPSS_256 1
141
#define PCIE_MPSS_512 2
142
#define PCIE_MPSS_1024 3
143
#define PCIE_MPSS_2048 4
144
#define PCIE_MPSS_4096 5
145
#define PCICAP_EXP_DEVCAP_PHANT 0x00000018
146
#define PCIE_PHANTOM_NONE 0
147
#define PCIE_PHANTOM_1MSB 1
148
#define PCIE_PHANTOM_2MSB 2
149
#define PCIE_PHANTOM_3MSB 3
150
#define PCICAP_EXP_DEVCAP_EXTTAG 0x00000020
151
#define PCICAP_EXP_DEVCAP_L0SL 0x000001c0
152
#define PCIE_L0SL_MAX_64NS 0
153
#define PCIE_L0SL_MAX_128NS 1
154
#define PCIE_L0SL_MAX_256NS 2
155
#define PCIE_L0SL_MAX_512NS 3
156
#define PCIE_L0SL_MAX_1US 4
157
#define PCIE_L0SL_MAX_2US 5
158
#define PCIE_L0SL_MAX_4US 6
159
#define PCIE_L0SL_MAX_NO_LIMIT 7
160
#define PCICAP_EXP_DEVCAP_L1L 0x00000e00
161
#define PCIE_L1L_MAX_1US 0
162
#define PCIE_L1L_MAX_2US 1
163
#define PCIE_L1L_MAX_4US 2
164
#define PCIE_L1L_MAX_8US 3
165
#define PCIE_L1L_MAX_16US 4
166
#define PCIE_L1L_MAX_32US 5
167
#define PCIE_L1L_MAX_64US 6
168
#define PCIE_L1L_MAX_NO_LIMIT 7
169
#define PCICAP_EXP_ROLE_BASED_ERR 0x00008000
170
#define PCICAP_EXP_DEVCAP_PWRVAL 0x03fc0000
171
#define PCICAP_EXP_DEVCAP_PWRSCA 0x0c000000
172
#define PCIE_SLOT_PWR_SCALE_1x 0
173
#define PCIE_SLOT_PWR_SCALE_0d1x 1
174
#define PCIE_SLOT_PWR_SCALE_0d01x 2
175
#define PCIE_SLOT_PWR_SCALE_0d001x 3
176
#define PCICAP_EXP_DEVCAP_FUNC_RESET 0x10000000
177
#define PCICAP_EXP_DEVCTL 0x08
178
#define PCICAP_EXP_DEVCTL_CE_REPORT 0x0001
179
#define PCICAP_EXP_DEVCTL_NFE_REPORT 0x0002
180
#define PCICAP_EXP_DEVCTL_FE_REPORT 0x0004
181
#define PCICAP_EXP_DEVCTL_UR_REPORT 0x0008
182
#define PCICAP_EXP_DEVCTL_RELAX_ORD 0x0010
183
#define PCICAP_EXP_DEVCTL_MPS 0x00e0
184
#define PCIE_MPS_128B 0
185
#define PCIE_MPS_256B 1
186
#define PCIE_MPS_512B 2
187
#define PCIE_MPS_1024B 3
188
#define PCIE_MPS_2048B 4
189
#define PCIE_MPS_4096B 5
190
#define PCICAP_EXP_DEVCTL_EXT_TAG 0x0100
191
#define PCICAP_EXP_DEVCTL_PHANTOM 0x0200
192
#define PCICAP_EXP_DEVCTL_AUX_POW_PM 0x0400
193
#define PCICAP_EXP_DEVCTL_NO_SNOOP 0x0800
194
#define PCICAP_EXP_DEVCTL_MRRS 0x7000
195
#define PCIE_MRSS_128B 0
196
#define PCIE_MRSS_256B 1
197
#define PCIE_MRSS_512B 2
198
#define PCIE_MRSS_1024B 3
199
#define PCIE_MRSS_2048B 4
200
#define PCIE_MRSS_4096B 5
201
#define PCICAP_EXP_DEVCTL_PCIX_RETRY 0x8000 /* PCIe - PCIX bridges only */
202
#define PCICAP_EXP_DEVCTL_FUNC_RESET 0x8000 /* all others */
203
#define PCICAP_EXP_DEVSTAT 0x0a
204
#define PCICAP_EXP_DEVSTAT_CE 0x0001
205
#define PCICAP_EXP_DEVSTAT_NFE 0x0002
206
#define PCICAP_EXP_DEVSTAT_FE 0x0004
207
#define PCICAP_EXP_DEVSTAT_UE 0x0008
208
#define PCICAP_EXP_DEVSTAT_AUX_POW 0x0010
209
#define PCICAP_EXP_DEVSTAT_TPEND 0x0020
210
#define PCICAP_EXP_LCAP 0x0c
211
#define PCICAP_EXP_LCAP_MAXSPD 0x0000000f
212
#define PCIE_LSPEED_VECBIT_0 0x1
213
#define PCIE_LSPEED_VECBIT_1 0x2
214
#define PCIE_LSPEED_VECBIT_2 0x3
215
#define PCIE_LSPEED_VECBIT_3 0x4
216
#define PCIE_LSPEED_VECBIT_4 0x5
217
#define PCIE_LSPEED_VECBIT_5 0x6
218
#define PCIE_LSPEED_VECBIT_6 0x7
219
#define PCICAP_EXP_LCAP_MAXWDTH 0x000003f0
220
#define PCIE_LWIDTH_1X 1
221
#define PCIE_LWIDTH_2X 2
222
#define PCIE_LWIDTH_4X 4
223
#define PCIE_LWIDTH_8X 8
224
#define PCIE_LWIDTH_12X 12
225
#define PCIE_LWIDTH_16X 16
226
#define PCIE_LWIDTH_32X 32
227
#define PCICAP_EXP_LCAP_ASPM_L0S 0x00000400
228
#define PCICAP_EXP_LCAP_ASPM_L1 0x00000800
229
#define PCICAP_EXP_LCAP_L0S_EXLT 0x00007000
230
#define PCIE_L0S_EXLT_LESS_64NS 0
231
#define PCIE_L0S_EXLT_64NS_128NS 1
232
#define PCIE_L0S_EXLT_128NS_256NS 2
233
#define PCIE_L0S_EXLT_256NS_512NS 3
234
#define PCIE_L0S_EXLT_512NS_1US 4
235
#define PCIE_L0S_EXLT_1US_2US 5
236
#define PCIE_L0S_EXLT_2US_4US 6
237
#define PCIE_L0S_EXLT_MORE_4US 7
238
#define PCICAP_EXP_LCAP_L1_EXLT 0x00038000
239
#define PCIE_L1_EXLT_LESS_1US 0
240
#define PCIE_L1_EXLT_1US_2US 1
241
#define PCIE_L1_EXLT_2US_4US 2
242
#define PCIE_L1_EXLT_4US_8US 3
243
#define PCIE_L1_EXLT_8US_16US 4
244
#define PCIE_L1_EXLT_16US_32US 5
245
#define PCIE_L1_EXLT_32US_64US 6
246
#define PCIE_L1_EXLT_MORE_64US 7
247
#define PCICAP_EXP_LCAP_CLK_PM 0x00040000
248
#define PCICAP_EXP_LCAP_SURP_DWN_ERR 0x00080000
249
#define PCICAP_EXP_LCAP_DL_ACT_REP 0x00100000
250
#define PCICAP_EXP_LCAP_LNKBWDTH_NOTF 0x00200000
251
#define PCICAP_EXP_LCAP_ASPM_OPT_CMPL 0x00400000
252
#define PCICAP_EXP_LCAP_PORTNUM 0xff000000
253
#define PCICAP_EXP_LCTL 0x10
254
#define PCICAP_EXP_LCTL_ASPM_L0S 0x0001
255
#define PCICAP_EXP_LCTL_ASPM_L1 0x0002
256
#define PCICAP_EXP_LCTL_RCB 0x0008 /* RO on root ports */
257
#define PCICAP_EXP_LCTL_LINK_DIS 0x0010
258
#define PCICAP_EXP_LCTL_LINK_RETRAIN 0x0020
259
#define PCICAP_EXP_LCTL_COMMON_CLK 0x0040
260
#define PCICAP_EXP_LCTL_EXT_SYNCH 0x0080
261
#define PCICAP_EXP_LCTL_CLOCK_PM 0x0100
262
#define PCICAP_EXP_LCTL_HW_AWIDTH_DIS 0x0200
263
#define PCICAP_EXP_LCTL_LBWM_INT_EN 0x0400
264
#define PCICAP_EXP_LCTL_LAWD_INT_EN 0x0800
265
#define PCICAP_EXP_LSTAT 0x12
266
#define PCICAP_EXP_LSTAT_SPEED 0x000f /* use PCIE_LSPEED_* consts */
267
#define PCICAP_EXP_LSTAT_WIDTH 0x03f0 /* use PCIE_LWIDTH_* consts */
268
#define PCICAP_EXP_LSTAT_TRAINING 0x0800
269
#define PCICAP_EXP_LSTAT_SLOTCLKCFG 0x1000
270
#define PCICAP_EXP_LSTAT_DLLL_ACT 0x2000
271
#define PCICAP_EXP_LSTAT_LBWM_STAT 0x4000
272
#define PCICAP_EXP_LSTAT_LAWS_STAT 0x8000
273
#define PCICAP_EXP_SLOTCAP 0x14
274
#define PCICAP_EXP_SLOTCAP_ATTNB 0x00000001
275
#define PCICAP_EXP_SLOTCAP_PWCTRL 0x00000002
276
#define PCICAP_EXP_SLOTCAP_MRLSENS 0x00000004
277
#define PCICAP_EXP_SLOTCAP_ATTNI 0x00000008
278
#define PCICAP_EXP_SLOTCAP_PWRI 0x00000010
279
#define PCICAP_EXP_SLOTCAP_HPLUG_SURP 0x00000020
280
#define PCICAP_EXP_SLOTCAP_HPLUG_CAP 0x00000040
281
#define PCICAP_EXP_SLOTCAP_SPLVA 0x00007f80
282
#define PCICAP_EXP_SLOTCAP_SPLSC 0x00018000
283
#define PCICAP_EXP_SLOTCAP_EIP 0x00020000
284
#define PCICAP_EXP_SLOTCAP_NO_CMDCOMP 0x00040000
285
#define PCICAP_EXP_SLOTCAP_PSLOT 0xfff80000
286
#define PCICAP_EXP_SLOTCTL 0x18
287
#define PCICAP_EXP_SLOTCTL_ATTNB 0x0001
288
#define PCICAP_EXP_SLOTCTL_PFLT 0x0002
289
#define PCICAP_EXP_SLOTCTL_MRLSENSE 0x0004
290
#define PCICAP_EXP_SLOTCTL_PDETECT 0x0008
291
#define PCICAP_EXP_SLOTCTL_CMDCOMPINT 0x0010
292
#define PCICAP_EXP_SLOTCTL_HPINT 0x0020
293
#define PCICAP_EXP_SLOTCTL_ATTNI 0x00c0
294
#define PCIE_INDIC_ON 1
295
#define PCIE_INDIC_BLINK 2
296
#define PCIE_INDIC_OFF 3
297
#define PCICAP_EXP_SLOTCTL_PWRI 0x0300 /* Use PCIE_INDIC_* consts */
298
#define PCICAP_EXP_SLOTCTL_PWRCTLR 0x0400
299
#define PCICAP_EXP_SLOTCTL_EIC 0x0800
300
#define PCICAP_EXP_SLOTCTL_DLLSTCHG 0x1000
301
#define PCICAP_EXP_SLOTSTAT 0x1a
302
#define PCICAP_EXP_SLOTSTAT_ATTNBCH 0x0001
303
#define PCICAP_EXP_SLOTSTAT_PWRFLTCH 0x0002
304
#define PCICAP_EXP_SLOTSTAT_MRLSENSCH 0x0004
305
#define PCICAP_EXP_SLOTSTAT_PDETECTCH 0x0008
306
#define PCICAP_EXP_SLOTSTAT_CMDCOMPCH 0x0010
307
#define PCICAP_EXP_SLOTSTAT_MRLSENSST 0x0020
308
#define PCICAP_EXP_SLOTSTAT_PDETECTST 0x0040
309
#define PCICAP_EXP_SLOTSTAT_EIS 0x0080
310
#define PCICAP_EXP_SLOTSTAT_DLLSTCH 0x0100
311
#define PCICAP_EXP_RC 0x1c
312
#define PCICAP_EXP_RC_SYSERR_ON_CE 0x0001
313
#define PCICAP_EXP_RC_SYSERR_ON_NFE 0x0002
314
#define PCICAP_EXP_RC_SYSERR_ON_FE 0x0004
315
#define PCICAP_EXP_RC_PME_INT_EN 0x0008
316
#define PCICAP_EXP_RC_CRS_VISIBLE 0x0010
317
#define PCICAP_EXP_RCAP 0x1e
318
#define PCICAP_EXP_RCAP_CRS_VISIBLE 0x0001
319
#define PCICAP_EXP_RSTAT 0x20
320
#define PCICAP_EXP_RSTAT_PME_RID 0x0000ffff
321
#define PCICAP_EXP_RSTAT_PME_STATUS 0x00010000
322
#define PCICAP_EXP_RSTAT_PME_PENDING 0x00020000
323
#define PCIECAP_EXP_DCAP2 0x24
324
#define PCICAP_EXP_DCAP2_CMPTOUT 0x0000000f
325
#define PCICAP_EXP_DCAP2_CMPTOUT_DIS 0x00000010
326
#define PCICAP_EXP_DCAP2_ARI_FWD 0x00000020
327
#define PCICAP_EXP_DCAP2_ATOMIC_RTE 0x00000040
328
#define PCICAP_EXP_DCAP2_ATOMIC32 0x00000080
329
#define PCICAP_EXP_DCAP2_ATOMIC64 0x00000100
330
#define PCICAP_EXP_DCAP2_CAS128 0x00000200
331
#define PCICAP_EXP_DCAP2_NORO_PRPR 0x00000400
332
#define PCICAP_EXP_DCAP2_LTR 0x00000800
333
#define PCICAP_EXP_DCAP2_TPHCOMP 0x00001000
334
#define PCICAP_EXP_DCAP2_TPHCOMP_EXT 0x00002000
335
#define PCICAP_EXP_DCAP2_OBFF_MSG 0x00040000
336
#define PCICAP_EXP_DCAP2_OBFF_WAKE 0x00080000
337
#define PCICAP_EXP_DCAP2_EXTFMT 0x00100000
338
#define PCICAP_EXP_DCAP2_EETLP_PFX 0x00200000
339
#define PCICAP_EXP_DCAP2_MAXEETP 0x00c00000
340
#define PCIE_EETLPP_1 1
341
#define PCIE_EETLPP_2 2
342
#define PCIE_EETLPP_3 3
343
#define PCIE_EETLPP_4 0
344
#define PCICAP_EXP_DCTL2 0x28
345
#define PCICAP_EXP_DCTL2_CMPTOUT 0x000f
346
#define PCICAP_EXP_DCTL2_CMPTOUT_DIS 0x0010
347
#define PCICAP_EXP_DCTL2_ARI_FWD 0x0020
348
#define PCICAP_EXP_DCTL2_ATOMIC_REQ 0x0040
349
#define PCICAP_EXP_DCTL2_ATOMIC_EGBLK 0x0080
350
#define PCICAP_EXP_DCTL2_IDO_REQ 0x0100
351
#define PCICAP_EXP_DCTL2_IDO_COMPL 0x0200
352
#define PCICAP_EXP_DCTL2_LTR 0x0400
353
#define PCICAP_EXP_DCTL2_OBFF 0x6000
354
#define PCIE_OBFF_MODE_DISABLED 0
355
#define PCIE_OBFF_MODE_MSG_A 1
356
#define PCIE_OBFF_MODE_MSG_B 2
357
#define PCIE_OBFF_MODE_WAKE 3
358
#define PCICAP_EXP_DCTL2_EETLPP_BLK 0x8000
359
#define PCICAP_EXP_DSTA2 0x2a
360
#define PCICAP_EXP_LCAP2 0x2c
361
#define PCICAP_EXP_LCAP2_SP_2d5GTs 0x00000002
362
#define PCICAP_EXP_LCAP2_SP_5d0GTs 0x00000004
363
#define PCICAP_EXP_LCAP2_SP_8d0GTs 0x00000008
364
#define PCICAP_EXP_LCAP2_XLINK 0x00000100
365
#define PCICAP_EXP_LCTL2 0x30
366
#define PCICAP_EXP_LCTL2_TLSPD 0x000f /* use PCIE_LSPEED_ consts */
367
#define PCICAP_EXP_LCTL2_ENTER_COMPL 0x0010
368
#define PCICAP_EXP_LCTL2_HWAUTSPDIS 0x0020
369
#define PCICAP_EXP_LCTL2_SEL_DEEMPH 0x0040
370
#define PCICAP_EXP_LCTL2_XMTMARG 0x0380
371
#define PCICAP_EXP_LCTL2_ENTER_MCOMPL 0x0400
372
#define PCICAP_EXP_LCTL2_COMPL_SOS 0x0800
373
#define PCICAP_EXP_LCTL2_CMPPDEM 0xf000
374
#define PCICAP_EXP_LSTA2 0x32
375
#define PCICAP_EXP_LSTA2_DEMPH_LVL 0x0001
376
#define PCICAP_EXP_LSTA2_EQ_COMPLETE 0x0002
377
#define PCICAP_EXP_LSTA2_EQ_PH1_OK 0x0004
378
#define PCICAP_EXP_LSTA2_EQ_PH2_OK 0x0008
379
#define PCICAP_EXP_LSTA2_EQ_PH3_OK 0x0010
380
#define PCICAP_EXP_LSTA2_LINK_EQ_REQ 0x0020
381
#define PCICAP_EXP_SCAP2 0x34
382
#define PCICAP_EXP_SCTL2 0x38
383
#define PCICAP_EXP_SSTA2 0x3a
386
* PCI-E Extended capabilties
388
#define PCI_CFG_ECAP_START 0x100
389
#define PCI_CFG_ECAP_ID 0x0000ffff
390
#define PCI_CFG_ECAP_VERS 0x000f0000
391
#define PCI_CFG_ECAP_NEXT 0xfff00000
393
/* AER Ext. Capability */
394
#define PCIECAP_ID_AER 0x0001
395
#define PCIECAP_AER_UE_STATUS 0x04
396
#define PCIECAP_AER_UE_DLP 0x00000010
397
#define PCIECAP_AER_UE_SURPRISE_DOWN 0x00000020
398
#define PCIECAP_AER_UE_POISON_TLP 0x00001000
399
#define PCIECAP_AER_UE_FLOW_CTL_PROT 0x00002000
400
#define PCIECAP_AER_UE_COMPL_TIMEOUT 0x00004000
401
#define PCIECAP_AER_UE_COMPL_ABORT 0x00008000
402
#define PCIECAP_AER_UE_UNEXP_COMPL 0x00010000
403
#define PCIECAP_AER_UE_RECV_OVFLOW 0x00020000
404
#define PCIECAP_AER_UE_MALFORMED_TLP 0x00040000
405
#define PCIECAP_AER_UE_ECRC 0x00080000
406
#define PCIECAP_AER_UE_UNSUPP_REQ 0x00100000
407
#define PCIECAP_AER_UE_ACS_VIOLATION 0x00200000
408
#define PCIECAP_AER_UE_INTERNAL 0x00400000
409
#define PCIECAP_AER_UE_MC_BLKD_TLP 0x00800000
410
#define PCIECAP_AER_UE_ATOMIC_EGBLK 0x01000000
411
#define PCIECAP_AER_UE_TLP_PRFX_BLK 0x02000000
412
#define PCIECAP_AER_UE_MASK 0x08
413
#define PCIECAP_AER_UE_MASK_DLLP 0x00000010
414
#define PCIECAP_AER_UE_MASK_SURPRISE_DOWN 0x00000020
415
#define PCIECAP_AER_UE_MASK_POISON_TLP 0x00001000
416
#define PCIECAP_AER_UE_MASK_FLOW_CTL_PROT 0x00002000
417
#define PCIECAP_AER_UE_MASK_COMPL_TIMEOUT 0x00004000
418
#define PCIECAP_AER_UE_MASK_COMPL_ABORT 0x00008000
419
#define PCIECAP_AER_UE_MASK_UNEXP_COMPL 0x00010000
420
#define PCIECAP_AER_UE_MASK_RECV_OVFLOW 0x00020000
421
#define PCIECAP_AER_UE_MASK_MALFORMED_TLP 0x00040000
422
#define PCIECAP_AER_UE_MASK_ECRC 0x00080000
423
#define PCIECAP_AER_UE_MASK_UNSUPP_REQ 0x00100000
424
#define PCIECAP_AER_UE_SEVERITY 0x0c
425
#define PCIECAP_AER_UE_SEVERITY_DLLP 0x00000010
426
#define PCIECAP_AER_UE_SEVERITY_SURPRISE_DOWN 0x00000020
427
#define PCIECAP_AER_UE_SEVERITY_POISON_TLP 0x00001000
428
#define PCIECAP_AER_UE_SEVERITY_FLOW_CTL_PROT 0x00002000
429
#define PCIECAP_AER_UE_SEVERITY_COMPL_TIMEOUT 0x00004000
430
#define PCIECAP_AER_UE_SEVERITY_COMPL_ABORT 0x00008000
431
#define PCIECAP_AER_UE_SEVERITY_UNEXP_COMPL 0x00010000
432
#define PCIECAP_AER_UE_SEVERITY_RECV_OVFLOW 0x00020000
433
#define PCIECAP_AER_UE_SEVERITY_MALFORMED_TLP 0x00040000
434
#define PCIECAP_AER_UE_SEVERITY_ECRC 0x00080000
435
#define PCIECAP_AER_UE_SEVERITY_UNSUPP_REQ 0x00100000
436
#define PCIECAP_AER_UE_SEVERITY_INTERNAL 0x00400000
437
#define PCIECAP_AER_CE_STATUS 0x10
438
#define PCIECAP_AER_CE_RECVR_ERR 0x00000001
439
#define PCIECAP_AER_CE_BAD_TLP 0x00000040
440
#define PCIECAP_AER_CE_BAD_DLLP 0x00000080
441
#define PCIECAP_AER_CE_REPLAY_ROLLVR 0x00000100
442
#define PCIECAP_AER_CE_REPLAY_TMR_TO 0x00001000
443
#define PCIECAP_AER_CE_ADV_NONFATAL 0x00002000
444
#define PCIECAP_AER_CE_CORTD_INTERNAL 0x00004000
445
#define PCIECAP_AER_CE_HDR_LOG_OVFL 0x00008000
446
#define PCIECAP_AER_CE_MASK 0x14
447
#define PCIECAP_AER_CE_MASK_RECVR_ERR 0x00000001
448
#define PCIECAP_AER_CE_MASK_BAD_TLP 0x00000040
449
#define PCIECAP_AER_CE_MASK_BAD_DLLP 0x00000080
450
#define PCIECAP_AER_CE_MASK_REPLAY_ROLLVR 0x00000100
451
#define PCIECAP_AER_CE_MASK_REPLAY_TMR_TO 0x00001000
452
#define PCIECAP_AER_CE_MASK_ADV_NONFATAL 0x00002000
453
#define PCIECAP_AER_CE_MASK_CORTD_INTERNAL 0x00004000
454
#define PCIECAP_AER_CE_MASK_HDR_LOG_OVFL 0x00008000
455
#define PCIECAP_AER_CAPCTL 0x18
456
#define PCIECAP_AER_CAPCTL_FPTR 0x0000001f
457
#define PCIECAP_AER_CAPCTL_ECRCG_CAP 0x00000020
458
#define PCIECAP_AER_CAPCTL_ECRCG_EN 0x00000040
459
#define PCIECAP_AER_CAPCTL_ECRCC_CAP 0x00000080
460
#define PCIECAP_AER_CAPCTL_ECRCC_EN 0x00000100
461
#define PCIECAP_AER_CAPCTL_MHREC_CAP 0x00000200
462
#define PCIECAP_AER_CAPCTL_MHREC_EN 0x00000400
463
#define PCIECAP_AER_CAPCTL_TLPPL_PR 0x00000800
464
#define PCIECAP_AER_HDR_LOG0 0x1c
465
#define PCIECAP_AER_HDR_LOG1 0x20
466
#define PCIECAP_AER_HDR_LOG2 0x24
467
#define PCIECAP_AER_HDR_LOG3 0x28
468
#define PCIECAP_AER_RERR_CMD 0x2c
469
#define PCIECAP_AER_RERR_CMD_FE 0x00000001
470
#define PCIECAP_AER_RERR_CMD_NFE 0x00000002
471
#define PCIECAP_AER_RERR_CMD_CE 0x00000004
472
#define PCIECAP_AER_RERR_STA 0x30
473
#define PCIECAP_AER_RERR_STA_CORR 0x00000001
474
#define PCIECAP_AER_RERR_STA_MCORR 0x00000002
475
#define PCIECAP_AER_RERR_STA_FNF 0x00000004
476
#define PCIECAP_AER_RERR_STA_MFNF 0x00000008
477
#define PCIECAP_AER_RERR_F_UFATAL 0x00000010
478
#define PCIECAP_AER_RERR_NFE 0x00000020
479
#define PCIECAP_AER_RERR_FE 0x00000040
480
#define PCIECAP_AER_RERR_MSINO 0xf8000000
481
#define PCIECAP_AER_SRCID 0x34
482
#define PCIECAP_AER_SRCID_CORR 0x0000ffff
483
#define PCIECAP_AER_SRCID_FNF 0xffff0000
484
#define PCIECAP_AER_TLP_PFX_LOG0 0x38
485
#define PCIECAP_AER_TLP_PFX_LOG1 0x3c
486
#define PCIECAP_AER_TLP_PFX_LOG2 0x40
487
#define PCIECAP_AER_TLP_PFX_LOG3 0x44
489
/* Vendor specific extend capability */
490
#define PCIECAP_ID_VNDR 0x0b
491
#define PCIECAP_VNDR_HDR 0x04
492
#define PCIECAP_VNDR_HDR_ID_MASK 0x0000ffff
493
#define PCIECAP_VNDR_HDR_ID_LSH 0
494
#define PCIECAP_VNDR_HDR_REV_MASK 0x000f0000
495
#define PCIECAP_VNDR_HDR_REV_LSH 16
496
#define PCIECAP_VNDR_HDR_LEN_MASK 0xfff00000
497
#define PCIECAP_VNDR_HDR_LEN_LSH 20
499
#endif /* __PCI_CFG_H */