Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / verif / env / fnx / vlib / FNXPCIEXactor / include / FNXPCIEXactorDefines.vri
CommitLineData
86530b38
AT
1// ========== Copyright Header Begin ==========================================
2//
3// OpenSPARC T2 Processor File: FNXPCIEXactorDefines.vri
4// Copyright (C) 1995-2007 Sun Microsystems, Inc. All Rights Reserved
5// 4150 Network Circle, Santa Clara, California 95054, U.S.A.
6//
7// * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
8//
9// This program is free software; you can redistribute it and/or modify
10// it under the terms of the GNU General Public License as published by
11// the Free Software Foundation; version 2 of the License.
12//
13// This program is distributed in the hope that it will be useful,
14// but WITHOUT ANY WARRANTY; without even the implied warranty of
15// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16// GNU General Public License for more details.
17//
18// You should have received a copy of the GNU General Public License
19// along with this program; if not, write to the Free Software
20// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21//
22// For the avoidance of doubt, and except that if any non-GPL license
23// choice is available it will apply instead, Sun elects to use only
24// the General Public License version 2 (GPLv2) at this time for any
25// software where a choice of GPL license versions is made
26// available with the language indicating that GPLv2 or any later version
27// may be used, or where a choice of which version of the GPL is applied is
28// otherwise unspecified.
29//
30// Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
31// CA 95054 USA or visit www.sun.com if you need additional information or
32// have any questions.
33//
34// ========== Copyright Header End ============================================
35#ifndef _FNX_PCIE_XTR_DEFINES_VRI_
36#define _FNX_PCIE_XTR_DEFINES_VRI_
37
38// Maximum Number of Bits In An Expect
39// 4 Hdr DWs (128) + ECRC (32) + Seq_Num (16) + LCRC (32) + Payload(512*8=4096) + Frame (32)
40#define FNX_PCIE_XTR_EXPECT_PKT_MAX 4336
41
42#define FNX_PCIE_XTR_XACTOR_NAME "FNX_PCIE_XTR"
43
44#define FNX_PCIE_XTR_LINK_WIDTH 8
45
46#define FNX_PCIE_XTR_DW_WIDTH 32
47
48#define FNX_PCIE_XTR_NUM_DLLP_BYTES 6
49
50#define FNX_PCIE_XTR_MAX_REPLAY_ENTRIES 4096
51#define FNX_PCIE_XTR_MAX_NUM_RETRIES_PER_PKT 4
52
53// FNX PCIE Xactor Supported Packet Types
54#define FNX_PCIE_XTR_PKT_TYPE_WIDTH 4 // must accomodate # of encodings
55#define FNX_PCIE_XTR_PKT_TYPE_TLP 0
56#define FNX_PCIE_XTR_PKT_TYPE_RAW_TLP 1
57#define FNX_PCIE_XTR_PKT_TYPE_DLP 2
58#define FNX_PCIE_XTR_PKT_TYPE_RAW_DLP 3
59#define FNX_PCIE_XTR_PKT_TYPE_DLLP 4
60#define FNX_PCIE_XTR_PKT_TYPE_PLP 5
61#define FNX_PCIE_XTR_PKT_TYPE_PLLP 6
62#define FNX_PCIE_XTR_PKT_TYPE_ORDERED_SET 7
63#define FNX_PCIE_XTR_PKT_TYPE_RAW_DATA 8
64#define FNX_PCIE_XTR_PKT_TYPE_TRAINING_SET 9
65
66// Format/Type Internal Slice Defines
67#define FNX_PCIE_XTR_FMT_TYPE_FMT_INT_SLC 6:5
68#define FNX_PCIE_XTR_FMT_TYPE_TYPE_INT_SLC 4:0
69
70// Attributes Internal Slice Defines
71#define FNX_PCIE_XTR_ATTR_RO_INT_SLC 1:1
72#define FNX_PCIE_XTR_ATTR_SNOOP_INT_SLC 0:0
73
74// Total Number of Reserved Fields Recognized by Xactor
75#define FNX_PCIE_XTR_NUM_RESV_FIELDS 9
76#define FNX_PCE_XTR_MAX_RESV_FIELD_WIDTH 4
77
78// TLP Common Header Field Width Defines
79#define FNX_PCIE_XTR_CMN_RESV_1_WIDTH 1
80#define FNX_PCIE_XTR_CMN_FORMAT_WIDTH 2
81#define FNX_PCIE_XTR_CMN_TYPE_WIDTH 5
82#define FNX_PCIE_XTR_CMN_FMT_TYPE_WIDTH 7
83#define FNX_PCIE_XTR_CMN_RESV_2_WIDTH 1
84#define FNX_PCIE_XTR_CMN_TC_WIDTH 3
85#define FNX_PCIE_XTR_CMN_RESV_3_WIDTH 4
86#define FNX_PCIE_XTR_CMN_TD_WIDTH 1
87#define FNX_PCIE_XTR_CMN_EP_WIDTH 1
88#define FNX_PCIE_XTR_CMN_RO_WIDTH 1
89#define FNX_PCIE_XTR_CMN_SNOOP_WIDTH 1
90#define FNX_PCIE_XTR_CMN_ATTR_WIDTH 2
91#define FNX_PCIE_XTR_CMN_RESV_4_WIDTH 2
92#define FNX_PCIE_XTR_CMN_LENGTH_WIDTH 10
93
94// TLP Request Header Field Width Defines
95#define FNX_PCIE_XTR_REQ_REQUESTER_ID_WIDTH 16
96#define FNX_PCIE_XTR_REQ_BUS_NUM_WIDTH 8
97#define FNX_PCIE_XTR_REQ_DEVICE_NUM_WIDTH 5
98#define FNX_PCIE_XTR_REQ_FUNC_NUM_WIDTH 3
99#define FNX_PCIE_XTR_REQ_TAG_WIDTH 8
100
101// TLP Byte Enable Header Field Width Defines
102#define FNX_PCIE_XTR_BE_LAST_DW_BE_WIDTH 4
103#define FNX_PCIE_XTR_BE_FIRST_DW_BE_WIDTH 4
104
105// TLP Message Header Field Width Defines
106#define FNX_PCIE_XTR_MSG_MESSAGE_CODE_WIDTH 8
107#define FNX_PCIE_XTR_MSG_ROUTING_WIDTH 3
108
109// TLP Completion Header Field Width Defines
110#define FNX_PCIE_XTR_CMPL_COMPLETER_ID_WIDTH 16
111#define FNX_PCIE_XTR_CMPL_CMPL_STATUS_WIDTH 3
112#define FNX_PCIE_XTR_CMPL_BCM_WIDTH 1
113#define FNX_PCIE_XTR_CMPL_BYTE_COUNT_WIDTH 12
114#define FNX_PCIE_XTR_CMPL_RESV_5_WIDTH 1
115#define FNX_PCIE_XTR_CMPL_LOWER_ADDR_WIDTH 7
116
117// TLP Address Header Field Width Defines
118#define FNX_PCIE_XTR_ADDR_UPPER_ADDR_WIDTH 32
119#define FNX_PCIE_XTR_ADDR_LOWER_ADDR_WIDTH 30
120#define FNX_PCIE_XTR_ADDR_RESV_6_WIDTH 2
121
122// TLP Configuration Request Header Field Width Defines
123#define FNX_PCIE_XTR_CFG_BUS_NUM_WIDTH 8
124#define FNX_PCIE_XTR_CFG_DEVICE_NUM_WIDTH 5
125#define FNX_PCIE_XTR_CFG_FUNC_NUM_WIDTH 3
126#define FNX_PCIE_XTR_CFG_RESV_7_WIDTH 4
127#define FNX_PCIE_XTR_CFG_EXT_REG_NUM_WIDTH 4
128#define FNX_PCIE_XTR_CFG_REG_NUM_WIDTH 6
129#define FNX_PCIE_XTR_CFG_RESV_8_WIDTH 2
130
131// TLP Digest Field Width Defines
132#define FNX_PCIE_XTR_ECRC_WIDTH 32
133
134// TLP DLL Framing Field Width Defines
135#define FNX_PCIE_XTR_DLL_FRM_PREFIX_WIDTH 16
136#define FNX_PCIE_XTR_DLL_FRM_RESV_9_WIDTH 4
137#define FNX_PCIE_XTR_DLL_FRM_SEQ_NUM_WIDTH 12
138#define FNX_PCIE_XTR_DLL_FRM_LCRC_32_WIDTH 32
139
140// Generic DLLP Field Width Defines
141#define FNX_PCIE_XTR_DLLP_TYPE_WIDTH 8
142#define FNX_PCIE_XTR_DLLP_LCRC_16_WIDTH 16
143
144// Ack/Nak DLLP Field Width Defines
145#define FNX_PCIE_XTR_DLLP_ACK_NAK_SEQ_NUM_WIDTH 12
146#define FNX_PCIE_XTR_DLLP_ACK_NAK_RESV_WIDTH 12
147
148// InitFC1, InitFC2 and UpdateFC DLLP Field Width Defines
149#define FNX_PCIE_XTR_DLLP_FC_TYPE_WIDTH 5
150#define FNX_PCIE_XTR_DLLP_FC_VC_WIDTH 3
151#define FNX_PCIE_XTR_DLLP_FC_RESV_1_WIDTH 2
152#define FNX_PCIE_XTR_DLLP_FC_HDR_FC_WIDTH 8
153#define FNX_PCIE_XTR_DLLP_FC_RESV_2_WIDTH 2
154#define FNX_PCIE_XTR_DLLP_FC_DATA_FC_WIDTH 12
155
156// InitFC1, InitFC2 and UpdateFC DLLP Internal Field Slices
157#define FNX_PCIE_XTR_DLLP_FC_TYPE_TYPE_INT_SLC 7:3
158#define FNX_PCIE_XTR_DLLP_FC_TYPE_VC_INT_SLC 2:0
159
160// PM DLLP Field Width Defines
161#define FNX_PCIE_XTR_DLLP_PM_RESV_WIDTH 24
162
163// Vendor DLLP Field Width Defines
164#define FNX_PCIE_XTR_DLLP_VENDOR_DATA_WIDTH 24
165
166// Generic DLLP Field Slice Defines
167#define FNX_PCIE_XTR_DLLP_TYPE_SLC 31:24
168#define FNX_PCIE_XTR_DLLP_LCRC_16_SLC 15:0
169
170// Ack/Nak DLLP Field Slice Defines
171#define FNX_PCIE_XTR_DLLP_ACK_NAK_SEQ_NUM_SLC 11:0
172#define FNX_PCIE_XTR_DLLP_ACK_NAK_RESV_SLC 23:12
173
174// InitFC1, InitFC2 and UpdateFC DLLP Field Slice Defines
175#define FNX_PCIE_XTR_DLLP_FC_TYPE_SLC 31:27
176#define FNX_PCIE_XTR_DLLP_FC_VC_SLC 26:24
177#define FNX_PCIE_XTR_DLLP_FC_RESV_1_SLC 23:22
178#define FNX_PCIE_XTR_DLLP_FC_HDR_FC_SLC 21:14
179#define FNX_PCIE_XTR_DLLP_FC_RESV_2_SLC 13:12
180#define FNX_PCIE_XTR_DLLP_FC_DATA_FC_SLC 11:0
181
182// PM DLLP Field Slice Defines
183#define FNX_PCIE_XTR_DLLP_PM_RESV_SLC 23:0
184
185// Vendor DLLP Field Slice Defines
186#define FNX_PCIE_XTR_DLLP_VENDOR_DATA_SLC 23:0
187
188// DLLP Type Encodings
189#define FNX_PCIE_XTR_DLLP_TYPE_ACK 8'b00000000
190#define FNX_PCIE_XTR_DLLP_TYPE_NAK 8'b00010000
191#define FNX_PCIE_XTR_DLLP_TYPE_PM_ENTER_L1 8'b00100000
192#define FNX_PCIE_XTR_DLLP_TYPE_PM_ENTER_L23 8'b00100001
193#define FNX_PCIE_XTR_DLLP_TYPE_PM_ACTIVE_ST_REQ_L1 8'b00100011
194#define FNX_PCIE_XTR_DLLP_TYPE_PM_REQUEST_ACK 8'b00100100
195#define FNX_PCIE_XTR_DLLP_TYPE_VENDOR 8'b00110000
196#define FNX_PCIE_XTR_DLLP_TYPE_INIT_FC1_P 8'b01000xxx
197#define FNX_PCIE_XTR_DLLP_TYPE_INIT_FC1_NP 8'b01010xxx
198#define FNX_PCIE_XTR_DLLP_TYPE_INIT_FC1_CPL 8'b01100xxx
199#define FNX_PCIE_XTR_DLLP_TYPE_INIT_FC2_P 8'b11000xxx
200#define FNX_PCIE_XTR_DLLP_TYPE_INIT_FC2_NP 8'b11010xxx
201#define FNX_PCIE_XTR_DLLP_TYPE_INIT_FC2_CPL 8'b11100xxx
202#define FNX_PCIE_XTR_DLLP_TYPE_UPDATE_FC_P 8'b10000xxx
203#define FNX_PCIE_XTR_DLLP_TYPE_UPDATE_FC_NP 8'b10010xxx
204#define FNX_PCIE_XTR_DLLP_TYPE_UPDATE_FC_CPL 8'b10100xxx
205
206// FC DLLP Type Encodings
207#define FNX_PCIE_XTR_FC_DLLP_TYPE_INIT_FC1_P 5'b01000
208#define FNX_PCIE_XTR_FC_DLLP_TYPE_INIT_FC1_NP 5'b01010
209#define FNX_PCIE_XTR_FC_DLLP_TYPE_INIT_FC1_CPL 5'b01100
210#define FNX_PCIE_XTR_FC_DLLP_TYPE_INIT_FC2_P 5'b11000
211#define FNX_PCIE_XTR_FC_DLLP_TYPE_INIT_FC2_NP 5'b11010
212#define FNX_PCIE_XTR_FC_DLLP_TYPE_INIT_FC2_CPL 5'b11100
213#define FNX_PCIE_XTR_FC_DLLP_TYPE_UPDATE_FC_P 5'b10000
214#define FNX_PCIE_XTR_FC_DLLP_TYPE_UPDATE_FC_NP 5'b10010
215#define FNX_PCIE_XTR_FC_DLLP_TYPE_UPDATE_FC_CPL 5'b10100
216
217// Maximum Number of Bytes in a Data Payload
218#define FNX_PCIE_XTR_PCIE_MAX_NUM_PYLD_BYTES 4096
219#define FNX_PCIE_XTR_FNX_MAX_NUM_PYLD_BYTES 512
220
221// TLP Type Defines
222#define FNX_PCIE_XTR_TYPE_MRD 5'b00000
223#define FNX_PCIE_XTR_TYPE_MRDLK 5'b00001
224#define FNX_PCIE_XTR_TYPE_MWR 5'b00000
225#define FNX_PCIE_XTR_TYPE_IORD 5'b00010
226#define FNX_PCIE_XTR_TYPE_IOWR 5'b00010
227#define FNX_PCIE_XTR_TYPE_CFGRD0 5'b00100
228#define FNX_PCIE_XTR_TYPE_CFGWR0 5'b00100
229#define FNX_PCIE_XTR_TYPE_CFGRD1 5'b00101
230#define FNX_PCIE_XTR_TYPE_CFGWR1 5'b00101
231#define FNX_PCIE_XTR_TYPE_MSG 5'b10xxx
232#define FNX_PCIE_XTR_TYPE_MSGD 5'b10xxx
233#define FNX_PCIE_XTR_TYPE_CPL 5'b01010
234#define FNX_PCIE_XTR_TYPE_CPLD 5'b01010
235#define FNX_PCIE_XTR_TYPE_CPLLK 5'b01011
236#define FNX_PCIE_XTR_TYPE_CPLDLK 5'b01011
237
238
239#define FNX_PCIE_XTR_TYPE_MSG_FIXED 2'b10
240#define FNX_PCIE_XTR_TYPE_MSGD_FIXED 2'b10
241
242
243#define FNX_PCIE_XTR_TYPE_MSG_FIXED_SLC 4:3
244#define FNX_PCIE_XTR_TYPE_MSGD_FIXED_SLC 4:3
245
246// TLP Combined Format-Type Defines
247#define FNX_PCIE_XTR_FMT_TYPE_MRD_32 7'b0000000
248#define FNX_PCIE_XTR_FMT_TYPE_MRD_64 7'b0100000
249#define FNX_PCIE_XTR_FMT_TYPE_MRDLK_32 7'b0000001
250#define FNX_PCIE_XTR_FMT_TYPE_MRDLK_64 7'b0100001
251#define FNX_PCIE_XTR_FMT_TYPE_MWR_32 7'b1000000
252#define FNX_PCIE_XTR_FMT_TYPE_MWR_64 7'b1100000
253#define FNX_PCIE_XTR_FMT_TYPE_IORD 7'b0000010
254#define FNX_PCIE_XTR_FMT_TYPE_IOWR 7'b1000010
255#define FNX_PCIE_XTR_FMT_TYPE_CFGRD0 7'b0000100
256#define FNX_PCIE_XTR_FMT_TYPE_CFGWR0 7'b1000100
257#define FNX_PCIE_XTR_FMT_TYPE_CFGRD1 7'b0000101
258#define FNX_PCIE_XTR_FMT_TYPE_CFGWR1 7'b1000101
259#define FNX_PCIE_XTR_FMT_TYPE_MSG 7'b0110xxx
260#define FNX_PCIE_XTR_FMT_TYPE_MSGD 7'b1110xxx
261#define FNX_PCIE_XTR_FMT_TYPE_CPL 7'b0001010
262#define FNX_PCIE_XTR_FMT_TYPE_CPLD 7'b1001010
263#define FNX_PCIE_XTR_FMT_TYPE_CPLLK 7'b0001011
264#define FNX_PCIE_XTR_FMT_TYPE_CPLDLK 7'b1001011
265
266// TLP Fmt field slices
267#define FNX_PCIE_XTR_FMT_DATA_SLC 1:1
268#define FNX_PCIE_XTR_FMT_64BIT_SLC 0:0
269
270
271#define FNX_PCIE_XTR_FMT_TYPE_MSG_FIXED 4'b0110
272#define FNX_PCIE_XTR_FMT_TYPE_MSGD_FIXED 4'b1110
273
274
275#define FNX_PCIE_XTR_FMT_TYPE_MSG_FIXED_SLC 6:3
276#define FNX_PCIE_XTR_FMT_TYPE_MSGD_FIXED_SLC 6:3
277#define FNX_PCIE_XTR_FMT_TYPE_MSG_ROUTING_SLC 2:0
278
279// Message Code Defines
280#define FNX_PCIE_XTR_MSG_CODE_INTX_ASSERT_A 8'b00100000
281#define FNX_PCIE_XTR_MSG_CODE_INTX_ASSERT_B 8'b00100001
282#define FNX_PCIE_XTR_MSG_CODE_INTX_ASSERT_C 8'b00100010
283#define FNX_PCIE_XTR_MSG_CODE_INTX_ASSERT_D 8'b00100011
284#define FNX_PCIE_XTR_MSG_CODE_INTX_DEASSERT_A 8'b00100100
285#define FNX_PCIE_XTR_MSG_CODE_INTX_DEASSERT_B 8'b00100101
286#define FNX_PCIE_XTR_MSG_CODE_INTX_DEASSERT_C 8'b00100110
287#define FNX_PCIE_XTR_MSG_CODE_INTX_DEASSERT_D 8'b00100111
288#define FNX_PCIE_XTR_MSG_CODE_PM_ACTIVE_STATE_NAK 8'b00010100
289#define FNX_PCIE_XTR_MSG_CODE_PM_PME 8'b00011000
290#define FNX_PCIE_XTR_MSG_CODE_PME_TURN_OFF 8'b00011001
291#define FNX_PCIE_XTR_MSG_CODE_PME_TO_ACK 8'b00011011
292#define FNX_PCIE_XTR_MSG_CODE_ERR_COR 8'b00110000
293#define FNX_PCIE_XTR_MSG_CODE_ERR_NONFATAL 8'b00110001
294#define FNX_PCIE_XTR_MSG_CODE_ERR_FATAL 8'b00110011
295#define FNX_PCIE_XTR_MSG_CODE_LOCK_UNLOCK 8'b00000000
296#define FNX_PCIE_XTR_MSG_CODE_SLOT_POWER_LIMIT 8'b01010000
297#define FNX_PCIE_XTR_MSG_CODE_VD_TYPE0 8'b01111110
298#define FNX_PCIE_XTR_MSG_CODE_VD_TYPE1 8'b01111111
299#define FNX_PCIE_XTR_MSG_CODE_HP_POWER_ON 8'b01000101
300#define FNX_PCIE_XTR_MSG_CODE_HP_POWER_OFF 8'b01000100
301#define FNX_PCIE_XTR_MSG_CODE_HP_POWER_BLINK 8'b01000111
302#define FNX_PCIE_XTR_MSG_CODE_HP_ATTENTION_PRESSED 8'b01001000
303#define FNX_PCIE_XTR_MSG_CODE_HP_ATTENTION_ON 8'b01000001
304#define FNX_PCIE_XTR_MSG_CODE_HP_ATTENTION_OFF 8'b01000000
305#define FNX_PCIE_XTR_MSG_CODE_HP_ATTENTION_BLINK 8'b01000011
306
307// Message Routing Defines
308#define FNX_PCIE_XTR_MSG_ROUTING_ROUTED_TO_ROOT_CMPLX 3'b000
309#define FNX_PCIE_XTR_MSG_ROUTING_ROUTED_BY_ADDR 3'b001
310#define FNX_PCIE_XTR_MSG_ROUTING_ROUTED_BY_ID 3'b010
311#define FNX_PCIE_XTR_MSG_ROUTING_BCAST_FROM_ROOT_CMPLX 3'b011
312#define FNX_PCIE_XTR_MSG_ROUTING_LOCAL 3'b100
313#define FNX_PCIE_XTR_MSG_ROUTING_GNR_TO_ROOT_CMPLX 3'b101
314
315// PCI-E Xactor Header/Sub-Header Presence Defines
316#define FNX_PCIE_XTR_NUM_HDRS 8
317#define FNX_PCIE_XTR_CMN_HDR 0
318#define FNX_PCIE_XTR_REQ_HDR 1
319#define FNX_PCIE_XTR_BE_HDR 2
320#define FNX_PCIE_XTR_MSG_HDR 3
321#define FNX_PCIE_XTR_CMPL_HDR 4
322#define FNX_PCIE_XTR_LOWER_ADDR_HDR 5
323#define FNX_PCIE_XTR_UPPER_ADDR_HDR 6
324#define FNX_PCIE_XTR_CFG_HDR 7
325
326// TLP Common Header Field Slice Defines
327#define FNX_PCIE_XTR_CMN_RESV_1_SLC 31:31
328#define FNX_PCIE_XTR_CMN_FORMAT_SLC 30:29
329#define FNX_PCIE_XTR_CMN_TYPE_SLC 28:24
330#define FNX_PCIE_XTR_CMN_FMT_TYPE_SLC 30:24
331#define FNX_PCIE_XTR_CMN_RESV_2_SLC 23:23
332#define FNX_PCIE_XTR_CMN_TC_SLC 22:20
333#define FNX_PCIE_XTR_CMN_RESV_3_SLC 19:16
334#define FNX_PCIE_XTR_CMN_TD_SLC 15:15
335#define FNX_PCIE_XTR_CMN_EP_SLC 14:14
336#define FNX_PCIE_XTR_CMN_RO_SLC 13:13
337#define FNX_PCIE_XTR_CMN_SNOOP_SLC 12:12
338#define FNX_PCIE_XTR_CMN_ATTR_SLC 13:12
339#define FNX_PCIE_XTR_CMN_RESV_4_SLC 11:10
340#define FNX_PCIE_XTR_CMN_LENGTH_SLC 9:0
341
342// Requester ID Internal Field Slices
343#define FNX_PCIE_XTR_REQ_ID_BUS_NUM_INT_SLC 15:8
344#define FNX_PCIE_XTR_REQ_ID_DEVICE_NUM_INT_SLC 7:3
345#define FNX_PCIE_XTR_REQ_ID_FUNC_NUM_INT_SLC 2:0
346
347// TLP Request Header Field Slice Defines
348#define FNX_PCIE_XTR_REQ_REQUESTER_ID_SLC 31:16
349#define FNX_PCIE_XTR_REQ_BUS_NUM_SLC 31:24
350#define FNX_PCIE_XTR_REQ_DEVICE_NUM_SLC 23:19
351#define FNX_PCIE_XTR_REQ_FUNC_NUM_SLC 18:16
352#define FNX_PCIE_XTR_REQ_TAG_SLC 15:8
353
354// TLP Byte Enable Header Field Slice Defines
355#define FNX_PCIE_XTR_BE_LAST_DW_BE_SLC 7:4
356#define FNX_PCIE_XTR_BE_FIRST_DW_BE_SLC 3:0
357
358// TLP Message Header Field Slice Defines
359#define FNX_PCIE_XTR_MSG_MESSAGE_CODE_SLC 7:0
360#define FNX_PCIE_XTR_MSG_ROUTING_SLC 2:0
361#define FNX_PCIE_XTR_MSG_CMN_ROUTING_SLC 26:24
362
363// TLP Completion Header Field Slice Defines
364#define FNX_PCIE_XTR_CMPL_COMPLETER_ID_SLC 31:16
365#define FNX_PCIE_XTR_CMPL_CMPL_STATUS_SLC 15:13
366#define FNX_PCIE_XTR_CMPL_BCM_SLC 12:12
367#define FNX_PCIE_XTR_CMPL_BYTE_COUNT_SLC 11:0
368#define FNX_PCIE_XTR_CMPL_RESV_5_SLC 7:7
369#define FNX_PCIE_XTR_CMPL_LOWER_ADDR_SLC 6:0
370
371// TLP Address Header Field Slice Defines
372#define FNX_PCIE_XTR_ADDR_UPPER_ADDR_SLC 31:0
373#define FNX_PCIE_XTR_ADDR_LOWER_ADDR_SLC 31:2
374#define FNX_PCIE_XTR_ADDR_RESV_6_SLC 1:0
375
376// TLP Configuration Request Header Field Slice Defines
377#define FNX_PCIE_XTR_CFG_CONFIG_ID_SLC 31:16
378#define FNX_PCIE_XTR_CFG_BUS_NUM_SLC 31:24
379#define FNX_PCIE_XTR_CFG_DEVICE_NUM_SLC 23:19
380#define FNX_PCIE_XTR_CFG_FUNC_NUM_SLC 18:16
381#define FNX_PCIE_XTR_CFG_RESV_7_SLC 15:12
382#define FNX_PCIE_XTR_CFG_EXT_REG_NUM_SLC 11:8
383#define FNX_PCIE_XTR_CFG_REG_NUM_SLC 7:2
384#define FNX_PCIE_XTR_CFG_RESV_8_SLC 1:0
385
386// TLP Digest Field Slice Defines
387#define FNX_PCIE_XTR_ECRC_SLC 31:0
388
389
390#define FNX_PCIE_XTR_DLL_FRM_PREFIX_RESV_9_SLC 15:12
391#define FNX_PCIE_XTR_DLL_FRM_PREFIX_SEQ_NUM_SLC 11:0
392
393
394#define FNX_PCIE_XTR_DLL_FRM_LCRC_32_SLC 31:0
395
396// Completion Status Encodings
397#define FNX_PCIE_XTR_CMPL_STATUS_SC 3'b000
398#define FNX_PCIE_XTR_CMPL_STATUS_UR 3'b001
399#define FNX_PCIE_XTR_CMPL_STATUS_CRS 3'b010
400#define FNX_PCIE_XTR_CMPL_STATUS_CA 3'b100
401
402// FC Engine Defines
403#define FNX_PCIE_XTR_NUM_FC_TYPES 6
404#define FNX_PCIE_XTR_FC_TYPE_PH 0
405#define FNX_PCIE_XTR_FC_TYPE_PD 1
406#define FNX_PCIE_XTR_FC_TYPE_NPH 2
407#define FNX_PCIE_XTR_FC_TYPE_NPD 3
408#define FNX_PCIE_XTR_FC_TYPE_CPLH 4
409#define FNX_PCIE_XTR_FC_TYPE_CPLD 5
410
411/////////////////////////////////////////////////
412// Begin -> Denali Register Defines
413//
414// General Denali Register Defines
415#define FNX_PCIE_XTR_REG_DEN_WIDTH 32
416
417// PCIE_REG_DEN_LTSSM_STATE
418#define FNX_PCIE_XTR_REG_DEN_LTSSM_STATE_OLD_SLC 31:16
419#define FNX_PCIE_XTR_REG_DEN_LTSSM_STATE_NEW_SLC 15:0
420
421// PCIE_REG_DEN_DLCMSM_STATE
422#define FNX_PCIE_XTR_REG_DEN_DLCMSM_STATE_OLD_SLC 31:16
423#define FNX_PCIE_XTR_REG_DEN_DLCMSM_STATE_NEW_SLC 15:0
424
425// PCIE_REG_DEN_TLPORT_STATE
426#define FNX_PCIE_XTR_REG_DEN_TLPORT_STATE_OLD_SLC 31:16
427#define FNX_PCIE_XTR_REG_DEN_TLPORT_STATE_NEW_SLC 15:0
428
429// PCIE_REG_DEN_DEV_CTRL
430#define FNX_PCIE_XTR_REG_DEN_DEV_CTRL_BUS_NUM_SLC 15:8
431#define FNX_PCIE_XTR_REG_DEN_DEV_CTRL_DEVICE_NUM_SLC 7:3
432#define FNX_PCIE_XTR_REG_DEN_DEV_CTRL_FUNC_NUM_SLC 2:0
433
434// PCIE_REG_DEN_LINK_ST
435#define FNX_PCIE_XTR_REG_DEN_LINK_ST_LINK_WIDTH 6
436#define FNX_PCIE_XTR_REG_DEN_LINK_ST_LINK_NUM_WIDTH 8
437#define FNX_PCIE_XTR_REG_DEN_LINK_ST_LANE_NUM_WIDTH 5
438#define FNX_PCIE_XTR_REG_DEN_LINK_ST_LINK_UP_SLC 0:0
439#define FNX_PCIE_XTR_REG_DEN_LINK_ST_LINK_WIDTH_SLC 6:1
440#define FNX_PCIE_XTR_REG_DEN_LINK_ST_LINK_NUM_SLC 14:7
441#define FNX_PCIE_XTR_REG_DEN_LINK_ST_LANE_NUM_SLC 19:15
442#define FNX_PCIE_XTR_REG_DEN_LINK_ST_LANES_REVERSED_SLC 20:20
443#define FNX_PCIE_XTR_REG_DEN_LINK_ST_SCRAMBLING_SLC 21:21
444#define FNX_PCIE_XTR_REG_DEN_LINK_ST_LINK_TO_LO_SUCC_SLC 22:22
445#define FNX_PCIE_XTR_REG_DEN_LINK_ST_LINK_TO_LOS_SUCC_SLC 23:23
446#define FNX_PCIE_XTR_REG_DEN_LINK_ST_LINK_TO_L1_SUCC_SLC 24:24
447#define FNX_PCIE_XTR_REG_DEN_LINK_ST_LINK_TO_L2_SUCC_SLC 25:25
448#define FNX_PCIE_XTR_REG_DEN_LINK_ST_DL_LINK_UP_SLC 26:26
449
450// PCIE_REG_DEN_ERROR_CTRL
451#define FNX_PCIE_XTR_REG_DEN_ERROR_CTRL_ERR_ID_WIDTH 24
452#define FNX_PCIE_XTR_REG_DEN_ERROR_CTRL_CBK_CTRL_WIDTH 1
453#define FNX_PCIE_XTR_REG_DEN_ERROR_CTRL_ASSERT_CTRL_WIDTH 1
454#define FNX_PCIE_XTR_REG_DEN_ERROR_CTRL_DIRECTION_WIDTH 2
455#define FNX_PCIE_XTR_REG_DEN_ERROR_CTRL_SEV_WIDTH 4
456#define FNX_PCIE_XTR_REG_DEN_ERROR_CTRL_ERR_ID_SLC 31:8
457#define FNX_PCIE_XTR_REG_DEN_ERROR_CTRL_CBK_CTRL_SLC 7:7
458#define FNX_PCIE_XTR_REG_DEN_ERROR_CTRL_ASSERT_CTRL_SLC 6:6
459#define FNX_PCIE_XTR_REG_DEN_ERROR_CTRL_DIRECTION_SLC 5:4
460#define FNX_PCIE_XTR_REG_DEN_ERROR_CTRL_SEV_SLC 3:0
461
462// PCIE_REG_COMMAND
463#define FNX_PCIE_XTR_REG_DEN_COMMAND_INT_DIS_WIDTH 1
464#define FNX_PCIE_XTR_REG_DEN_COMMAND_SERR_EN_WIDTH 1
465#define FNX_PCIE_XTR_REG_DEN_COMMAND_BM_EN_WIDTH 1
466#define FNX_PCIE_XTR_REG_DEN_COMMAND_MEM_EN_WIDTH 1
467#define FNX_PCIE_XTR_REG_DEN_COMMAND_IO_EN_WIDTH 1
468#define FNX_PCIE_XTR_REG_DEN_COMMAND_INT_DIS_SLC 10:10
469#define FNX_PCIE_XTR_REG_DEN_COMMAND_SERR_EN_SLC 8:8
470#define FNX_PCIE_XTR_REG_DEN_COMMAND_BM_EN_SLC 2:2
471#define FNX_PCIE_XTR_REG_DEN_COMMAND_MEM_EN_SLC 1:1
472#define FNX_PCIE_XTR_REG_DEN_COMMAND_IO_EN_SLC 0:0
473
474// PCIE_REG_EXP_LINK_CAP
475#define FNX_PCIE_XTR_REG_DEN_EXP_LINK_CAP_PORT_NUM_WIDTH 8
476#define FNX_PCIE_XTR_REG_DEN_EXP_LINK_CAP_L1_EXIT_LATENCY_WIDTH 3
477#define FNX_PCIE_XTR_REG_DEN_EXP_LINK_CAP_L0S_EXIT_LATENCY_WIDTH 3
478#define FNX_PCIE_XTR_REG_DEN_EXP_LINK_CAP_ASPM_SUPPORT_WIDTH 2
479#define FNX_PCIE_XTR_REG_DEN_EXP_LINK_CAP_MAX_LINK_WIDTH_WIDTH 6
480#define FNX_PCIE_XTR_REG_DEN_EXP_LINK_CAP_MAX_LINK_SPEED_WIDTH 4
481#define FNX_PCIE_XTR_REG_DEN_EXP_LINK_CAP_PORT_NUM_SLC 31:24
482#define FNX_PCIE_XTR_REG_DEN_EXP_LINK_CAP_L1_EXIT_LATENCY_SLC 17:15
483#define FNX_PCIE_XTR_REG_DEN_EXP_LINK_CAP_L0S_EXIT_LATENCY_SLC 14:12
484#define FNX_PCIE_XTR_REG_DEN_EXP_LINK_CAP_ASPM_SUPPORT_SLC 11:10
485#define FNX_PCIE_XTR_REG_DEN_EXP_LINK_CAP_MAX_LINK_WIDTH_SLC 9:4
486#define FNX_PCIE_XTR_REG_DEN_EXP_LINK_CAP_MAX_LINK_SPEED_SLC 3:0
487
488// PCIE_REG_EXP_LINK_CTRL
489#define FNX_PCIE_XTR_REG_DEN_EXP_LINK_CTRL_EXT_SYNC_WIDTH 1
490#define FNX_PCIE_XTR_REG_DEN_EXP_LINK_CTRL_CMN_CLK_CFG_WIDTH 1
491#define FNX_PCIE_XTR_REG_DEN_EXP_LINK_CTRL_RETRAIN_LINK 1
492#define FNX_PCIE_XTR_REG_DEN_EXP_LINK_CTRL_LINK_DISABLE_WIDTH 1
493#define FNX_PCIE_XTR_REG_DEN_EXP_LINK_CTRL_RCB_WIDTH 1
494#define FNX_PCIE_XTR_REG_DEN_EXP_LINK_CTRL_ASPM_CTRL_WIDTH 2
495#define FNX_PCIE_XTR_REG_DEN_EXP_LINK_CTRL_EXT_SYNC_SLC 7:7
496#define FNX_PCIE_XTR_REG_DEN_EXP_LINK_CTRL_CMN_CLK_CFG_SLC 6:6
497#define FNX_PCIE_XTR_REG_DEN_EXP_LINK_CTRL_RETRAIN_LINK_SLC 5:5
498#define FNX_PCIE_XTR_REG_DEN_EXP_LINK_CTRL_LINK_DISABLE_SLC 4:4
499#define FNX_PCIE_XTR_REG_DEN_EXP_LINK_CTRL_RCB_SLC 3:3
500#define FNX_PCIE_XTR_REG_DEN_EXP_LINK_CTRL_ASPM_CTRL_SLC 1:0
501
502// PCIE_REG_DEN_FC_CTRL
503#define FNX_PCIE_XTR_REG_DEN_FC_CTRL_TIMER_VAL_WIDTH 16
504#define FNX_PCIE_XTR_REG_DEN_FC_CTRL_DATA_VAL_WIDTH 12
505#define FNX_PCIE_XTR_REG_DEN_FC_CTRL_FC_TYPE_WIDTH 4
506#define FNX_PCIE_XTR_REG_DEN_FC_CTRL_VC_WIDTH 4
507#define FNX_PCIE_XTR_REG_DEN_FC_CTRL_FC_ID_WIDTH 4
508#define FNX_PCIE_XTR_REG_DEN_FC_CTRL_FC_CMD_WIDTH 4
509#define FNX_PCIE_XTR_REG_DEN_FC_CTRL_TIMER_VAL_SLC 31:16
510#define FNX_PCIE_XTR_REG_DEN_FC_CTRL_DATA_VAL_SLC 31:20
511#define FNX_PCIE_XTR_REG_DEN_FC_CTRL_FC_ID_SLC 19:16
512#define FNX_PCIE_XTR_REG_DEN_FC_CTRL_FC_TYPE_SLC 15:12
513#define FNX_PCIE_XTR_REG_DEN_FC_CTRL_VC_SLC 11:8
514#define FNX_PCIE_XTR_REG_DEN_FC_CTRL_FC_CMD_SLC 3:0
515// PCIE_REG_DEN_FC_CTRL
516#define FNX_PCIE_XTR_REG_DEN_FC_CTRL_FC_OP_SLC 7:0
517
518// PCIE_REG_DEN_LINK_CTRL
519#define FNX_PCIE_XTR_REG_DEN_LINK_CTRL_TS_HOT_RST_SLC 0:0
520#define FNX_PCIE_XTR_REG_DEN_LINK_CTRL_TS_DISABLE_LINK_SLC 1:1
521#define FNX_PCIE_XTR_REG_DEN_LINK_CTRL_TS_LOOPBACK_SLC 2:2
522#define FNX_PCIE_XTR_REG_DEN_LINK_CTRL_TS_DISABLE_SCRAMBLING_SLC 3:3
523#define FNX_PCIE_XTR_REG_DEN_LINK_CTRL_TS_ENABLE_LOOPBACK_MSTR_SLC 4:4
524#define FNX_PCIE_XTR_REG_DEN_LINK_CTRL_ENABLE_LOOPBACK_SLV_SLC 5:5
525#define FNX_PCIE_XTR_REG_DEN_LINK_CTRL_ENABLE_CROSSLINK_SLC 6:6
526#define FNX_PCIE_XTR_REG_DEN_LINK_CTRL_GOTO_L0_SLC 7:7
527#define FNX_PCIE_XTR_REG_DEN_LINK_CTRL_GOTO_L0S_SLC 8:8
528#define FNX_PCIE_XTR_REG_DEN_LINK_CTRL_GOTO_L1_ASPM_SLC 9:9
529#define FNX_PCIE_XTR_REG_DEN_LINK_CTRL_GOTO_L1_SLC 10:10
530#define FNX_PCIE_XTR_REG_DEN_LINK_CTRL_GOTO_L2_SLC 11:11
531#define FNX_PCIE_XTR_REG_DEN_LINK_CTRL_GOTO_RECOVERY_SLC 12:12
532#define FNX_PCIE_XTR_REG_DEN_LINK_CTRL_GOTO_CONFIG_SLC 13:13
533
534
535//
536// End -> Denali Register Defines
537/////////////////////////////////////////////////
538
539/////////////////////////////////////////////////////////
540// Begin -> PCI Defines
541//
542// PCI BAR Width Defines
543#define FNX_PCIE_XTR_PCI_BAR_WIDTH 32
544#define FNX_PCIE_XTR_PCI_BAR_DECODER_TYPE_WIDTH 1
545#define FNX_PCIE_XTR_PCI_BAR_TYPE_WIDTH 2
546#define FNX_PCIE_XTR_PCI_BAR_PREFETCHABLE_WIDTH 1
547#define FNX_PCIE_XTR_PCI_BAR_LOWER_ADDR_WIDTH 28
548#define FNX_PCIE_XTR_PCI_BAR_UPPER_ADDR_WIDTH 32
549
550// PCI BAR Slice Defines
551#define FNX_PCIE_XTR_PCI_BAR_DECODER_TYPE_SLC 0:0
552#define FNX_PCIE_XTR_PCI_BAR_TYPE_SLC 2:1
553#define FNX_PCIE_XTR_PCI_BAR_PREFETCHABLE_SLC 3:3
554#define FNX_PCIE_XTR_PCI_BAR_LOWER_ADDR_SLC 31:4
555#define FNX_PCIE_XTR_PCI_BAR_UPPER_ADDR_SLC 31:0
556
557// PCI BAR Decoder Type Defines
558#define FNX_PCIE_XTR_PCI_BAR_DECODER_TYPE_MEM 1'b0
559#define FNX_PCIE_XTR_PCI_BAR_DECODER_TYPE_IO 1'b1
560
561// PCI BAR Type Defines
562#define FNX_PCIE_XTR_PCI_BAR_TYPE_32_BIT 2'b00
563#define FNX_PCIE_XTR_PCI_BAR_TYPE_BELOW_1MB 2'b01
564#define FNX_PCIE_XTR_PCI_BAR_TYPE_64_BIT 2'b10
565#define FNX_PCIE_XTR_PCI_BAR_TYPE_RESV 2'b11
566
567// PCI BAR Prefetchable Defines
568#define FNX_PCIE_XTR_PCI_BAR_NOT_PREFETCHABLE 1'b0
569#define FNX_PCIE_XTR_PCI_BAR_PREFETCHABLE 1'b1
570//
571// End -> PCI Defines
572/////////////////////////////////////////////////////////
573
574// Denali Model Init Defaults
575#define FNX_PCIE_XTR_DEFAULT_BUS_NUM 8'h0
576#define FNX_PCIE_XTR_DEFAULT_FUNC_NUM 3'h0
577#define FNX_PCIE_XTR_DEFAULT_BAR_64_SIZE 36
578#define FNX_PCIE_XTR_DEFAULT_BAR_64_OFFSET 64'h0
579
580// Statistic Tracking Defines
581#define FNX_PCIE_XTR_NUM_STAT_DIRS 2
582#define FNX_PCIE_XTR_STAT_DIR_XMIT 0
583#define FNX_PCIE_XTR_STAT_DIR_RCV 1
584
585#define FNX_PCIE_XTR_NUM_STAT_TYPES 4
586#define FNX_PCIE_XTR_STAT_TYPE_MIN 0
587#define FNX_PCIE_XTR_STAT_TYPE_MAX 1
588#define FNX_PCIE_XTR_STAT_TYPE_TOTAL 2
589#define FNX_PCIE_XTR_STAT_TYPE_AVG 3
590
591// Misc Port Widths
592#define FNX_PCIE_XTR_RCV_DET_LANES_WIDTH 8
593
594
595#endif // _FNX_PCIE_XTR_EXT_DEFINES_VRI_