Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / verif / env / fnx / vlib / FNXPCIEXactor / include / FNXPCIEXactorDefines.vri
// ========== Copyright Header Begin ==========================================
//
// OpenSPARC T2 Processor File: FNXPCIEXactorDefines.vri
// Copyright (C) 1995-2007 Sun Microsystems, Inc. All Rights Reserved
// 4150 Network Circle, Santa Clara, California 95054, U.S.A.
//
// * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; version 2 of the License.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//
// For the avoidance of doubt, and except that if any non-GPL license
// choice is available it will apply instead, Sun elects to use only
// the General Public License version 2 (GPLv2) at this time for any
// software where a choice of GPL license versions is made
// available with the language indicating that GPLv2 or any later version
// may be used, or where a choice of which version of the GPL is applied is
// otherwise unspecified.
//
// Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
// CA 95054 USA or visit www.sun.com if you need additional information or
// have any questions.
//
// ========== Copyright Header End ============================================
#ifndef _FNX_PCIE_XTR_DEFINES_VRI_
#define _FNX_PCIE_XTR_DEFINES_VRI_
// Maximum Number of Bits In An Expect
// 4 Hdr DWs (128) + ECRC (32) + Seq_Num (16) + LCRC (32) + Payload(512*8=4096) + Frame (32)
#define FNX_PCIE_XTR_EXPECT_PKT_MAX 4336
#define FNX_PCIE_XTR_XACTOR_NAME "FNX_PCIE_XTR"
#define FNX_PCIE_XTR_LINK_WIDTH 8
#define FNX_PCIE_XTR_DW_WIDTH 32
#define FNX_PCIE_XTR_NUM_DLLP_BYTES 6
#define FNX_PCIE_XTR_MAX_REPLAY_ENTRIES 4096
#define FNX_PCIE_XTR_MAX_NUM_RETRIES_PER_PKT 4
// FNX PCIE Xactor Supported Packet Types
#define FNX_PCIE_XTR_PKT_TYPE_WIDTH 4 // must accomodate # of encodings
#define FNX_PCIE_XTR_PKT_TYPE_TLP 0
#define FNX_PCIE_XTR_PKT_TYPE_RAW_TLP 1
#define FNX_PCIE_XTR_PKT_TYPE_DLP 2
#define FNX_PCIE_XTR_PKT_TYPE_RAW_DLP 3
#define FNX_PCIE_XTR_PKT_TYPE_DLLP 4
#define FNX_PCIE_XTR_PKT_TYPE_PLP 5
#define FNX_PCIE_XTR_PKT_TYPE_PLLP 6
#define FNX_PCIE_XTR_PKT_TYPE_ORDERED_SET 7
#define FNX_PCIE_XTR_PKT_TYPE_RAW_DATA 8
#define FNX_PCIE_XTR_PKT_TYPE_TRAINING_SET 9
// Format/Type Internal Slice Defines
#define FNX_PCIE_XTR_FMT_TYPE_FMT_INT_SLC 6:5
#define FNX_PCIE_XTR_FMT_TYPE_TYPE_INT_SLC 4:0
// Attributes Internal Slice Defines
#define FNX_PCIE_XTR_ATTR_RO_INT_SLC 1:1
#define FNX_PCIE_XTR_ATTR_SNOOP_INT_SLC 0:0
// Total Number of Reserved Fields Recognized by Xactor
#define FNX_PCIE_XTR_NUM_RESV_FIELDS 9
#define FNX_PCE_XTR_MAX_RESV_FIELD_WIDTH 4
// TLP Common Header Field Width Defines
#define FNX_PCIE_XTR_CMN_RESV_1_WIDTH 1
#define FNX_PCIE_XTR_CMN_FORMAT_WIDTH 2
#define FNX_PCIE_XTR_CMN_TYPE_WIDTH 5
#define FNX_PCIE_XTR_CMN_FMT_TYPE_WIDTH 7
#define FNX_PCIE_XTR_CMN_RESV_2_WIDTH 1
#define FNX_PCIE_XTR_CMN_TC_WIDTH 3
#define FNX_PCIE_XTR_CMN_RESV_3_WIDTH 4
#define FNX_PCIE_XTR_CMN_TD_WIDTH 1
#define FNX_PCIE_XTR_CMN_EP_WIDTH 1
#define FNX_PCIE_XTR_CMN_RO_WIDTH 1
#define FNX_PCIE_XTR_CMN_SNOOP_WIDTH 1
#define FNX_PCIE_XTR_CMN_ATTR_WIDTH 2
#define FNX_PCIE_XTR_CMN_RESV_4_WIDTH 2
#define FNX_PCIE_XTR_CMN_LENGTH_WIDTH 10
// TLP Request Header Field Width Defines
#define FNX_PCIE_XTR_REQ_REQUESTER_ID_WIDTH 16
#define FNX_PCIE_XTR_REQ_BUS_NUM_WIDTH 8
#define FNX_PCIE_XTR_REQ_DEVICE_NUM_WIDTH 5
#define FNX_PCIE_XTR_REQ_FUNC_NUM_WIDTH 3
#define FNX_PCIE_XTR_REQ_TAG_WIDTH 8
// TLP Byte Enable Header Field Width Defines
#define FNX_PCIE_XTR_BE_LAST_DW_BE_WIDTH 4
#define FNX_PCIE_XTR_BE_FIRST_DW_BE_WIDTH 4
// TLP Message Header Field Width Defines
#define FNX_PCIE_XTR_MSG_MESSAGE_CODE_WIDTH 8
#define FNX_PCIE_XTR_MSG_ROUTING_WIDTH 3
// TLP Completion Header Field Width Defines
#define FNX_PCIE_XTR_CMPL_COMPLETER_ID_WIDTH 16
#define FNX_PCIE_XTR_CMPL_CMPL_STATUS_WIDTH 3
#define FNX_PCIE_XTR_CMPL_BCM_WIDTH 1
#define FNX_PCIE_XTR_CMPL_BYTE_COUNT_WIDTH 12
#define FNX_PCIE_XTR_CMPL_RESV_5_WIDTH 1
#define FNX_PCIE_XTR_CMPL_LOWER_ADDR_WIDTH 7
// TLP Address Header Field Width Defines
#define FNX_PCIE_XTR_ADDR_UPPER_ADDR_WIDTH 32
#define FNX_PCIE_XTR_ADDR_LOWER_ADDR_WIDTH 30
#define FNX_PCIE_XTR_ADDR_RESV_6_WIDTH 2
// TLP Configuration Request Header Field Width Defines
#define FNX_PCIE_XTR_CFG_BUS_NUM_WIDTH 8
#define FNX_PCIE_XTR_CFG_DEVICE_NUM_WIDTH 5
#define FNX_PCIE_XTR_CFG_FUNC_NUM_WIDTH 3
#define FNX_PCIE_XTR_CFG_RESV_7_WIDTH 4
#define FNX_PCIE_XTR_CFG_EXT_REG_NUM_WIDTH 4
#define FNX_PCIE_XTR_CFG_REG_NUM_WIDTH 6
#define FNX_PCIE_XTR_CFG_RESV_8_WIDTH 2
// TLP Digest Field Width Defines
#define FNX_PCIE_XTR_ECRC_WIDTH 32
// TLP DLL Framing Field Width Defines
#define FNX_PCIE_XTR_DLL_FRM_PREFIX_WIDTH 16
#define FNX_PCIE_XTR_DLL_FRM_RESV_9_WIDTH 4
#define FNX_PCIE_XTR_DLL_FRM_SEQ_NUM_WIDTH 12
#define FNX_PCIE_XTR_DLL_FRM_LCRC_32_WIDTH 32
// Generic DLLP Field Width Defines
#define FNX_PCIE_XTR_DLLP_TYPE_WIDTH 8
#define FNX_PCIE_XTR_DLLP_LCRC_16_WIDTH 16
// Ack/Nak DLLP Field Width Defines
#define FNX_PCIE_XTR_DLLP_ACK_NAK_SEQ_NUM_WIDTH 12
#define FNX_PCIE_XTR_DLLP_ACK_NAK_RESV_WIDTH 12
// InitFC1, InitFC2 and UpdateFC DLLP Field Width Defines
#define FNX_PCIE_XTR_DLLP_FC_TYPE_WIDTH 5
#define FNX_PCIE_XTR_DLLP_FC_VC_WIDTH 3
#define FNX_PCIE_XTR_DLLP_FC_RESV_1_WIDTH 2
#define FNX_PCIE_XTR_DLLP_FC_HDR_FC_WIDTH 8
#define FNX_PCIE_XTR_DLLP_FC_RESV_2_WIDTH 2
#define FNX_PCIE_XTR_DLLP_FC_DATA_FC_WIDTH 12
// InitFC1, InitFC2 and UpdateFC DLLP Internal Field Slices
#define FNX_PCIE_XTR_DLLP_FC_TYPE_TYPE_INT_SLC 7:3
#define FNX_PCIE_XTR_DLLP_FC_TYPE_VC_INT_SLC 2:0
// PM DLLP Field Width Defines
#define FNX_PCIE_XTR_DLLP_PM_RESV_WIDTH 24
// Vendor DLLP Field Width Defines
#define FNX_PCIE_XTR_DLLP_VENDOR_DATA_WIDTH 24
// Generic DLLP Field Slice Defines
#define FNX_PCIE_XTR_DLLP_TYPE_SLC 31:24
#define FNX_PCIE_XTR_DLLP_LCRC_16_SLC 15:0
// Ack/Nak DLLP Field Slice Defines
#define FNX_PCIE_XTR_DLLP_ACK_NAK_SEQ_NUM_SLC 11:0
#define FNX_PCIE_XTR_DLLP_ACK_NAK_RESV_SLC 23:12
// InitFC1, InitFC2 and UpdateFC DLLP Field Slice Defines
#define FNX_PCIE_XTR_DLLP_FC_TYPE_SLC 31:27
#define FNX_PCIE_XTR_DLLP_FC_VC_SLC 26:24
#define FNX_PCIE_XTR_DLLP_FC_RESV_1_SLC 23:22
#define FNX_PCIE_XTR_DLLP_FC_HDR_FC_SLC 21:14
#define FNX_PCIE_XTR_DLLP_FC_RESV_2_SLC 13:12
#define FNX_PCIE_XTR_DLLP_FC_DATA_FC_SLC 11:0
// PM DLLP Field Slice Defines
#define FNX_PCIE_XTR_DLLP_PM_RESV_SLC 23:0
// Vendor DLLP Field Slice Defines
#define FNX_PCIE_XTR_DLLP_VENDOR_DATA_SLC 23:0
// DLLP Type Encodings
#define FNX_PCIE_XTR_DLLP_TYPE_ACK 8'b00000000
#define FNX_PCIE_XTR_DLLP_TYPE_NAK 8'b00010000
#define FNX_PCIE_XTR_DLLP_TYPE_PM_ENTER_L1 8'b00100000
#define FNX_PCIE_XTR_DLLP_TYPE_PM_ENTER_L23 8'b00100001
#define FNX_PCIE_XTR_DLLP_TYPE_PM_ACTIVE_ST_REQ_L1 8'b00100011
#define FNX_PCIE_XTR_DLLP_TYPE_PM_REQUEST_ACK 8'b00100100
#define FNX_PCIE_XTR_DLLP_TYPE_VENDOR 8'b00110000
#define FNX_PCIE_XTR_DLLP_TYPE_INIT_FC1_P 8'b01000xxx
#define FNX_PCIE_XTR_DLLP_TYPE_INIT_FC1_NP 8'b01010xxx
#define FNX_PCIE_XTR_DLLP_TYPE_INIT_FC1_CPL 8'b01100xxx
#define FNX_PCIE_XTR_DLLP_TYPE_INIT_FC2_P 8'b11000xxx
#define FNX_PCIE_XTR_DLLP_TYPE_INIT_FC2_NP 8'b11010xxx
#define FNX_PCIE_XTR_DLLP_TYPE_INIT_FC2_CPL 8'b11100xxx
#define FNX_PCIE_XTR_DLLP_TYPE_UPDATE_FC_P 8'b10000xxx
#define FNX_PCIE_XTR_DLLP_TYPE_UPDATE_FC_NP 8'b10010xxx
#define FNX_PCIE_XTR_DLLP_TYPE_UPDATE_FC_CPL 8'b10100xxx
// FC DLLP Type Encodings
#define FNX_PCIE_XTR_FC_DLLP_TYPE_INIT_FC1_P 5'b01000
#define FNX_PCIE_XTR_FC_DLLP_TYPE_INIT_FC1_NP 5'b01010
#define FNX_PCIE_XTR_FC_DLLP_TYPE_INIT_FC1_CPL 5'b01100
#define FNX_PCIE_XTR_FC_DLLP_TYPE_INIT_FC2_P 5'b11000
#define FNX_PCIE_XTR_FC_DLLP_TYPE_INIT_FC2_NP 5'b11010
#define FNX_PCIE_XTR_FC_DLLP_TYPE_INIT_FC2_CPL 5'b11100
#define FNX_PCIE_XTR_FC_DLLP_TYPE_UPDATE_FC_P 5'b10000
#define FNX_PCIE_XTR_FC_DLLP_TYPE_UPDATE_FC_NP 5'b10010
#define FNX_PCIE_XTR_FC_DLLP_TYPE_UPDATE_FC_CPL 5'b10100
// Maximum Number of Bytes in a Data Payload
#define FNX_PCIE_XTR_PCIE_MAX_NUM_PYLD_BYTES 4096
#define FNX_PCIE_XTR_FNX_MAX_NUM_PYLD_BYTES 512
// TLP Type Defines
#define FNX_PCIE_XTR_TYPE_MRD 5'b00000
#define FNX_PCIE_XTR_TYPE_MRDLK 5'b00001
#define FNX_PCIE_XTR_TYPE_MWR 5'b00000
#define FNX_PCIE_XTR_TYPE_IORD 5'b00010
#define FNX_PCIE_XTR_TYPE_IOWR 5'b00010
#define FNX_PCIE_XTR_TYPE_CFGRD0 5'b00100
#define FNX_PCIE_XTR_TYPE_CFGWR0 5'b00100
#define FNX_PCIE_XTR_TYPE_CFGRD1 5'b00101
#define FNX_PCIE_XTR_TYPE_CFGWR1 5'b00101
#define FNX_PCIE_XTR_TYPE_MSG 5'b10xxx
#define FNX_PCIE_XTR_TYPE_MSGD 5'b10xxx
#define FNX_PCIE_XTR_TYPE_CPL 5'b01010
#define FNX_PCIE_XTR_TYPE_CPLD 5'b01010
#define FNX_PCIE_XTR_TYPE_CPLLK 5'b01011
#define FNX_PCIE_XTR_TYPE_CPLDLK 5'b01011
#define FNX_PCIE_XTR_TYPE_MSG_FIXED 2'b10
#define FNX_PCIE_XTR_TYPE_MSGD_FIXED 2'b10
#define FNX_PCIE_XTR_TYPE_MSG_FIXED_SLC 4:3
#define FNX_PCIE_XTR_TYPE_MSGD_FIXED_SLC 4:3
// TLP Combined Format-Type Defines
#define FNX_PCIE_XTR_FMT_TYPE_MRD_32 7'b0000000
#define FNX_PCIE_XTR_FMT_TYPE_MRD_64 7'b0100000
#define FNX_PCIE_XTR_FMT_TYPE_MRDLK_32 7'b0000001
#define FNX_PCIE_XTR_FMT_TYPE_MRDLK_64 7'b0100001
#define FNX_PCIE_XTR_FMT_TYPE_MWR_32 7'b1000000
#define FNX_PCIE_XTR_FMT_TYPE_MWR_64 7'b1100000
#define FNX_PCIE_XTR_FMT_TYPE_IORD 7'b0000010
#define FNX_PCIE_XTR_FMT_TYPE_IOWR 7'b1000010
#define FNX_PCIE_XTR_FMT_TYPE_CFGRD0 7'b0000100
#define FNX_PCIE_XTR_FMT_TYPE_CFGWR0 7'b1000100
#define FNX_PCIE_XTR_FMT_TYPE_CFGRD1 7'b0000101
#define FNX_PCIE_XTR_FMT_TYPE_CFGWR1 7'b1000101
#define FNX_PCIE_XTR_FMT_TYPE_MSG 7'b0110xxx
#define FNX_PCIE_XTR_FMT_TYPE_MSGD 7'b1110xxx
#define FNX_PCIE_XTR_FMT_TYPE_CPL 7'b0001010
#define FNX_PCIE_XTR_FMT_TYPE_CPLD 7'b1001010
#define FNX_PCIE_XTR_FMT_TYPE_CPLLK 7'b0001011
#define FNX_PCIE_XTR_FMT_TYPE_CPLDLK 7'b1001011
// TLP Fmt field slices
#define FNX_PCIE_XTR_FMT_DATA_SLC 1:1
#define FNX_PCIE_XTR_FMT_64BIT_SLC 0:0
#define FNX_PCIE_XTR_FMT_TYPE_MSG_FIXED 4'b0110
#define FNX_PCIE_XTR_FMT_TYPE_MSGD_FIXED 4'b1110
#define FNX_PCIE_XTR_FMT_TYPE_MSG_FIXED_SLC 6:3
#define FNX_PCIE_XTR_FMT_TYPE_MSGD_FIXED_SLC 6:3
#define FNX_PCIE_XTR_FMT_TYPE_MSG_ROUTING_SLC 2:0
// Message Code Defines
#define FNX_PCIE_XTR_MSG_CODE_INTX_ASSERT_A 8'b00100000
#define FNX_PCIE_XTR_MSG_CODE_INTX_ASSERT_B 8'b00100001
#define FNX_PCIE_XTR_MSG_CODE_INTX_ASSERT_C 8'b00100010
#define FNX_PCIE_XTR_MSG_CODE_INTX_ASSERT_D 8'b00100011
#define FNX_PCIE_XTR_MSG_CODE_INTX_DEASSERT_A 8'b00100100
#define FNX_PCIE_XTR_MSG_CODE_INTX_DEASSERT_B 8'b00100101
#define FNX_PCIE_XTR_MSG_CODE_INTX_DEASSERT_C 8'b00100110
#define FNX_PCIE_XTR_MSG_CODE_INTX_DEASSERT_D 8'b00100111
#define FNX_PCIE_XTR_MSG_CODE_PM_ACTIVE_STATE_NAK 8'b00010100
#define FNX_PCIE_XTR_MSG_CODE_PM_PME 8'b00011000
#define FNX_PCIE_XTR_MSG_CODE_PME_TURN_OFF 8'b00011001
#define FNX_PCIE_XTR_MSG_CODE_PME_TO_ACK 8'b00011011
#define FNX_PCIE_XTR_MSG_CODE_ERR_COR 8'b00110000
#define FNX_PCIE_XTR_MSG_CODE_ERR_NONFATAL 8'b00110001
#define FNX_PCIE_XTR_MSG_CODE_ERR_FATAL 8'b00110011
#define FNX_PCIE_XTR_MSG_CODE_LOCK_UNLOCK 8'b00000000
#define FNX_PCIE_XTR_MSG_CODE_SLOT_POWER_LIMIT 8'b01010000
#define FNX_PCIE_XTR_MSG_CODE_VD_TYPE0 8'b01111110
#define FNX_PCIE_XTR_MSG_CODE_VD_TYPE1 8'b01111111
#define FNX_PCIE_XTR_MSG_CODE_HP_POWER_ON 8'b01000101
#define FNX_PCIE_XTR_MSG_CODE_HP_POWER_OFF 8'b01000100
#define FNX_PCIE_XTR_MSG_CODE_HP_POWER_BLINK 8'b01000111
#define FNX_PCIE_XTR_MSG_CODE_HP_ATTENTION_PRESSED 8'b01001000
#define FNX_PCIE_XTR_MSG_CODE_HP_ATTENTION_ON 8'b01000001
#define FNX_PCIE_XTR_MSG_CODE_HP_ATTENTION_OFF 8'b01000000
#define FNX_PCIE_XTR_MSG_CODE_HP_ATTENTION_BLINK 8'b01000011
// Message Routing Defines
#define FNX_PCIE_XTR_MSG_ROUTING_ROUTED_TO_ROOT_CMPLX 3'b000
#define FNX_PCIE_XTR_MSG_ROUTING_ROUTED_BY_ADDR 3'b001
#define FNX_PCIE_XTR_MSG_ROUTING_ROUTED_BY_ID 3'b010
#define FNX_PCIE_XTR_MSG_ROUTING_BCAST_FROM_ROOT_CMPLX 3'b011
#define FNX_PCIE_XTR_MSG_ROUTING_LOCAL 3'b100
#define FNX_PCIE_XTR_MSG_ROUTING_GNR_TO_ROOT_CMPLX 3'b101
// PCI-E Xactor Header/Sub-Header Presence Defines
#define FNX_PCIE_XTR_NUM_HDRS 8
#define FNX_PCIE_XTR_CMN_HDR 0
#define FNX_PCIE_XTR_REQ_HDR 1
#define FNX_PCIE_XTR_BE_HDR 2
#define FNX_PCIE_XTR_MSG_HDR 3
#define FNX_PCIE_XTR_CMPL_HDR 4
#define FNX_PCIE_XTR_LOWER_ADDR_HDR 5
#define FNX_PCIE_XTR_UPPER_ADDR_HDR 6
#define FNX_PCIE_XTR_CFG_HDR 7
// TLP Common Header Field Slice Defines
#define FNX_PCIE_XTR_CMN_RESV_1_SLC 31:31
#define FNX_PCIE_XTR_CMN_FORMAT_SLC 30:29
#define FNX_PCIE_XTR_CMN_TYPE_SLC 28:24
#define FNX_PCIE_XTR_CMN_FMT_TYPE_SLC 30:24
#define FNX_PCIE_XTR_CMN_RESV_2_SLC 23:23
#define FNX_PCIE_XTR_CMN_TC_SLC 22:20
#define FNX_PCIE_XTR_CMN_RESV_3_SLC 19:16
#define FNX_PCIE_XTR_CMN_TD_SLC 15:15
#define FNX_PCIE_XTR_CMN_EP_SLC 14:14
#define FNX_PCIE_XTR_CMN_RO_SLC 13:13
#define FNX_PCIE_XTR_CMN_SNOOP_SLC 12:12
#define FNX_PCIE_XTR_CMN_ATTR_SLC 13:12
#define FNX_PCIE_XTR_CMN_RESV_4_SLC 11:10
#define FNX_PCIE_XTR_CMN_LENGTH_SLC 9:0
// Requester ID Internal Field Slices
#define FNX_PCIE_XTR_REQ_ID_BUS_NUM_INT_SLC 15:8
#define FNX_PCIE_XTR_REQ_ID_DEVICE_NUM_INT_SLC 7:3
#define FNX_PCIE_XTR_REQ_ID_FUNC_NUM_INT_SLC 2:0
// TLP Request Header Field Slice Defines
#define FNX_PCIE_XTR_REQ_REQUESTER_ID_SLC 31:16
#define FNX_PCIE_XTR_REQ_BUS_NUM_SLC 31:24
#define FNX_PCIE_XTR_REQ_DEVICE_NUM_SLC 23:19
#define FNX_PCIE_XTR_REQ_FUNC_NUM_SLC 18:16
#define FNX_PCIE_XTR_REQ_TAG_SLC 15:8
// TLP Byte Enable Header Field Slice Defines
#define FNX_PCIE_XTR_BE_LAST_DW_BE_SLC 7:4
#define FNX_PCIE_XTR_BE_FIRST_DW_BE_SLC 3:0
// TLP Message Header Field Slice Defines
#define FNX_PCIE_XTR_MSG_MESSAGE_CODE_SLC 7:0
#define FNX_PCIE_XTR_MSG_ROUTING_SLC 2:0
#define FNX_PCIE_XTR_MSG_CMN_ROUTING_SLC 26:24
// TLP Completion Header Field Slice Defines
#define FNX_PCIE_XTR_CMPL_COMPLETER_ID_SLC 31:16
#define FNX_PCIE_XTR_CMPL_CMPL_STATUS_SLC 15:13
#define FNX_PCIE_XTR_CMPL_BCM_SLC 12:12
#define FNX_PCIE_XTR_CMPL_BYTE_COUNT_SLC 11:0
#define FNX_PCIE_XTR_CMPL_RESV_5_SLC 7:7
#define FNX_PCIE_XTR_CMPL_LOWER_ADDR_SLC 6:0
// TLP Address Header Field Slice Defines
#define FNX_PCIE_XTR_ADDR_UPPER_ADDR_SLC 31:0
#define FNX_PCIE_XTR_ADDR_LOWER_ADDR_SLC 31:2
#define FNX_PCIE_XTR_ADDR_RESV_6_SLC 1:0
// TLP Configuration Request Header Field Slice Defines
#define FNX_PCIE_XTR_CFG_CONFIG_ID_SLC 31:16
#define FNX_PCIE_XTR_CFG_BUS_NUM_SLC 31:24
#define FNX_PCIE_XTR_CFG_DEVICE_NUM_SLC 23:19
#define FNX_PCIE_XTR_CFG_FUNC_NUM_SLC 18:16
#define FNX_PCIE_XTR_CFG_RESV_7_SLC 15:12
#define FNX_PCIE_XTR_CFG_EXT_REG_NUM_SLC 11:8
#define FNX_PCIE_XTR_CFG_REG_NUM_SLC 7:2
#define FNX_PCIE_XTR_CFG_RESV_8_SLC 1:0
// TLP Digest Field Slice Defines
#define FNX_PCIE_XTR_ECRC_SLC 31:0
#define FNX_PCIE_XTR_DLL_FRM_PREFIX_RESV_9_SLC 15:12
#define FNX_PCIE_XTR_DLL_FRM_PREFIX_SEQ_NUM_SLC 11:0
#define FNX_PCIE_XTR_DLL_FRM_LCRC_32_SLC 31:0
// Completion Status Encodings
#define FNX_PCIE_XTR_CMPL_STATUS_SC 3'b000
#define FNX_PCIE_XTR_CMPL_STATUS_UR 3'b001
#define FNX_PCIE_XTR_CMPL_STATUS_CRS 3'b010
#define FNX_PCIE_XTR_CMPL_STATUS_CA 3'b100
// FC Engine Defines
#define FNX_PCIE_XTR_NUM_FC_TYPES 6
#define FNX_PCIE_XTR_FC_TYPE_PH 0
#define FNX_PCIE_XTR_FC_TYPE_PD 1
#define FNX_PCIE_XTR_FC_TYPE_NPH 2
#define FNX_PCIE_XTR_FC_TYPE_NPD 3
#define FNX_PCIE_XTR_FC_TYPE_CPLH 4
#define FNX_PCIE_XTR_FC_TYPE_CPLD 5
/////////////////////////////////////////////////
// Begin -> Denali Register Defines
//
// General Denali Register Defines
#define FNX_PCIE_XTR_REG_DEN_WIDTH 32
// PCIE_REG_DEN_LTSSM_STATE
#define FNX_PCIE_XTR_REG_DEN_LTSSM_STATE_OLD_SLC 31:16
#define FNX_PCIE_XTR_REG_DEN_LTSSM_STATE_NEW_SLC 15:0
// PCIE_REG_DEN_DLCMSM_STATE
#define FNX_PCIE_XTR_REG_DEN_DLCMSM_STATE_OLD_SLC 31:16
#define FNX_PCIE_XTR_REG_DEN_DLCMSM_STATE_NEW_SLC 15:0
// PCIE_REG_DEN_TLPORT_STATE
#define FNX_PCIE_XTR_REG_DEN_TLPORT_STATE_OLD_SLC 31:16
#define FNX_PCIE_XTR_REG_DEN_TLPORT_STATE_NEW_SLC 15:0
// PCIE_REG_DEN_DEV_CTRL
#define FNX_PCIE_XTR_REG_DEN_DEV_CTRL_BUS_NUM_SLC 15:8
#define FNX_PCIE_XTR_REG_DEN_DEV_CTRL_DEVICE_NUM_SLC 7:3
#define FNX_PCIE_XTR_REG_DEN_DEV_CTRL_FUNC_NUM_SLC 2:0
// PCIE_REG_DEN_LINK_ST
#define FNX_PCIE_XTR_REG_DEN_LINK_ST_LINK_WIDTH 6
#define FNX_PCIE_XTR_REG_DEN_LINK_ST_LINK_NUM_WIDTH 8
#define FNX_PCIE_XTR_REG_DEN_LINK_ST_LANE_NUM_WIDTH 5
#define FNX_PCIE_XTR_REG_DEN_LINK_ST_LINK_UP_SLC 0:0
#define FNX_PCIE_XTR_REG_DEN_LINK_ST_LINK_WIDTH_SLC 6:1
#define FNX_PCIE_XTR_REG_DEN_LINK_ST_LINK_NUM_SLC 14:7
#define FNX_PCIE_XTR_REG_DEN_LINK_ST_LANE_NUM_SLC 19:15
#define FNX_PCIE_XTR_REG_DEN_LINK_ST_LANES_REVERSED_SLC 20:20
#define FNX_PCIE_XTR_REG_DEN_LINK_ST_SCRAMBLING_SLC 21:21
#define FNX_PCIE_XTR_REG_DEN_LINK_ST_LINK_TO_LO_SUCC_SLC 22:22
#define FNX_PCIE_XTR_REG_DEN_LINK_ST_LINK_TO_LOS_SUCC_SLC 23:23
#define FNX_PCIE_XTR_REG_DEN_LINK_ST_LINK_TO_L1_SUCC_SLC 24:24
#define FNX_PCIE_XTR_REG_DEN_LINK_ST_LINK_TO_L2_SUCC_SLC 25:25
#define FNX_PCIE_XTR_REG_DEN_LINK_ST_DL_LINK_UP_SLC 26:26
// PCIE_REG_DEN_ERROR_CTRL
#define FNX_PCIE_XTR_REG_DEN_ERROR_CTRL_ERR_ID_WIDTH 24
#define FNX_PCIE_XTR_REG_DEN_ERROR_CTRL_CBK_CTRL_WIDTH 1
#define FNX_PCIE_XTR_REG_DEN_ERROR_CTRL_ASSERT_CTRL_WIDTH 1
#define FNX_PCIE_XTR_REG_DEN_ERROR_CTRL_DIRECTION_WIDTH 2
#define FNX_PCIE_XTR_REG_DEN_ERROR_CTRL_SEV_WIDTH 4
#define FNX_PCIE_XTR_REG_DEN_ERROR_CTRL_ERR_ID_SLC 31:8
#define FNX_PCIE_XTR_REG_DEN_ERROR_CTRL_CBK_CTRL_SLC 7:7
#define FNX_PCIE_XTR_REG_DEN_ERROR_CTRL_ASSERT_CTRL_SLC 6:6
#define FNX_PCIE_XTR_REG_DEN_ERROR_CTRL_DIRECTION_SLC 5:4
#define FNX_PCIE_XTR_REG_DEN_ERROR_CTRL_SEV_SLC 3:0
// PCIE_REG_COMMAND
#define FNX_PCIE_XTR_REG_DEN_COMMAND_INT_DIS_WIDTH 1
#define FNX_PCIE_XTR_REG_DEN_COMMAND_SERR_EN_WIDTH 1
#define FNX_PCIE_XTR_REG_DEN_COMMAND_BM_EN_WIDTH 1
#define FNX_PCIE_XTR_REG_DEN_COMMAND_MEM_EN_WIDTH 1
#define FNX_PCIE_XTR_REG_DEN_COMMAND_IO_EN_WIDTH 1
#define FNX_PCIE_XTR_REG_DEN_COMMAND_INT_DIS_SLC 10:10
#define FNX_PCIE_XTR_REG_DEN_COMMAND_SERR_EN_SLC 8:8
#define FNX_PCIE_XTR_REG_DEN_COMMAND_BM_EN_SLC 2:2
#define FNX_PCIE_XTR_REG_DEN_COMMAND_MEM_EN_SLC 1:1
#define FNX_PCIE_XTR_REG_DEN_COMMAND_IO_EN_SLC 0:0
// PCIE_REG_EXP_LINK_CAP
#define FNX_PCIE_XTR_REG_DEN_EXP_LINK_CAP_PORT_NUM_WIDTH 8
#define FNX_PCIE_XTR_REG_DEN_EXP_LINK_CAP_L1_EXIT_LATENCY_WIDTH 3
#define FNX_PCIE_XTR_REG_DEN_EXP_LINK_CAP_L0S_EXIT_LATENCY_WIDTH 3
#define FNX_PCIE_XTR_REG_DEN_EXP_LINK_CAP_ASPM_SUPPORT_WIDTH 2
#define FNX_PCIE_XTR_REG_DEN_EXP_LINK_CAP_MAX_LINK_WIDTH_WIDTH 6
#define FNX_PCIE_XTR_REG_DEN_EXP_LINK_CAP_MAX_LINK_SPEED_WIDTH 4
#define FNX_PCIE_XTR_REG_DEN_EXP_LINK_CAP_PORT_NUM_SLC 31:24
#define FNX_PCIE_XTR_REG_DEN_EXP_LINK_CAP_L1_EXIT_LATENCY_SLC 17:15
#define FNX_PCIE_XTR_REG_DEN_EXP_LINK_CAP_L0S_EXIT_LATENCY_SLC 14:12
#define FNX_PCIE_XTR_REG_DEN_EXP_LINK_CAP_ASPM_SUPPORT_SLC 11:10
#define FNX_PCIE_XTR_REG_DEN_EXP_LINK_CAP_MAX_LINK_WIDTH_SLC 9:4
#define FNX_PCIE_XTR_REG_DEN_EXP_LINK_CAP_MAX_LINK_SPEED_SLC 3:0
// PCIE_REG_EXP_LINK_CTRL
#define FNX_PCIE_XTR_REG_DEN_EXP_LINK_CTRL_EXT_SYNC_WIDTH 1
#define FNX_PCIE_XTR_REG_DEN_EXP_LINK_CTRL_CMN_CLK_CFG_WIDTH 1
#define FNX_PCIE_XTR_REG_DEN_EXP_LINK_CTRL_RETRAIN_LINK 1
#define FNX_PCIE_XTR_REG_DEN_EXP_LINK_CTRL_LINK_DISABLE_WIDTH 1
#define FNX_PCIE_XTR_REG_DEN_EXP_LINK_CTRL_RCB_WIDTH 1
#define FNX_PCIE_XTR_REG_DEN_EXP_LINK_CTRL_ASPM_CTRL_WIDTH 2
#define FNX_PCIE_XTR_REG_DEN_EXP_LINK_CTRL_EXT_SYNC_SLC 7:7
#define FNX_PCIE_XTR_REG_DEN_EXP_LINK_CTRL_CMN_CLK_CFG_SLC 6:6
#define FNX_PCIE_XTR_REG_DEN_EXP_LINK_CTRL_RETRAIN_LINK_SLC 5:5
#define FNX_PCIE_XTR_REG_DEN_EXP_LINK_CTRL_LINK_DISABLE_SLC 4:4
#define FNX_PCIE_XTR_REG_DEN_EXP_LINK_CTRL_RCB_SLC 3:3
#define FNX_PCIE_XTR_REG_DEN_EXP_LINK_CTRL_ASPM_CTRL_SLC 1:0
// PCIE_REG_DEN_FC_CTRL
#define FNX_PCIE_XTR_REG_DEN_FC_CTRL_TIMER_VAL_WIDTH 16
#define FNX_PCIE_XTR_REG_DEN_FC_CTRL_DATA_VAL_WIDTH 12
#define FNX_PCIE_XTR_REG_DEN_FC_CTRL_FC_TYPE_WIDTH 4
#define FNX_PCIE_XTR_REG_DEN_FC_CTRL_VC_WIDTH 4
#define FNX_PCIE_XTR_REG_DEN_FC_CTRL_FC_ID_WIDTH 4
#define FNX_PCIE_XTR_REG_DEN_FC_CTRL_FC_CMD_WIDTH 4
#define FNX_PCIE_XTR_REG_DEN_FC_CTRL_TIMER_VAL_SLC 31:16
#define FNX_PCIE_XTR_REG_DEN_FC_CTRL_DATA_VAL_SLC 31:20
#define FNX_PCIE_XTR_REG_DEN_FC_CTRL_FC_ID_SLC 19:16
#define FNX_PCIE_XTR_REG_DEN_FC_CTRL_FC_TYPE_SLC 15:12
#define FNX_PCIE_XTR_REG_DEN_FC_CTRL_VC_SLC 11:8
#define FNX_PCIE_XTR_REG_DEN_FC_CTRL_FC_CMD_SLC 3:0
// PCIE_REG_DEN_FC_CTRL
#define FNX_PCIE_XTR_REG_DEN_FC_CTRL_FC_OP_SLC 7:0
// PCIE_REG_DEN_LINK_CTRL
#define FNX_PCIE_XTR_REG_DEN_LINK_CTRL_TS_HOT_RST_SLC 0:0
#define FNX_PCIE_XTR_REG_DEN_LINK_CTRL_TS_DISABLE_LINK_SLC 1:1
#define FNX_PCIE_XTR_REG_DEN_LINK_CTRL_TS_LOOPBACK_SLC 2:2
#define FNX_PCIE_XTR_REG_DEN_LINK_CTRL_TS_DISABLE_SCRAMBLING_SLC 3:3
#define FNX_PCIE_XTR_REG_DEN_LINK_CTRL_TS_ENABLE_LOOPBACK_MSTR_SLC 4:4
#define FNX_PCIE_XTR_REG_DEN_LINK_CTRL_ENABLE_LOOPBACK_SLV_SLC 5:5
#define FNX_PCIE_XTR_REG_DEN_LINK_CTRL_ENABLE_CROSSLINK_SLC 6:6
#define FNX_PCIE_XTR_REG_DEN_LINK_CTRL_GOTO_L0_SLC 7:7
#define FNX_PCIE_XTR_REG_DEN_LINK_CTRL_GOTO_L0S_SLC 8:8
#define FNX_PCIE_XTR_REG_DEN_LINK_CTRL_GOTO_L1_ASPM_SLC 9:9
#define FNX_PCIE_XTR_REG_DEN_LINK_CTRL_GOTO_L1_SLC 10:10
#define FNX_PCIE_XTR_REG_DEN_LINK_CTRL_GOTO_L2_SLC 11:11
#define FNX_PCIE_XTR_REG_DEN_LINK_CTRL_GOTO_RECOVERY_SLC 12:12
#define FNX_PCIE_XTR_REG_DEN_LINK_CTRL_GOTO_CONFIG_SLC 13:13
//
// End -> Denali Register Defines
/////////////////////////////////////////////////
/////////////////////////////////////////////////////////
// Begin -> PCI Defines
//
// PCI BAR Width Defines
#define FNX_PCIE_XTR_PCI_BAR_WIDTH 32
#define FNX_PCIE_XTR_PCI_BAR_DECODER_TYPE_WIDTH 1
#define FNX_PCIE_XTR_PCI_BAR_TYPE_WIDTH 2
#define FNX_PCIE_XTR_PCI_BAR_PREFETCHABLE_WIDTH 1
#define FNX_PCIE_XTR_PCI_BAR_LOWER_ADDR_WIDTH 28
#define FNX_PCIE_XTR_PCI_BAR_UPPER_ADDR_WIDTH 32
// PCI BAR Slice Defines
#define FNX_PCIE_XTR_PCI_BAR_DECODER_TYPE_SLC 0:0
#define FNX_PCIE_XTR_PCI_BAR_TYPE_SLC 2:1
#define FNX_PCIE_XTR_PCI_BAR_PREFETCHABLE_SLC 3:3
#define FNX_PCIE_XTR_PCI_BAR_LOWER_ADDR_SLC 31:4
#define FNX_PCIE_XTR_PCI_BAR_UPPER_ADDR_SLC 31:0
// PCI BAR Decoder Type Defines
#define FNX_PCIE_XTR_PCI_BAR_DECODER_TYPE_MEM 1'b0
#define FNX_PCIE_XTR_PCI_BAR_DECODER_TYPE_IO 1'b1
// PCI BAR Type Defines
#define FNX_PCIE_XTR_PCI_BAR_TYPE_32_BIT 2'b00
#define FNX_PCIE_XTR_PCI_BAR_TYPE_BELOW_1MB 2'b01
#define FNX_PCIE_XTR_PCI_BAR_TYPE_64_BIT 2'b10
#define FNX_PCIE_XTR_PCI_BAR_TYPE_RESV 2'b11
// PCI BAR Prefetchable Defines
#define FNX_PCIE_XTR_PCI_BAR_NOT_PREFETCHABLE 1'b0
#define FNX_PCIE_XTR_PCI_BAR_PREFETCHABLE 1'b1
//
// End -> PCI Defines
/////////////////////////////////////////////////////////
// Denali Model Init Defaults
#define FNX_PCIE_XTR_DEFAULT_BUS_NUM 8'h0
#define FNX_PCIE_XTR_DEFAULT_FUNC_NUM 3'h0
#define FNX_PCIE_XTR_DEFAULT_BAR_64_SIZE 36
#define FNX_PCIE_XTR_DEFAULT_BAR_64_OFFSET 64'h0
// Statistic Tracking Defines
#define FNX_PCIE_XTR_NUM_STAT_DIRS 2
#define FNX_PCIE_XTR_STAT_DIR_XMIT 0
#define FNX_PCIE_XTR_STAT_DIR_RCV 1
#define FNX_PCIE_XTR_NUM_STAT_TYPES 4
#define FNX_PCIE_XTR_STAT_TYPE_MIN 0
#define FNX_PCIE_XTR_STAT_TYPE_MAX 1
#define FNX_PCIE_XTR_STAT_TYPE_TOTAL 2
#define FNX_PCIE_XTR_STAT_TYPE_AVG 3
// Misc Port Widths
#define FNX_PCIE_XTR_RCV_DET_LANES_WIDTH 8
#endif // _FNX_PCIE_XTR_EXT_DEFINES_VRI_