1215976Sjmallett/***********************license start*************** 2232812Sjmallett * Copyright (c) 2003-2012 Cavium Inc. (support@cavium.com). All rights 3215976Sjmallett * reserved. 4215976Sjmallett * 5215976Sjmallett * 6215976Sjmallett * Redistribution and use in source and binary forms, with or without 7215976Sjmallett * modification, are permitted provided that the following conditions are 8215976Sjmallett * met: 9215976Sjmallett * 10215976Sjmallett * * Redistributions of source code must retain the above copyright 11215976Sjmallett * notice, this list of conditions and the following disclaimer. 12215976Sjmallett * 13215976Sjmallett * * Redistributions in binary form must reproduce the above 14215976Sjmallett * copyright notice, this list of conditions and the following 15215976Sjmallett * disclaimer in the documentation and/or other materials provided 16215976Sjmallett * with the distribution. 17215976Sjmallett 18232812Sjmallett * * Neither the name of Cavium Inc. nor the names of 19215976Sjmallett * its contributors may be used to endorse or promote products 20215976Sjmallett * derived from this software without specific prior written 21215976Sjmallett * permission. 22215976Sjmallett 23215976Sjmallett * This Software, including technical data, may be subject to U.S. export control 24215976Sjmallett * laws, including the U.S. Export Administration Act and its associated 25215976Sjmallett * regulations, and may be subject to export or import regulations in other 26215976Sjmallett * countries. 27215976Sjmallett 28215976Sjmallett * TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE SOFTWARE IS PROVIDED "AS IS" 29232812Sjmallett * AND WITH ALL FAULTS AND CAVIUM INC. MAKES NO PROMISES, REPRESENTATIONS OR 30215976Sjmallett * WARRANTIES, EITHER EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE, WITH RESPECT TO 31215976Sjmallett * THE SOFTWARE, INCLUDING ITS CONDITION, ITS CONFORMITY TO ANY REPRESENTATION OR 32215976Sjmallett * DESCRIPTION, OR THE EXISTENCE OF ANY LATENT OR PATENT DEFECTS, AND CAVIUM 33215976Sjmallett * SPECIFICALLY DISCLAIMS ALL IMPLIED (IF ANY) WARRANTIES OF TITLE, 34215976Sjmallett * MERCHANTABILITY, NONINFRINGEMENT, FITNESS FOR A PARTICULAR PURPOSE, LACK OF 35215976Sjmallett * VIRUSES, ACCURACY OR COMPLETENESS, QUIET ENJOYMENT, QUIET POSSESSION OR 36215976Sjmallett * CORRESPONDENCE TO DESCRIPTION. THE ENTIRE RISK ARISING OUT OF USE OR 37215976Sjmallett * PERFORMANCE OF THE SOFTWARE LIES WITH YOU. 38215976Sjmallett ***********************license end**************************************/ 39215976Sjmallett 40215976Sjmallett 41215976Sjmallett/** 42215976Sjmallett * cvmx-pescx-defs.h 43215976Sjmallett * 44215976Sjmallett * Configuration and status register (CSR) type definitions for 45215976Sjmallett * Octeon pescx. 46215976Sjmallett * 47215976Sjmallett * This file is auto generated. Do not edit. 48215976Sjmallett * 49215976Sjmallett * <hr>$Revision$<hr> 50215976Sjmallett * 51215976Sjmallett */ 52232812Sjmallett#ifndef __CVMX_PESCX_DEFS_H__ 53232812Sjmallett#define __CVMX_PESCX_DEFS_H__ 54215976Sjmallett 55215976Sjmallett#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 56215976Sjmallettstatic inline uint64_t CVMX_PESCX_BIST_STATUS(unsigned long block_id) 57215976Sjmallett{ 58215976Sjmallett if (!( 59215976Sjmallett (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) || 60215976Sjmallett (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))))) 61215976Sjmallett cvmx_warn("CVMX_PESCX_BIST_STATUS(%lu) is invalid on this chip\n", block_id); 62215976Sjmallett return CVMX_ADD_IO_SEG(0x00011800C8000018ull) + ((block_id) & 1) * 0x8000000ull; 63215976Sjmallett} 64215976Sjmallett#else 65215976Sjmallett#define CVMX_PESCX_BIST_STATUS(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000018ull) + ((block_id) & 1) * 0x8000000ull) 66215976Sjmallett#endif 67215976Sjmallett#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 68215976Sjmallettstatic inline uint64_t CVMX_PESCX_BIST_STATUS2(unsigned long block_id) 69215976Sjmallett{ 70215976Sjmallett if (!( 71215976Sjmallett (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) || 72215976Sjmallett (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))))) 73215976Sjmallett cvmx_warn("CVMX_PESCX_BIST_STATUS2(%lu) is invalid on this chip\n", block_id); 74215976Sjmallett return CVMX_ADD_IO_SEG(0x00011800C8000418ull) + ((block_id) & 1) * 0x8000000ull; 75215976Sjmallett} 76215976Sjmallett#else 77215976Sjmallett#define CVMX_PESCX_BIST_STATUS2(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000418ull) + ((block_id) & 1) * 0x8000000ull) 78215976Sjmallett#endif 79215976Sjmallett#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 80215976Sjmallettstatic inline uint64_t CVMX_PESCX_CFG_RD(unsigned long block_id) 81215976Sjmallett{ 82215976Sjmallett if (!( 83215976Sjmallett (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) || 84215976Sjmallett (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))))) 85215976Sjmallett cvmx_warn("CVMX_PESCX_CFG_RD(%lu) is invalid on this chip\n", block_id); 86215976Sjmallett return CVMX_ADD_IO_SEG(0x00011800C8000030ull) + ((block_id) & 1) * 0x8000000ull; 87215976Sjmallett} 88215976Sjmallett#else 89215976Sjmallett#define CVMX_PESCX_CFG_RD(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000030ull) + ((block_id) & 1) * 0x8000000ull) 90215976Sjmallett#endif 91215976Sjmallett#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 92215976Sjmallettstatic inline uint64_t CVMX_PESCX_CFG_WR(unsigned long block_id) 93215976Sjmallett{ 94215976Sjmallett if (!( 95215976Sjmallett (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) || 96215976Sjmallett (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))))) 97215976Sjmallett cvmx_warn("CVMX_PESCX_CFG_WR(%lu) is invalid on this chip\n", block_id); 98215976Sjmallett return CVMX_ADD_IO_SEG(0x00011800C8000028ull) + ((block_id) & 1) * 0x8000000ull; 99215976Sjmallett} 100215976Sjmallett#else 101215976Sjmallett#define CVMX_PESCX_CFG_WR(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000028ull) + ((block_id) & 1) * 0x8000000ull) 102215976Sjmallett#endif 103215976Sjmallett#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 104215976Sjmallettstatic inline uint64_t CVMX_PESCX_CPL_LUT_VALID(unsigned long block_id) 105215976Sjmallett{ 106215976Sjmallett if (!( 107215976Sjmallett (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) || 108215976Sjmallett (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))))) 109215976Sjmallett cvmx_warn("CVMX_PESCX_CPL_LUT_VALID(%lu) is invalid on this chip\n", block_id); 110215976Sjmallett return CVMX_ADD_IO_SEG(0x00011800C8000098ull) + ((block_id) & 1) * 0x8000000ull; 111215976Sjmallett} 112215976Sjmallett#else 113215976Sjmallett#define CVMX_PESCX_CPL_LUT_VALID(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000098ull) + ((block_id) & 1) * 0x8000000ull) 114215976Sjmallett#endif 115215976Sjmallett#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 116215976Sjmallettstatic inline uint64_t CVMX_PESCX_CTL_STATUS(unsigned long block_id) 117215976Sjmallett{ 118215976Sjmallett if (!( 119215976Sjmallett (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) || 120215976Sjmallett (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))))) 121215976Sjmallett cvmx_warn("CVMX_PESCX_CTL_STATUS(%lu) is invalid on this chip\n", block_id); 122215976Sjmallett return CVMX_ADD_IO_SEG(0x00011800C8000000ull) + ((block_id) & 1) * 0x8000000ull; 123215976Sjmallett} 124215976Sjmallett#else 125215976Sjmallett#define CVMX_PESCX_CTL_STATUS(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000000ull) + ((block_id) & 1) * 0x8000000ull) 126215976Sjmallett#endif 127215976Sjmallett#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 128215976Sjmallettstatic inline uint64_t CVMX_PESCX_CTL_STATUS2(unsigned long block_id) 129215976Sjmallett{ 130215976Sjmallett if (!( 131215976Sjmallett (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) || 132215976Sjmallett (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))))) 133215976Sjmallett cvmx_warn("CVMX_PESCX_CTL_STATUS2(%lu) is invalid on this chip\n", block_id); 134215976Sjmallett return CVMX_ADD_IO_SEG(0x00011800C8000400ull) + ((block_id) & 1) * 0x8000000ull; 135215976Sjmallett} 136215976Sjmallett#else 137215976Sjmallett#define CVMX_PESCX_CTL_STATUS2(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000400ull) + ((block_id) & 1) * 0x8000000ull) 138215976Sjmallett#endif 139215976Sjmallett#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 140215976Sjmallettstatic inline uint64_t CVMX_PESCX_DBG_INFO(unsigned long block_id) 141215976Sjmallett{ 142215976Sjmallett if (!( 143215976Sjmallett (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) || 144215976Sjmallett (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))))) 145215976Sjmallett cvmx_warn("CVMX_PESCX_DBG_INFO(%lu) is invalid on this chip\n", block_id); 146215976Sjmallett return CVMX_ADD_IO_SEG(0x00011800C8000008ull) + ((block_id) & 1) * 0x8000000ull; 147215976Sjmallett} 148215976Sjmallett#else 149215976Sjmallett#define CVMX_PESCX_DBG_INFO(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000008ull) + ((block_id) & 1) * 0x8000000ull) 150215976Sjmallett#endif 151215976Sjmallett#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 152215976Sjmallettstatic inline uint64_t CVMX_PESCX_DBG_INFO_EN(unsigned long block_id) 153215976Sjmallett{ 154215976Sjmallett if (!( 155215976Sjmallett (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) || 156215976Sjmallett (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))))) 157215976Sjmallett cvmx_warn("CVMX_PESCX_DBG_INFO_EN(%lu) is invalid on this chip\n", block_id); 158215976Sjmallett return CVMX_ADD_IO_SEG(0x00011800C80000A0ull) + ((block_id) & 1) * 0x8000000ull; 159215976Sjmallett} 160215976Sjmallett#else 161215976Sjmallett#define CVMX_PESCX_DBG_INFO_EN(block_id) (CVMX_ADD_IO_SEG(0x00011800C80000A0ull) + ((block_id) & 1) * 0x8000000ull) 162215976Sjmallett#endif 163215976Sjmallett#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 164215976Sjmallettstatic inline uint64_t CVMX_PESCX_DIAG_STATUS(unsigned long block_id) 165215976Sjmallett{ 166215976Sjmallett if (!( 167215976Sjmallett (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) || 168215976Sjmallett (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))))) 169215976Sjmallett cvmx_warn("CVMX_PESCX_DIAG_STATUS(%lu) is invalid on this chip\n", block_id); 170215976Sjmallett return CVMX_ADD_IO_SEG(0x00011800C8000020ull) + ((block_id) & 1) * 0x8000000ull; 171215976Sjmallett} 172215976Sjmallett#else 173215976Sjmallett#define CVMX_PESCX_DIAG_STATUS(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000020ull) + ((block_id) & 1) * 0x8000000ull) 174215976Sjmallett#endif 175215976Sjmallett#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 176215976Sjmallettstatic inline uint64_t CVMX_PESCX_P2N_BAR0_START(unsigned long block_id) 177215976Sjmallett{ 178215976Sjmallett if (!( 179215976Sjmallett (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) || 180215976Sjmallett (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))))) 181215976Sjmallett cvmx_warn("CVMX_PESCX_P2N_BAR0_START(%lu) is invalid on this chip\n", block_id); 182215976Sjmallett return CVMX_ADD_IO_SEG(0x00011800C8000080ull) + ((block_id) & 1) * 0x8000000ull; 183215976Sjmallett} 184215976Sjmallett#else 185215976Sjmallett#define CVMX_PESCX_P2N_BAR0_START(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000080ull) + ((block_id) & 1) * 0x8000000ull) 186215976Sjmallett#endif 187215976Sjmallett#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 188215976Sjmallettstatic inline uint64_t CVMX_PESCX_P2N_BAR1_START(unsigned long block_id) 189215976Sjmallett{ 190215976Sjmallett if (!( 191215976Sjmallett (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) || 192215976Sjmallett (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))))) 193215976Sjmallett cvmx_warn("CVMX_PESCX_P2N_BAR1_START(%lu) is invalid on this chip\n", block_id); 194215976Sjmallett return CVMX_ADD_IO_SEG(0x00011800C8000088ull) + ((block_id) & 1) * 0x8000000ull; 195215976Sjmallett} 196215976Sjmallett#else 197215976Sjmallett#define CVMX_PESCX_P2N_BAR1_START(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000088ull) + ((block_id) & 1) * 0x8000000ull) 198215976Sjmallett#endif 199215976Sjmallett#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 200215976Sjmallettstatic inline uint64_t CVMX_PESCX_P2N_BAR2_START(unsigned long block_id) 201215976Sjmallett{ 202215976Sjmallett if (!( 203215976Sjmallett (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) || 204215976Sjmallett (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))))) 205215976Sjmallett cvmx_warn("CVMX_PESCX_P2N_BAR2_START(%lu) is invalid on this chip\n", block_id); 206215976Sjmallett return CVMX_ADD_IO_SEG(0x00011800C8000090ull) + ((block_id) & 1) * 0x8000000ull; 207215976Sjmallett} 208215976Sjmallett#else 209215976Sjmallett#define CVMX_PESCX_P2N_BAR2_START(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000090ull) + ((block_id) & 1) * 0x8000000ull) 210215976Sjmallett#endif 211215976Sjmallett#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 212215976Sjmallettstatic inline uint64_t CVMX_PESCX_P2P_BARX_END(unsigned long offset, unsigned long block_id) 213215976Sjmallett{ 214215976Sjmallett if (!( 215215976Sjmallett (OCTEON_IS_MODEL(OCTEON_CN52XX) && (((offset <= 3)) && ((block_id <= 1)))) || 216215976Sjmallett (OCTEON_IS_MODEL(OCTEON_CN56XX) && (((offset <= 3)) && ((block_id <= 1)))))) 217215976Sjmallett cvmx_warn("CVMX_PESCX_P2P_BARX_END(%lu,%lu) is invalid on this chip\n", offset, block_id); 218215976Sjmallett return CVMX_ADD_IO_SEG(0x00011800C8000048ull) + (((offset) & 3) + ((block_id) & 1) * 0x800000ull) * 16; 219215976Sjmallett} 220215976Sjmallett#else 221215976Sjmallett#define CVMX_PESCX_P2P_BARX_END(offset, block_id) (CVMX_ADD_IO_SEG(0x00011800C8000048ull) + (((offset) & 3) + ((block_id) & 1) * 0x800000ull) * 16) 222215976Sjmallett#endif 223215976Sjmallett#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 224215976Sjmallettstatic inline uint64_t CVMX_PESCX_P2P_BARX_START(unsigned long offset, unsigned long block_id) 225215976Sjmallett{ 226215976Sjmallett if (!( 227215976Sjmallett (OCTEON_IS_MODEL(OCTEON_CN52XX) && (((offset <= 3)) && ((block_id <= 1)))) || 228215976Sjmallett (OCTEON_IS_MODEL(OCTEON_CN56XX) && (((offset <= 3)) && ((block_id <= 1)))))) 229215976Sjmallett cvmx_warn("CVMX_PESCX_P2P_BARX_START(%lu,%lu) is invalid on this chip\n", offset, block_id); 230215976Sjmallett return CVMX_ADD_IO_SEG(0x00011800C8000040ull) + (((offset) & 3) + ((block_id) & 1) * 0x800000ull) * 16; 231215976Sjmallett} 232215976Sjmallett#else 233215976Sjmallett#define CVMX_PESCX_P2P_BARX_START(offset, block_id) (CVMX_ADD_IO_SEG(0x00011800C8000040ull) + (((offset) & 3) + ((block_id) & 1) * 0x800000ull) * 16) 234215976Sjmallett#endif 235215976Sjmallett#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 236215976Sjmallettstatic inline uint64_t CVMX_PESCX_TLP_CREDITS(unsigned long block_id) 237215976Sjmallett{ 238215976Sjmallett if (!( 239215976Sjmallett (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) || 240215976Sjmallett (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))))) 241215976Sjmallett cvmx_warn("CVMX_PESCX_TLP_CREDITS(%lu) is invalid on this chip\n", block_id); 242215976Sjmallett return CVMX_ADD_IO_SEG(0x00011800C8000038ull) + ((block_id) & 1) * 0x8000000ull; 243215976Sjmallett} 244215976Sjmallett#else 245215976Sjmallett#define CVMX_PESCX_TLP_CREDITS(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000038ull) + ((block_id) & 1) * 0x8000000ull) 246215976Sjmallett#endif 247215976Sjmallett 248215976Sjmallett/** 249215976Sjmallett * cvmx_pesc#_bist_status 250215976Sjmallett * 251215976Sjmallett * PESC_BIST_STATUS = PESC Bist Status 252215976Sjmallett * 253215976Sjmallett * Contains the diffrent interrupt summary bits of the PESC. 254215976Sjmallett */ 255232812Sjmallettunion cvmx_pescx_bist_status { 256215976Sjmallett uint64_t u64; 257232812Sjmallett struct cvmx_pescx_bist_status_s { 258232812Sjmallett#ifdef __BIG_ENDIAN_BITFIELD 259215976Sjmallett uint64_t reserved_13_63 : 51; 260215976Sjmallett uint64_t rqdata5 : 1; /**< Rx Queue Data Memory5. */ 261215976Sjmallett uint64_t ctlp_or : 1; /**< C-TLP Order Fifo. */ 262215976Sjmallett uint64_t ntlp_or : 1; /**< N-TLP Order Fifo. */ 263215976Sjmallett uint64_t ptlp_or : 1; /**< P-TLP Order Fifo. */ 264215976Sjmallett uint64_t retry : 1; /**< Retry Buffer. */ 265215976Sjmallett uint64_t rqdata0 : 1; /**< Rx Queue Data Memory0. */ 266215976Sjmallett uint64_t rqdata1 : 1; /**< Rx Queue Data Memory1. */ 267215976Sjmallett uint64_t rqdata2 : 1; /**< Rx Queue Data Memory2. */ 268215976Sjmallett uint64_t rqdata3 : 1; /**< Rx Queue Data Memory3. */ 269215976Sjmallett uint64_t rqdata4 : 1; /**< Rx Queue Data Memory4. */ 270215976Sjmallett uint64_t rqhdr1 : 1; /**< Rx Queue Header1. */ 271215976Sjmallett uint64_t rqhdr0 : 1; /**< Rx Queue Header0. */ 272215976Sjmallett uint64_t sot : 1; /**< SOT Buffer. */ 273215976Sjmallett#else 274215976Sjmallett uint64_t sot : 1; 275215976Sjmallett uint64_t rqhdr0 : 1; 276215976Sjmallett uint64_t rqhdr1 : 1; 277215976Sjmallett uint64_t rqdata4 : 1; 278215976Sjmallett uint64_t rqdata3 : 1; 279215976Sjmallett uint64_t rqdata2 : 1; 280215976Sjmallett uint64_t rqdata1 : 1; 281215976Sjmallett uint64_t rqdata0 : 1; 282215976Sjmallett uint64_t retry : 1; 283215976Sjmallett uint64_t ptlp_or : 1; 284215976Sjmallett uint64_t ntlp_or : 1; 285215976Sjmallett uint64_t ctlp_or : 1; 286215976Sjmallett uint64_t rqdata5 : 1; 287215976Sjmallett uint64_t reserved_13_63 : 51; 288215976Sjmallett#endif 289215976Sjmallett } s; 290215976Sjmallett struct cvmx_pescx_bist_status_s cn52xx; 291232812Sjmallett struct cvmx_pescx_bist_status_cn52xxp1 { 292232812Sjmallett#ifdef __BIG_ENDIAN_BITFIELD 293215976Sjmallett uint64_t reserved_12_63 : 52; 294215976Sjmallett uint64_t ctlp_or : 1; /**< C-TLP Order Fifo. */ 295215976Sjmallett uint64_t ntlp_or : 1; /**< N-TLP Order Fifo. */ 296215976Sjmallett uint64_t ptlp_or : 1; /**< P-TLP Order Fifo. */ 297215976Sjmallett uint64_t retry : 1; /**< Retry Buffer. */ 298215976Sjmallett uint64_t rqdata0 : 1; /**< Rx Queue Data Memory0. */ 299215976Sjmallett uint64_t rqdata1 : 1; /**< Rx Queue Data Memory1. */ 300215976Sjmallett uint64_t rqdata2 : 1; /**< Rx Queue Data Memory2. */ 301215976Sjmallett uint64_t rqdata3 : 1; /**< Rx Queue Data Memory3. */ 302215976Sjmallett uint64_t rqdata4 : 1; /**< Rx Queue Data Memory4. */ 303215976Sjmallett uint64_t rqhdr1 : 1; /**< Rx Queue Header1. */ 304215976Sjmallett uint64_t rqhdr0 : 1; /**< Rx Queue Header0. */ 305215976Sjmallett uint64_t sot : 1; /**< SOT Buffer. */ 306215976Sjmallett#else 307215976Sjmallett uint64_t sot : 1; 308215976Sjmallett uint64_t rqhdr0 : 1; 309215976Sjmallett uint64_t rqhdr1 : 1; 310215976Sjmallett uint64_t rqdata4 : 1; 311215976Sjmallett uint64_t rqdata3 : 1; 312215976Sjmallett uint64_t rqdata2 : 1; 313215976Sjmallett uint64_t rqdata1 : 1; 314215976Sjmallett uint64_t rqdata0 : 1; 315215976Sjmallett uint64_t retry : 1; 316215976Sjmallett uint64_t ptlp_or : 1; 317215976Sjmallett uint64_t ntlp_or : 1; 318215976Sjmallett uint64_t ctlp_or : 1; 319215976Sjmallett uint64_t reserved_12_63 : 52; 320215976Sjmallett#endif 321215976Sjmallett } cn52xxp1; 322215976Sjmallett struct cvmx_pescx_bist_status_s cn56xx; 323215976Sjmallett struct cvmx_pescx_bist_status_cn52xxp1 cn56xxp1; 324215976Sjmallett}; 325215976Sjmalletttypedef union cvmx_pescx_bist_status cvmx_pescx_bist_status_t; 326215976Sjmallett 327215976Sjmallett/** 328215976Sjmallett * cvmx_pesc#_bist_status2 329215976Sjmallett * 330215976Sjmallett * PESC(0..1)_BIST_STATUS2 = PESC BIST Status Register 331215976Sjmallett * 332215976Sjmallett * Results from BIST runs of PESC's memories. 333215976Sjmallett */ 334232812Sjmallettunion cvmx_pescx_bist_status2 { 335215976Sjmallett uint64_t u64; 336232812Sjmallett struct cvmx_pescx_bist_status2_s { 337232812Sjmallett#ifdef __BIG_ENDIAN_BITFIELD 338215976Sjmallett uint64_t reserved_14_63 : 50; 339215976Sjmallett uint64_t cto_p2e : 1; /**< BIST Status for the cto_p2e_fifo */ 340215976Sjmallett uint64_t e2p_cpl : 1; /**< BIST Status for the e2p_cpl_fifo */ 341215976Sjmallett uint64_t e2p_n : 1; /**< BIST Status for the e2p_n_fifo */ 342215976Sjmallett uint64_t e2p_p : 1; /**< BIST Status for the e2p_p_fifo */ 343215976Sjmallett uint64_t e2p_rsl : 1; /**< BIST Status for the e2p_rsl__fifo */ 344215976Sjmallett uint64_t dbg_p2e : 1; /**< BIST Status for the dbg_p2e_fifo */ 345215976Sjmallett uint64_t peai_p2e : 1; /**< BIST Status for the peai__pesc_fifo */ 346215976Sjmallett uint64_t rsl_p2e : 1; /**< BIST Status for the rsl_p2e_fifo */ 347215976Sjmallett uint64_t pef_tpf1 : 1; /**< BIST Status for the pef_tlp_p_fifo1 */ 348215976Sjmallett uint64_t pef_tpf0 : 1; /**< BIST Status for the pef_tlp_p_fifo0 */ 349215976Sjmallett uint64_t pef_tnf : 1; /**< BIST Status for the pef_tlp_n_fifo */ 350215976Sjmallett uint64_t pef_tcf1 : 1; /**< BIST Status for the pef_tlp_cpl_fifo1 */ 351215976Sjmallett uint64_t pef_tc0 : 1; /**< BIST Status for the pef_tlp_cpl_fifo0 */ 352215976Sjmallett uint64_t ppf : 1; /**< BIST Status for the ppf_fifo */ 353215976Sjmallett#else 354215976Sjmallett uint64_t ppf : 1; 355215976Sjmallett uint64_t pef_tc0 : 1; 356215976Sjmallett uint64_t pef_tcf1 : 1; 357215976Sjmallett uint64_t pef_tnf : 1; 358215976Sjmallett uint64_t pef_tpf0 : 1; 359215976Sjmallett uint64_t pef_tpf1 : 1; 360215976Sjmallett uint64_t rsl_p2e : 1; 361215976Sjmallett uint64_t peai_p2e : 1; 362215976Sjmallett uint64_t dbg_p2e : 1; 363215976Sjmallett uint64_t e2p_rsl : 1; 364215976Sjmallett uint64_t e2p_p : 1; 365215976Sjmallett uint64_t e2p_n : 1; 366215976Sjmallett uint64_t e2p_cpl : 1; 367215976Sjmallett uint64_t cto_p2e : 1; 368215976Sjmallett uint64_t reserved_14_63 : 50; 369215976Sjmallett#endif 370215976Sjmallett } s; 371215976Sjmallett struct cvmx_pescx_bist_status2_s cn52xx; 372215976Sjmallett struct cvmx_pescx_bist_status2_s cn52xxp1; 373215976Sjmallett struct cvmx_pescx_bist_status2_s cn56xx; 374215976Sjmallett struct cvmx_pescx_bist_status2_s cn56xxp1; 375215976Sjmallett}; 376215976Sjmalletttypedef union cvmx_pescx_bist_status2 cvmx_pescx_bist_status2_t; 377215976Sjmallett 378215976Sjmallett/** 379215976Sjmallett * cvmx_pesc#_cfg_rd 380215976Sjmallett * 381215976Sjmallett * PESC_CFG_RD = PESC Configuration Read 382215976Sjmallett * 383215976Sjmallett * Allows read access to the configuration in the PCIe Core. 384215976Sjmallett */ 385232812Sjmallettunion cvmx_pescx_cfg_rd { 386215976Sjmallett uint64_t u64; 387232812Sjmallett struct cvmx_pescx_cfg_rd_s { 388232812Sjmallett#ifdef __BIG_ENDIAN_BITFIELD 389215976Sjmallett uint64_t data : 32; /**< Data. */ 390215976Sjmallett uint64_t addr : 32; /**< Address to read. A write to this register 391215976Sjmallett starts a read operation. */ 392215976Sjmallett#else 393215976Sjmallett uint64_t addr : 32; 394215976Sjmallett uint64_t data : 32; 395215976Sjmallett#endif 396215976Sjmallett } s; 397215976Sjmallett struct cvmx_pescx_cfg_rd_s cn52xx; 398215976Sjmallett struct cvmx_pescx_cfg_rd_s cn52xxp1; 399215976Sjmallett struct cvmx_pescx_cfg_rd_s cn56xx; 400215976Sjmallett struct cvmx_pescx_cfg_rd_s cn56xxp1; 401215976Sjmallett}; 402215976Sjmalletttypedef union cvmx_pescx_cfg_rd cvmx_pescx_cfg_rd_t; 403215976Sjmallett 404215976Sjmallett/** 405215976Sjmallett * cvmx_pesc#_cfg_wr 406215976Sjmallett * 407215976Sjmallett * PESC_CFG_WR = PESC Configuration Write 408215976Sjmallett * 409215976Sjmallett * Allows write access to the configuration in the PCIe Core. 410215976Sjmallett */ 411232812Sjmallettunion cvmx_pescx_cfg_wr { 412215976Sjmallett uint64_t u64; 413232812Sjmallett struct cvmx_pescx_cfg_wr_s { 414232812Sjmallett#ifdef __BIG_ENDIAN_BITFIELD 415215976Sjmallett uint64_t data : 32; /**< Data to write. A write to this register starts 416215976Sjmallett a write operation. */ 417215976Sjmallett uint64_t addr : 32; /**< Address to write. A write to this register starts 418215976Sjmallett a write operation. */ 419215976Sjmallett#else 420215976Sjmallett uint64_t addr : 32; 421215976Sjmallett uint64_t data : 32; 422215976Sjmallett#endif 423215976Sjmallett } s; 424215976Sjmallett struct cvmx_pescx_cfg_wr_s cn52xx; 425215976Sjmallett struct cvmx_pescx_cfg_wr_s cn52xxp1; 426215976Sjmallett struct cvmx_pescx_cfg_wr_s cn56xx; 427215976Sjmallett struct cvmx_pescx_cfg_wr_s cn56xxp1; 428215976Sjmallett}; 429215976Sjmalletttypedef union cvmx_pescx_cfg_wr cvmx_pescx_cfg_wr_t; 430215976Sjmallett 431215976Sjmallett/** 432215976Sjmallett * cvmx_pesc#_cpl_lut_valid 433215976Sjmallett * 434215976Sjmallett * PESC_CPL_LUT_VALID = PESC Cmpletion Lookup Table Valid 435215976Sjmallett * 436215976Sjmallett * Bit set for outstanding tag read. 437215976Sjmallett */ 438232812Sjmallettunion cvmx_pescx_cpl_lut_valid { 439215976Sjmallett uint64_t u64; 440232812Sjmallett struct cvmx_pescx_cpl_lut_valid_s { 441232812Sjmallett#ifdef __BIG_ENDIAN_BITFIELD 442215976Sjmallett uint64_t reserved_32_63 : 32; 443215976Sjmallett uint64_t tag : 32; /**< Bit vector set cooresponds to an outstanding tag 444215976Sjmallett expecting a completion. */ 445215976Sjmallett#else 446215976Sjmallett uint64_t tag : 32; 447215976Sjmallett uint64_t reserved_32_63 : 32; 448215976Sjmallett#endif 449215976Sjmallett } s; 450215976Sjmallett struct cvmx_pescx_cpl_lut_valid_s cn52xx; 451215976Sjmallett struct cvmx_pescx_cpl_lut_valid_s cn52xxp1; 452215976Sjmallett struct cvmx_pescx_cpl_lut_valid_s cn56xx; 453215976Sjmallett struct cvmx_pescx_cpl_lut_valid_s cn56xxp1; 454215976Sjmallett}; 455215976Sjmalletttypedef union cvmx_pescx_cpl_lut_valid cvmx_pescx_cpl_lut_valid_t; 456215976Sjmallett 457215976Sjmallett/** 458215976Sjmallett * cvmx_pesc#_ctl_status 459215976Sjmallett * 460215976Sjmallett * PESC_CTL_STATUS = PESC Control Status 461215976Sjmallett * 462215976Sjmallett * General control and status of the PESC. 463215976Sjmallett */ 464232812Sjmallettunion cvmx_pescx_ctl_status { 465215976Sjmallett uint64_t u64; 466232812Sjmallett struct cvmx_pescx_ctl_status_s { 467232812Sjmallett#ifdef __BIG_ENDIAN_BITFIELD 468215976Sjmallett uint64_t reserved_28_63 : 36; 469215976Sjmallett uint64_t dnum : 5; /**< Primary bus device number. */ 470215976Sjmallett uint64_t pbus : 8; /**< Primary bus number. */ 471215976Sjmallett uint64_t qlm_cfg : 2; /**< The QLM configuration pad bits. */ 472215976Sjmallett uint64_t lane_swp : 1; /**< Lane Swap. For PEDC1, when 0 NO LANE SWAP when '1' 473215976Sjmallett enables LANE SWAP. THis bit has no effect on PEDC0. 474215976Sjmallett This bit should be set before enabling PEDC1. */ 475215976Sjmallett uint64_t pm_xtoff : 1; /**< When WRITTEN with a '1' a single cycle pulse is 476215976Sjmallett to the PCIe core pm_xmt_turnoff port. RC mode. */ 477215976Sjmallett uint64_t pm_xpme : 1; /**< When WRITTEN with a '1' a single cycle pulse is 478215976Sjmallett to the PCIe core pm_xmt_pme port. EP mode. */ 479215976Sjmallett uint64_t ob_p_cmd : 1; /**< When WRITTEN with a '1' a single cycle pulse is 480215976Sjmallett to the PCIe core outband_pwrup_cmd port. EP mode. */ 481215976Sjmallett uint64_t reserved_7_8 : 2; 482215976Sjmallett uint64_t nf_ecrc : 1; /**< Do not forward peer-to-peer ECRC TLPs. */ 483215976Sjmallett uint64_t dly_one : 1; /**< When set the output client state machines will 484215976Sjmallett wait one cycle before starting a new TLP out. */ 485215976Sjmallett uint64_t lnk_enb : 1; /**< When set '1' the link is enabled when '0' the 486215976Sjmallett link is disabled. This bit only is active when in 487215976Sjmallett RC mode. */ 488215976Sjmallett uint64_t ro_ctlp : 1; /**< When set '1' C-TLPs that have the RO bit set will 489215976Sjmallett not wait for P-TLPs that normaly would be sent 490215976Sjmallett first. */ 491215976Sjmallett uint64_t reserved_2_2 : 1; 492215976Sjmallett uint64_t inv_ecrc : 1; /**< When '1' causes the LSB of the ECRC to be inverted. */ 493215976Sjmallett uint64_t inv_lcrc : 1; /**< When '1' causes the LSB of the LCRC to be inverted. */ 494215976Sjmallett#else 495215976Sjmallett uint64_t inv_lcrc : 1; 496215976Sjmallett uint64_t inv_ecrc : 1; 497215976Sjmallett uint64_t reserved_2_2 : 1; 498215976Sjmallett uint64_t ro_ctlp : 1; 499215976Sjmallett uint64_t lnk_enb : 1; 500215976Sjmallett uint64_t dly_one : 1; 501215976Sjmallett uint64_t nf_ecrc : 1; 502215976Sjmallett uint64_t reserved_7_8 : 2; 503215976Sjmallett uint64_t ob_p_cmd : 1; 504215976Sjmallett uint64_t pm_xpme : 1; 505215976Sjmallett uint64_t pm_xtoff : 1; 506215976Sjmallett uint64_t lane_swp : 1; 507215976Sjmallett uint64_t qlm_cfg : 2; 508215976Sjmallett uint64_t pbus : 8; 509215976Sjmallett uint64_t dnum : 5; 510215976Sjmallett uint64_t reserved_28_63 : 36; 511215976Sjmallett#endif 512215976Sjmallett } s; 513215976Sjmallett struct cvmx_pescx_ctl_status_s cn52xx; 514215976Sjmallett struct cvmx_pescx_ctl_status_s cn52xxp1; 515232812Sjmallett struct cvmx_pescx_ctl_status_cn56xx { 516232812Sjmallett#ifdef __BIG_ENDIAN_BITFIELD 517215976Sjmallett uint64_t reserved_28_63 : 36; 518215976Sjmallett uint64_t dnum : 5; /**< Primary bus device number. */ 519215976Sjmallett uint64_t pbus : 8; /**< Primary bus number. */ 520215976Sjmallett uint64_t qlm_cfg : 2; /**< The QLM configuration pad bits. */ 521215976Sjmallett uint64_t reserved_12_12 : 1; 522215976Sjmallett uint64_t pm_xtoff : 1; /**< When WRITTEN with a '1' a single cycle pulse is 523215976Sjmallett to the PCIe core pm_xmt_turnoff port. RC mode. */ 524215976Sjmallett uint64_t pm_xpme : 1; /**< When WRITTEN with a '1' a single cycle pulse is 525215976Sjmallett to the PCIe core pm_xmt_pme port. EP mode. */ 526215976Sjmallett uint64_t ob_p_cmd : 1; /**< When WRITTEN with a '1' a single cycle pulse is 527215976Sjmallett to the PCIe core outband_pwrup_cmd port. EP mode. */ 528215976Sjmallett uint64_t reserved_7_8 : 2; 529215976Sjmallett uint64_t nf_ecrc : 1; /**< Do not forward peer-to-peer ECRC TLPs. */ 530215976Sjmallett uint64_t dly_one : 1; /**< When set the output client state machines will 531215976Sjmallett wait one cycle before starting a new TLP out. */ 532215976Sjmallett uint64_t lnk_enb : 1; /**< When set '1' the link is enabled when '0' the 533215976Sjmallett link is disabled. This bit only is active when in 534215976Sjmallett RC mode. */ 535215976Sjmallett uint64_t ro_ctlp : 1; /**< When set '1' C-TLPs that have the RO bit set will 536215976Sjmallett not wait for P-TLPs that normaly would be sent 537215976Sjmallett first. */ 538215976Sjmallett uint64_t reserved_2_2 : 1; 539215976Sjmallett uint64_t inv_ecrc : 1; /**< When '1' causes the LSB of the ECRC to be inverted. */ 540215976Sjmallett uint64_t inv_lcrc : 1; /**< When '1' causes the LSB of the LCRC to be inverted. */ 541215976Sjmallett#else 542215976Sjmallett uint64_t inv_lcrc : 1; 543215976Sjmallett uint64_t inv_ecrc : 1; 544215976Sjmallett uint64_t reserved_2_2 : 1; 545215976Sjmallett uint64_t ro_ctlp : 1; 546215976Sjmallett uint64_t lnk_enb : 1; 547215976Sjmallett uint64_t dly_one : 1; 548215976Sjmallett uint64_t nf_ecrc : 1; 549215976Sjmallett uint64_t reserved_7_8 : 2; 550215976Sjmallett uint64_t ob_p_cmd : 1; 551215976Sjmallett uint64_t pm_xpme : 1; 552215976Sjmallett uint64_t pm_xtoff : 1; 553215976Sjmallett uint64_t reserved_12_12 : 1; 554215976Sjmallett uint64_t qlm_cfg : 2; 555215976Sjmallett uint64_t pbus : 8; 556215976Sjmallett uint64_t dnum : 5; 557215976Sjmallett uint64_t reserved_28_63 : 36; 558215976Sjmallett#endif 559215976Sjmallett } cn56xx; 560215976Sjmallett struct cvmx_pescx_ctl_status_cn56xx cn56xxp1; 561215976Sjmallett}; 562215976Sjmalletttypedef union cvmx_pescx_ctl_status cvmx_pescx_ctl_status_t; 563215976Sjmallett 564215976Sjmallett/** 565215976Sjmallett * cvmx_pesc#_ctl_status2 566215976Sjmallett * 567215976Sjmallett * Below are in PESC 568215976Sjmallett * 569215976Sjmallett * PESC(0..1)_BIST_STATUS2 = PESC BIST Status Register 570215976Sjmallett * 571215976Sjmallett * Results from BIST runs of PESC's memories. 572215976Sjmallett */ 573232812Sjmallettunion cvmx_pescx_ctl_status2 { 574215976Sjmallett uint64_t u64; 575232812Sjmallett struct cvmx_pescx_ctl_status2_s { 576232812Sjmallett#ifdef __BIG_ENDIAN_BITFIELD 577215976Sjmallett uint64_t reserved_2_63 : 62; 578215976Sjmallett uint64_t pclk_run : 1; /**< When the pce_clk is running this bit will be '1'. 579215976Sjmallett Writing a '1' to this location will cause the 580215976Sjmallett bit to be cleared, but if the pce_clk is running 581215976Sjmallett this bit will be re-set. */ 582215976Sjmallett uint64_t pcierst : 1; /**< Set to '1' when PCIe is in reset. */ 583215976Sjmallett#else 584215976Sjmallett uint64_t pcierst : 1; 585215976Sjmallett uint64_t pclk_run : 1; 586215976Sjmallett uint64_t reserved_2_63 : 62; 587215976Sjmallett#endif 588215976Sjmallett } s; 589215976Sjmallett struct cvmx_pescx_ctl_status2_s cn52xx; 590232812Sjmallett struct cvmx_pescx_ctl_status2_cn52xxp1 { 591232812Sjmallett#ifdef __BIG_ENDIAN_BITFIELD 592215976Sjmallett uint64_t reserved_1_63 : 63; 593215976Sjmallett uint64_t pcierst : 1; /**< Set to '1' when PCIe is in reset. */ 594215976Sjmallett#else 595215976Sjmallett uint64_t pcierst : 1; 596215976Sjmallett uint64_t reserved_1_63 : 63; 597215976Sjmallett#endif 598215976Sjmallett } cn52xxp1; 599215976Sjmallett struct cvmx_pescx_ctl_status2_s cn56xx; 600215976Sjmallett struct cvmx_pescx_ctl_status2_cn52xxp1 cn56xxp1; 601215976Sjmallett}; 602215976Sjmalletttypedef union cvmx_pescx_ctl_status2 cvmx_pescx_ctl_status2_t; 603215976Sjmallett 604215976Sjmallett/** 605215976Sjmallett * cvmx_pesc#_dbg_info 606215976Sjmallett * 607215976Sjmallett * PESC(0..1)_DBG_INFO = PESC Debug Information 608215976Sjmallett * 609215976Sjmallett * General debug info. 610215976Sjmallett */ 611232812Sjmallettunion cvmx_pescx_dbg_info { 612215976Sjmallett uint64_t u64; 613232812Sjmallett struct cvmx_pescx_dbg_info_s { 614232812Sjmallett#ifdef __BIG_ENDIAN_BITFIELD 615215976Sjmallett uint64_t reserved_31_63 : 33; 616215976Sjmallett uint64_t ecrc_e : 1; /**< Received a ECRC error. 617215976Sjmallett radm_ecrc_err */ 618215976Sjmallett uint64_t rawwpp : 1; /**< Received a write with poisoned payload 619215976Sjmallett radm_rcvd_wreq_poisoned */ 620215976Sjmallett uint64_t racpp : 1; /**< Received a completion with poisoned payload 621215976Sjmallett radm_rcvd_cpl_poisoned */ 622215976Sjmallett uint64_t ramtlp : 1; /**< Received a malformed TLP 623215976Sjmallett radm_mlf_tlp_err */ 624215976Sjmallett uint64_t rarwdns : 1; /**< Recieved a request which device does not support 625215976Sjmallett radm_rcvd_ur_req */ 626215976Sjmallett uint64_t caar : 1; /**< Completer aborted a request 627215976Sjmallett radm_rcvd_ca_req 628215976Sjmallett This bit will never be set because Octeon does 629215976Sjmallett not generate Completer Aborts. */ 630215976Sjmallett uint64_t racca : 1; /**< Received a completion with CA status 631215976Sjmallett radm_rcvd_cpl_ca */ 632215976Sjmallett uint64_t racur : 1; /**< Received a completion with UR status 633215976Sjmallett radm_rcvd_cpl_ur */ 634215976Sjmallett uint64_t rauc : 1; /**< Received an unexpected completion 635215976Sjmallett radm_unexp_cpl_err */ 636215976Sjmallett uint64_t rqo : 1; /**< Receive queue overflow. Normally happens only when 637215976Sjmallett flow control advertisements are ignored 638215976Sjmallett radm_qoverflow */ 639215976Sjmallett uint64_t fcuv : 1; /**< Flow Control Update Violation (opt. checks) 640215976Sjmallett int_xadm_fc_prot_err */ 641215976Sjmallett uint64_t rpe : 1; /**< When the PHY reports 8B/10B decode error 642215976Sjmallett (RxStatus = 3b100) or disparity error 643215976Sjmallett (RxStatus = 3b111), the signal rmlh_rcvd_err will 644215976Sjmallett be asserted. 645215976Sjmallett rmlh_rcvd_err */ 646215976Sjmallett uint64_t fcpvwt : 1; /**< Flow Control Protocol Violation (Watchdog Timer) 647215976Sjmallett rtlh_fc_prot_err */ 648215976Sjmallett uint64_t dpeoosd : 1; /**< DLLP protocol error (out of sequence DLLP) 649215976Sjmallett rdlh_prot_err */ 650215976Sjmallett uint64_t rtwdle : 1; /**< Received TLP with DataLink Layer Error 651215976Sjmallett rdlh_bad_tlp_err */ 652215976Sjmallett uint64_t rdwdle : 1; /**< Received DLLP with DataLink Layer Error 653215976Sjmallett rdlh_bad_dllp_err */ 654215976Sjmallett uint64_t mre : 1; /**< Max Retries Exceeded 655215976Sjmallett xdlh_replay_num_rlover_err */ 656215976Sjmallett uint64_t rte : 1; /**< Replay Timer Expired 657215976Sjmallett xdlh_replay_timeout_err 658215976Sjmallett This bit is set when the REPLAY_TIMER expires in 659215976Sjmallett the PCIE core. The probability of this bit being 660215976Sjmallett set will increase with the traffic load. */ 661215976Sjmallett uint64_t acto : 1; /**< A Completion Timeout Occured 662215976Sjmallett pedc_radm_cpl_timeout */ 663215976Sjmallett uint64_t rvdm : 1; /**< Received Vendor-Defined Message 664215976Sjmallett pedc_radm_vendor_msg */ 665215976Sjmallett uint64_t rumep : 1; /**< Received Unlock Message (EP Mode Only) 666215976Sjmallett pedc_radm_msg_unlock */ 667215976Sjmallett uint64_t rptamrc : 1; /**< Received PME Turnoff Acknowledge Message 668215976Sjmallett (RC Mode only) 669215976Sjmallett pedc_radm_pm_to_ack */ 670215976Sjmallett uint64_t rpmerc : 1; /**< Received PME Message (RC Mode only) 671215976Sjmallett pedc_radm_pm_pme */ 672215976Sjmallett uint64_t rfemrc : 1; /**< Received Fatal Error Message (RC Mode only) 673215976Sjmallett pedc_radm_fatal_err 674215976Sjmallett Bit set when a message with ERR_FATAL is set. */ 675215976Sjmallett uint64_t rnfemrc : 1; /**< Received Non-Fatal Error Message (RC Mode only) 676215976Sjmallett pedc_radm_nonfatal_err */ 677215976Sjmallett uint64_t rcemrc : 1; /**< Received Correctable Error Message (RC Mode only) 678215976Sjmallett pedc_radm_correctable_err */ 679215976Sjmallett uint64_t rpoison : 1; /**< Received Poisoned TLP 680215976Sjmallett pedc__radm_trgt1_poisoned & pedc__radm_trgt1_hv */ 681215976Sjmallett uint64_t recrce : 1; /**< Received ECRC Error 682215976Sjmallett pedc_radm_trgt1_ecrc_err & pedc__radm_trgt1_eot */ 683215976Sjmallett uint64_t rtlplle : 1; /**< Received TLP has link layer error 684215976Sjmallett pedc_radm_trgt1_dllp_abort & pedc__radm_trgt1_eot */ 685215976Sjmallett uint64_t rtlpmal : 1; /**< Received TLP is malformed or a message. 686215976Sjmallett pedc_radm_trgt1_tlp_abort & pedc__radm_trgt1_eot 687215976Sjmallett If the core receives a MSG (or Vendor Message) 688215976Sjmallett this bit will be set. */ 689215976Sjmallett uint64_t spoison : 1; /**< Poisoned TLP sent 690215976Sjmallett peai__client0_tlp_ep & peai__client0_tlp_hv */ 691215976Sjmallett#else 692215976Sjmallett uint64_t spoison : 1; 693215976Sjmallett uint64_t rtlpmal : 1; 694215976Sjmallett uint64_t rtlplle : 1; 695215976Sjmallett uint64_t recrce : 1; 696215976Sjmallett uint64_t rpoison : 1; 697215976Sjmallett uint64_t rcemrc : 1; 698215976Sjmallett uint64_t rnfemrc : 1; 699215976Sjmallett uint64_t rfemrc : 1; 700215976Sjmallett uint64_t rpmerc : 1; 701215976Sjmallett uint64_t rptamrc : 1; 702215976Sjmallett uint64_t rumep : 1; 703215976Sjmallett uint64_t rvdm : 1; 704215976Sjmallett uint64_t acto : 1; 705215976Sjmallett uint64_t rte : 1; 706215976Sjmallett uint64_t mre : 1; 707215976Sjmallett uint64_t rdwdle : 1; 708215976Sjmallett uint64_t rtwdle : 1; 709215976Sjmallett uint64_t dpeoosd : 1; 710215976Sjmallett uint64_t fcpvwt : 1; 711215976Sjmallett uint64_t rpe : 1; 712215976Sjmallett uint64_t fcuv : 1; 713215976Sjmallett uint64_t rqo : 1; 714215976Sjmallett uint64_t rauc : 1; 715215976Sjmallett uint64_t racur : 1; 716215976Sjmallett uint64_t racca : 1; 717215976Sjmallett uint64_t caar : 1; 718215976Sjmallett uint64_t rarwdns : 1; 719215976Sjmallett uint64_t ramtlp : 1; 720215976Sjmallett uint64_t racpp : 1; 721215976Sjmallett uint64_t rawwpp : 1; 722215976Sjmallett uint64_t ecrc_e : 1; 723215976Sjmallett uint64_t reserved_31_63 : 33; 724215976Sjmallett#endif 725215976Sjmallett } s; 726215976Sjmallett struct cvmx_pescx_dbg_info_s cn52xx; 727215976Sjmallett struct cvmx_pescx_dbg_info_s cn52xxp1; 728215976Sjmallett struct cvmx_pescx_dbg_info_s cn56xx; 729215976Sjmallett struct cvmx_pescx_dbg_info_s cn56xxp1; 730215976Sjmallett}; 731215976Sjmalletttypedef union cvmx_pescx_dbg_info cvmx_pescx_dbg_info_t; 732215976Sjmallett 733215976Sjmallett/** 734215976Sjmallett * cvmx_pesc#_dbg_info_en 735215976Sjmallett * 736215976Sjmallett * PESC(0..1)_DBG_INFO_EN = PESC Debug Information Enable 737215976Sjmallett * 738215976Sjmallett * Allows PESC_DBG_INFO to generate interrupts when cooresponding enable bit is set. 739215976Sjmallett */ 740232812Sjmallettunion cvmx_pescx_dbg_info_en { 741215976Sjmallett uint64_t u64; 742232812Sjmallett struct cvmx_pescx_dbg_info_en_s { 743232812Sjmallett#ifdef __BIG_ENDIAN_BITFIELD 744215976Sjmallett uint64_t reserved_31_63 : 33; 745215976Sjmallett uint64_t ecrc_e : 1; /**< Allows PESC_DBG_INFO[30] to generate an interrupt. */ 746215976Sjmallett uint64_t rawwpp : 1; /**< Allows PESC_DBG_INFO[29] to generate an interrupt. */ 747215976Sjmallett uint64_t racpp : 1; /**< Allows PESC_DBG_INFO[28] to generate an interrupt. */ 748215976Sjmallett uint64_t ramtlp : 1; /**< Allows PESC_DBG_INFO[27] to generate an interrupt. */ 749215976Sjmallett uint64_t rarwdns : 1; /**< Allows PESC_DBG_INFO[26] to generate an interrupt. */ 750215976Sjmallett uint64_t caar : 1; /**< Allows PESC_DBG_INFO[25] to generate an interrupt. */ 751215976Sjmallett uint64_t racca : 1; /**< Allows PESC_DBG_INFO[24] to generate an interrupt. */ 752215976Sjmallett uint64_t racur : 1; /**< Allows PESC_DBG_INFO[23] to generate an interrupt. */ 753215976Sjmallett uint64_t rauc : 1; /**< Allows PESC_DBG_INFO[22] to generate an interrupt. */ 754215976Sjmallett uint64_t rqo : 1; /**< Allows PESC_DBG_INFO[21] to generate an interrupt. */ 755215976Sjmallett uint64_t fcuv : 1; /**< Allows PESC_DBG_INFO[20] to generate an interrupt. */ 756215976Sjmallett uint64_t rpe : 1; /**< Allows PESC_DBG_INFO[19] to generate an interrupt. */ 757215976Sjmallett uint64_t fcpvwt : 1; /**< Allows PESC_DBG_INFO[18] to generate an interrupt. */ 758215976Sjmallett uint64_t dpeoosd : 1; /**< Allows PESC_DBG_INFO[17] to generate an interrupt. */ 759215976Sjmallett uint64_t rtwdle : 1; /**< Allows PESC_DBG_INFO[16] to generate an interrupt. */ 760215976Sjmallett uint64_t rdwdle : 1; /**< Allows PESC_DBG_INFO[15] to generate an interrupt. */ 761215976Sjmallett uint64_t mre : 1; /**< Allows PESC_DBG_INFO[14] to generate an interrupt. */ 762215976Sjmallett uint64_t rte : 1; /**< Allows PESC_DBG_INFO[13] to generate an interrupt. */ 763215976Sjmallett uint64_t acto : 1; /**< Allows PESC_DBG_INFO[12] to generate an interrupt. */ 764215976Sjmallett uint64_t rvdm : 1; /**< Allows PESC_DBG_INFO[11] to generate an interrupt. */ 765215976Sjmallett uint64_t rumep : 1; /**< Allows PESC_DBG_INFO[10] to generate an interrupt. */ 766215976Sjmallett uint64_t rptamrc : 1; /**< Allows PESC_DBG_INFO[9] to generate an interrupt. */ 767215976Sjmallett uint64_t rpmerc : 1; /**< Allows PESC_DBG_INFO[8] to generate an interrupt. */ 768215976Sjmallett uint64_t rfemrc : 1; /**< Allows PESC_DBG_INFO[7] to generate an interrupt. */ 769215976Sjmallett uint64_t rnfemrc : 1; /**< Allows PESC_DBG_INFO[6] to generate an interrupt. */ 770215976Sjmallett uint64_t rcemrc : 1; /**< Allows PESC_DBG_INFO[5] to generate an interrupt. */ 771215976Sjmallett uint64_t rpoison : 1; /**< Allows PESC_DBG_INFO[4] to generate an interrupt. */ 772215976Sjmallett uint64_t recrce : 1; /**< Allows PESC_DBG_INFO[3] to generate an interrupt. */ 773215976Sjmallett uint64_t rtlplle : 1; /**< Allows PESC_DBG_INFO[2] to generate an interrupt. */ 774215976Sjmallett uint64_t rtlpmal : 1; /**< Allows PESC_DBG_INFO[1] to generate an interrupt. */ 775215976Sjmallett uint64_t spoison : 1; /**< Allows PESC_DBG_INFO[0] to generate an interrupt. */ 776215976Sjmallett#else 777215976Sjmallett uint64_t spoison : 1; 778215976Sjmallett uint64_t rtlpmal : 1; 779215976Sjmallett uint64_t rtlplle : 1; 780215976Sjmallett uint64_t recrce : 1; 781215976Sjmallett uint64_t rpoison : 1; 782215976Sjmallett uint64_t rcemrc : 1; 783215976Sjmallett uint64_t rnfemrc : 1; 784215976Sjmallett uint64_t rfemrc : 1; 785215976Sjmallett uint64_t rpmerc : 1; 786215976Sjmallett uint64_t rptamrc : 1; 787215976Sjmallett uint64_t rumep : 1; 788215976Sjmallett uint64_t rvdm : 1; 789215976Sjmallett uint64_t acto : 1; 790215976Sjmallett uint64_t rte : 1; 791215976Sjmallett uint64_t mre : 1; 792215976Sjmallett uint64_t rdwdle : 1; 793215976Sjmallett uint64_t rtwdle : 1; 794215976Sjmallett uint64_t dpeoosd : 1; 795215976Sjmallett uint64_t fcpvwt : 1; 796215976Sjmallett uint64_t rpe : 1; 797215976Sjmallett uint64_t fcuv : 1; 798215976Sjmallett uint64_t rqo : 1; 799215976Sjmallett uint64_t rauc : 1; 800215976Sjmallett uint64_t racur : 1; 801215976Sjmallett uint64_t racca : 1; 802215976Sjmallett uint64_t caar : 1; 803215976Sjmallett uint64_t rarwdns : 1; 804215976Sjmallett uint64_t ramtlp : 1; 805215976Sjmallett uint64_t racpp : 1; 806215976Sjmallett uint64_t rawwpp : 1; 807215976Sjmallett uint64_t ecrc_e : 1; 808215976Sjmallett uint64_t reserved_31_63 : 33; 809215976Sjmallett#endif 810215976Sjmallett } s; 811215976Sjmallett struct cvmx_pescx_dbg_info_en_s cn52xx; 812215976Sjmallett struct cvmx_pescx_dbg_info_en_s cn52xxp1; 813215976Sjmallett struct cvmx_pescx_dbg_info_en_s cn56xx; 814215976Sjmallett struct cvmx_pescx_dbg_info_en_s cn56xxp1; 815215976Sjmallett}; 816215976Sjmalletttypedef union cvmx_pescx_dbg_info_en cvmx_pescx_dbg_info_en_t; 817215976Sjmallett 818215976Sjmallett/** 819215976Sjmallett * cvmx_pesc#_diag_status 820215976Sjmallett * 821215976Sjmallett * PESC_DIAG_STATUS = PESC Diagnostic Status 822215976Sjmallett * 823215976Sjmallett * Selection control for the cores diagnostic bus. 824215976Sjmallett */ 825232812Sjmallettunion cvmx_pescx_diag_status { 826215976Sjmallett uint64_t u64; 827232812Sjmallett struct cvmx_pescx_diag_status_s { 828232812Sjmallett#ifdef __BIG_ENDIAN_BITFIELD 829215976Sjmallett uint64_t reserved_4_63 : 60; 830215976Sjmallett uint64_t pm_dst : 1; /**< Current power management DSTATE. */ 831215976Sjmallett uint64_t pm_stat : 1; /**< Power Management Status. */ 832215976Sjmallett uint64_t pm_en : 1; /**< Power Management Event Enable. */ 833215976Sjmallett uint64_t aux_en : 1; /**< Auxilary Power Enable. */ 834215976Sjmallett#else 835215976Sjmallett uint64_t aux_en : 1; 836215976Sjmallett uint64_t pm_en : 1; 837215976Sjmallett uint64_t pm_stat : 1; 838215976Sjmallett uint64_t pm_dst : 1; 839215976Sjmallett uint64_t reserved_4_63 : 60; 840215976Sjmallett#endif 841215976Sjmallett } s; 842215976Sjmallett struct cvmx_pescx_diag_status_s cn52xx; 843215976Sjmallett struct cvmx_pescx_diag_status_s cn52xxp1; 844215976Sjmallett struct cvmx_pescx_diag_status_s cn56xx; 845215976Sjmallett struct cvmx_pescx_diag_status_s cn56xxp1; 846215976Sjmallett}; 847215976Sjmalletttypedef union cvmx_pescx_diag_status cvmx_pescx_diag_status_t; 848215976Sjmallett 849215976Sjmallett/** 850215976Sjmallett * cvmx_pesc#_p2n_bar0_start 851215976Sjmallett * 852215976Sjmallett * PESC_P2N_BAR0_START = PESC PCIe to Npei BAR0 Start 853215976Sjmallett * 854215976Sjmallett * The starting address for addresses to forwarded to the NPEI in RC Mode. 855215976Sjmallett */ 856232812Sjmallettunion cvmx_pescx_p2n_bar0_start { 857215976Sjmallett uint64_t u64; 858232812Sjmallett struct cvmx_pescx_p2n_bar0_start_s { 859232812Sjmallett#ifdef __BIG_ENDIAN_BITFIELD 860215976Sjmallett uint64_t addr : 50; /**< The starting address of the 16KB address space that 861215976Sjmallett is the BAR0 address space. */ 862215976Sjmallett uint64_t reserved_0_13 : 14; 863215976Sjmallett#else 864215976Sjmallett uint64_t reserved_0_13 : 14; 865215976Sjmallett uint64_t addr : 50; 866215976Sjmallett#endif 867215976Sjmallett } s; 868215976Sjmallett struct cvmx_pescx_p2n_bar0_start_s cn52xx; 869215976Sjmallett struct cvmx_pescx_p2n_bar0_start_s cn52xxp1; 870215976Sjmallett struct cvmx_pescx_p2n_bar0_start_s cn56xx; 871215976Sjmallett struct cvmx_pescx_p2n_bar0_start_s cn56xxp1; 872215976Sjmallett}; 873215976Sjmalletttypedef union cvmx_pescx_p2n_bar0_start cvmx_pescx_p2n_bar0_start_t; 874215976Sjmallett 875215976Sjmallett/** 876215976Sjmallett * cvmx_pesc#_p2n_bar1_start 877215976Sjmallett * 878215976Sjmallett * PESC_P2N_BAR1_START = PESC PCIe to Npei BAR1 Start 879215976Sjmallett * 880215976Sjmallett * The starting address for addresses to forwarded to the NPEI in RC Mode. 881215976Sjmallett */ 882232812Sjmallettunion cvmx_pescx_p2n_bar1_start { 883215976Sjmallett uint64_t u64; 884232812Sjmallett struct cvmx_pescx_p2n_bar1_start_s { 885232812Sjmallett#ifdef __BIG_ENDIAN_BITFIELD 886215976Sjmallett uint64_t addr : 38; /**< The starting address of the 64KB address space 887215976Sjmallett that is the BAR1 address space. */ 888215976Sjmallett uint64_t reserved_0_25 : 26; 889215976Sjmallett#else 890215976Sjmallett uint64_t reserved_0_25 : 26; 891215976Sjmallett uint64_t addr : 38; 892215976Sjmallett#endif 893215976Sjmallett } s; 894215976Sjmallett struct cvmx_pescx_p2n_bar1_start_s cn52xx; 895215976Sjmallett struct cvmx_pescx_p2n_bar1_start_s cn52xxp1; 896215976Sjmallett struct cvmx_pescx_p2n_bar1_start_s cn56xx; 897215976Sjmallett struct cvmx_pescx_p2n_bar1_start_s cn56xxp1; 898215976Sjmallett}; 899215976Sjmalletttypedef union cvmx_pescx_p2n_bar1_start cvmx_pescx_p2n_bar1_start_t; 900215976Sjmallett 901215976Sjmallett/** 902215976Sjmallett * cvmx_pesc#_p2n_bar2_start 903215976Sjmallett * 904215976Sjmallett * PESC_P2N_BAR2_START = PESC PCIe to Npei BAR2 Start 905215976Sjmallett * 906215976Sjmallett * The starting address for addresses to forwarded to the NPEI in RC Mode. 907215976Sjmallett */ 908232812Sjmallettunion cvmx_pescx_p2n_bar2_start { 909215976Sjmallett uint64_t u64; 910232812Sjmallett struct cvmx_pescx_p2n_bar2_start_s { 911232812Sjmallett#ifdef __BIG_ENDIAN_BITFIELD 912215976Sjmallett uint64_t addr : 25; /**< The starting address of the 2^39 address space 913215976Sjmallett that is the BAR2 address space. */ 914215976Sjmallett uint64_t reserved_0_38 : 39; 915215976Sjmallett#else 916215976Sjmallett uint64_t reserved_0_38 : 39; 917215976Sjmallett uint64_t addr : 25; 918215976Sjmallett#endif 919215976Sjmallett } s; 920215976Sjmallett struct cvmx_pescx_p2n_bar2_start_s cn52xx; 921215976Sjmallett struct cvmx_pescx_p2n_bar2_start_s cn52xxp1; 922215976Sjmallett struct cvmx_pescx_p2n_bar2_start_s cn56xx; 923215976Sjmallett struct cvmx_pescx_p2n_bar2_start_s cn56xxp1; 924215976Sjmallett}; 925215976Sjmalletttypedef union cvmx_pescx_p2n_bar2_start cvmx_pescx_p2n_bar2_start_t; 926215976Sjmallett 927215976Sjmallett/** 928215976Sjmallett * cvmx_pesc#_p2p_bar#_end 929215976Sjmallett * 930215976Sjmallett * PESC_P2P_BAR#_END = PESC Peer-To-Peer BAR0 End 931215976Sjmallett * 932215976Sjmallett * The ending address for addresses to forwarded to the PCIe peer port. 933215976Sjmallett */ 934232812Sjmallettunion cvmx_pescx_p2p_barx_end { 935215976Sjmallett uint64_t u64; 936232812Sjmallett struct cvmx_pescx_p2p_barx_end_s { 937232812Sjmallett#ifdef __BIG_ENDIAN_BITFIELD 938215976Sjmallett uint64_t addr : 52; /**< The ending address of the address window created 939215976Sjmallett this field and the PESC_P2P_BAR0_START[63:12] 940215976Sjmallett field. The full 64-bits of address are created by: 941215976Sjmallett [ADDR[63:12], 12'b0]. */ 942215976Sjmallett uint64_t reserved_0_11 : 12; 943215976Sjmallett#else 944215976Sjmallett uint64_t reserved_0_11 : 12; 945215976Sjmallett uint64_t addr : 52; 946215976Sjmallett#endif 947215976Sjmallett } s; 948215976Sjmallett struct cvmx_pescx_p2p_barx_end_s cn52xx; 949215976Sjmallett struct cvmx_pescx_p2p_barx_end_s cn52xxp1; 950215976Sjmallett struct cvmx_pescx_p2p_barx_end_s cn56xx; 951215976Sjmallett struct cvmx_pescx_p2p_barx_end_s cn56xxp1; 952215976Sjmallett}; 953215976Sjmalletttypedef union cvmx_pescx_p2p_barx_end cvmx_pescx_p2p_barx_end_t; 954215976Sjmallett 955215976Sjmallett/** 956215976Sjmallett * cvmx_pesc#_p2p_bar#_start 957215976Sjmallett * 958215976Sjmallett * PESC_P2P_BAR#_START = PESC Peer-To-Peer BAR0 Start 959215976Sjmallett * 960215976Sjmallett * The starting address and enable for addresses to forwarded to the PCIe peer port. 961215976Sjmallett */ 962232812Sjmallettunion cvmx_pescx_p2p_barx_start { 963215976Sjmallett uint64_t u64; 964232812Sjmallett struct cvmx_pescx_p2p_barx_start_s { 965232812Sjmallett#ifdef __BIG_ENDIAN_BITFIELD 966215976Sjmallett uint64_t addr : 52; /**< The starting address of the address window created 967215976Sjmallett this field and the PESC_P2P_BAR0_END[63:12] field. 968215976Sjmallett The full 64-bits of address are created by: 969215976Sjmallett [ADDR[63:12], 12'b0]. */ 970215976Sjmallett uint64_t reserved_0_11 : 12; 971215976Sjmallett#else 972215976Sjmallett uint64_t reserved_0_11 : 12; 973215976Sjmallett uint64_t addr : 52; 974215976Sjmallett#endif 975215976Sjmallett } s; 976215976Sjmallett struct cvmx_pescx_p2p_barx_start_s cn52xx; 977215976Sjmallett struct cvmx_pescx_p2p_barx_start_s cn52xxp1; 978215976Sjmallett struct cvmx_pescx_p2p_barx_start_s cn56xx; 979215976Sjmallett struct cvmx_pescx_p2p_barx_start_s cn56xxp1; 980215976Sjmallett}; 981215976Sjmalletttypedef union cvmx_pescx_p2p_barx_start cvmx_pescx_p2p_barx_start_t; 982215976Sjmallett 983215976Sjmallett/** 984215976Sjmallett * cvmx_pesc#_tlp_credits 985215976Sjmallett * 986215976Sjmallett * PESC_TLP_CREDITS = PESC TLP Credits 987215976Sjmallett * 988215976Sjmallett * Specifies the number of credits the PESC for use in moving TLPs. When this register is written the credit values are 989215976Sjmallett * reset to the register value. A write to this register should take place BEFORE traffic flow starts. 990215976Sjmallett */ 991232812Sjmallettunion cvmx_pescx_tlp_credits { 992215976Sjmallett uint64_t u64; 993232812Sjmallett struct cvmx_pescx_tlp_credits_s { 994232812Sjmallett#ifdef __BIG_ENDIAN_BITFIELD 995215976Sjmallett uint64_t reserved_0_63 : 64; 996215976Sjmallett#else 997215976Sjmallett uint64_t reserved_0_63 : 64; 998215976Sjmallett#endif 999215976Sjmallett } s; 1000232812Sjmallett struct cvmx_pescx_tlp_credits_cn52xx { 1001232812Sjmallett#ifdef __BIG_ENDIAN_BITFIELD 1002215976Sjmallett uint64_t reserved_56_63 : 8; 1003215976Sjmallett uint64_t peai_ppf : 8; /**< TLP credits for Completion TLPs in the Peer. 1004215976Sjmallett Legal values are 0x24 to 0x80. */ 1005215976Sjmallett uint64_t pesc_cpl : 8; /**< TLP credits for Completion TLPs in the Peer. 1006215976Sjmallett Legal values are 0x24 to 0x80. */ 1007215976Sjmallett uint64_t pesc_np : 8; /**< TLP credits for Non-Posted TLPs in the Peer. 1008215976Sjmallett Legal values are 0x4 to 0x10. */ 1009215976Sjmallett uint64_t pesc_p : 8; /**< TLP credits for Posted TLPs in the Peer. 1010215976Sjmallett Legal values are 0x24 to 0x80. */ 1011215976Sjmallett uint64_t npei_cpl : 8; /**< TLP credits for Completion TLPs in the NPEI. 1012215976Sjmallett Legal values are 0x24 to 0x80. */ 1013215976Sjmallett uint64_t npei_np : 8; /**< TLP credits for Non-Posted TLPs in the NPEI. 1014215976Sjmallett Legal values are 0x4 to 0x10. */ 1015215976Sjmallett uint64_t npei_p : 8; /**< TLP credits for Posted TLPs in the NPEI. 1016215976Sjmallett Legal values are 0x24 to 0x80. */ 1017215976Sjmallett#else 1018215976Sjmallett uint64_t npei_p : 8; 1019215976Sjmallett uint64_t npei_np : 8; 1020215976Sjmallett uint64_t npei_cpl : 8; 1021215976Sjmallett uint64_t pesc_p : 8; 1022215976Sjmallett uint64_t pesc_np : 8; 1023215976Sjmallett uint64_t pesc_cpl : 8; 1024215976Sjmallett uint64_t peai_ppf : 8; 1025215976Sjmallett uint64_t reserved_56_63 : 8; 1026215976Sjmallett#endif 1027215976Sjmallett } cn52xx; 1028232812Sjmallett struct cvmx_pescx_tlp_credits_cn52xxp1 { 1029232812Sjmallett#ifdef __BIG_ENDIAN_BITFIELD 1030215976Sjmallett uint64_t reserved_38_63 : 26; 1031215976Sjmallett uint64_t peai_ppf : 8; /**< TLP credits in core clk pre-buffer that holds TLPs 1032215976Sjmallett being sent from PCIe Core to NPEI or PEER. */ 1033215976Sjmallett uint64_t pesc_cpl : 5; /**< TLP credits for Completion TLPs in the Peer. */ 1034215976Sjmallett uint64_t pesc_np : 5; /**< TLP credits for Non-Posted TLPs in the Peer. */ 1035215976Sjmallett uint64_t pesc_p : 5; /**< TLP credits for Posted TLPs in the Peer. */ 1036215976Sjmallett uint64_t npei_cpl : 5; /**< TLP credits for Completion TLPs in the NPEI. */ 1037215976Sjmallett uint64_t npei_np : 5; /**< TLP credits for Non-Posted TLPs in the NPEI. */ 1038215976Sjmallett uint64_t npei_p : 5; /**< TLP credits for Posted TLPs in the NPEI. */ 1039215976Sjmallett#else 1040215976Sjmallett uint64_t npei_p : 5; 1041215976Sjmallett uint64_t npei_np : 5; 1042215976Sjmallett uint64_t npei_cpl : 5; 1043215976Sjmallett uint64_t pesc_p : 5; 1044215976Sjmallett uint64_t pesc_np : 5; 1045215976Sjmallett uint64_t pesc_cpl : 5; 1046215976Sjmallett uint64_t peai_ppf : 8; 1047215976Sjmallett uint64_t reserved_38_63 : 26; 1048215976Sjmallett#endif 1049215976Sjmallett } cn52xxp1; 1050215976Sjmallett struct cvmx_pescx_tlp_credits_cn52xx cn56xx; 1051215976Sjmallett struct cvmx_pescx_tlp_credits_cn52xxp1 cn56xxp1; 1052215976Sjmallett}; 1053215976Sjmalletttypedef union cvmx_pescx_tlp_credits cvmx_pescx_tlp_credits_t; 1054215976Sjmallett 1055215976Sjmallett#endif 1056