summaryrefslogtreecommitdiffstats
path: root/include/p7ioc-regs.h
blob: 4eb10d69508ca982414ab5554187cd32452fc0cb (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
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
/* Copyright 2013-2014 IBM Corp.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * 	http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
 * implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#ifndef __P7IOC_REGS_H
#define __P7IOC_REGS_H

/*
 * Register definitions
 *
 * We only define some registers here. Ideally we should auto-generate
 * the full list from the spec. For now I add them as I need them
 */

/* RGC GEM registers */
#define P7IOC_GEM_XFIR		0x3E0008
#define P7IOC_GEM_RFIR		0x3E0010
#define P7IOC_GEM_RIRQFIR	0x3E0018
#define P7IOC_GEM_MASK		0x3E0020
#define P7IOC_GEM_RWOF		0x3E0028

/* LEM register base */
#define P7IOC_RGC_LEM_BASE		0x3E1E00
#define P7IOC_BI_UP_LEM_BASE		0x3C0000
#define P7IOC_BI_DOWN_LEM_BASE		0x3C0050
#define P7IOC_CI_PORTn_LEM_BASE(n)	(0x3d0200 | ((n) * 0x1000))
#define P7IOC_PHBn_LEM_BASE(n)		(0x000C00 | ((n) * 0x10000))
#define P7IOC_MISC_LEM_BASE		0x3EA000
#define P7IOC_I2C_LEM_BASE		0x3EB000

/* LEM register offset */
#define P7IOC_LEM_FIR_OFFSET		0x00
#define P7IOC_LEM_FIR_AND_OFFSET	0x08
#define P7IOC_LEM_FIR_OR_OFFSET		0x10
#define P7IOC_LEM_ERR_MASK_OFFSET	0x18
#define P7IOC_LEM_ERR_MASK_AND_OFFSET	0x20
#define P7IOC_LEM_ERR_MASK_OR_OFFSET	0x28
#define P7IOC_LEM_ACTION_0_OFFSET	0x30
#define P7IOC_LEM_ACTION_1_OFFSET	0x38
#define P7IOC_LEM_WOF_OFFSET		0x40

/* HSS registers */
#define P7IOC_HSS_BASE          0x3E8000
#define P7IOC_HSS_STRIDE        0x200
#define P7IOC_HSSn_CTL2_OFFSET  0x10
#define P7IOC_HSSn_CTL3_OFFSET  0x18
#define P7IOC_HSSn_CTL8_OFFSET  0x40
#define P7IOC_HSSn_CTL9_OFFSET  0x48
#define P7IOC_HSSn_CTL10_OFFSET 0x50
#define P7IOC_HSSn_CTL11_OFFSET 0x58
#define P7IOC_HSSn_CTL12_OFFSET 0x60
#define P7IOC_HSSn_CTL13_OFFSET 0x68
#define P7IOC_HSSn_CTL14_OFFSET 0x70
#define P7IOC_HSSn_CTL15_OFFSET 0x78
#define P7IOC_HSSn_CTL16_OFFSET 0x80
#define P7IOC_HSSn_CTL17_OFFSET 0x88
#define P7IOC_HSSn_CTL18_OFFSET 0x90
#define P7IOC_HSSn_CTL19_OFFSET 0x98
#define P7IOC_HSSn_CTL20_OFFSET 0xa0
#define P7IOC_HSSn_CTL21_OFFSET 0xa8
#define P7IOC_HSSn_CTL22_OFFSET 0xb0
#define P7IOC_HSSn_CTL23_OFFSET 0xb8

/* CI Routing registers & helper macros */
#define P7IOC_CI_RMATC_REG(i)		(0x3D0400ul + ((i) << 4))
#define P7IOC_CI_RMASK_REG(i)		(0x3D0408ul + ((i) << 4))

#define P7IOC_CI_RMATC_PORT(n)		PPC_BIT(n)
#define P7IOC_CI_RMATC_ADDR_VALID	PPC_BIT(16)
#define P7IOC_CI_RMATC_BUID_VALID	PPC_BIT(17)
#define P7IOC_CI_RMATC_TYPE_VALID	PPC_BIT(18)

/* AIB Addresses are 48-bit, the top 32 are used in
 * the routing tables, we thus shift by 16
 */
#define P7IOC_CI_RMATC_ENCODE_ADDR(addr)	((uint32_t)((addr) >> 16))
#define P7IOC_CI_RMATC_ENCODE_BUID(buid)	((uint32_t)((buid) << 20))
#define P7IOC_CI_RMATC_ENCODE_TYPE(type)	((uint32_t)(type))

/* CI port numbers */
#define P7IOC_CI_PHB_PORT(pnum)		((pnum) + 2)
#define P7IOC_CI_UPSTREAM_PORT		0
#define P7IOC_CI_RGC_PORT		1

/* Other random chip registers */
#define P7IOC_CHIP_FENCE_SHADOW		0x3ec010
#define P7IOC_CHIP_FENCE_WOF		0x3ec018
#define P7IOC_CCRR			0x3e1c00

/* CI registers */
#define P7IOC_CIn_BASE(n)		(0x3d0000 | ((n) * 0x1000))
#define P7IOC_CIn_LEM_FIR(n)		(P7IOC_CIn_BASE(n) + 0x200)
#define P7IOC_CIn_LEM_FIR_AND(n)	(P7IOC_CIn_BASE(n) + 0x208)
#define P7IOC_CIn_LEM_FIR_OR(n)		(P7IOC_CIn_BASE(n) + 0x210)
#define P7IOC_CIn_LEM_ERR_MASK(n)	(P7IOC_CIn_BASE(n) + 0x218)
#define P7IOC_CIn_LEM_ERR_MASK_AND(n)	(P7IOC_CIn_BASE(n) + 0x220)
#define P7IOC_CIn_LEM_ERR_MASK_OR(n)	(P7IOC_CIn_BASE(n) + 0x228)

/*
 * PHB registers
 */

/* PHB Fundamental register set A */
#define PHB_BUID			0x100
#define   PHB_BUID_LSI			PPC_BITMASK(7,15)
#define   PHB_BUID_MSI			PPC_BITMASK(23,31)
#define PHB_DMA_CHAN_STATUS		0x110
#define PHB_CPU_LOADSTORE_STATUS	0x120
#define PHB_CONFIG_DATA			0x130
#define PHB_LOCK0			0x138
#define PHB_CONFIG_ADDRESS		0x140
#define   PHB_CA_ENABLE			PPC_BIT(0)
#define	  PHB_CA_BUS			PPC_BITMASK(4,11)
#define   PHB_CA_DEV			PPC_BITMASK(12,16)
#define   PHB_CA_FUNC			PPC_BITMASK(17,19)
#define   PHB_CA_BDFN			PPC_BITMASK(4,19) /* bus,dev,func */
#define   PHB_CA_REG			PPC_BITMASK(20,31)
#define PHB_LOCK1			0x148
#define PHB_PHB2_CONFIG			0x160
#define   PHB_PHB2C_64B_TCE_EN		PPC_BIT(2)
#define   PHB_PHB2C_32BIT_MSI_EN	PPC_BIT(8)
#define   PHB_PHB2C_IO_EN		PPC_BIT(12)
#define   PHB_PHB2C_64BIT_MSI_EN	PPC_BIT(14)
#define   PHB_PHB2C_M32_EN		PPC_BIT(16)
#define PHB_IO_BASE_ADDR		0x170
#define PHB_IO_BASE_MASK		0x178
#define PHB_IO_START_ADDR		0x180
#define PHB_M32_BASE_ADDR		0x190
#define PHB_M32_BASE_MASK		0x198
#define PHB_M32_START_ADDR		0x1a0
#define PHB_M64_UPPER_BITS		0x1f0
#define PHB_TCE_KILL			0x210
#define   PHB_TCEKILL_PAIR		PPC_BIT(0)
#define   PHB_TCEKILL_ADDR		PPC_BITMASK(16,59)
#define PHB_TCE_PREFETCH		0x218
#define PHB_IODA_ADDR			0x220
#define   PHB_IODA_AD_AUTOINC		PPC_BIT(0)
#define	  PHB_IODA_AD_TSEL		PPC_BITMASK(11,15)
#define	  PHB_IODA_AD_TADR		PPC_BITMASK(48,63)
#define PHB_IODA_DATA0			0x228
#define PHB_IODA_DATA1			0x230
#define PHB_LOCK2			0x240
#define PHB_XIVE_UPDATE			0x248
#define PHB_PHB2_GEN_CAP		0x250
#define PHB_PHB2_TCE_CAP		0x258
#define PHB_PHB2_IRQ_CAP		0x260
#define PHB_PHB2_EEH_CAP		0x268
#define PHB_PAPR_ERR_INJ_CTL		0x2b0
#define   PHB_PAPR_ERR_INJ_CTL_INB	PPC_BIT(0)
#define   PHB_PAPR_ERR_INJ_CTL_OUTB	PPC_BIT(1)
#define   PHB_PAPR_ERR_INJ_CTL_STICKY	PPC_BIT(2)
#define   PHB_PAPR_ERR_INJ_CTL_CFG	PPC_BIT(3)
#define   PHB_PAPR_ERR_INJ_CTL_RD	PPC_BIT(4)
#define   PHB_PAPR_ERR_INJ_CTL_WR	PPC_BIT(5)
#define   PHB_PAPR_ERR_INJ_CTL_FREEZE	PPC_BIT(6)
#define PHB_PAPR_ERR_INJ_ADDR		0x2b8
#define PHB_PAPR_ERR_INJ_MASK		0x2c0
#define   PHB_PAPR_ERR_INJ_MASK_CFG		PPC_BITMASK(4,11)
#define   PHB_PAPR_ERR_INJ_MASK_MMIO		PPC_BITMASK(16,39)	/* 16M aligned */
#define   PHB_PAPR_ERR_INJ_MASK_IO		PPC_BITMASK(16,47)	/* 64K aligned */
#define   PHB_PAPR_ERR_INJ_MASK_DMA		PPC_BITMASK(60,63)	/* 16 window */
#define PHB_ETU_ERR_SUMMARY		0x2c8

/*  UTL registers */
#define UTL_SYS_BUS_CONTROL		0x400
#define UTL_STATUS			0x408
#define UTL_SYS_BUS_AGENT_STATUS	0x410
#define UTL_SYS_BUS_AGENT_ERR_SEVERITY	0x418
#define UTL_SYS_BUS_AGENT_IRQ_EN	0x420
#define UTL_SYS_BUS_BURST_SZ_CONF	0x440
#define UTL_REVISION_ID			0x448
#define UTL_OUT_POST_HDR_BUF_ALLOC	0x4c0
#define UTL_OUT_POST_DAT_BUF_ALLOC	0x4d0
#define UTL_IN_POST_HDR_BUF_ALLOC	0x4e0
#define UTL_IN_POST_DAT_BUF_ALLOC	0x4f0
#define UTL_OUT_NP_BUF_ALLOC		0x500
#define UTL_IN_NP_BUF_ALLOC		0x510
#define UTL_PCIE_TAGS_ALLOC		0x520
#define UTL_GBIF_READ_TAGS_ALLOC	0x530
#define UTL_PCIE_PORT_CONTROL		0x540
#define UTL_PCIE_PORT_STATUS		0x548
#define UTL_PCIE_PORT_ERROR_SEV		0x550
#define UTL_PCIE_PORT_IRQ_EN		0x558
#define UTL_RC_STATUS			0x560
#define UTL_RC_ERR_SEVERITY		0x568
#define UTL_RC_IRQ_EN			0x570
#define UTL_EP_STATUS			0x578
#define UTL_EP_ERR_SEVERITY		0x580
#define UTL_EP_ERR_IRQ_EN		0x588
#define UTL_PCI_PM_CTRL1		0x590
#define UTL_PCI_PM_CTRL2		0x598
#define UTL_GP_CTL1			0x5a0
#define UTL_GP_CTL2			0x5a8

/* PCI-E Stack registers */
#define PHB_PCIE_SYSTEM_CONFIG		0x600
#define PHB_PCIE_BUS_NUMBER		0x608
#define PHB_PCIE_SYSTEM_TEST		0x618
#define PHB_PCIE_LINK_MANAGEMENT	0x630
#define PHB_PCIE_DLP_TRAIN_CTL		0x640
#define   PHB_PCIE_DLP_TCTX_DISABLE	PPC_BIT(1)
#define   PHB_PCIE_DLP_TCRX_DISABLED	PPC_BIT(16)
#define   PHB_PCIE_DLP_TC_DL_LINKUP	PPC_BIT(21)
#define   PHB_PCIE_DLP_TC_DL_PGRESET	PPC_BIT(22)
#define   PHB_PCIE_DLP_TC_DL_LINKACT	PPC_BIT(23)
#define PHB_PCIE_SLOP_LOOPBACK_STATUS	0x648
#define PHB_PCIE_AER_CONTROL		0x650
#define PHB_PCIE_AUX_POWER_CONTROL	0x658
#define PHB_PCIE_SLOTCTL1		0x660
#define PHB_PCIE_SLOTCTL2		0x668
#define   PHB_PCIE_SLOTCTL2_SLOTWAKE	PPC_BIT(16)
#define   PHB_PCIE_SLOTCTL2_PWR_EN_STAT	PPC_BIT(17)
#define   PHB_PCIE_SLOTCTL2_RCK_EN_STAT	PPC_BIT(18)
#define   PHB_PCIE_SLOTCTL2_PERST_STAT	PPC_BIT(19)
#define   PHB_PCIE_SLOTCTL2_PLED_S	PPC_BITMASK(20,21) /* use PCIE_INDIC_* */
#define   PHB_PCIE_SLOTCTL2_ALED_S	PPC_BITMASK(22,23)
#define   PHB_PCIE_SLOTCTL2_PRSTN_STAT	PPC_BIT(24)
#define   PHB_PCIE_SLOTCTL2_PWRFLT_STAT	PPC_BIT(25)
#define PHB_PCIE_UTL_CONFIG		0x670
#define PHB_PCIE_DLP_CONTROL		0x678
#define PHB_PCIE_UTL_ERRLOG1		0x680
#define PHB_PCIE_UTL_ERRLOG2		0x688
#define PHB_PCIE_UTL_ERRLOG3		0x690
#define PHB_PCIE_UTL_ERRLOG4		0x698
#define PHB_PCIE_DLP_ERRLOG1		0x6a0
#define PHB_PCIE_DLP_ERRLOG2		0x6a8
#define PHB_PCIE_UTL_ERR_INJECT		0x6c0
#define PHB_PCIE_TLDLP_ERR_INJECT	0x6c8
#define PHB_PCIE_STRAPPING		0x700

/* Fundamental register set B */
#define PHB_VERSION			0x800
#define PHB_RESET			0x808
#define PHB_CONTROL			0x810
#define PHB_AIB_RX_CRED_INIT_TIMER	0x818
#define PHB_AIB_RX_CMD_CRED		0x820
#define PHB_AIB_RX_DATA_CRED		0x828
#define PHB_AIB_TX_CMD_CRED		0x830
#define PHB_AIB_TX_DATA_CRED		0x838
#define PHB_AIB_TX_CHAN_MAPPING		0x840
#define PHB_AIB_TX_CRED_SYNC_CTRL	0x848
#define PHB_LEGACY_CTRL			0x850
#define PHB_AIB_TAG_ENABLE		0x858
#define PHB_AIB_FENCE_CTRL		0x860
#define PHB_TCE_TAG_ENABLE		0x868
#define PHB_TCE_WATERMARK		0x870
#define PHB_TIMEOUT_CTRL1		0x878
#define PHB_TIMEOUT_CTRL2		0x880
#define PHB_QUIESCE_DMA_G		0x888
#define PHB_AIB_TAG_STATUS		0x900
#define PHB_TCE_TAG_STATUS		0x908

/* FIR & Error registers */
#define PHB_LEM_FIR_ACCUM		0xc00
#define PHB_LEM_FIR_AND_MASK		0xc08
#define PHB_LEM_FIR_OR_MASK		0xc10
#define PHB_LEM_ERROR_MASK		0xc18
#define PHB_LEM_ERROR_AND_MASK		0xc20
#define PHB_LEM_ERROR_OR_MASK		0xc28
#define PHB_LEM_ACTION0			0xc30
#define PHB_LEM_ACTION1			0xc38
#define PHB_LEM_WOF			0xc40
#define PHB_ERR_STATUS			0xc80
#define PHB_ERR1_STATUS			0xc88
#define PHB_ERR_INJECT			0xc90
#define PHB_ERR_LEM_ENABLE		0xc98
#define PHB_ERR_IRQ_ENABLE		0xca0
#define PHB_ERR_FREEZE_ENABLE		0xca8
#define PHB_ERR_AIB_FENCE_ENABLE	0xcb0
#define PHB_ERR_LOG_0			0xcc0
#define PHB_ERR_LOG_1			0xcc8
#define PHB_ERR_STATUS_MASK		0xcd0
#define PHB_ERR1_STATUS_MASK		0xcd8

#define PHB_OUT_ERR_STATUS		0xd00
#define PHB_OUT_ERR1_STATUS		0xd08
#define PHB_OUT_ERR_INJECT		0xd10
#define PHB_OUT_ERR_LEM_ENABLE		0xd18
#define PHB_OUT_ERR_IRQ_ENABLE		0xd20
#define PHB_OUT_ERR_FREEZE_ENABLE	0xd28
#define PHB_OUT_ERR_AIB_FENCE_ENABLE	0xd30
#define PHB_OUT_ERR_LOG_0		0xd40
#define PHB_OUT_ERR_LOG_1		0xd48
#define PHB_OUT_ERR_STATUS_MASK		0xd50
#define PHB_OUT_ERR1_STATUS_MASK	0xd58

#define PHB_INA_ERR_STATUS		0xd80
#define PHB_INA_ERR1_STATUS		0xd88
#define PHB_INA_ERR_INJECT		0xd90
#define PHB_INA_ERR_LEM_ENABLE		0xd98
#define PHB_INA_ERR_IRQ_ENABLE		0xda0
#define PHB_INA_ERR_FREEZE_ENABLE	0xda8
#define PHB_INA_ERR_AIB_FENCE_ENABLE	0xdb0
#define PHB_INA_ERR_LOG_0		0xdc0
#define PHB_INA_ERR_LOG_1		0xdc8
#define PHB_INA_ERR_STATUS_MASK		0xdd0
#define PHB_INA_ERR1_STATUS_MASK	0xdd8

#define PHB_INB_ERR_STATUS		0xe00
#define PHB_INB_ERR1_STATUS		0xe08
#define PHB_INB_ERR_INJECT		0xe10
#define PHB_INB_ERR_LEM_ENABLE		0xe18
#define PHB_INB_ERR_IRQ_ENABLE		0xe20
#define PHB_INB_ERR_FREEZE_ENABLE	0xe28
#define PHB_INB_ERR_AIB_FENCE_ENABLE	0xe30
#define PHB_INB_ERR_LOG_0		0xe40
#define PHB_INB_ERR_LOG_1		0xe48
#define PHB_INB_ERR_STATUS_MASK		0xe50
#define PHB_INB_ERR1_STATUS_MASK	0xe58

/* Performance monitor & Debug registers */
#define PHB_TRACE_CONTROL		0xf80
#define PHB_PERFMON_CONFIG		0xf88
#define PHB_PERFMON_CTR0		0xf90
#define PHB_PERFMON_CTR1		0xf98
#define PHB_PERFMON_CTR2		0xfa0
#define PHB_PERFMON_CTR3		0xfa8
#define PHB_HOTPLUG_OVERRIDE		0xfb0

/*
 * IODA tables
 */

#define IODA_TBL_HRT		0
#define IODA_TBL_LIST		1
#define IODA_TBL_LXIVT		2
#define IODA_TBL_MIST		3
#define IODA_TBL_MXIVT		4
#define IODA_TBL_MVT		5
#define IODA_TBL_PELTM		6
#define IODA_TBL_PESTA		7
#define IODA_TBL_PESTB		8
#define IODA_TBL_TVT		9
#define IODA_TBL_TCAM		10
#define IODA_TBL_TDR		11
#define IODA_TBL_PELTV		12
#define IODA_TBL_M64BT		16
#define IODA_TBL_IODT		17
#define IODA_TBL_M32DT		18
#define IODA_TBL_M64DT		19
#define IODA_TBL_PEEV		20

/* L/M XIVT */
#define IODA_XIVT_SERVER		PPC_BITMASK(8,23)
#define IODA_XIVT_PRIORITY		PPC_BITMASK(24,31)
#define IODA_XIVT_PENUM			PPC_BITMASK(41,47)
#define IODA_XIVT_HUBNUM		PPC_BITMASK(58,59)

/* M64BT */
#define IODA_M64BT_ENABLE		PPC_BIT(0)
#define IODA_M64BT_BASE			PPC_BITMASK(8,31)
#define IODA_M64BT_MASK			PPC_BITMASK(40,63)

/* IODT/M32DT/M64DX */
#define IODA_XXDT_PE			PPC_BITMASK(0,6)

/* PELTM */
#define IODA_PELTM_BUS			PPC_BITMASK(0,7)
#define IODA_PELTM_DEV			PPC_BITMASK(8,12)
#define IODA_PELTM_FUNC			PPC_BITMASK(13,15)
#define IODA_PELTM_BUS_VALID		PPC_BITMASK(16,18)
#define  IODA_BUS_VALID_ANY		0
#define  IODA_BUS_VALID_3_BITS		2
#define  IODA_BUS_VALID_4_BITS		3
#define  IODA_BUS_VALID_5_BITS		4
#define  IODA_BUS_VALID_6_BITS		5
#define  IODA_BUS_VALID_7_BITS		6
#define  IODA_BUS_VALID_ALL		7
#define IODA_PELTM_DEV_VALID		PPC_BIT(19)
#define IODA_PELTM_FUNC_VALID		PPC_BIT(20)

/* TVT */
#define IODA_TVT0_TABLE_ADDR		PPC_BITMASK(0,47)
#define IODA_TVT0_BUS_VALID		PPC_BITMASK(48,50)
#define IODA_TVT0_TCE_TABLE_SIZE	PPC_BITMASK(51,55)
#define IODA_TVT0_BUS_NUM		PPC_BITMASK(56,63)
#define IODA_TVT1_DEV_VALID		PPC_BIT(2)
#define IODA_TVT1_DEV_NUM		PPC_BITMASK(3,7)
#define IODA_TVT1_HUB_NUM		PPC_BITMASK(10,11)
#define IODA_TVT1_FUNC_VALID		PPC_BIT(12)
#define IODA_TVT1_FUNC_NUM		PPC_BITMASK(13,15)
#define IODA_TVT1_IO_PSIZE		PPC_BITMASK(19,23)
#define IODA_TVT1_PE_NUM		PPC_BITMASK(57,63)

/* MVT */
#define IODA_MVT_VALID			PPC_BIT(0)
#define IODA_MVT_BUS_VALID		PPC_BITMASK(21,23)
#define IODA_MVT_BUS_NUM		PPC_BITMASK(24,31)
#define IODA_MVT_PE_NUM			PPC_BITMASK(41,47)
#define IODA_MVT_DEV_VALID		PPC_BIT(50)
#define IODA_MVT_DEV_NUM		PPC_BITMASK(51,55)
#define IODA_MVT_FUNC_VALID		PPC_BIT(60)
#define IODA_MVT_FUNC_NUM		PPC_BITMASK(61,63)

/* PESTA */
#define IODA_PESTA_MMIO_FROZEN		PPC_BIT(0)
#define IODA_PESTA_MMIO_CAUSE		PPC_BIT(2)
#define IODA_PESTA_CFG_READ		PPC_BIT(3)
#define IODA_PESTA_CFG_WRITE		PPC_BIT(4)
#define IODA_PESTA_TTYPE		PPC_BITMASK(5,7)
#define   PESTA_TTYPE_DMA_WRITE		0
#define   PESTA_TTYPE_MSI		1
#define   PESTA_TTYPE_DMA_READ		2
#define   PESTA_TTYPE_DMA_READ_RESP	3
#define   PESTA_TTYPE_MMIO_LOAD		4
#define   PESTA_TTYPE_MMIO_STORE	5
#define   PESTA_TTYPE_OTHER		7
#define IODA_PESTA_CA_RETURN		PPC_BIT(8)
#define IODA_PESTA_UTL_RTOS_TIMEOUT	PPC_BIT(8) /* Same bit as CA return */
#define IODA_PESTA_UR_RETURN		PPC_BIT(9)
#define IODA_PESTA_UTL_NONFATAL		PPC_BIT(10)
#define IODA_PESTA_UTL_FATAL		PPC_BIT(11)
#define IODA_PESTA_TAG_REUSE_ERROR	PPC_BIT(12)
#define IODA_PESTA_PARITY_UE		PPC_BIT(13)
#define IODA_PESTA_UTL_CORRECTABLE	PPC_BIT(14)
#define IODA_PESTA_UTL_INTERRUPT	PPC_BIT(15)
#define IODA_PESTA_MMIO_XLATE		PPC_BIT(16)
#define IODA_PESTA_IODA_ERROR		PPC_BIT(16) /* Same bit as MMIO xlate */
#define IODA_PESTA_TVT_EXT_ERROR	PPC_BIT(17)
#define IODA_PESTA_TCE_PAGE_FAULT	PPC_BIT(18)
#define IODA_PESTA_TCE_ACCESS_FAULT	PPC_BIT(19)
#define IODA_PESTA_DMA_RESP_TIMEOUT	PPC_BIT(20)
#define IODA_PESTA_AIB_SIZE_INVALID	PPC_BIT(21)
#define IODA_PESTA_LEM_BIT		PPC_BITMASK(26,31)
#define IODA_PESTA_RID			PPC_BITMASK(32,47)
#define IODA_PESTA_MSI_DATA		PPC_BITMASK(48,63)

/* PESTB */
#define IODA_PESTB_DMA_STOPPED		PPC_BIT(0)
#define IODA_PESTB_FAIL_ADDR		PPC_BITMASK(3,63)

#endif /* __P7IOC_REGS_H */
OpenPOWER on IntegriCloud