// ========== 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_