RTEMS
6.3
Toggle main menu visibility
Loading...
Searching...
No Matches
bsps
powerpc
beatnik
include
bsp
gtpcireg.h
1
/* $NetBSD: gtpcireg.h,v 1.4 2005/12/11 12:22:16 christos Exp $ */
2
3
/*
4
* Copyright (c) 2002 Allegro Networks, Inc., Wasabi Systems, Inc.
5
* All rights reserved.
6
*
7
* Redistribution and use in source and binary forms, with or without
8
* modification, are permitted provided that the following conditions
9
* are met:
10
* 1. Redistributions of source code must retain the above copyright
11
* notice, this list of conditions and the following disclaimer.
12
* 2. Redistributions in binary form must reproduce the above copyright
13
* notice, this list of conditions and the following disclaimer in the
14
* documentation and/or other materials provided with the distribution.
15
* 3. All advertising materials mentioning features or use of this software
16
* must display the following acknowledgement:
17
* This product includes software developed for the NetBSD Project by
18
* Allegro Networks, Inc., and Wasabi Systems, Inc.
19
* 4. The name of Allegro Networks, Inc. may not be used to endorse
20
* or promote products derived from this software without specific prior
21
* written permission.
22
* 5. The name of Wasabi Systems, Inc. may not be used to endorse
23
* or promote products derived from this software without specific prior
24
* written permission.
25
*
26
* THIS SOFTWARE IS PROVIDED BY ALLEGRO NETWORKS, INC. AND
27
* WASABI SYSTEMS, INC. ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
28
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
29
* AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
30
* IN NO EVENT SHALL EITHER ALLEGRO NETWORKS, INC. OR WASABI SYSTEMS, INC.
31
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
32
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
33
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
34
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
35
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
36
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
37
* POSSIBILITY OF SUCH DAMAGE.
38
*/
39
40
#ifndef _DEV_GTPCIREG_H
41
#define _DEV_GTPCIREG_H
42
43
#define PCI__BIT(bit) (1U << (bit))
44
#define PCI__MASK(bit) (PCI__BIT(bit) - 1)
45
#define PCI__GEN(bus, off, num) (((off)^((bus) << 7))+((num) << 4))
46
#define PCI__EXT(data, bit, len) (((data) >> (bit)) & PCI__MASK(len))
47
#define PCI__CLR(data, bit, len) ((data) &= ~(PCI__MASK(len) << (bit)))
48
#define PCI__INS(bit, new) ((new) << (bit))
49
50
#define PCI_SYNC_REG(bus) (0xc0 | ((bus) << 3))
51
52
/*
53
* Table 185: PCI Slave ADDRess Decoding Register Map
54
*/
55
#define PCI_SCS0_BAR_SIZE(bus) PCI__GEN(bus, 0x0c08, 0)
56
#define PCI_SCS2_BAR_SIZE(bus) PCI__GEN(bus, 0x0c0c, 0)
57
#define PCI_CS0_BAR_SIZE(bus) PCI__GEN(bus, 0x0c10, 0)
58
#define PCI_CS3_BAR_SIZE(bus) PCI__GEN(bus, 0x0c14, 0)
59
#define PCI_SCS1_BAR_SIZE(bus) PCI__GEN(bus, 0x0d08, 0)
60
#define PCI_SCS3_BAR_SIZE(bus) PCI__GEN(bus, 0x0d0c, 0)
61
#define PCI_CS1_BAR_SIZE(bus) PCI__GEN(bus, 0x0d10, 0)
62
#define PCI_BOOTCS_BAR_SIZE(bus) PCI__GEN(bus, 0x0d14, 0)
63
#define PCI_CS2_BAR_SIZE(bus) PCI__GEN(bus, 0x0d18, 0)
64
#define PCI_P2P_MEM0_BAR_SIZE(bus) PCI__GEN(bus, 0x0d1c, 0)
65
#define PCI_P2P_MEM1_BAR_SIZE(bus) PCI__GEN(bus, 0x0d20, 0)
66
#define PCI_P2P_IO_BAR_SIZE(bus) PCI__GEN(bus, 0x0d24, 0)
67
#define PCI_CPU_BAR_SIZE(bus) PCI__GEN(bus, 0x0d28, 0)
68
#define PCI_EXPANSION_ROM_BAR_SIZE(bus) PCI__GEN(bus, 0x0d2c, 0)
69
#define PCI_DAC_SCS0_BAR_SIZE(bus) PCI__GEN(bus, 0x0e00, 0)
70
#define PCI_DAC_SCS1_BAR_SIZE(bus) PCI__GEN(bus, 0x0e04, 0)
71
#define PCI_DAC_SCS2_BAR_SIZE(bus) PCI__GEN(bus, 0x0e08, 0)
72
#define PCI_DAC_SCS3_BAR_SIZE(bus) PCI__GEN(bus, 0x0e0c, 0)
73
#define PCI_DAC_CS0_BAR_SIZE(bus) PCI__GEN(bus, 0x0e10, 0)
74
#define PCI_DAC_CS1_BAR_SIZE(bus) PCI__GEN(bus, 0x0e14, 0)
75
#define PCI_DAC_CS2_BAR_SIZE(bus) PCI__GEN(bus, 0x0e18, 0)
76
#define PCI_DAC_CS3_BAR_SIZE(bus) PCI__GEN(bus, 0x0e1c, 0)
77
#define PCI_DAC_BOOTCS_BAR_SIZE(bus) PCI__GEN(bus, 0x0e20, 0)
78
#define PCI_DAC_P2P_MEM0_BAR_SIZE(bus) PCI__GEN(bus, 0x0e24, 0)
79
#define PCI_DAC_P2P_MEM1_BAR_SIZE(bus) PCI__GEN(bus, 0x0e28, 0)
80
#define PCI_DAC_CPU_BAR_SIZE(bus) PCI__GEN(bus, 0x0e2c, 0)
81
#define PCI_BASE_ADDR_REGISTERS_ENABLE(bus) PCI__GEN(bus, 0x0c3c, 0)
82
#define PCI_SCS0_BASE_ADDR_REMAP(bus) PCI__GEN(bus, 0x0c48, 0)
83
#define PCI_SCS1_BASE_ADDR_REMAP(bus) PCI__GEN(bus, 0x0d48, 0)
84
#define PCI_SCS2_BASE_ADDR_REMAP(bus) PCI__GEN(bus, 0x0c4c, 0)
85
#define PCI_SCS3_BASE_ADDR_REMAP(bus) PCI__GEN(bus, 0x0d4c, 0)
86
#define PCI_CS0_BASE_ADDR_REMAP(bus) PCI__GEN(bus, 0x0c50, 0)
87
#define PCI_CS1_BASE_ADDR_REMAP(bus) PCI__GEN(bus, 0x0d50, 0)
88
#define PCI_CS2_BASE_ADDR_REMAP(bus) PCI__GEN(bus, 0x0d58, 0)
89
#define PCI_CS3_BASE_ADDR_REMAP(bus) PCI__GEN(bus, 0x0c54, 0)
90
#define PCI_ADDR_DECODE_CONTROL(bus) PCI__GEN(bus, 0x0d3c, 0)
91
#define PCI_BOOTCS_ADDR_REMAP(bus) PCI__GEN(bus, 0x0d54, 0)
92
#define PCI_P2P_MEM0_BASE_ADDR_REMAP_LOW(bus) PCI__GEN(bus, 0x0d5c, 0)
93
#define PCI_P2P_MEM0_BASE_ADDR_REMAP_HIGH(bus) PCI__GEN(bus, 0x0d60, 0)
94
#define PCI_P2P_MEM1_BASE_ADDR_REMAP_LOW(bus) PCI__GEN(bus, 0x0d64, 0)
95
#define PCI_P2P_MEM1_BASE_ADDR_REMAP_HIGH(bus) PCI__GEN(bus, 0x0d68, 0)
96
#define PCI_P2P_IO_BASE_ADDR_REMAP(bus) PCI__GEN(bus, 0x0d6c, 0)
97
#define PCI_CPU_BASE_ADDR_REMAP(bus) PCI__GEN(bus, 0x0d70, 0)
98
#define PCI_DAC_SCS0_BASE_ADDR_REMAP(bus) PCI__GEN(bus, 0x0f00, 0)
99
#define PCI_DAC_SCS1_BASE_ADDR_REMAP(bus) PCI__GEN(bus, 0x0f04, 0)
100
#define PCI_DAC_SCS2_BASE_ADDR_REMAP(bus) PCI__GEN(bus, 0x0f08, 0)
101
#define PCI_DAC_SCS3_BASE_ADDR_REMAP(bus) PCI__GEN(bus, 0x0f0c, 0)
102
#define PCI_DAC_CS0_BASE_ADDR_REMAP(bus) PCI__GEN(bus, 0x0f10, 0)
103
#define PCI_DAC_CS1_BASE_ADDR_REMAP(bus) PCI__GEN(bus, 0x0f14, 0)
104
#define PCI_DAC_CS2_BASE_ADDR_REMAP(bus) PCI__GEN(bus, 0x0f18, 0)
105
#define PCI_DAC_CS3_BASE_ADDR_REMAP(bus) PCI__GEN(bus, 0x0f1c, 0)
106
#define PCI_DAC_BOOTCS_BASE_ADDR_REMAP(bus) PCI__GEN(bus, 0x0f20, 0)
107
#define PCI_DAC_P2P_MEM0_BASE_ADDR_REMAP_LOW(bus) PCI__GEN(bus, 0x0f24, 0)
108
#define PCI_DAC_P2P_MEM0_BASE_ADDR_REMAP_HIGH(bus) PCI__GEN(bus, 0x0f28, 0)
109
#define PCI_DAC_P2P_MEM1_BASE_ADDR_REMAP_LOW(bus) PCI__GEN(bus, 0x0f2c, 0)
110
#define PCI_DAC_P2P_MEM1_BASE_ADDR_REMAP_HIGH(bus) PCI__GEN(bus, 0x0f30, 0)
111
#define PCI_DAC_CPU_BASE_ADDR_REMAP(bus) PCI__GEN(bus, 0x0f34, 0)
112
#define PCI_EXPANSION_ROM_BASE_ADDR_REMAP(bus) PCI__GEN(bus, 0x0f38, 0)
113
114
/*
115
* Table 186: PCI Control Register Map
116
*/
117
#define PCI_COMMAND(bus) PCI__GEN(bus, 0x0c00, 0)
118
#define PCI_MODE(bus) PCI__GEN(bus, 0x0d00, 0)
119
#define PCI_TIMEOUT_RETRY(bus) PCI__GEN(bus, 0x0c04, 0)
120
#define PCI_READ_BUFFER_DISCARD_TIMER(bus) PCI__GEN(bus, 0x0d04, 0)
121
#define PCI_MSI_TRIGGER_TIMER(bus) PCI__GEN(bus, 0x0c38, 0)
122
#define PCI_ARBITER_CONTROL(bus) PCI__GEN(bus, 0x1d00, 0)
123
#define PCI_INTERFACE_XBAR_CONTROL_LOW(bus) PCI__GEN(bus, 0x1d08, 0)
124
#define PCI_INTERFACE_XBAR_CONTROL_HIGH(bus) PCI__GEN(bus, 0x1d0c, 0)
125
#define PCI_INTERFACE_XBAR_TIMEOUT(bus) PCI__GEN(bus, 0x1d04, 0)
126
#define PCI_READ_RESPONSE_XBAR_CONTROL_LOW(bus) PCI__GEN(bus, 0x1d18, 0)
127
#define PCI_READ_RESPONSE_XBAR_CONTROL_HIGH(bus) PCI__GEN(bus, 0x1d1c, 0)
128
#define PCI_SYNC_BARRIER(bus) PCI__GEN(bus, 0x1d10, 0)
129
#define PCI_P2P_CONFIGURATION(bus) PCI__GEN(bus, 0x1d14, 0)
130
#define PCI_P2P_SWAP_CONTROL(bus) PCI__GEN(bus, 0x1d54, 0)
131
#define PCI_ACCESS_CONTROL_BASE_LOW(bus, n) PCI__GEN(bus, 0x1e00, n)
132
#define PCI_ACCESS_CONTROL_BASE_HIGH(bus, n) PCI__GEN(bus, 0x1e04, n)
133
#define PCI_ACCESS_CONTROL_TOP(bus, n) PCI__GEN(bus, 0x1e08, n)
134
135
136
/*
137
* Table 187: PCI Snoop Control Register Map
138
*/
139
#define PCI_SNOOP_CONTROL_BASE_LOW(bus, n) PCI__GEN(bus, 0x1f00, n)
140
#define PCI_SNOOP_CONTROL_BASE_HIGH(bus, n) PCI__GEN(bus, 0x1f04, n)
141
#define PCI_SNOOP_CONTROL_TOP(bus, n) PCI__GEN(bus, 0x1f08, n)
142
143
/*
144
* Table 188: PCI Configuration ACCESS_Register Map
145
*/
146
#define PCI_CONFIG_ADDR(bus) PCI__GEN(bus, 0x0cf8, 0)
147
#define PCI_CONFIG_DATA(bus) PCI__GEN(bus, 0x0cfc, 0)
148
#define PCI_INTR_ACK(bus) PCI__GEN(bus, 0x0c34, 0)
149
150
/*
151
* Table 189: PCI ERROR Report Register Map
152
*/
153
#define PCI_SERR_MASK(bus) PCI__GEN(bus, 0x0c28, 0)
154
#define PCI_ERROR_ADDRESS_LOW(bus) PCI__GEN(bus, 0x1d40, 0)
155
#define PCI_ERROR_ADDRESS_HIGH(bus) PCI__GEN(bus, 0x1d44, 0)
156
#define PCI_ERROR_DATA_LOW(bus) PCI__GEN(bus, 0x1d48, 0)
157
#define PCI_ERROR_DATA_HIGH(bus) PCI__GEN(bus, 0x1d4c, 0)
158
#define PCI_ERROR_COMMAND(bus) PCI__GEN(bus, 0x1d50, 0)
159
#define PCI_ERROR_CAUSE(bus) PCI__GEN(bus, 0x1d58, 0)
160
#define PCI_ERROR_MASK(bus) PCI__GEN(bus, 0x1d5c, 0)
161
162
163
164
/*
165
* Table 223: PCI Base Address Registers Enable
166
* If a bit is clear, the BAR is enabled. If set, disabled. The GT64260]
167
* prevents disabling both memory mapped and I/O mapped BARs (bits 9 and 10
168
* cannot simultaneously be set to 1).
169
*/
170
#define PCI_BARE_SCS0En PCI__BIT(0)
/* SCS[0]* BAR Enable */
171
#define PCI_BARE_SCS1En PCI__BIT(1)
/* SCS[1]* BAR Enable */
172
#define PCI_BARE_SCS2En PCI__BIT(2)
/* SCS[2]* BAR Enable */
173
#define PCI_BARE_SCS3En PCI__BIT(3)
/* SCS[3]* BAR Enable */
174
#define PCI_BARE_CS0En PCI__BIT(4)
/* CS[0]* BAR Enable */
175
#define PCI_BARE_CS1En PCI__BIT(5)
/* CS[1]* BAR Enable */
176
#define PCI_BARE_CS2En PCI__BIT(6)
/* CS[2]* BAR Enable */
177
#define PCI_BARE_CS3En PCI__BIT(7)
/* CS[3]* BAR Enable */
178
#define PCI_BARE_BootCSEn PCI__BIT(8)
/* BootCS* BAR Enable */
179
#define PCI_BARE_IntMemEn PCI__BIT(9)
/* Memory Mapped Internal
180
* Registers BAR Enable */
181
#define PCI_BARE_IntIOEn PCI__BIT(10)
/* I/O Mapped Internal
182
* Registers BAR Enable */
183
#define PCI_BARE_P2PMem0En PCI__BIT(11)
/* P2P Mem0 BAR Enable */
184
#define PCI_BARE_P2PMem1En PCI__BIT(12)
/* P2P Mem1 BAR Enable */
185
#define PCI_BARE_P2PIOEn PCI__BIT(13)
/* P2P IO BAR Enable */
186
#define PCI_BARE_CPUEn PCI__BIT(14)
/* CPU BAR Enable */
187
#define PCI_BARE_DSCS0En PCI__BIT(15)
/* DAC SCS[0]* BAR Enable */
188
#define PCI_BARE_DSCS1En PCI__BIT(16)
/* DAC SCS[1]* BAR Enable */
189
#define PCI_BARE_DSCS2En PCI__BIT(17)
/* DAC SCS[2]* BAR Enable */
190
#define PCI_BARE_DSCS3En PCI__BIT(18)
/* DAC SCS[3]* BAR Enable */
191
#define PCI_BARE_DCS0En PCI__BIT(19)
/* DAC CS[0]* BAR Enable */
192
#define PCI_BARE_DCS1En PCI__BIT(20)
/* DAC CS[1]* BAR Enable */
193
#define PCI_BARE_DCS2En PCI__BIT(21)
/* DAC CS[2]* BAR Enable */
194
#define PCI_BARE_DCS3En PCI__BIT(22)
/* DAC CS[3]* BAR Enable */
195
#define PCI_BARE_DBootCSEn PCI__BIT(23)
/* DAC BootCS* BAR Enable */
196
#define PCI_BARE_DP2PMem0En PCI__BIT(24)
/* DAC P2P Mem0 BAR Enable */
197
#define PCI_BARE_DP2PMem1En PCI__BIT(25)
/* DAC P2P Mem1 BAR Enable */
198
#define PCI_BARE_DCPUEn PCI__BIT(26)
/* DAC CPU BAR Enable */
199
200
/*
201
* Table 254: PCI Address Decode Control
202
* Bits 7:4 and 31:25 are reserved
203
* 00:00 RemapWrDis Address Remap Registers Write Disable
204
* 0: Writes to a BAR result in updating the
205
* corresponding remap register with the BAR's
206
* new value.
207
* 1: Writes to a BAR have no affect on the
208
* corresponding Remap register value.
209
* 01:01 ExpRomDev Expansion ROM Device (0: CS[3]; 1: BootCS)
210
* 02:02 VPDDev VPD Device (0: CS[3]; 1: BootCS)
211
* 03:03 MsgAcc Messaging registers access
212
* 0: Messaging unit registers are accessible on
213
* lowest 4Kbyte of SCS[0] BAR space.
214
* 1: Messaging unit registers are only accessible
215
* as part of the GT64260 internal space.
216
* 07:04 Reserved
217
* 24:08 VPDHighAddr VPD High Address bits
218
* [31:15] of VPD the address.
219
* 31:25 Reserved
220
*/
221
#define PCI_ADC_RemapWrDis PCI__BIT(0)
222
#define PCI_ADC_ExpRomDev PCI__BIT(1)
223
#define PCI_ADC_VPDDev PCI__BIT(2)
224
#define PCI_ADC_MsgAcc PCI__BIT(3)
225
#define PCI_ADC_VPDHighAddr_GET(v) PCI__EXT(v, 8, 16)
226
227
228
/*
229
* Table 255: PCI Command
230
* 00:00 MByteSwap PCI Master Byte Swap
231
* NOTE: GT-64120 and GT-64130 compatible.
232
* When set to 0, the GTO64260 PCI master swaps the bytes
233
* of the incoming and outgoing PCI data (swap the 8 bytes
234
* of a longword).
235
* 01:01 Reserved
236
* 02:02 Reserved Must be 0.
237
* 03:03 Reserved
238
* 04:04 MWrCom PCI Master Write Combine Enable
239
* When set to 1, write combining is enabled.
240
* 05:05 MRdCom PCI Master Read Combine Enable
241
* When set to 1, read combining is enabled.
242
* 06:06 MWrTrig PCI Master Write Trigger
243
* 0: Accesses the PCI bus only when the whole burst is
244
* written into the master write buffer.
245
* 1: Accesses the PCI bus when the first data is written
246
* into the master write buffer.
247
* 07:07 MRdTrig PCI Master Read Trigger
248
* 0: Returns read data to the initiating unit only when
249
* the whole burst is written into master read buffer.
250
* 1: Returns read data to the initiating unit when the
251
* first read data is written into master read buffer.
252
* 08:08 MRdLine PCI Master Memory Read Line Enable
253
* (0: Disable; 1: Enable)
254
* 09:09 MRdMul PCI Master Memory Read Multiple Enable
255
* (0: Disable; 1: Enable)
256
* 10:10 MWordSwap PCI Master Word Swap
257
* NOTE: GT-64120 and GT-64130 compatible.
258
* When set to 1, the GT64260 PCI master swaps the 32-bit
259
* words of the incoming and outgoing PCI data.
260
* 11:11 SWordSwap PCI Slave Word Swap
261
* NOTE: GT-64120 and GT-64130 compatible.
262
* When set to 1, the GT64260 PCI slave swaps the 32-bit
263
* words of the incoming and outgoing PCI data.
264
* 12:12 IntBusCtl PCI Interface Unit Internal Bus Control
265
* NOTE: Reserved for Galileo Technology usage
266
* 0: Enable internal bus sharing between master and
267
* slave interfaces.
268
* 1: Disable internal bus sharing between master and
269
* slave interfaces.
270
* 13:13 SBDis PCI Slave Sync Barrier Disable
271
* When set to 1, the PCI configuration read transaction
272
* will stop act as sync barrier transaction.
273
* 14:14 Reserved Must be 0
274
* 15:15 MReq64 PCI Master REQ64* Enable (0: Disable; 1: Enable)
275
* 16:16 SByteSwap PCI Slave Byte Swap
276
* NOTE: GT-64120 and GT-64130 compatible.
277
* When set to 0, the GT64260 PCI slave swaps the bytes of
278
* the incoming and outgoing PCI data (swap the 8 bytes of
279
* a long-word).
280
* 17:17 MDACEn PCI Master DAC Enable
281
* 0: Disable (The PCI master never drives the DAC cycle)
282
* 1: Enable (In case the upper 32-bit address is not 0,
283
* the PCI master drives the DAC cycle)
284
* 18:18 M64Allign PCI Master REQ64* assertion on non-aligned
285
* 0: Disable (The master asserts REQ64* only if
286
* the address is 64-bit aligned)
287
* 1: Enable (The master asserts REQ64* even if
288
* the address is not 64-bit aligned)
289
* 19:19 PErrProp Parity/ECC Errors Propagation Enable
290
* 0: Disable (The PCI interface always drives
291
* correct parity on the PAR signal)
292
* 1: Enable (In case of slave read bad ECC from
293
* SDRAM, or master write with bad parity/ECC
294
* indication from the initiator, the PCI interface
295
* drives bad parity on the PAR signal)
296
* 20:20 SSwapEn PCI Slave Swap Enable
297
* NOTE: Even if the SSwapEn bit is set to 1 and
298
* the PCI address does not match any of the
299
* Access Control registers, slave data swapping
300
* works according to SByteSwap and SWordSwap bits.
301
* 0: PCI slave data swapping is determined via
302
* SByteSwap and SWordSwap bits (bits 16 and 11),
303
* as in the GT-64120/130.
304
* 1: PCI slave data swapping is determined via PCISwap
305
* bits [25:24] in the PCI Access Control registers.
306
* 21:21 MSwapEn PCI Master Swap Enable
307
* 0: PCI master data swapping is determined via
308
* MByteSwap and MWordSwap bits (bits 0 and 10),
309
* as in the GT-64120/130.
310
* 1: PCI master data swapping is determined via
311
* PCISwap bits in CPU to PCI Address Decoding
312
* registers.
313
* 22:22 MIntSwapEn PCI Master Configuration Transactions Data Swap Enable
314
* NOTE: Reserved for Galileo Technology usage.
315
* 0: Disable (The PCI master configuration transaction
316
* to the PCI bus is always in Little Endian convention)
317
* 1: Enable (The PCI master configuration transaction to
318
* the PCI bus is determined according to the setting
319
* of MSwapEn bit)
320
* 23:23 LBEn PCI Loop Back Enable
321
* NOTE: Reserved for Galileo Technology usage.
322
* 0: Disable (The PCI slave does not respond to
323
* transactions initiated by the PCI master)
324
* 1: Enable (The PCI slave does respond to
325
* transactions initiated by the PCI master,
326
* if targeted to the slave (address match)
327
* 26:24 SIntSwap PCI Slave data swap control on PCI accesses to the
328
* GT64260 internal and configuration registers.
329
* Bits encoding are the same as bits[26:24] in PCI Access
330
* Control registers.
331
* 27:27 Reserved Must be 0.
332
* 31:28 Reserved Read only.
333
*/
334
#define PCI_CMD_MByteSwap PCI__BIT(0)
335
#define PCI_CMD_MBZ0_2 PCI__BIT(2)
336
#define PCI_CMD_MWrCom PCI__BIT(4)
337
#define PCI_CMD_MRdCom PCI__BIT(5)
338
#define PCI_CMD_MWrTrig PCI__BIT(6)
339
#define PCI_CMD_MRdTrig PCI__BIT(7)
340
#define PCI_CMD_MRdLine PCI__BIT(8)
341
#define PCI_CMD_MRdMul PCI__BIT(9)
342
#define PCI_CMD_MWordSwap PCI__BIT(10)
343
#define PCI_CMD_SWordSwap PCI__BIT(11)
344
#define PCI_CMD_IntBusCtl PCI__BIT(12)
345
#define PCI_CMD_SBDis PCI__BIT(13)
346
#define PCI_CMD_MBZ0_14 PCI__BIT(14)
347
#define PCI_CMD_MReq64 PCI__BIT(15)
348
#define PCI_CMD_SByteSwap PCI__BIT(16)
349
#define PCI_CMD_MDCAEn PCI__BIT(17)
350
#define PCI_CMD_M64Allign PCI__BIT(18)
351
#define PCI_CMD_PErrProp PCI__BIT(19)
352
#define PCI_CMD_SSwapEn PCI__BIT(20)
353
#define PCI_CMD_MSwapEn PCI__BIT(21)
354
#define PCI_CMD_MIntSwapEn PCI__BIT(22)
355
#define PCI_CMD_LBEn PCI__BIT(23)
356
#define PCI_CMD_SIntSwap_GET(v) PCI__EXT(v, 24, 3)
357
#define PCI_CMD_MBZ0_27 PCI__BIT(27)
358
359
360
/*
361
* Table 256: PCI Mode
362
* 00:00 PciID PCI Interface ID -- Read Only (PCI_0: 0x0; PCI_1: 0x1)
363
* 01:01 Reserved
364
* 02:02 Pci64 64-bit PCI Interface -- Read Only
365
* When set to 1, the PCI interface is configured to a
366
* 64 bit interface.
367
* 07:03 Reserved
368
* 08:08 ExpRom Expansion ROM Enable -- Read Only from PCI
369
* When set to 1, the expansion ROM BAR is enabled.
370
* 09:09 VPD VPD Enable -- Read Only from PCI
371
* When set to 1, VPD is supported.
372
* 10:10 MSI MSI Enable -- Read Only from PCI
373
* When set to 1, MSI is supported.
374
* 11:11 PMG Power Management Enable -- Read Only from PCI
375
* When set to 1, PMG is supported.
376
* 12:12 HotSwap CompactPCI Hot Swap Enable -- Read Only from PCI
377
* When set to 1, HotSwap is supported.
378
* 13:13 BIST BIST Enable -- Read only from PCI
379
* If set to 1, BIST is enabled.
380
* 30:14 Reserved
381
* 31:31 PRst PCI Interface Reset Indication -- Read Only
382
* Set to 0 as long as the RST* pin is asserted.
383
*/
384
#define PCI_MODE_PciID_GET(v) PCI__EXT(v, 0, 1)
385
#define PCI_MODE_Pci64 PCI__BIT(2)
386
#define PCI_MODE_ExpRom PCI__BIT(8)
387
#define PCI_MODE_VPD PCI__BIT(9)
388
#define PCI_MODE_MSI PCI__BIT(10)
389
#define PCI_MODE_PMG PCI__BIT(11)
390
#define PCI_MODE_HotSwap PCI__BIT(12)
391
#define PCI_MODE_BIST PCI__BIT(13)
392
#define PCI_MODE_PRst PCI__BIT(31)
393
394
/*
395
* Table 257: PCI Timeout and Retry
396
* 07:00 Timeout0 Specifies the number of PClk cycles the GT64260 slave
397
* holds the PCI bus before terminating a transaction
398
* with RETRY.
399
* 15:08 Timeout1 Specifies the number of PClk cycles the GT64260 slave
400
* holds the PCI bus before terminating a transaction
401
* with DISCONNECT.
402
* 23:16 RetryCtr Retry Counter
403
* Specifies the number of retries of the GT64260 Master.
404
* The GT64260 generates an interrupt when this timer
405
* expires. A 0x00 value means a retry forever.
406
* 31:24 Reserved
407
*/
408
#define PCI_TMORTRY_Timeout0_GET(v) PCI__EXT(v, 0, 8)
409
#define PCI_TMORTRY_Timeout1_GET(v) PCI__EXT(v, 8, 8)
410
#define PCI_TMORTRY_RetryCtr_GET(v) PCI__EXT(v, 16, 8)
411
412
413
/*
414
* Table 258: PCI Read Buffer Discard Timer
415
* 15:00 Timer Specifies the number of PClk cycles the GT64260
416
* slave keeps an non-accessed read buffers (non com-
417
* pleted delayed read) before invalidating the buffer.
418
* 23:16 RdBufEn Slave Read Buffers Enable
419
* Each bit corresponds to one of the eight read buffers.
420
* If set to 1, buffer is enabled.
421
* 31:24 Reserved
422
*/
423
#define PCI_RdBufDisTmr_Timer_GET(v) PCI__EXT(v, 0, 16)
424
#define PCI_RdBufDisTmr_RdBufEn_GET(v) PCI__EXT(v, 16, 8)
425
#define PCI_RdBufDisTmr_RdBufEn0(v) PCI__BIT(16)
426
#define PCI_RdBufDisTmr_RdBufEn1(v) PCI__BIT(17)
427
#define PCI_RdBufDisTmr_RdBufEn2(v) PCI__BIT(18)
428
#define PCI_RdBufDisTmr_RdBufEn3(v) PCI__BIT(19)
429
#define PCI_RdBufDisTmr_RdBufEn4(v) PCI__BIT(20)
430
#define PCI_RdBufDisTmr_RdBufEn5(v) PCI__BIT(21)
431
#define PCI_RdBufDisTmr_RdBufEn6(v) PCI__BIT(22)
432
#define PCI_RdBufDisTmr_RdBufEn7(v) PCI__BIT(23)
433
434
/*
435
* Table 259: MSI Trigger Timer
436
* 15:00 Timer Specifies the number of TClk cycles between consecutive
437
* MSI requests.
438
* 31:16 Reserved
439
*/
440
#define PCI_MSITrigger_Timer_GET(v) PCI__EXT(v, 0, 16)
441
442
/*
443
* Table 260: PCI Arbiter Control
444
* NOTE: If HPPV (bits [28:21]) is set to 0 and PAEn is set to 1,
445
* priority scheme is reversed. This means that high priority
446
* requests are granted if no low priority request is pending.
447
* 00:00 Reserved Must be 0. 0x0
448
* 01:01 BDEn Broken Detection Enable
449
* If set to 1, broken master detection is enabled. A mas-
450
* ter is said to be broken if it fails to respond to grant
451
* assertion within a window specified in BV (bits [6:3]).
452
* 02:02 PAEn Priority Arbitration Enable
453
* 0: Low priority requests are granted only when no high
454
* priority request is pending
455
* 1: Weighted round robin arbitration is performed
456
* between high priority and low priority groups.
457
* 06:03 BV Broken Value
458
* This value sets the maximum number of cycles that the
459
* arbiter waits for a PCI master to respond to its grant
460
* assertion. If a PCI master fails to assert FRAME* within
461
* this time, the PCI arbiter aborts the transaction and
462
* performs a new arbitration cycle and a maskable
463
* interrupt is generated. Must be greater than 0.
464
* NOTE: The PCI arbiter waits for the current
465
* transaction to end before starting to
466
* count the wait-for-broken cycles.
467
* Must be greater than 1 for masters that performs address
468
* stepping (such as the GTO 64260 PCI master), since they
469
* require GNT* assertion for two cycles.
470
* 13:07 P[6:0] Priority
471
* These bits assign priority levels to the requests
472
* connected to the PCI arbiter. When a PM bit is set to
473
* 1, priority of the associated request is high. The
474
* mapping between P[6:0] bits and the request/grant pairs
475
* are as follows:
476
* P[0]: internal PCI master P[1]: external REQ0/GNT0
477
* P[2]: external REQ1/GNT1 P[3]: external REQ2/GNT2
478
* P[4]: external REQ3/GNT3 P[5]: external REQ4/GNT4
479
* P[6]: external REQ5/GNT5
480
* 20:14 PD[6:0] Parking Disable
481
* Use these bits to disable parking on any of the PCI
482
* masters. When a PD bit is set to 1, parking on the
483
* associated PCI master is disabled.
484
* NOTE: The arbiter parks on the last master granted
485
* unless disabled through the PD bit. Also, if
486
* PD bits are all 1, the PCI arbiter parks on
487
* the internal PCI master.
488
* 28:21 HPPV High Priority Preset Value
489
* This is the preset value of the high priority counter
490
* (High_cnt). This counter decrements each time a high
491
* priority request is granted. When the counter reaches
492
* zero, it reloads with this preset value. The counter
493
* reloads when a low priority request is granted.
494
* 30:29 Reserved
495
* 31:31 EN Enable
496
* Setting this bit to 1 enables operation of the arbiter.
497
*/
498
#define PCI_ARBCTL_MBZ0_0 PCI__BIT(0)
499
#define PCI_ARBCTL_BDEn PCI__BIT(1)
500
#define PCI_ARBCTL_PAEn PCI__BIT(2)
501
#define PCI_ARBCTL_BV_GET(v) PCI__EXT(v, 3, 4)
502
#define PCI_ARBCTL_P_GET(v) PCI__EXT(v, 7, 7)
503
#define PCI_ARBCTL_PD_GET(v) PCI__EXT(v, 14, 7)
504
#define PCI_ARBCTL_HPPV_GET(v) PCI__EXT(v, 21, 7)
505
#define PCI_ARBCTL_EN PCI__BIT(31)
506
507
#define PCI_ARBPRI_IntPci PCI__BIT(0)
508
#define PCI_ARBPRI_ExtReqGnt0 PCI__BIT(1)
509
#define PCI_ARBPRI_ExtReqGnt1 PCI__BIT(2)
510
#define PCI_ARBPRI_EXtReqGnt2 PCI__BIT(3)
511
#define PCI_ARBPRI_EXtReqGnt3 PCI__BIT(4)
512
#define PCI_ARBPRI_EXtReqGnt4 PCI__BIT(5)
513
#define PCI_ARBPRI_EXtReqGnt5 PCI__BIT(6)
514
515
/*
516
* Table 261: PCI Interface Crossbar Control (Low)
517
* 03:00 Arb0 Slice 0 of PCI master pizza arbiter.
518
* 07:04 Arb1 Slice 1 of PCI master pizza arbiter.
519
* 11:08 Arb2 Slice 2 of PCI master pizza arbiter.
520
* 15:12 Arb3 Slice 3 of PCI master pizza arbiter.
521
* 19:16 Arb4 Slice 4 of PCI master pizza arbiter.
522
* 23:20 Arb5 Slice 5 of PCI master pizza arbiter.
523
* 27:24 Arb6 Slice 6 of PCI master pizza arbiter.
524
* 31:28 Arb7 Slice 7 of PCI master pizza arbiter.
525
*/
526
#define PCI_IFXBRCTL_GET_SLICE(v, n) PCI__EXT(v, (n) * 4, 4)
527
#define PCI_IFXBRCTL_SET_SLICE(v, n, s) ((void)(PCI__CLR(v, (n)*4, 4),\
528
(v) |= PCI__INS((n)*4, s)))
529
530
/*
531
* Table 262: PCI Interface Crossbar Control (High)
532
* 03:00 Arb8 Slice 8 of PCI master pizza arbiter.
533
* 07:04 Arb9 Slice 9 of PCI master pizza arbiter.
534
* 11:08 Arb10 Slice 10 of PCI master pizza arbiter.
535
* 15:12 Arb11 Slice 11 of PCI master pizza arbiter.
536
* 19:16 Arb12 Slice 12 of PCI master pizza arbiter.
537
* 23:20 Arb13 Slice 13 of PCI master pizza arbiter.
538
* 27:24 Arb14 Slice 14 of PCI master pizza arbiter.
539
* 31:28 Arb15 Slice 15 of PCI master pizza arbiter.
540
*/
541
#define PCI_IFXBRCH_GET_SLICE(v, n) PCI__EXT(v, ((n) - 8) * 4, 4)
542
#define PCI_IFXBRCH_SET_SLICE(v, n, s) ((void)(PCI__CLR(v, ((n)*-8)4, 4),\
543
(v) |= PCI__INS(((n)-8)*4, s)))
544
545
/*
546
* Table 263: PCI Interface Crossbar Timeout
547
(NOTE: Reserved for Galileo Technology usage.)
548
* 07:00 Timeout Crossbar Arbiter Timeout Preset Value
549
* 15:08 Reserved
550
* 16:16 TimeoutEn Crossbar Arbiter Timer Enable (1: Disable)
551
* 31:17 Reserved
552
*/
553
#define PCI_IFXBRTMO_Timeout_GET(v) PCI__EXT(v, 0, 8)
554
#define PCI_IFXBRTMO_TimeoutEn PCI__BIT(16)
555
556
/*
557
* Table 264: PCI Read Response Crossbar Control (Low)
558
* 03:00 Arb0 Slice 0 of PCI slave pizza arbiter.
559
* 07:04 Arb1 Slice 1 of PCI slave pizza arbiter.
560
* 11:08 Arb2 Slice 2 of PCI slave pizza arbiter.
561
* 15:12 Arb3 Slice 3 of PCI slave pizza arbiter.
562
* 19:16 Arb4 Slice 4 of PCI slave pizza arbiter.
563
* 23:20 Arb5 Slice 5 of PCI slave pizza arbiter.
564
* 27:24 Arb6 Slice 6 of PCI slave pizza arbiter.
565
* 31:28 Arb7 Slice 7 of PCI slave pizza arbiter.
566
*/
567
#define PCI_RRXBRCL_GET_SLICE(v, n) PCI__EXT(v, (n) * 4, 4)
568
#define PCI_RRXBRCL_SET_SLICE(v, n, s) ((void)(PCI__CLR(v, (n)*4, 4),\
569
(v) |= PCI__INS((n)*4, s)))
570
571
572
/*
573
* Table 265: PCI Read Response Crossbar Control (High)
574
* 03:00 Arb8 Slice 8 of PCI slave pizza arbiter.
575
* 07:04 Arb9 Slice 9 of PCI slave pizza arbiter.
576
* 11:08 Arb10 Slice 10 of PCI slave pizza arbiter.
577
* 15:12 Arb11 Slice 11 of PCI slave pizza arbiter.
578
* 19:16 Arb12 Slice 12 of PCI slave pizza arbiter.
579
* 23:20 Arb13 Slice 13 of PCI slave pizza arbiter.
580
* 27:24 Arb14 Slice 14 of PCI slave pizza arbiter.
581
* 31:28 Arb15 Slice 15 of PCI slave pizza arbiter.
582
*/
583
#define PCI_RRXBRCH_GET_SLICE(v, n) PCI__EXT(v, ((n) - 8) * 4, 4)
584
#define PCI_RRXBRCH_SET_SLICE(v, n, s) ((void)(PCI__CLR(v, ((n)*-8)4, 4),\
585
(v) |= PCI__INS(((n)-8)*4, s)))
586
587
/*
588
* Table 266: PCI Sync Barrier Virtual Register
589
* 31:0 SyncReg Sync Barrier Virtual Register
590
* PCI read from this register results in PCI slave sync barrier
591
* action. The returned data is un-deterministic. Read Only.
592
*/
593
594
/*
595
* Table 267: PCI P2P Configuration
596
* 07:00 2ndBusL Secondary PCI Interface Bus Range Lower Boundary
597
* 15:08 2ndBusH Secondary PCI Interface Bus Range Upper Boundary
598
* 23:16 BusNum The PCI bus number to which the PCI interface
599
* is connected.
600
* 28:24 DevNum The PCI interface's device number.
601
* 31:29 Reserved Reserved.
602
*/
603
#define PCI_P2PCFG_2ndBusL_GET(v) PCI__EXT(v, 0, 8)
604
#define PCI_P2PCFG_2ndBusH_GET(v) PCI__EXT(v, 8, 8)
605
#define PCI_P2PCFG_BusNum_GET(v) PCI__EXT(v, 16, 8)
606
#define PCI_P2PCFG_DevNum_GET(v) PCI__EXT(v, 24, 5)
607
608
/*
609
* Table 268: PCI P2P Swap Control
610
* 02:00 M0Sw P2P Mem0 BAR Swap Control
611
* 03:03 M0Req64 P2P Mem0 BAR Force REQ64
612
* 06:04 M1Sw P2P Mem1 BAR Swap Control
613
* 07:07 M1Req64 P2P Mem1 BAR Force REQ64
614
* 10:08 DM0Sw P2P DAC Mem0 BAR Swap Control
615
* 11:11 DM0Req64 P2P DAC Mem0 BAR Force REQ64
616
* 14:12 DM1Sw P2P DAC Mem1 BAR Swap Control
617
* 15:15 DM1Req64 P2P DAC Mem1 BAR Force REQ64
618
* 18:16 IOSw P2P I/O BAR Swap Control
619
* 19:19 Reserved
620
* 22:20 CfgSw P2P Configuration Swap Control
621
* 31:19 Reserved
622
*/
623
#define PCI_P2PSWAP_M0Sw_GET(v) PCI__EXT(v, 0, 3)
624
#define PCI_P2PSWAP_M0Req64 PCI__BIT(3)
625
#define PCI_P2PSWAP_M1Sw_GET(v) PCI__EXT(v, 4, 3)
626
#define PCI_P2PSWAP_M1Req64 PCI__BIT(7)
627
#define PCI_P2PSWAP_DM0Sw_GET(v) PCI__EXT(v, 8, 3)
628
#define PCI_P2PSWAP_DM0Req64 PCI__BIT(11)
629
#define PCI_P2PSWAP_DM1Sw_GET(v) PCI__EXT(v, 12, 3)
630
#define PCI_P2PSWAP_DM1Req64 PCI__BIT(15)
631
#define PCI_P2PSWAP_CfgSw_GET(v) PCI__EXT(v, 20, 3)
632
633
634
635
/*
636
* Table 269: PCI Access Control Base (Low)
637
* 11:00 Addr Base Address Corresponds to address bits[31:20].
638
* 12:12 PrefetchEn Read Prefetch Enable
639
* 0: Prefetch disabled (The PCI slave reads single words)
640
* 1: Prefetch enabled.
641
* 14:14 Reserved Must be 0
642
* 15:15 Reserved
643
* 16:16 RdPrefetch PCI Read Aggressive Prefetch Enable; 0: Disable;
644
* 1: Enable (The PCI slave prefetches two
645
* bursts in advance)
646
* 17:17 RdLinePrefetch PCI Read Line Aggressive Prefetch Enable; 0: Disable;
647
* 1: Enable (PCI slave prefetch two bursts in advance)
648
* 18:18 RdMulPrefetch PCI Read Multiple Aggressive Prefetch Enable
649
* 0: Disable; 1: Enable (PCI slave prefetch two bursts in
650
* advance)
651
* 19:19 Reserved
652
* 21:20 MBurst PCI Max Burst
653
* Specifies the maximum burst size for a single transac-
654
* tion between a PCI slave and the other interfaces
655
* 00 - 4 64-bit words
656
* 01 - 8 64-bit words
657
* 10 - 16 64-bit words
658
* 11 - Reserved
659
* 23:22 Reserved
660
* 25:24 PCISwap Data Swap Control
661
* 00 - Byte Swap
662
* 01 - No swapping
663
* 10 - Both byte and word swap
664
* 11 - Word swap
665
* 26:26 Reserved Must be 0
666
* 27:27 Reserved
667
* 28:28 AccProt Access Protect (0: PCI access is allowed; 1; Region is
668
not accessible from PCI)
669
* 29:29 WrProt Write Protect (0: PCI write is allowed; 1: Region is
670
* not writeable from PCI)
671
* 31:30 Reserved
672
*/
673
#define PCI_ACCCTLBASEL_Addr_GET(v) PCI__EXT(v, 0, 12)
674
#define PCI_ACCCTLBASEL_PrefetchEn PCI__BIT(12)
675
#define PCI_ACCCTLBASEL_MBZ0_14 PCI__BIT(14)
676
#define PCI_ACCCTLBASEL_RdPrefetch PCI__BIT(16)
677
#define PCI_ACCCTLBASEL_RdLinePrefetch PCI__BIT(17)
678
#define PCI_ACCCTLBASEL_RdMulPrefetch PCI__BIT(18)
679
#define PCI_ACCCTLBASEL_WBurst PCI__EXT(v, 20, 2)
680
#define PCI_ACCCTLBASEL_WBurst_8_QW PCI__INS(20, PCI_WBURST_8_QW)
681
#define PCI_ACCCTLBASEL_PCISwap PCI__EXT(v, 24, 2)
682
#define PCI_ACCCTLBASEL_PCISwap_NoSwap PCI__INS(24, PCI_PCISWAP_NoSwap)
683
#define PCI_ACCCTLBASEL_MBZ0_26 PCI__BIT(26)
684
#define PCI_ACCCTLBASEL_AccProt PCI__BIT(28)
685
#define PCI_ACCCTLBASEL_WrProt PCI__BIT(29)
686
687
#define PCI_WBURST_4_QW 0x00
688
#define PCI_WBURST_8_QW 0x01
689
#define PCI_WBURST_16_QW 0x02
690
#define PCI_WBURST_Reserved 0x04
691
692
#define PCI_PCISWAP_ByteSwap 0x00
693
#define PCI_PCISWAP_NoSwap 0x01
694
#define PCI_PCISWAP_ByteWordSwap 0x02
695
#define PCI_PCISWAP_WordSwap 0x04
696
697
/*
698
* Table 293: PCI Snoop Control Base (Low)
699
* 11:00 Addr Base Address Corresponds to address bits[31:20].
700
* 13:12 Snoop Snoop Type
701
* 31:14 Reserved
702
*/
703
#define PCI_SNOOPCTL_ADDR(v) PCI__EXT(v, 0, 12)
704
#define PCI_SNOOPCTL_TYPE(v) PCI__EXT(v, 12, 2)
705
706
#define PCI_SNOOP_None 0
/* no snoop */
707
#define PCI_SNOOP_WT 1
/* Snoop to WT region */
708
#define PCI_SNOOP_WB 2
/* Snoop to WB region */
709
710
711
/*
712
* Table 305: PCI Configuration Address
713
*
714
* 07:02 RegNum Register number.
715
* 10:08 FunctNum Function number.
716
* 15:11 DevNum Device number.
717
* 23:16 BusNum Bus number.
718
* 31:31 ConfigEn When set, an access to the Configuration Data
719
* register is translated into a Configuration
720
* or Special cycle on the PCI bus.
721
*/
722
#define PCI_CFG_MAKE_TAG(bus, dev, fun, reg) (PCI__BIT(31)|\
723
PCI__INS(16, (bus))|\
724
PCI__INS(11, (dev))|\
725
PCI__INS( 8, (fun))|\
726
PCI__INS( 0, (reg)))
727
#define PCI_CFG_GET_BUSNO(tag) PCI__EXT(tag, 16, 8)
728
#define PCI_CFG_GET_DEVNO(tag) PCI__EXT(tag, 11, 5)
729
#define PCI_CFG_GET_FUNCNO(tag) PCI__EXT(tag, 8, 3)
730
#define PCI_CFG_GET_REGNO(tag) PCI__EXT(tag, 0, 8)
731
732
/*
733
* Table 306: PCI Configuration Data
734
*
735
* 31:00 ConfigData The data is transferred to/from the PCI bus when
736
* the CPU accesses this register and the ConfigEn
737
* bit in the Configuration Address register is set
738
*
739
* A CPU access to this register causes the GT64260 to perform a Configuration
740
* or Special cycle on the PCI bus.
741
*/
742
743
744
/*
745
* Table 307: PCI Interrupt Acknowledge (This register is READ ONLY)
746
* 31:00 IntAck A CPU read access to this register forces an
747
* interrupt acknowledge cycle on the PCI bus.
748
*/
749
750
751
/*
752
* Table 308: PCI SERR* Mask
753
*
754
* NOTE: The GT64260 asserts SERR* only if SERR* is enabled via the PCI Status
755
* and Command register.
756
* If the corresponding bit is set, then asserts SERR* upon ...
757
*/
758
#define PCI_SERRMSK_SAPerr PCI__BIT(0)
/* PCI slave detection of bad
759
* address parity. */
760
#define PCI_SERRMSK_SWrPerr PCI__BIT(1)
/* PCI slave detection of bad
761
* write data parity. */
762
#define PCI_SERRMSK_SRdPerr PCI__BIT(2)
/* a PERR* response to read
763
* data driven by the PCI
764
* slave. */
765
#define PCI_SERRMSK_MAPerr PCI__BIT(4)
/* a PERR* response to an
766
* address driven by the PCI
767
* master. */
768
#define PCI_SERRMSK_MWrPerr PCI__BIT(5)
/* a PERR* response to write
769
* data driven by the PCI
770
* master. */
771
#define PCI_SERRMSK_MRdPerr PCI__BIT(6)
/* bad data parity detection
772
* during a PCI master read
773
* transaction. */
774
#define PCI_SERRMSK_MMabort PCI__BIT(8)
/* a PCI master generation of
775
* master abort. */
776
#define PCI_SERRMSK_MTabort PCI__BIT(9)
/* a PCI master detection of
777
* target abort. */
778
#define PCI_SERRMSK_MRetry PCI__BIT(11)
/* a PCI master reaching retry
779
* counter limit. */
780
#define PCI_SERRMSK_SMabort PCI__BIT(16)
/* a PCI slave detection of
781
* master abort. */
782
#define PCI_SERRMSK_STabort PCI__BIT(17)
/* a PCI slave termination of
783
* a transaction with Target
784
* Abort. */
785
#define PCI_SERRMSK_SAccProt PCI__BIT(18)
/* a PCI slave access protect
786
* violation. */
787
#define PCI_SERRMSK_SWrProt PCI__BIT(19)
/* a PCI slave write protect
788
* violation. */
789
#define PCI_SERRMSK_SRdBuf PCI__BIT(20)
/* the PCI slave's read buffer,
790
* discard timer expires */
791
#define PCI_SERRMSK_Arb PCI__BIT(21)
/* the internal PCI arbiter
792
* detection of a broken PCI
793
* master. */
794
795
#define PCI_SERRMSK_ALL_ERRS \
796
(PCI_SERRMSK_SAPerr|PCI_SERRMSK_SWrPerr|PCI_SERRMSK_SRdPerr \
797
|PCI_SERRMSK_MAPerr|PCI_SERRMSK_MWrPerr|PCI_SERRMSK_MRdPerr \
798
|PCI_SERRMSK_MMabort|PCI_SERRMSK_MTabort|PCI_SERRMSK_MRetry \
799
|PCI_SERRMSK_SMabort|PCI_SERRMSK_STabort|PCI_SERRMSK_SAccProt \
800
|PCI_SERRMSK_SWrProt|PCI_SERRMSK_SRdBuf|PCI_SERRMSK_Arb)
801
802
803
804
/*
805
* Table 309: PCI Error Address (Low) -- Read Only.
806
* 31:00 ErrAddr PCI address bits [31:0] are latched upon an error
807
* condition. Upon address latch, no new addresses can
808
* be registered (due to additional error condition) until
809
* the register is being read.
810
*/
811
812
813
814
/*
815
* Table 310: PCI Error Address (High) Applicable only when running DAC cycles.
816
* 31:00 ErrAddr PCI address bits [63:32] are latched upon
817
* error condition.
818
*
819
* NOTE: Upon data sample, no new data is latched until the PCI Error Low
820
* Address register is read. This means that PCI Error Low Address
821
* register must bethe last register read by the interrupt handler.
822
*/
823
824
/*
825
* Table 311: PCI Error Data (Low)
826
* 31:00 ErrData PCI data bits [31:00] are latched upon error condition.
827
*/
828
829
/*
830
* Table 312: PCI Error Data (High) Applicable only when running
831
* 64-bit cycles.
832
* 31:00 ErrData PCI data bits [63:32] are latched upon error condition.
833
*/
834
835
/*
836
* Table 313: PCI Error Command
837
* 03:00 ErrCmd PCI command is latched upon error condition.
838
* 07:04 Reserved
839
* 15:08 ErrBE PCI byte enable is latched upon error condition.
840
* 16:16 ErrPAR PCI PAR is latched upon error condition.
841
* 17:17 ErrPAR64 PCI PAR64 is latched upon error condition.
842
* Applicable only when running 64-bit cycles.
843
* 31:18 Reserved
844
* NOTE: Upon data sample, no new data is latched until the PCI Error Low
845
* Address register is read. This means that PCI Error Low Address register
846
* must be the last register read by the interrupt handler.
847
*/
848
#define PCI_ERRCMD_Cmd_GET(v) PCI__EXT(v, 0, 4)
849
#define PCI_ERRCMD_ByteEn_GET(v) PCI__EXT(v, 8, 8)
850
#define PCI_ERRCMD_PAR PCI__BIT(16)
851
#define PCI_ERRCMD_PAR64 PCI__BIT(17)
852
853
/*
854
* Table 314: PCI Interrupt Cause
855
* 1. All bits are Clear Only. A cause bit set upon error event occurrence.
856
* A write of 0 clears the bit. A write of 1 has no affect.
857
* 2. PCI Interrupt bits are organized in four groups:
858
* bits[ 7: 0] for address and data parity errors,
859
* bits[15: 8] for PCI master transaction failure (possible external
860
* target problem),
861
* bits[23:16] for slave response failure (possible external master problem),
862
* bits[26:24] for external PCI events that require CPU handle.
863
*/
864
#define PCI_IC_SAPerr PCI__BIT(0)
/* The PCI slave detected
865
* bad address parity. */
866
#define PCI_IC_SWrPerr PCI__BIT(1)
/* The PCI slave detected
867
* bad write data parity. */
868
#define PCI_IC_SRdPerr PCI__BIT(2)
/* PERR* response to read
869
* data driven by PCI slave. */
870
#define PCI_IC_MAPerr PCI__BIT(4)
/* PERR* response to address
871
* driven by the PCI master. */
872
#define PCI_IC_MWrPerr PCI__BIT(5)
/* PERR* response to write data
873
* driven by the PCI master. */
874
#define PCI_IC_MRdPerr PCI__BIT(6)
/* Bad data parity detected
875
* during the PCI master read
876
* transaction. */
877
#define PCI_IC_MMabort PCI__BIT(8)
/* The PCI master generated
878
* master abort. */
879
#define PCI_IC_MTabort PCI__BIT(9)
/* The PCI master detected
880
* target abort. */
881
#define PCI_IC_MMasterEn PCI__BIT(10)
/* An attempt to generate a PCI
882
* transaction while master is
883
* not enabled. */
884
#define PCI_IC_MRetry PCI__BIT(11)
/* The PCI master reached
885
* retry counter limit. */
886
#define PCI_IC_SMabort PCI__BIT(16)
/* The PCI slave detects an il-
887
* legal master termination. */
888
#define PCI_IC_STabort PCI__BIT(17)
/* The PCI slave terminates a
889
* transaction with Target
890
* Abort. */
891
#define PCI_IC_SAccProt PCI__BIT(18)
/* A PCI slave access protect
892
* violation. */
893
#define PCI_IC_SWrProt PCI__BIT(19)
/* A PCI slave write protect
894
* violation. */
895
#define PCI_IC_SRdBuf PCI__BIT(20)
/* A PCI slave read buffer
896
* discard timer expired. */
897
#define PCI_IC_Arb PCI__BIT(21)
/* Internal PCI arbiter detec-
898
* tion of a broken master. */
899
#define PCI_IC_BIST PCI__BIT(24)
/* PCI BIST Interrupt */
900
#define PCI_IC_PMG PCI__BIT(25)
/* PCI Power Management
901
* Interrupt */
902
#define PCI_IC_PRST PCI__BIT(26)
/* PCI Reset Assert */
903
904
/*
905
31:27 Sel Specifies the error event currently being reported in the
906
Error Address, Error Data, and Error Command registers.
907
*/
908
#define PCI_IC_SEL_GET(v) PCI__EXT((v), 27, 5)
909
#define PCI_IC_SEL_SAPerr 0x00
910
#define PCI_IC_SEL_SWrPerr 0x01
911
#define PCI_IC_SEL_SRdPerr 0x02
912
#define PCI_IC_SEL_MAPerr 0x04
913
#define PCI_IC_SEL_MWrPerr 0x05
914
#define PCI_IC_SEL_MRdPerr 0x06
915
#define PCI_IC_SEL_MMabort 0x08
916
#define PCI_IC_SEL_MTabort 0x09
917
#define PCI_IC_SEL_MMasterEn 0x0a
918
#define PCI_IC_SEL_MRetry 0x0b
919
#define PCI_IC_SEL_SMabort 0x10
920
#define PCI_IC_SEL_STabort 0x11
921
#define PCI_IC_SEL_SAccProt 0x12
922
#define PCI_IC_SEL_SWrProt 0x13
923
#define PCI_IC_SEL_SRdBuf 0x14
924
#define PCI_IC_SEL_Arb 0x15
925
#define PCI_IC_SEL_BIST 0x18
926
#define PCI_IC_SEL_PMG 0x19
927
#define PCI_IC_SEL_PRST 0x1a
928
929
#define PCI_IC_SEL_Strings { \
930
"SAPerr", "SWrPerr", "SRdPerr", "Rsvd#03", \
931
"MAPerr", "MWrPerr", "MRdPerr", "Rsvd#07", \
932
"MMabort", "MTabort", "MMasterEn", "MRetry", \
933
"Rsvd#0c", "Rsvd#0d", "Rsvd#0e", "Rsvd#0f", \
934
"SMabort", "STabort", "SAccProt", "SWrProt", \
935
"SRdBuf", "Arb", "Rsvd#16", "Rsvd#17", \
936
"BIST", "PMG", "PRST", "Rsvd#1b", \
937
"Rsvd#1c", "Rsvd#1d", "Rsvd#1e", "Rsvd#1f" }
938
939
/*
940
* Table 315: PCI Error Mask
941
* If the corresponding bit is 1, that interrupt is enabled
942
* Bits 3, 7, 12:15, 22:23, 27:31 are reserved.
943
*/
944
#define PCI_ERRMASK_SAPErr PCI__BIT(0)
945
#define PCI_ERRMASK_SWrPErr PCI__BIT(1)
946
#define PCI_ERRMASK_SRdPErr PCI__BIT(2)
947
#define PCI_ERRMASK_MAPErr PCI__BIT(4)
948
#define PCI_ERRMASK_MWRPErr PCI__BIT(5)
949
#define PCI_ERRMASK_MRDPErr PCI__BIT(6)
950
#define PCI_ERRMASK_MMAbort PCI__BIT(8)
951
#define PCI_ERRMASK_MTAbort PCI__BIT(9)
952
#define PCI_ERRMASK_MMasterEn PCI__BIT(10)
953
#define PCI_ERRMASK_MRetry PCI__BIT(11)
954
#define PCI_ERRMASK_SMAbort PCI__BIT(16)
955
#define PCI_ERRMASK_STAbort PCI__BIT(17)
956
#define PCI_ERRMASK_SAccProt PCI__BIT(18)
957
#define PCI_ERRMASK_SWrProt PCI__BIT(19)
958
#define PCI_ERRMASK_SRdBuf PCI__BIT(20)
959
#define PCI_ERRMASK_Arb PCI__BIT(21)
960
#define PCI_ERRMASK_BIST PCI__BIT(24)
961
#define PCI_ERRMASK_PMG PCI__BIT(25)
962
#define PCI_ERRMASK_PRST PCI__BIT(26)
963
964
#endif
/* _DEV_GTPCIREG_H_ */
Generated by
1.18.0