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