// ========== Copyright Header Begin ==========================================
// OpenSPARC T2 Processor File: ccx.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
// ========== Copyright Header End ============================================
//----------------------------------------------------------
// CCX Req/Resp Pkt Types Defines
`define CCX_REQ_LD 5'b00000
`define CCX_REQ_PREF 5'b00000
`define CCX_REQ_DIAG_LD 5'b00000
`define CCX_REQ_D_INVAL 5'b00000
`define CCX_REQ_IFILL 5'b10000
`define CCX_REQ_I_INVAL 5'b10000
`define CCX_REQ_ST 5'b00001
`define CCX_REQ_BLK_ST 5'b00001
`define CCX_REQ_DIAG_ST 5'b00001
`define CCX_REQ_CAS1 5'b00010
`define CCX_REQ_CAS2 5'b00011
`define CCX_REQ_SWAP 5'b00111
`define CCX_REQ_STR_LD 5'b00100
`define CCX_REQ_STR_ST 5'b00101
`define CCX_REQ_INTR 5'b01001
`define CCX_REQ_FLUSH 5'b01001
`define CCX_REQ_MMU_LD 5'b01000
`define CCX_RESP_LD 4'b0000
`define CCX_RESP_PREF 4'b0000
`define CCX_RESP_DIAG_LD 4'b0000
`define CCX_RESP_NCU_LD 4'b1000
`define CCX_RESP_D_INVAL 4'b0100
`define CCX_RESP_IFILL 4'b0001
`define CCX_RESP_NCU_IFILL 4'b1001
`define CCX_RESP_I_INVAL 4'b0100
`define CCX_RESP_ST 4'b0100
`define CCX_RESP_BLK_ST 4'b0100
`define CCX_RESP_DIAG_ST 4'b0100
`define CCX_RESP_CAS_RTN 4'b0000
`define CCX_RESP_CAS_ACK 4'b0100
`define CCX_RESP_SWAP_RTN 4'b0000
`define CCX_RESP_SWAP_ACK 4'b0100
`define CCX_RESP_STR_LD 4'b0010
`define CCX_RESP_STR_ST 4'b0110
`define CCX_RESP_MMU_RTN 4'b0101
`define CCX_RESP_INTR 4'b0111
`define CCX_RESP_EVICT 4'b0011
`define CCX_RESP_ERROR_L2 4'b1100
`define CCX_RESP_ERROR_SOC 4'b1101
//----------------------------------------------------------
// PCX packet bit indexes
`define PCX_RQTYP 128:124
//----------------------------------------------------------
// CPX packet bit indexes
`define CPX_RTNTYP 144:141
`define CPX_VACK_INVAL 124:123
`define CPX_VACK_CID 120:118
`define CPX_VACK_BMASK 103:96
`define CPX_VACK_VECT 95:64
`define CPX_VACK_DATA 63:0
// Bit fields in Vack Inval Vector
`define CPX_VINV_VECT 111:0
// Bit fields in Vack Inval Vector
// (inval.vector addr[5:4]=3|1 from eviction invalidation pkt)
`define CPX_D_INV7_ALT 21
`define CPX_D_INV6_ALT 18
`define CPX_D_INV5_ALT 15
`define CPX_D_INV4_ALT 12
//----------------------------------------------------------
`define INTR_RESUME 2'b11
`define INTR_POR 6'b000001
`define INTR_XIR 6'b000011
//----------------------------------------------------------
//----------------------------------------------------------