1/* SPDX-License-Identifier: GPL-2.0 */
2/*
3 * Copyright (C) 2020 Marvell International Ltd.
4 *
5 * Configuration and status register (CSR) type definitions for
6 * Octeon pko.
7 */
8
9#ifndef __CVMX_PKO_DEFS_H__
10#define __CVMX_PKO_DEFS_H__
11
12#define CVMX_PKO_CHANNEL_LEVEL			(0x00015400000800F0ull)
13#define CVMX_PKO_DPFI_ENA			(0x0001540000C00018ull)
14#define CVMX_PKO_DPFI_FLUSH			(0x0001540000C00008ull)
15#define CVMX_PKO_DPFI_FPA_AURA			(0x0001540000C00010ull)
16#define CVMX_PKO_DPFI_STATUS			(0x0001540000C00000ull)
17#define CVMX_PKO_DQX_BYTES(offset)		(0x00015400000000D8ull + ((offset) & 1023) * 512)
18#define CVMX_PKO_DQX_CIR(offset)		(0x0001540000280018ull + ((offset) & 1023) * 512)
19#define CVMX_PKO_DQX_DROPPED_BYTES(offset)	(0x00015400000000C8ull + ((offset) & 1023) * 512)
20#define CVMX_PKO_DQX_DROPPED_PACKETS(offset)	(0x00015400000000C0ull + ((offset) & 1023) * 512)
21#define CVMX_PKO_DQX_FIFO(offset)		(0x0001540000300078ull + ((offset) & 1023) * 512)
22#define CVMX_PKO_DQX_PACKETS(offset)		(0x00015400000000D0ull + ((offset) & 1023) * 512)
23#define CVMX_PKO_DQX_PICK(offset)		(0x0001540000300070ull + ((offset) & 1023) * 512)
24#define CVMX_PKO_DQX_PIR(offset)		(0x0001540000280020ull + ((offset) & 1023) * 512)
25#define CVMX_PKO_DQX_POINTERS(offset)		(0x0001540000280078ull + ((offset) & 1023) * 512)
26#define CVMX_PKO_DQX_SCHEDULE(offset)		(0x0001540000280008ull + ((offset) & 1023) * 512)
27#define CVMX_PKO_DQX_SCHED_STATE(offset)	(0x0001540000280028ull + ((offset) & 1023) * 512)
28#define CVMX_PKO_DQX_SHAPE(offset)		(0x0001540000280010ull + ((offset) & 1023) * 512)
29#define CVMX_PKO_DQX_SHAPE_STATE(offset)	(0x0001540000280030ull + ((offset) & 1023) * 512)
30#define CVMX_PKO_DQX_SW_XOFF(offset)		(0x00015400002800E0ull + ((offset) & 1023) * 512)
31#define CVMX_PKO_DQX_TOPOLOGY(offset)		(0x0001540000300000ull + ((offset) & 1023) * 512)
32#define CVMX_PKO_DQX_WM_BUF_CNT(offset)		(0x00015400008000E8ull + ((offset) & 1023) * 512)
33#define CVMX_PKO_DQX_WM_BUF_CTL(offset)		(0x00015400008000F0ull + ((offset) & 1023) * 512)
34#define CVMX_PKO_DQX_WM_BUF_CTL_W1C(offset)	(0x00015400008000F8ull + ((offset) & 1023) * 512)
35#define CVMX_PKO_DQX_WM_CNT(offset)		(0x0001540000000050ull + ((offset) & 1023) * 512)
36#define CVMX_PKO_DQX_WM_CTL(offset)		(0x0001540000000040ull + ((offset) & 1023) * 512)
37#define CVMX_PKO_DQX_WM_CTL_W1C(offset)		(0x0001540000000048ull + ((offset) & 1023) * 512)
38#define CVMX_PKO_DQ_CSR_BUS_DEBUG		(0x00015400003001F8ull)
39#define CVMX_PKO_DQ_DEBUG			(0x0001540000300128ull)
40#define CVMX_PKO_DRAIN_IRQ			(0x0001540000000140ull)
41#define CVMX_PKO_ENABLE				(0x0001540000D00008ull)
42#define CVMX_PKO_FORMATX_CTL(offset)		(0x0001540000900800ull + ((offset) & 127) * 8)
43#define CVMX_PKO_L1_SQA_DEBUG			(0x0001540000080128ull)
44#define CVMX_PKO_L1_SQB_DEBUG			(0x0001540000080130ull)
45#define CVMX_PKO_L1_SQX_CIR(offset)		(0x0001540000000018ull + ((offset) & 31) * 512)
46#define CVMX_PKO_L1_SQX_DROPPED_BYTES(offset)	(0x0001540000000088ull + ((offset) & 31) * 512)
47#define CVMX_PKO_L1_SQX_DROPPED_PACKETS(offset) (0x0001540000000080ull + ((offset) & 31) * 512)
48#define CVMX_PKO_L1_SQX_GREEN(offset)		(0x0001540000080058ull + ((offset) & 31) * 512)
49#define CVMX_PKO_L1_SQX_GREEN_BYTES(offset)	(0x00015400000000B8ull + ((offset) & 31) * 512)
50#define CVMX_PKO_L1_SQX_GREEN_PACKETS(offset)	(0x00015400000000B0ull + ((offset) & 31) * 512)
51#define CVMX_PKO_L1_SQX_LINK(offset)		(0x0001540000000038ull + ((offset) & 31) * 512)
52#define CVMX_PKO_L1_SQX_PICK(offset)		(0x0001540000080070ull + ((offset) & 31) * 512)
53#define CVMX_PKO_L1_SQX_RED(offset)		(0x0001540000080068ull + ((offset) & 31) * 512)
54#define CVMX_PKO_L1_SQX_RED_BYTES(offset)	(0x0001540000000098ull + ((offset) & 31) * 512)
55#define CVMX_PKO_L1_SQX_RED_PACKETS(offset)	(0x0001540000000090ull + ((offset) & 31) * 512)
56#define CVMX_PKO_L1_SQX_SCHEDULE(offset)	(0x0001540000000008ull + ((offset) & 31) * 512)
57#define CVMX_PKO_L1_SQX_SHAPE(offset)		(0x0001540000000010ull + ((offset) & 31) * 512)
58#define CVMX_PKO_L1_SQX_SHAPE_STATE(offset)	(0x0001540000000030ull + ((offset) & 31) * 512)
59#define CVMX_PKO_L1_SQX_SW_XOFF(offset)		(0x00015400000000E0ull + ((offset) & 31) * 512)
60#define CVMX_PKO_L1_SQX_TOPOLOGY(offset)	(0x0001540000080000ull + ((offset) & 31) * 512)
61#define CVMX_PKO_L1_SQX_YELLOW(offset)		(0x0001540000080060ull + ((offset) & 31) * 512)
62#define CVMX_PKO_L1_SQX_YELLOW_BYTES(offset)	(0x00015400000000A8ull + ((offset) & 31) * 512)
63#define CVMX_PKO_L1_SQX_YELLOW_PACKETS(offset)	(0x00015400000000A0ull + ((offset) & 31) * 512)
64#define CVMX_PKO_L1_SQ_CSR_BUS_DEBUG		(0x00015400000801F8ull)
65#define CVMX_PKO_L2_SQA_DEBUG			(0x0001540000100128ull)
66#define CVMX_PKO_L2_SQB_DEBUG			(0x0001540000100130ull)
67#define CVMX_PKO_L2_SQX_CIR(offset)		(0x0001540000080018ull + ((offset) & 511) * 512)
68#define CVMX_PKO_L2_SQX_GREEN(offset)		(0x0001540000100058ull + ((offset) & 511) * 512)
69#define CVMX_PKO_L2_SQX_PICK(offset)		(0x0001540000100070ull + ((offset) & 511) * 512)
70#define CVMX_PKO_L2_SQX_PIR(offset)		(0x0001540000080020ull + ((offset) & 511) * 512)
71#define CVMX_PKO_L2_SQX_POINTERS(offset)	(0x0001540000080078ull + ((offset) & 511) * 512)
72#define CVMX_PKO_L2_SQX_RED(offset)		(0x0001540000100068ull + ((offset) & 511) * 512)
73#define CVMX_PKO_L2_SQX_SCHEDULE(offset)	(0x0001540000080008ull + ((offset) & 511) * 512)
74#define CVMX_PKO_L2_SQX_SCHED_STATE(offset)	(0x0001540000080028ull + ((offset) & 511) * 512)
75#define CVMX_PKO_L2_SQX_SHAPE(offset)		(0x0001540000080010ull + ((offset) & 511) * 512)
76#define CVMX_PKO_L2_SQX_SHAPE_STATE(offset)	(0x0001540000080030ull + ((offset) & 511) * 512)
77#define CVMX_PKO_L2_SQX_SW_XOFF(offset)		(0x00015400000800E0ull + ((offset) & 511) * 512)
78#define CVMX_PKO_L2_SQX_TOPOLOGY(offset)	(0x0001540000100000ull + ((offset) & 511) * 512)
79#define CVMX_PKO_L2_SQX_YELLOW(offset)		(0x0001540000100060ull + ((offset) & 511) * 512)
80#define CVMX_PKO_L2_SQ_CSR_BUS_DEBUG		(0x00015400001001F8ull)
81#define CVMX_PKO_L3_L2_SQX_CHANNEL(offset)	(0x0001540000080038ull + ((offset) & 511) * 512)
82#define CVMX_PKO_L3_SQA_DEBUG			(0x0001540000180128ull)
83#define CVMX_PKO_L3_SQB_DEBUG			(0x0001540000180130ull)
84#define CVMX_PKO_L3_SQX_CIR(offset)		(0x0001540000100018ull + ((offset) & 511) * 512)
85#define CVMX_PKO_L3_SQX_GREEN(offset)		(0x0001540000180058ull + ((offset) & 511) * 512)
86#define CVMX_PKO_L3_SQX_PICK(offset)		(0x0001540000180070ull + ((offset) & 511) * 512)
87#define CVMX_PKO_L3_SQX_PIR(offset)		(0x0001540000100020ull + ((offset) & 511) * 512)
88#define CVMX_PKO_L3_SQX_POINTERS(offset)	(0x0001540000100078ull + ((offset) & 511) * 512)
89#define CVMX_PKO_L3_SQX_RED(offset)		(0x0001540000180068ull + ((offset) & 511) * 512)
90#define CVMX_PKO_L3_SQX_SCHEDULE(offset)	(0x0001540000100008ull + ((offset) & 511) * 512)
91#define CVMX_PKO_L3_SQX_SCHED_STATE(offset)	(0x0001540000100028ull + ((offset) & 511) * 512)
92#define CVMX_PKO_L3_SQX_SHAPE(offset)		(0x0001540000100010ull + ((offset) & 511) * 512)
93#define CVMX_PKO_L3_SQX_SHAPE_STATE(offset)	(0x0001540000100030ull + ((offset) & 511) * 512)
94#define CVMX_PKO_L3_SQX_SW_XOFF(offset)		(0x00015400001000E0ull + ((offset) & 511) * 512)
95#define CVMX_PKO_L3_SQX_TOPOLOGY(offset)	(0x0001540000180000ull + ((offset) & 511) * 512)
96#define CVMX_PKO_L3_SQX_YELLOW(offset)		(0x0001540000180060ull + ((offset) & 511) * 512)
97#define CVMX_PKO_L3_SQ_CSR_BUS_DEBUG		(0x00015400001801F8ull)
98#define CVMX_PKO_L4_SQA_DEBUG			(0x0001540000200128ull)
99#define CVMX_PKO_L4_SQB_DEBUG			(0x0001540000200130ull)
100#define CVMX_PKO_L4_SQX_CIR(offset)		(0x0001540000180018ull + ((offset) & 1023) * 512)
101#define CVMX_PKO_L4_SQX_GREEN(offset)		(0x0001540000200058ull + ((offset) & 1023) * 512)
102#define CVMX_PKO_L4_SQX_PICK(offset)		(0x0001540000200070ull + ((offset) & 1023) * 512)
103#define CVMX_PKO_L4_SQX_PIR(offset)		(0x0001540000180020ull + ((offset) & 1023) * 512)
104#define CVMX_PKO_L4_SQX_POINTERS(offset)	(0x0001540000180078ull + ((offset) & 1023) * 512)
105#define CVMX_PKO_L4_SQX_RED(offset)		(0x0001540000200068ull + ((offset) & 1023) * 512)
106#define CVMX_PKO_L4_SQX_SCHEDULE(offset)	(0x0001540000180008ull + ((offset) & 1023) * 512)
107#define CVMX_PKO_L4_SQX_SCHED_STATE(offset)	(0x0001540000180028ull + ((offset) & 511) * 512)
108#define CVMX_PKO_L4_SQX_SHAPE(offset)		(0x0001540000180010ull + ((offset) & 1023) * 512)
109#define CVMX_PKO_L4_SQX_SHAPE_STATE(offset)	(0x0001540000180030ull + ((offset) & 1023) * 512)
110#define CVMX_PKO_L4_SQX_SW_XOFF(offset)		(0x00015400001800E0ull + ((offset) & 1023) * 512)
111#define CVMX_PKO_L4_SQX_TOPOLOGY(offset)	(0x0001540000200000ull + ((offset) & 1023) * 512)
112#define CVMX_PKO_L4_SQX_YELLOW(offset)		(0x0001540000200060ull + ((offset) & 1023) * 512)
113#define CVMX_PKO_L4_SQ_CSR_BUS_DEBUG		(0x00015400002001F8ull)
114#define CVMX_PKO_L5_SQA_DEBUG			(0x0001540000280128ull)
115#define CVMX_PKO_L5_SQB_DEBUG			(0x0001540000280130ull)
116#define CVMX_PKO_L5_SQX_CIR(offset)		(0x0001540000200018ull + ((offset) & 1023) * 512)
117#define CVMX_PKO_L5_SQX_GREEN(offset)		(0x0001540000280058ull + ((offset) & 1023) * 512)
118#define CVMX_PKO_L5_SQX_PICK(offset)		(0x0001540000280070ull + ((offset) & 1023) * 512)
119#define CVMX_PKO_L5_SQX_PIR(offset)		(0x0001540000200020ull + ((offset) & 1023) * 512)
120#define CVMX_PKO_L5_SQX_POINTERS(offset)	(0x0001540000200078ull + ((offset) & 1023) * 512)
121#define CVMX_PKO_L5_SQX_RED(offset)		(0x0001540000280068ull + ((offset) & 1023) * 512)
122#define CVMX_PKO_L5_SQX_SCHEDULE(offset)	(0x0001540000200008ull + ((offset) & 1023) * 512)
123#define CVMX_PKO_L5_SQX_SCHED_STATE(offset)	(0x0001540000200028ull + ((offset) & 1023) * 512)
124#define CVMX_PKO_L5_SQX_SHAPE(offset)		(0x0001540000200010ull + ((offset) & 1023) * 512)
125#define CVMX_PKO_L5_SQX_SHAPE_STATE(offset)	(0x0001540000200030ull + ((offset) & 1023) * 512)
126#define CVMX_PKO_L5_SQX_SW_XOFF(offset)		(0x00015400002000E0ull + ((offset) & 1023) * 512)
127#define CVMX_PKO_L5_SQX_TOPOLOGY(offset)	(0x0001540000280000ull + ((offset) & 1023) * 512)
128#define CVMX_PKO_L5_SQX_YELLOW(offset)		(0x0001540000280060ull + ((offset) & 1023) * 512)
129#define CVMX_PKO_L5_SQ_CSR_BUS_DEBUG		(0x00015400002801F8ull)
130#define CVMX_PKO_LUTX(offset)			(0x0001540000B00000ull + ((offset) & 1023) * 8)
131#define CVMX_PKO_LUT_BIST_STATUS		(0x0001540000B02018ull)
132#define CVMX_PKO_LUT_ECC_CTL0			(0x0001540000BFFFD0ull)
133#define CVMX_PKO_LUT_ECC_DBE_STS0		(0x0001540000BFFFF0ull)
134#define CVMX_PKO_LUT_ECC_DBE_STS_CMB0		(0x0001540000BFFFD8ull)
135#define CVMX_PKO_LUT_ECC_SBE_STS0		(0x0001540000BFFFF8ull)
136#define CVMX_PKO_LUT_ECC_SBE_STS_CMB0		(0x0001540000BFFFE8ull)
137#define CVMX_PKO_MACX_CFG(offset)		(0x0001540000900000ull + ((offset) & 31) * 8)
138#define CVMX_PKO_MCI0_CRED_CNTX(offset)		(0x0001540000A40000ull + ((offset) & 31) * 8)
139#define CVMX_PKO_MCI0_MAX_CREDX(offset)		(0x0001540000A00000ull + ((offset) & 31) * 8)
140#define CVMX_PKO_MCI1_CRED_CNTX(offset)		(0x0001540000A80100ull + ((offset) & 31) * 8)
141#define CVMX_PKO_MCI1_MAX_CREDX(offset)		(0x0001540000A80000ull + ((offset) & 31) * 8)
142#define CVMX_PKO_MEM_COUNT0			(0x0001180050001080ull)
143#define CVMX_PKO_MEM_COUNT1			(0x0001180050001088ull)
144#define CVMX_PKO_MEM_DEBUG0			(0x0001180050001100ull)
145#define CVMX_PKO_MEM_DEBUG1			(0x0001180050001108ull)
146#define CVMX_PKO_MEM_DEBUG10			(0x0001180050001150ull)
147#define CVMX_PKO_MEM_DEBUG11			(0x0001180050001158ull)
148#define CVMX_PKO_MEM_DEBUG12			(0x0001180050001160ull)
149#define CVMX_PKO_MEM_DEBUG13			(0x0001180050001168ull)
150#define CVMX_PKO_MEM_DEBUG14			(0x0001180050001170ull)
151#define CVMX_PKO_MEM_DEBUG2			(0x0001180050001110ull)
152#define CVMX_PKO_MEM_DEBUG3			(0x0001180050001118ull)
153#define CVMX_PKO_MEM_DEBUG4			(0x0001180050001120ull)
154#define CVMX_PKO_MEM_DEBUG5			(0x0001180050001128ull)
155#define CVMX_PKO_MEM_DEBUG6			(0x0001180050001130ull)
156#define CVMX_PKO_MEM_DEBUG7			(0x0001180050001138ull)
157#define CVMX_PKO_MEM_DEBUG8			(0x0001180050001140ull)
158#define CVMX_PKO_MEM_DEBUG9			(0x0001180050001148ull)
159#define CVMX_PKO_MEM_IPORT_PTRS			(0x0001180050001030ull)
160#define CVMX_PKO_MEM_IPORT_QOS			(0x0001180050001038ull)
161#define CVMX_PKO_MEM_IQUEUE_PTRS		(0x0001180050001040ull)
162#define CVMX_PKO_MEM_IQUEUE_QOS			(0x0001180050001048ull)
163#define CVMX_PKO_MEM_PORT_PTRS			(0x0001180050001010ull)
164#define CVMX_PKO_MEM_PORT_QOS			(0x0001180050001018ull)
165#define CVMX_PKO_MEM_PORT_RATE0			(0x0001180050001020ull)
166#define CVMX_PKO_MEM_PORT_RATE1			(0x0001180050001028ull)
167#define CVMX_PKO_MEM_QUEUE_PTRS			(0x0001180050001000ull)
168#define CVMX_PKO_MEM_QUEUE_QOS			(0x0001180050001008ull)
169#define CVMX_PKO_MEM_THROTTLE_INT		(0x0001180050001058ull)
170#define CVMX_PKO_MEM_THROTTLE_PIPE		(0x0001180050001050ull)
171#define CVMX_PKO_NCB_BIST_STATUS		(0x0001540000EFFF00ull)
172#define CVMX_PKO_NCB_ECC_CTL0			(0x0001540000EFFFD0ull)
173#define CVMX_PKO_NCB_ECC_DBE_STS0		(0x0001540000EFFFF0ull)
174#define CVMX_PKO_NCB_ECC_DBE_STS_CMB0		(0x0001540000EFFFD8ull)
175#define CVMX_PKO_NCB_ECC_SBE_STS0		(0x0001540000EFFFF8ull)
176#define CVMX_PKO_NCB_ECC_SBE_STS_CMB0		(0x0001540000EFFFE8ull)
177#define CVMX_PKO_NCB_INT			(0x0001540000E00010ull)
178#define CVMX_PKO_NCB_TX_ERR_INFO		(0x0001540000E00008ull)
179#define CVMX_PKO_NCB_TX_ERR_WORD		(0x0001540000E00000ull)
180#define CVMX_PKO_PDM_BIST_STATUS		(0x00015400008FFF00ull)
181#define CVMX_PKO_PDM_CFG			(0x0001540000800000ull)
182#define CVMX_PKO_PDM_CFG_DBG			(0x0001540000800FF8ull)
183#define CVMX_PKO_PDM_CP_DBG			(0x0001540000800190ull)
184#define CVMX_PKO_PDM_DQX_MINPAD(offset)		(0x00015400008F0000ull + ((offset) & 1023) * 8)
185#define CVMX_PKO_PDM_DRPBUF_DBG			(0x00015400008000B0ull)
186#define CVMX_PKO_PDM_DWPBUF_DBG			(0x00015400008000A8ull)
187#define CVMX_PKO_PDM_ECC_CTL0			(0x00015400008FFFD0ull)
188#define CVMX_PKO_PDM_ECC_CTL1			(0x00015400008FFFD8ull)
189#define CVMX_PKO_PDM_ECC_DBE_STS0		(0x00015400008FFFF0ull)
190#define CVMX_PKO_PDM_ECC_DBE_STS_CMB0		(0x00015400008FFFE0ull)
191#define CVMX_PKO_PDM_ECC_SBE_STS0		(0x00015400008FFFF8ull)
192#define CVMX_PKO_PDM_ECC_SBE_STS_CMB0		(0x00015400008FFFE8ull)
193#define CVMX_PKO_PDM_FILLB_DBG0			(0x00015400008002A0ull)
194#define CVMX_PKO_PDM_FILLB_DBG1			(0x00015400008002A8ull)
195#define CVMX_PKO_PDM_FILLB_DBG2			(0x00015400008002B0ull)
196#define CVMX_PKO_PDM_FLSHB_DBG0			(0x00015400008002B8ull)
197#define CVMX_PKO_PDM_FLSHB_DBG1			(0x00015400008002C0ull)
198#define CVMX_PKO_PDM_INTF_DBG_RD		(0x0001540000900F20ull)
199#define CVMX_PKO_PDM_ISRD_DBG			(0x0001540000800090ull)
200#define CVMX_PKO_PDM_ISRD_DBG_DQ		(0x0001540000800290ull)
201#define CVMX_PKO_PDM_ISRM_DBG			(0x0001540000800098ull)
202#define CVMX_PKO_PDM_ISRM_DBG_DQ		(0x0001540000800298ull)
203#define CVMX_PKO_PDM_MEM_ADDR			(0x0001540000800018ull)
204#define CVMX_PKO_PDM_MEM_DATA			(0x0001540000800010ull)
205#define CVMX_PKO_PDM_MEM_RW_CTL			(0x0001540000800020ull)
206#define CVMX_PKO_PDM_MEM_RW_STS			(0x0001540000800028ull)
207#define CVMX_PKO_PDM_MWPBUF_DBG			(0x00015400008000A0ull)
208#define CVMX_PKO_PDM_STS			(0x0001540000800008ull)
209#define CVMX_PKO_PEB_BIST_STATUS		(0x0001540000900D00ull)
210#define CVMX_PKO_PEB_ECC_CTL0			(0x00015400009FFFD0ull)
211#define CVMX_PKO_PEB_ECC_CTL1			(0x00015400009FFFA8ull)
212#define CVMX_PKO_PEB_ECC_DBE_STS0		(0x00015400009FFFF0ull)
213#define CVMX_PKO_PEB_ECC_DBE_STS_CMB0		(0x00015400009FFFD8ull)
214#define CVMX_PKO_PEB_ECC_SBE_STS0		(0x00015400009FFFF8ull)
215#define CVMX_PKO_PEB_ECC_SBE_STS_CMB0		(0x00015400009FFFE8ull)
216#define CVMX_PKO_PEB_ECO			(0x0001540000901000ull)
217#define CVMX_PKO_PEB_ERR_INT			(0x0001540000900C00ull)
218#define CVMX_PKO_PEB_EXT_HDR_DEF_ERR_INFO	(0x0001540000900C08ull)
219#define CVMX_PKO_PEB_FCS_SOP_ERR_INFO		(0x0001540000900C18ull)
220#define CVMX_PKO_PEB_JUMP_DEF_ERR_INFO		(0x0001540000900C10ull)
221#define CVMX_PKO_PEB_MACX_CFG_WR_ERR_INFO	(0x0001540000900C50ull)
222#define CVMX_PKO_PEB_MAX_LINK_ERR_INFO		(0x0001540000900C48ull)
223#define CVMX_PKO_PEB_NCB_CFG			(0x0001540000900308ull)
224#define CVMX_PKO_PEB_PAD_ERR_INFO		(0x0001540000900C28ull)
225#define CVMX_PKO_PEB_PSE_FIFO_ERR_INFO		(0x0001540000900C20ull)
226#define CVMX_PKO_PEB_SUBD_ADDR_ERR_INFO		(0x0001540000900C38ull)
227#define CVMX_PKO_PEB_SUBD_SIZE_ERR_INFO		(0x0001540000900C40ull)
228#define CVMX_PKO_PEB_TRUNC_ERR_INFO		(0x0001540000900C30ull)
229#define CVMX_PKO_PEB_TSO_CFG			(0x0001540000900310ull)
230#define CVMX_PKO_PQA_DEBUG			(0x0001540000000128ull)
231#define CVMX_PKO_PQB_DEBUG			(0x0001540000000130ull)
232#define CVMX_PKO_PQ_CSR_BUS_DEBUG		(0x00015400000001F8ull)
233#define CVMX_PKO_PQ_DEBUG_GREEN			(0x0001540000000058ull)
234#define CVMX_PKO_PQ_DEBUG_LINKS			(0x0001540000000068ull)
235#define CVMX_PKO_PQ_DEBUG_YELLOW		(0x0001540000000060ull)
236#define CVMX_PKO_PSE_DQ_BIST_STATUS		(0x0001540000300138ull)
237#define CVMX_PKO_PSE_DQ_ECC_CTL0		(0x0001540000300100ull)
238#define CVMX_PKO_PSE_DQ_ECC_DBE_STS0		(0x0001540000300118ull)
239#define CVMX_PKO_PSE_DQ_ECC_DBE_STS_CMB0	(0x0001540000300120ull)
240#define CVMX_PKO_PSE_DQ_ECC_SBE_STS0		(0x0001540000300108ull)
241#define CVMX_PKO_PSE_DQ_ECC_SBE_STS_CMB0	(0x0001540000300110ull)
242#define CVMX_PKO_PSE_PQ_BIST_STATUS		(0x0001540000000138ull)
243#define CVMX_PKO_PSE_PQ_ECC_CTL0		(0x0001540000000100ull)
244#define CVMX_PKO_PSE_PQ_ECC_DBE_STS0		(0x0001540000000118ull)
245#define CVMX_PKO_PSE_PQ_ECC_DBE_STS_CMB0	(0x0001540000000120ull)
246#define CVMX_PKO_PSE_PQ_ECC_SBE_STS0		(0x0001540000000108ull)
247#define CVMX_PKO_PSE_PQ_ECC_SBE_STS_CMB0	(0x0001540000000110ull)
248#define CVMX_PKO_PSE_SQ1_BIST_STATUS		(0x0001540000080138ull)
249#define CVMX_PKO_PSE_SQ1_ECC_CTL0		(0x0001540000080100ull)
250#define CVMX_PKO_PSE_SQ1_ECC_DBE_STS0		(0x0001540000080118ull)
251#define CVMX_PKO_PSE_SQ1_ECC_DBE_STS_CMB0	(0x0001540000080120ull)
252#define CVMX_PKO_PSE_SQ1_ECC_SBE_STS0		(0x0001540000080108ull)
253#define CVMX_PKO_PSE_SQ1_ECC_SBE_STS_CMB0	(0x0001540000080110ull)
254#define CVMX_PKO_PSE_SQ2_BIST_STATUS		(0x0001540000100138ull)
255#define CVMX_PKO_PSE_SQ2_ECC_CTL0		(0x0001540000100100ull)
256#define CVMX_PKO_PSE_SQ2_ECC_DBE_STS0		(0x0001540000100118ull)
257#define CVMX_PKO_PSE_SQ2_ECC_DBE_STS_CMB0	(0x0001540000100120ull)
258#define CVMX_PKO_PSE_SQ2_ECC_SBE_STS0		(0x0001540000100108ull)
259#define CVMX_PKO_PSE_SQ2_ECC_SBE_STS_CMB0	(0x0001540000100110ull)
260#define CVMX_PKO_PSE_SQ3_BIST_STATUS		(0x0001540000180138ull)
261#define CVMX_PKO_PSE_SQ3_ECC_CTL0		(0x0001540000180100ull)
262#define CVMX_PKO_PSE_SQ3_ECC_DBE_STS0		(0x0001540000180118ull)
263#define CVMX_PKO_PSE_SQ3_ECC_DBE_STS_CMB0	(0x0001540000180120ull)
264#define CVMX_PKO_PSE_SQ3_ECC_SBE_STS0		(0x0001540000180108ull)
265#define CVMX_PKO_PSE_SQ3_ECC_SBE_STS_CMB0	(0x0001540000180110ull)
266#define CVMX_PKO_PSE_SQ4_BIST_STATUS		(0x0001540000200138ull)
267#define CVMX_PKO_PSE_SQ4_ECC_CTL0		(0x0001540000200100ull)
268#define CVMX_PKO_PSE_SQ4_ECC_DBE_STS0		(0x0001540000200118ull)
269#define CVMX_PKO_PSE_SQ4_ECC_DBE_STS_CMB0	(0x0001540000200120ull)
270#define CVMX_PKO_PSE_SQ4_ECC_SBE_STS0		(0x0001540000200108ull)
271#define CVMX_PKO_PSE_SQ4_ECC_SBE_STS_CMB0	(0x0001540000200110ull)
272#define CVMX_PKO_PSE_SQ5_BIST_STATUS		(0x0001540000280138ull)
273#define CVMX_PKO_PSE_SQ5_ECC_CTL0		(0x0001540000280100ull)
274#define CVMX_PKO_PSE_SQ5_ECC_DBE_STS0		(0x0001540000280118ull)
275#define CVMX_PKO_PSE_SQ5_ECC_DBE_STS_CMB0	(0x0001540000280120ull)
276#define CVMX_PKO_PSE_SQ5_ECC_SBE_STS0		(0x0001540000280108ull)
277#define CVMX_PKO_PSE_SQ5_ECC_SBE_STS_CMB0	(0x0001540000280110ull)
278#define CVMX_PKO_PTFX_STATUS(offset)		(0x0001540000900100ull + ((offset) & 31) * 8)
279#define CVMX_PKO_PTF_IOBP_CFG			(0x0001540000900300ull)
280#define CVMX_PKO_PTGFX_CFG(offset)		(0x0001540000900200ull + ((offset) & 7) * 8)
281#define CVMX_PKO_REG_BIST_RESULT		(0x0001180050000080ull)
282#define CVMX_PKO_REG_CMD_BUF			(0x0001180050000010ull)
283#define CVMX_PKO_REG_CRC_CTLX(offset)		(0x0001180050000028ull + ((offset) & 1) * 8)
284#define CVMX_PKO_REG_CRC_ENABLE			(0x0001180050000020ull)
285#define CVMX_PKO_REG_CRC_IVX(offset)		(0x0001180050000038ull + ((offset) & 1) * 8)
286#define CVMX_PKO_REG_DEBUG0			(0x0001180050000098ull)
287#define CVMX_PKO_REG_DEBUG1			(0x00011800500000A0ull)
288#define CVMX_PKO_REG_DEBUG2			(0x00011800500000A8ull)
289#define CVMX_PKO_REG_DEBUG3			(0x00011800500000B0ull)
290#define CVMX_PKO_REG_DEBUG4			(0x00011800500000B8ull)
291#define CVMX_PKO_REG_ENGINE_INFLIGHT		(0x0001180050000050ull)
292#define CVMX_PKO_REG_ENGINE_INFLIGHT1		(0x0001180050000318ull)
293#define CVMX_PKO_REG_ENGINE_STORAGEX(offset)	(0x0001180050000300ull + ((offset) & 1) * 8)
294#define CVMX_PKO_REG_ENGINE_THRESH		(0x0001180050000058ull)
295#define CVMX_PKO_REG_ERROR			(0x0001180050000088ull)
296#define CVMX_PKO_REG_FLAGS			(0x0001180050000000ull)
297#define CVMX_PKO_REG_GMX_PORT_MODE		(0x0001180050000018ull)
298#define CVMX_PKO_REG_INT_MASK			(0x0001180050000090ull)
299#define CVMX_PKO_REG_LOOPBACK_BPID		(0x0001180050000118ull)
300#define CVMX_PKO_REG_LOOPBACK_PKIND		(0x0001180050000068ull)
301#define CVMX_PKO_REG_MIN_PKT			(0x0001180050000070ull)
302#define CVMX_PKO_REG_PREEMPT			(0x0001180050000110ull)
303#define CVMX_PKO_REG_QUEUE_MODE			(0x0001180050000048ull)
304#define CVMX_PKO_REG_QUEUE_PREEMPT		(0x0001180050000108ull)
305#define CVMX_PKO_REG_QUEUE_PTRS1		(0x0001180050000100ull)
306#define CVMX_PKO_REG_READ_IDX			(0x0001180050000008ull)
307#define CVMX_PKO_REG_THROTTLE			(0x0001180050000078ull)
308#define CVMX_PKO_REG_TIMESTAMP			(0x0001180050000060ull)
309#define CVMX_PKO_SHAPER_CFG			(0x00015400000800F8ull)
310#define CVMX_PKO_STATE_UID_IN_USEX_RD(offset)	(0x0001540000900F00ull + ((offset) & 3) * 8)
311#define CVMX_PKO_STATUS				(0x0001540000D00000ull)
312#define CVMX_PKO_TXFX_PKT_CNT_RD(offset)	(0x0001540000900E00ull + ((offset) & 31) * 8)
313
314/**
315 * cvmx_pko_channel_level
316 */
317union cvmx_pko_channel_level {
318	u64 u64;
319	struct cvmx_pko_channel_level_s {
320		u64 reserved_1_63 : 63;
321		u64 cc_level : 1;
322	} s;
323	struct cvmx_pko_channel_level_s cn73xx;
324	struct cvmx_pko_channel_level_s cn78xx;
325	struct cvmx_pko_channel_level_s cn78xxp1;
326	struct cvmx_pko_channel_level_s cnf75xx;
327};
328
329typedef union cvmx_pko_channel_level cvmx_pko_channel_level_t;
330
331/**
332 * cvmx_pko_dpfi_ena
333 */
334union cvmx_pko_dpfi_ena {
335	u64 u64;
336	struct cvmx_pko_dpfi_ena_s {
337		u64 reserved_1_63 : 63;
338		u64 enable : 1;
339	} s;
340	struct cvmx_pko_dpfi_ena_s cn73xx;
341	struct cvmx_pko_dpfi_ena_s cn78xx;
342	struct cvmx_pko_dpfi_ena_s cn78xxp1;
343	struct cvmx_pko_dpfi_ena_s cnf75xx;
344};
345
346typedef union cvmx_pko_dpfi_ena cvmx_pko_dpfi_ena_t;
347
348/**
349 * cvmx_pko_dpfi_flush
350 */
351union cvmx_pko_dpfi_flush {
352	u64 u64;
353	struct cvmx_pko_dpfi_flush_s {
354		u64 reserved_1_63 : 63;
355		u64 flush_en : 1;
356	} s;
357	struct cvmx_pko_dpfi_flush_s cn73xx;
358	struct cvmx_pko_dpfi_flush_s cn78xx;
359	struct cvmx_pko_dpfi_flush_s cn78xxp1;
360	struct cvmx_pko_dpfi_flush_s cnf75xx;
361};
362
363typedef union cvmx_pko_dpfi_flush cvmx_pko_dpfi_flush_t;
364
365/**
366 * cvmx_pko_dpfi_fpa_aura
367 */
368union cvmx_pko_dpfi_fpa_aura {
369	u64 u64;
370	struct cvmx_pko_dpfi_fpa_aura_s {
371		u64 reserved_12_63 : 52;
372		u64 node : 2;
373		u64 laura : 10;
374	} s;
375	struct cvmx_pko_dpfi_fpa_aura_s cn73xx;
376	struct cvmx_pko_dpfi_fpa_aura_s cn78xx;
377	struct cvmx_pko_dpfi_fpa_aura_s cn78xxp1;
378	struct cvmx_pko_dpfi_fpa_aura_s cnf75xx;
379};
380
381typedef union cvmx_pko_dpfi_fpa_aura cvmx_pko_dpfi_fpa_aura_t;
382
383/**
384 * cvmx_pko_dpfi_status
385 */
386union cvmx_pko_dpfi_status {
387	u64 u64;
388	struct cvmx_pko_dpfi_status_s {
389		u64 ptr_cnt : 32;
390		u64 reserved_27_31 : 5;
391		u64 xpd_fif_cnt : 4;
392		u64 dalc_fif_cnt : 4;
393		u64 alc_fif_cnt : 5;
394		u64 reserved_13_13 : 1;
395		u64 isrd_ptr1_rtn_full : 1;
396		u64 isrd_ptr0_rtn_full : 1;
397		u64 isrm_ptr1_rtn_full : 1;
398		u64 isrm_ptr0_rtn_full : 1;
399		u64 isrd_ptr1_val : 1;
400		u64 isrd_ptr0_val : 1;
401		u64 isrm_ptr1_val : 1;
402		u64 isrm_ptr0_val : 1;
403		u64 ptr_req_pend : 1;
404		u64 ptr_rtn_pend : 1;
405		u64 fpa_empty : 1;
406		u64 dpfi_empty : 1;
407		u64 cache_flushed : 1;
408	} s;
409	struct cvmx_pko_dpfi_status_s cn73xx;
410	struct cvmx_pko_dpfi_status_s cn78xx;
411	struct cvmx_pko_dpfi_status_cn78xxp1 {
412		u64 ptr_cnt : 32;
413		u64 reserved_13_31 : 19;
414		u64 isrd_ptr1_rtn_full : 1;
415		u64 isrd_ptr0_rtn_full : 1;
416		u64 isrm_ptr1_rtn_full : 1;
417		u64 isrm_ptr0_rtn_full : 1;
418		u64 isrd_ptr1_val : 1;
419		u64 isrd_ptr0_val : 1;
420		u64 isrm_ptr1_val : 1;
421		u64 isrm_ptr0_val : 1;
422		u64 ptr_req_pend : 1;
423		u64 ptr_rtn_pend : 1;
424		u64 fpa_empty : 1;
425		u64 dpfi_empty : 1;
426		u64 cache_flushed : 1;
427	} cn78xxp1;
428	struct cvmx_pko_dpfi_status_s cnf75xx;
429};
430
431typedef union cvmx_pko_dpfi_status cvmx_pko_dpfi_status_t;
432
433/**
434 * cvmx_pko_dq#_bytes
435 *
436 * This register has the same bit fields as PKO_L1_SQ()_GREEN_BYTES.
437 *
438 */
439union cvmx_pko_dqx_bytes {
440	u64 u64;
441	struct cvmx_pko_dqx_bytes_s {
442		u64 reserved_48_63 : 16;
443		u64 count : 48;
444	} s;
445	struct cvmx_pko_dqx_bytes_s cn73xx;
446	struct cvmx_pko_dqx_bytes_s cn78xx;
447	struct cvmx_pko_dqx_bytes_s cn78xxp1;
448	struct cvmx_pko_dqx_bytes_s cnf75xx;
449};
450
451typedef union cvmx_pko_dqx_bytes cvmx_pko_dqx_bytes_t;
452
453/**
454 * cvmx_pko_dq#_cir
455 *
456 * This register has the same bit fields as PKO_L1_SQ()_CIR.
457 *
458 */
459union cvmx_pko_dqx_cir {
460	u64 u64;
461	struct cvmx_pko_dqx_cir_s {
462		u64 reserved_41_63 : 23;
463		u64 burst_exponent : 4;
464		u64 burst_mantissa : 8;
465		u64 reserved_17_28 : 12;
466		u64 rate_divider_exponent : 4;
467		u64 rate_exponent : 4;
468		u64 rate_mantissa : 8;
469		u64 enable : 1;
470	} s;
471	struct cvmx_pko_dqx_cir_s cn73xx;
472	struct cvmx_pko_dqx_cir_s cn78xx;
473	struct cvmx_pko_dqx_cir_s cn78xxp1;
474	struct cvmx_pko_dqx_cir_s cnf75xx;
475};
476
477typedef union cvmx_pko_dqx_cir cvmx_pko_dqx_cir_t;
478
479/**
480 * cvmx_pko_dq#_dropped_bytes
481 *
482 * This register has the same bit fields as PKO_L1_SQ()_GREEN_BYTES.
483 *
484 */
485union cvmx_pko_dqx_dropped_bytes {
486	u64 u64;
487	struct cvmx_pko_dqx_dropped_bytes_s {
488		u64 reserved_48_63 : 16;
489		u64 count : 48;
490	} s;
491	struct cvmx_pko_dqx_dropped_bytes_s cn73xx;
492	struct cvmx_pko_dqx_dropped_bytes_s cn78xx;
493	struct cvmx_pko_dqx_dropped_bytes_s cn78xxp1;
494	struct cvmx_pko_dqx_dropped_bytes_s cnf75xx;
495};
496
497typedef union cvmx_pko_dqx_dropped_bytes cvmx_pko_dqx_dropped_bytes_t;
498
499/**
500 * cvmx_pko_dq#_dropped_packets
501 *
502 * This register has the same bit fields as PKO_L1_SQ()_GREEN_PACKETS.
503 *
504 */
505union cvmx_pko_dqx_dropped_packets {
506	u64 u64;
507	struct cvmx_pko_dqx_dropped_packets_s {
508		u64 reserved_40_63 : 24;
509		u64 count : 40;
510	} s;
511	struct cvmx_pko_dqx_dropped_packets_s cn73xx;
512	struct cvmx_pko_dqx_dropped_packets_s cn78xx;
513	struct cvmx_pko_dqx_dropped_packets_s cn78xxp1;
514	struct cvmx_pko_dqx_dropped_packets_s cnf75xx;
515};
516
517typedef union cvmx_pko_dqx_dropped_packets cvmx_pko_dqx_dropped_packets_t;
518
519/**
520 * cvmx_pko_dq#_fifo
521 */
522union cvmx_pko_dqx_fifo {
523	u64 u64;
524	struct cvmx_pko_dqx_fifo_s {
525		u64 reserved_15_63 : 49;
526		u64 p_con : 1;
527		u64 head : 7;
528		u64 tail : 7;
529	} s;
530	struct cvmx_pko_dqx_fifo_s cn73xx;
531	struct cvmx_pko_dqx_fifo_s cn78xx;
532	struct cvmx_pko_dqx_fifo_s cn78xxp1;
533	struct cvmx_pko_dqx_fifo_s cnf75xx;
534};
535
536typedef union cvmx_pko_dqx_fifo cvmx_pko_dqx_fifo_t;
537
538/**
539 * cvmx_pko_dq#_packets
540 *
541 * This register has the same bit fields as PKO_L1_SQ()_GREEN_PACKETS.
542 *
543 */
544union cvmx_pko_dqx_packets {
545	u64 u64;
546	struct cvmx_pko_dqx_packets_s {
547		u64 reserved_40_63 : 24;
548		u64 count : 40;
549	} s;
550	struct cvmx_pko_dqx_packets_s cn73xx;
551	struct cvmx_pko_dqx_packets_s cn78xx;
552	struct cvmx_pko_dqx_packets_s cn78xxp1;
553	struct cvmx_pko_dqx_packets_s cnf75xx;
554};
555
556typedef union cvmx_pko_dqx_packets cvmx_pko_dqx_packets_t;
557
558/**
559 * cvmx_pko_dq#_pick
560 *
561 * This CSR contains the meta for the DQ, and is for debug and reconfiguration
562 * only and should never be written. See also PKO_META_DESC_S.
563 */
564union cvmx_pko_dqx_pick {
565	u64 u64;
566	struct cvmx_pko_dqx_pick_s {
567		u64 dq : 10;
568		u64 color : 2;
569		u64 child : 10;
570		u64 bubble : 1;
571		u64 p_con : 1;
572		u64 c_con : 1;
573		u64 uid : 7;
574		u64 jump : 1;
575		u64 fpd : 1;
576		u64 ds : 1;
577		u64 adjust : 9;
578		u64 pir_dis : 1;
579		u64 cir_dis : 1;
580		u64 red_algo_override : 2;
581		u64 length : 16;
582	} s;
583	struct cvmx_pko_dqx_pick_s cn73xx;
584	struct cvmx_pko_dqx_pick_s cn78xx;
585	struct cvmx_pko_dqx_pick_s cn78xxp1;
586	struct cvmx_pko_dqx_pick_s cnf75xx;
587};
588
589typedef union cvmx_pko_dqx_pick cvmx_pko_dqx_pick_t;
590
591/**
592 * cvmx_pko_dq#_pir
593 *
594 * This register has the same bit fields as PKO_L1_SQ()_CIR.
595 *
596 */
597union cvmx_pko_dqx_pir {
598	u64 u64;
599	struct cvmx_pko_dqx_pir_s {
600		u64 reserved_41_63 : 23;
601		u64 burst_exponent : 4;
602		u64 burst_mantissa : 8;
603		u64 reserved_17_28 : 12;
604		u64 rate_divider_exponent : 4;
605		u64 rate_exponent : 4;
606		u64 rate_mantissa : 8;
607		u64 enable : 1;
608	} s;
609	struct cvmx_pko_dqx_pir_s cn73xx;
610	struct cvmx_pko_dqx_pir_s cn78xx;
611	struct cvmx_pko_dqx_pir_s cn78xxp1;
612	struct cvmx_pko_dqx_pir_s cnf75xx;
613};
614
615typedef union cvmx_pko_dqx_pir cvmx_pko_dqx_pir_t;
616
617/**
618 * cvmx_pko_dq#_pointers
619 *
620 * This register has the same bit fields as PKO_L3_SQ(0..255)_POINTERS.
621 *
622 */
623union cvmx_pko_dqx_pointers {
624	u64 u64;
625	struct cvmx_pko_dqx_pointers_s {
626		u64 reserved_26_63 : 38;
627		u64 prev : 10;
628		u64 reserved_10_15 : 6;
629		u64 next : 10;
630	} s;
631	struct cvmx_pko_dqx_pointers_cn73xx {
632		u64 reserved_24_63 : 40;
633		u64 prev : 8;
634		u64 reserved_8_15 : 8;
635		u64 next : 8;
636	} cn73xx;
637	struct cvmx_pko_dqx_pointers_s cn78xx;
638	struct cvmx_pko_dqx_pointers_s cn78xxp1;
639	struct cvmx_pko_dqx_pointers_cn73xx cnf75xx;
640};
641
642typedef union cvmx_pko_dqx_pointers cvmx_pko_dqx_pointers_t;
643
644/**
645 * cvmx_pko_dq#_sched_state
646 *
647 * This register has the same bit fields as PKO_L2_SQ()_SCHED_STATE.
648 *
649 */
650union cvmx_pko_dqx_sched_state {
651	u64 u64;
652	struct cvmx_pko_dqx_sched_state_s {
653		u64 reserved_25_63 : 39;
654		u64 rr_count : 25;
655	} s;
656	struct cvmx_pko_dqx_sched_state_s cn73xx;
657	struct cvmx_pko_dqx_sched_state_s cn78xx;
658	struct cvmx_pko_dqx_sched_state_s cn78xxp1;
659	struct cvmx_pko_dqx_sched_state_s cnf75xx;
660};
661
662typedef union cvmx_pko_dqx_sched_state cvmx_pko_dqx_sched_state_t;
663
664/**
665 * cvmx_pko_dq#_schedule
666 *
667 * This register has the same bit fields as PKO_L2_SQ()_SCHEDULE.
668 *
669 */
670union cvmx_pko_dqx_schedule {
671	u64 u64;
672	struct cvmx_pko_dqx_schedule_s {
673		u64 reserved_28_63 : 36;
674		u64 prio : 4;
675		u64 rr_quantum : 24;
676	} s;
677	struct cvmx_pko_dqx_schedule_s cn73xx;
678	struct cvmx_pko_dqx_schedule_s cn78xx;
679	struct cvmx_pko_dqx_schedule_s cn78xxp1;
680	struct cvmx_pko_dqx_schedule_s cnf75xx;
681};
682
683typedef union cvmx_pko_dqx_schedule cvmx_pko_dqx_schedule_t;
684
685/**
686 * cvmx_pko_dq#_shape
687 *
688 * This register has the same bit fields as PKO_L3_SQ()_SHAPE.
689 *
690 */
691union cvmx_pko_dqx_shape {
692	u64 u64;
693	struct cvmx_pko_dqx_shape_s {
694		u64 reserved_27_63 : 37;
695		u64 schedule_list : 2;
696		u64 length_disable : 1;
697		u64 reserved_13_23 : 11;
698		u64 yellow_disable : 1;
699		u64 red_disable : 1;
700		u64 red_algo : 2;
701		u64 adjust : 9;
702	} s;
703	struct cvmx_pko_dqx_shape_s cn73xx;
704	struct cvmx_pko_dqx_shape_cn78xx {
705		u64 reserved_25_63 : 39;
706		u64 length_disable : 1;
707		u64 reserved_13_23 : 11;
708		u64 yellow_disable : 1;
709		u64 red_disable : 1;
710		u64 red_algo : 2;
711		u64 adjust : 9;
712	} cn78xx;
713	struct cvmx_pko_dqx_shape_cn78xx cn78xxp1;
714	struct cvmx_pko_dqx_shape_s cnf75xx;
715};
716
717typedef union cvmx_pko_dqx_shape cvmx_pko_dqx_shape_t;
718
719/**
720 * cvmx_pko_dq#_shape_state
721 *
722 * This register has the same bit fields as PKO_L2_SQ()_SHAPE_STATE.
723 * This register must not be written during normal operation.
724 */
725union cvmx_pko_dqx_shape_state {
726	u64 u64;
727	struct cvmx_pko_dqx_shape_state_s {
728		u64 reserved_60_63 : 4;
729		u64 tw_timestamp : 6;
730		u64 color : 2;
731		u64 pir_accum : 26;
732		u64 cir_accum : 26;
733	} s;
734	struct cvmx_pko_dqx_shape_state_s cn73xx;
735	struct cvmx_pko_dqx_shape_state_s cn78xx;
736	struct cvmx_pko_dqx_shape_state_s cn78xxp1;
737	struct cvmx_pko_dqx_shape_state_s cnf75xx;
738};
739
740typedef union cvmx_pko_dqx_shape_state cvmx_pko_dqx_shape_state_t;
741
742/**
743 * cvmx_pko_dq#_sw_xoff
744 *
745 * This register has the same bit fields as PKO_L1_SQ()_SW_XOFF.
746 *
747 */
748union cvmx_pko_dqx_sw_xoff {
749	u64 u64;
750	struct cvmx_pko_dqx_sw_xoff_s {
751		u64 reserved_4_63 : 60;
752		u64 drain_irq : 1;
753		u64 drain_null_link : 1;
754		u64 drain : 1;
755		u64 xoff : 1;
756	} s;
757	struct cvmx_pko_dqx_sw_xoff_s cn73xx;
758	struct cvmx_pko_dqx_sw_xoff_s cn78xx;
759	struct cvmx_pko_dqx_sw_xoff_s cn78xxp1;
760	struct cvmx_pko_dqx_sw_xoff_s cnf75xx;
761};
762
763typedef union cvmx_pko_dqx_sw_xoff cvmx_pko_dqx_sw_xoff_t;
764
765/**
766 * cvmx_pko_dq#_topology
767 */
768union cvmx_pko_dqx_topology {
769	u64 u64;
770	struct cvmx_pko_dqx_topology_s {
771		u64 reserved_26_63 : 38;
772		u64 parent : 10;
773		u64 reserved_0_15 : 16;
774	} s;
775	struct cvmx_pko_dqx_topology_cn73xx {
776		u64 reserved_24_63 : 40;
777		u64 parent : 8;
778		u64 reserved_0_15 : 16;
779	} cn73xx;
780	struct cvmx_pko_dqx_topology_s cn78xx;
781	struct cvmx_pko_dqx_topology_s cn78xxp1;
782	struct cvmx_pko_dqx_topology_cn73xx cnf75xx;
783};
784
785typedef union cvmx_pko_dqx_topology cvmx_pko_dqx_topology_t;
786
787/**
788 * cvmx_pko_dq#_wm_buf_cnt
789 */
790union cvmx_pko_dqx_wm_buf_cnt {
791	u64 u64;
792	struct cvmx_pko_dqx_wm_buf_cnt_s {
793		u64 reserved_36_63 : 28;
794		u64 count : 36;
795	} s;
796	struct cvmx_pko_dqx_wm_buf_cnt_s cn73xx;
797	struct cvmx_pko_dqx_wm_buf_cnt_s cn78xx;
798	struct cvmx_pko_dqx_wm_buf_cnt_s cn78xxp1;
799	struct cvmx_pko_dqx_wm_buf_cnt_s cnf75xx;
800};
801
802typedef union cvmx_pko_dqx_wm_buf_cnt cvmx_pko_dqx_wm_buf_cnt_t;
803
804/**
805 * cvmx_pko_dq#_wm_buf_ctl
806 */
807union cvmx_pko_dqx_wm_buf_ctl {
808	u64 u64;
809	struct cvmx_pko_dqx_wm_buf_ctl_s {
810		u64 reserved_51_63 : 13;
811		u64 enable : 1;
812		u64 reserved_49_49 : 1;
813		u64 intr : 1;
814		u64 reserved_36_47 : 12;
815		u64 threshold : 36;
816	} s;
817	struct cvmx_pko_dqx_wm_buf_ctl_s cn73xx;
818	struct cvmx_pko_dqx_wm_buf_ctl_s cn78xx;
819	struct cvmx_pko_dqx_wm_buf_ctl_s cn78xxp1;
820	struct cvmx_pko_dqx_wm_buf_ctl_s cnf75xx;
821};
822
823typedef union cvmx_pko_dqx_wm_buf_ctl cvmx_pko_dqx_wm_buf_ctl_t;
824
825/**
826 * cvmx_pko_dq#_wm_buf_ctl_w1c
827 */
828union cvmx_pko_dqx_wm_buf_ctl_w1c {
829	u64 u64;
830	struct cvmx_pko_dqx_wm_buf_ctl_w1c_s {
831		u64 reserved_49_63 : 15;
832		u64 intr : 1;
833		u64 reserved_0_47 : 48;
834	} s;
835	struct cvmx_pko_dqx_wm_buf_ctl_w1c_s cn73xx;
836	struct cvmx_pko_dqx_wm_buf_ctl_w1c_s cn78xx;
837	struct cvmx_pko_dqx_wm_buf_ctl_w1c_s cn78xxp1;
838	struct cvmx_pko_dqx_wm_buf_ctl_w1c_s cnf75xx;
839};
840
841typedef union cvmx_pko_dqx_wm_buf_ctl_w1c cvmx_pko_dqx_wm_buf_ctl_w1c_t;
842
843/**
844 * cvmx_pko_dq#_wm_cnt
845 */
846union cvmx_pko_dqx_wm_cnt {
847	u64 u64;
848	struct cvmx_pko_dqx_wm_cnt_s {
849		u64 reserved_48_63 : 16;
850		u64 count : 48;
851	} s;
852	struct cvmx_pko_dqx_wm_cnt_s cn73xx;
853	struct cvmx_pko_dqx_wm_cnt_s cn78xx;
854	struct cvmx_pko_dqx_wm_cnt_s cn78xxp1;
855	struct cvmx_pko_dqx_wm_cnt_s cnf75xx;
856};
857
858typedef union cvmx_pko_dqx_wm_cnt cvmx_pko_dqx_wm_cnt_t;
859
860/**
861 * cvmx_pko_dq#_wm_ctl
862 */
863union cvmx_pko_dqx_wm_ctl {
864	u64 u64;
865	struct cvmx_pko_dqx_wm_ctl_s {
866		u64 reserved_52_63 : 12;
867		u64 ncb_query_rsp : 1;
868		u64 enable : 1;
869		u64 kind : 1;
870		u64 intr : 1;
871		u64 threshold : 48;
872	} s;
873	struct cvmx_pko_dqx_wm_ctl_s cn73xx;
874	struct cvmx_pko_dqx_wm_ctl_s cn78xx;
875	struct cvmx_pko_dqx_wm_ctl_s cn78xxp1;
876	struct cvmx_pko_dqx_wm_ctl_s cnf75xx;
877};
878
879typedef union cvmx_pko_dqx_wm_ctl cvmx_pko_dqx_wm_ctl_t;
880
881/**
882 * cvmx_pko_dq#_wm_ctl_w1c
883 */
884union cvmx_pko_dqx_wm_ctl_w1c {
885	u64 u64;
886	struct cvmx_pko_dqx_wm_ctl_w1c_s {
887		u64 reserved_49_63 : 15;
888		u64 intr : 1;
889		u64 reserved_0_47 : 48;
890	} s;
891	struct cvmx_pko_dqx_wm_ctl_w1c_s cn73xx;
892	struct cvmx_pko_dqx_wm_ctl_w1c_s cn78xx;
893	struct cvmx_pko_dqx_wm_ctl_w1c_s cn78xxp1;
894	struct cvmx_pko_dqx_wm_ctl_w1c_s cnf75xx;
895};
896
897typedef union cvmx_pko_dqx_wm_ctl_w1c cvmx_pko_dqx_wm_ctl_w1c_t;
898
899/**
900 * cvmx_pko_dq_csr_bus_debug
901 */
902union cvmx_pko_dq_csr_bus_debug {
903	u64 u64;
904	struct cvmx_pko_dq_csr_bus_debug_s {
905		u64 csr_bus_debug : 64;
906	} s;
907	struct cvmx_pko_dq_csr_bus_debug_s cn73xx;
908	struct cvmx_pko_dq_csr_bus_debug_s cn78xx;
909	struct cvmx_pko_dq_csr_bus_debug_s cn78xxp1;
910	struct cvmx_pko_dq_csr_bus_debug_s cnf75xx;
911};
912
913typedef union cvmx_pko_dq_csr_bus_debug cvmx_pko_dq_csr_bus_debug_t;
914
915/**
916 * cvmx_pko_dq_debug
917 */
918union cvmx_pko_dq_debug {
919	u64 u64;
920	struct cvmx_pko_dq_debug_s {
921		u64 dbg_vec : 64;
922	} s;
923	struct cvmx_pko_dq_debug_s cn73xx;
924	struct cvmx_pko_dq_debug_s cn78xx;
925	struct cvmx_pko_dq_debug_s cn78xxp1;
926	struct cvmx_pko_dq_debug_s cnf75xx;
927};
928
929typedef union cvmx_pko_dq_debug cvmx_pko_dq_debug_t;
930
931/**
932 * cvmx_pko_drain_irq
933 */
934union cvmx_pko_drain_irq {
935	u64 u64;
936	struct cvmx_pko_drain_irq_s {
937		u64 reserved_1_63 : 63;
938		u64 intr : 1;
939	} s;
940	struct cvmx_pko_drain_irq_s cn73xx;
941	struct cvmx_pko_drain_irq_s cn78xx;
942	struct cvmx_pko_drain_irq_s cn78xxp1;
943	struct cvmx_pko_drain_irq_s cnf75xx;
944};
945
946typedef union cvmx_pko_drain_irq cvmx_pko_drain_irq_t;
947
948/**
949 * cvmx_pko_enable
950 */
951union cvmx_pko_enable {
952	u64 u64;
953	struct cvmx_pko_enable_s {
954		u64 reserved_1_63 : 63;
955		u64 enable : 1;
956	} s;
957	struct cvmx_pko_enable_s cn73xx;
958	struct cvmx_pko_enable_s cn78xx;
959	struct cvmx_pko_enable_s cn78xxp1;
960	struct cvmx_pko_enable_s cnf75xx;
961};
962
963typedef union cvmx_pko_enable cvmx_pko_enable_t;
964
965/**
966 * cvmx_pko_format#_ctl
967 *
968 * Describes packet marking calculations for YELLOW and for RED_SEND packets.
969 * PKO_SEND_HDR_S[FORMAT] selects the CSR used for the packet descriptor.
970 *
971 * All the packet marking calculations assume big-endian bits within a byte.
972 *
973 * For example, if MARKPTR is 3 and [OFFSET] is 5 and the packet is YELLOW,
974 * the PKO marking hardware would do this:
975 *
976 * _  byte[3]<2:0> |=   Y_VAL<3:1>
977 * _  byte[3]<2:0> &= ~Y_MASK<3:1>
978 * _  byte[4]<7>   |=   Y_VAL<0>
979 * _  byte[4]<7>   &= ~Y_MASK<0>
980 *
981 * where byte[3] is the 3rd byte in the packet, and byte[4] the 4th.
982 *
983 * For another example, if MARKPTR is 3 and [OFFSET] is 0 and the packet is RED_SEND,
984 *
985 * _   byte[3]<7:4> |=   R_VAL<3:0>
986 * _   byte[3]<7:4> &= ~R_MASK<3:0>
987 */
988union cvmx_pko_formatx_ctl {
989	u64 u64;
990	struct cvmx_pko_formatx_ctl_s {
991		u64 reserved_27_63 : 37;
992		u64 offset : 11;
993		u64 y_mask : 4;
994		u64 y_val : 4;
995		u64 r_mask : 4;
996		u64 r_val : 4;
997	} s;
998	struct cvmx_pko_formatx_ctl_s cn73xx;
999	struct cvmx_pko_formatx_ctl_s cn78xx;
1000	struct cvmx_pko_formatx_ctl_s cn78xxp1;
1001	struct cvmx_pko_formatx_ctl_s cnf75xx;
1002};
1003
1004typedef union cvmx_pko_formatx_ctl cvmx_pko_formatx_ctl_t;
1005
1006/**
1007 * cvmx_pko_l1_sq#_cir
1008 */
1009union cvmx_pko_l1_sqx_cir {
1010	u64 u64;
1011	struct cvmx_pko_l1_sqx_cir_s {
1012		u64 reserved_41_63 : 23;
1013		u64 burst_exponent : 4;
1014		u64 burst_mantissa : 8;
1015		u64 reserved_17_28 : 12;
1016		u64 rate_divider_exponent : 4;
1017		u64 rate_exponent : 4;
1018		u64 rate_mantissa : 8;
1019		u64 enable : 1;
1020	} s;
1021	struct cvmx_pko_l1_sqx_cir_s cn73xx;
1022	struct cvmx_pko_l1_sqx_cir_s cn78xx;
1023	struct cvmx_pko_l1_sqx_cir_s cn78xxp1;
1024	struct cvmx_pko_l1_sqx_cir_s cnf75xx;
1025};
1026
1027typedef union cvmx_pko_l1_sqx_cir cvmx_pko_l1_sqx_cir_t;
1028
1029/**
1030 * cvmx_pko_l1_sq#_dropped_bytes
1031 *
1032 * This register has the same bit fields as PKO_L1_SQ()_GREEN_BYTES.
1033 *
1034 */
1035union cvmx_pko_l1_sqx_dropped_bytes {
1036	u64 u64;
1037	struct cvmx_pko_l1_sqx_dropped_bytes_s {
1038		u64 reserved_48_63 : 16;
1039		u64 count : 48;
1040	} s;
1041	struct cvmx_pko_l1_sqx_dropped_bytes_s cn73xx;
1042	struct cvmx_pko_l1_sqx_dropped_bytes_s cn78xx;
1043	struct cvmx_pko_l1_sqx_dropped_bytes_s cn78xxp1;
1044	struct cvmx_pko_l1_sqx_dropped_bytes_s cnf75xx;
1045};
1046
1047typedef union cvmx_pko_l1_sqx_dropped_bytes cvmx_pko_l1_sqx_dropped_bytes_t;
1048
1049/**
1050 * cvmx_pko_l1_sq#_dropped_packets
1051 *
1052 * This register has the same bit fields as PKO_L1_SQ()_GREEN_PACKETS.
1053 *
1054 */
1055union cvmx_pko_l1_sqx_dropped_packets {
1056	u64 u64;
1057	struct cvmx_pko_l1_sqx_dropped_packets_s {
1058		u64 reserved_40_63 : 24;
1059		u64 count : 40;
1060	} s;
1061	struct cvmx_pko_l1_sqx_dropped_packets_s cn73xx;
1062	struct cvmx_pko_l1_sqx_dropped_packets_s cn78xx;
1063	struct cvmx_pko_l1_sqx_dropped_packets_s cn78xxp1;
1064	struct cvmx_pko_l1_sqx_dropped_packets_s cnf75xx;
1065};
1066
1067typedef union cvmx_pko_l1_sqx_dropped_packets cvmx_pko_l1_sqx_dropped_packets_t;
1068
1069/**
1070 * cvmx_pko_l1_sq#_green
1071 */
1072union cvmx_pko_l1_sqx_green {
1073	u64 u64;
1074	struct cvmx_pko_l1_sqx_green_s {
1075		u64 reserved_41_63 : 23;
1076		u64 rr_active : 1;
1077		u64 active_vec : 20;
1078		u64 reserved_19_19 : 1;
1079		u64 head : 9;
1080		u64 reserved_9_9 : 1;
1081		u64 tail : 9;
1082	} s;
1083	struct cvmx_pko_l1_sqx_green_s cn73xx;
1084	struct cvmx_pko_l1_sqx_green_s cn78xx;
1085	struct cvmx_pko_l1_sqx_green_s cn78xxp1;
1086	struct cvmx_pko_l1_sqx_green_s cnf75xx;
1087};
1088
1089typedef union cvmx_pko_l1_sqx_green cvmx_pko_l1_sqx_green_t;
1090
1091/**
1092 * cvmx_pko_l1_sq#_green_bytes
1093 */
1094union cvmx_pko_l1_sqx_green_bytes {
1095	u64 u64;
1096	struct cvmx_pko_l1_sqx_green_bytes_s {
1097		u64 reserved_48_63 : 16;
1098		u64 count : 48;
1099	} s;
1100	struct cvmx_pko_l1_sqx_green_bytes_s cn73xx;
1101	struct cvmx_pko_l1_sqx_green_bytes_s cn78xx;
1102	struct cvmx_pko_l1_sqx_green_bytes_s cn78xxp1;
1103	struct cvmx_pko_l1_sqx_green_bytes_s cnf75xx;
1104};
1105
1106typedef union cvmx_pko_l1_sqx_green_bytes cvmx_pko_l1_sqx_green_bytes_t;
1107
1108/**
1109 * cvmx_pko_l1_sq#_green_packets
1110 */
1111union cvmx_pko_l1_sqx_green_packets {
1112	u64 u64;
1113	struct cvmx_pko_l1_sqx_green_packets_s {
1114		u64 reserved_40_63 : 24;
1115		u64 count : 40;
1116	} s;
1117	struct cvmx_pko_l1_sqx_green_packets_s cn73xx;
1118	struct cvmx_pko_l1_sqx_green_packets_s cn78xx;
1119	struct cvmx_pko_l1_sqx_green_packets_s cn78xxp1;
1120	struct cvmx_pko_l1_sqx_green_packets_s cnf75xx;
1121};
1122
1123typedef union cvmx_pko_l1_sqx_green_packets cvmx_pko_l1_sqx_green_packets_t;
1124
1125/**
1126 * cvmx_pko_l1_sq#_link
1127 */
1128union cvmx_pko_l1_sqx_link {
1129	u64 u64;
1130	struct cvmx_pko_l1_sqx_link_s {
1131		u64 reserved_49_63 : 15;
1132		u64 link : 5;
1133		u64 reserved_32_43 : 12;
1134		u64 cc_word_cnt : 20;
1135		u64 cc_packet_cnt : 10;
1136		u64 cc_enable : 1;
1137		u64 reserved_0_0 : 1;
1138	} s;
1139	struct cvmx_pko_l1_sqx_link_cn73xx {
1140		u64 reserved_48_63 : 16;
1141		u64 link : 4;
1142		u64 reserved_32_43 : 12;
1143		u64 cc_word_cnt : 20;
1144		u64 cc_packet_cnt : 10;
1145		u64 cc_enable : 1;
1146		u64 reserved_0_0 : 1;
1147	} cn73xx;
1148	struct cvmx_pko_l1_sqx_link_s cn78xx;
1149	struct cvmx_pko_l1_sqx_link_s cn78xxp1;
1150	struct cvmx_pko_l1_sqx_link_cn73xx cnf75xx;
1151};
1152
1153typedef union cvmx_pko_l1_sqx_link cvmx_pko_l1_sqx_link_t;
1154
1155/**
1156 * cvmx_pko_l1_sq#_pick
1157 *
1158 * This CSR contains the meta for the L1 SQ, and is for debug and reconfiguration
1159 * only and should never be written. See also PKO_META_DESC_S.
1160 */
1161union cvmx_pko_l1_sqx_pick {
1162	u64 u64;
1163	struct cvmx_pko_l1_sqx_pick_s {
1164		u64 dq : 10;
1165		u64 color : 2;
1166		u64 child : 10;
1167		u64 bubble : 1;
1168		u64 p_con : 1;
1169		u64 c_con : 1;
1170		u64 uid : 7;
1171		u64 jump : 1;
1172		u64 fpd : 1;
1173		u64 ds : 1;
1174		u64 adjust : 9;
1175		u64 pir_dis : 1;
1176		u64 cir_dis : 1;
1177		u64 red_algo_override : 2;
1178		u64 length : 16;
1179	} s;
1180	struct cvmx_pko_l1_sqx_pick_s cn73xx;
1181	struct cvmx_pko_l1_sqx_pick_s cn78xx;
1182	struct cvmx_pko_l1_sqx_pick_s cn78xxp1;
1183	struct cvmx_pko_l1_sqx_pick_s cnf75xx;
1184};
1185
1186typedef union cvmx_pko_l1_sqx_pick cvmx_pko_l1_sqx_pick_t;
1187
1188/**
1189 * cvmx_pko_l1_sq#_red
1190 *
1191 * This register has the same bit fields as PKO_L1_SQ()_YELLOW.
1192 *
1193 */
1194union cvmx_pko_l1_sqx_red {
1195	u64 u64;
1196	struct cvmx_pko_l1_sqx_red_s {
1197		u64 reserved_19_63 : 45;
1198		u64 head : 9;
1199		u64 reserved_9_9 : 1;
1200		u64 tail : 9;
1201	} s;
1202	struct cvmx_pko_l1_sqx_red_s cn73xx;
1203	struct cvmx_pko_l1_sqx_red_s cn78xx;
1204	struct cvmx_pko_l1_sqx_red_s cn78xxp1;
1205	struct cvmx_pko_l1_sqx_red_s cnf75xx;
1206};
1207
1208typedef union cvmx_pko_l1_sqx_red cvmx_pko_l1_sqx_red_t;
1209
1210/**
1211 * cvmx_pko_l1_sq#_red_bytes
1212 *
1213 * This register has the same bit fields as PKO_L1_SQ()_GREEN_BYTES.
1214 *
1215 */
1216union cvmx_pko_l1_sqx_red_bytes {
1217	u64 u64;
1218	struct cvmx_pko_l1_sqx_red_bytes_s {
1219		u64 reserved_48_63 : 16;
1220		u64 count : 48;
1221	} s;
1222	struct cvmx_pko_l1_sqx_red_bytes_s cn73xx;
1223	struct cvmx_pko_l1_sqx_red_bytes_s cn78xx;
1224	struct cvmx_pko_l1_sqx_red_bytes_s cn78xxp1;
1225	struct cvmx_pko_l1_sqx_red_bytes_s cnf75xx;
1226};
1227
1228typedef union cvmx_pko_l1_sqx_red_bytes cvmx_pko_l1_sqx_red_bytes_t;
1229
1230/**
1231 * cvmx_pko_l1_sq#_red_packets
1232 *
1233 * This register has the same bit fields as PKO_L1_SQ()_GREEN_PACKETS.
1234 *
1235 */
1236union cvmx_pko_l1_sqx_red_packets {
1237	u64 u64;
1238	struct cvmx_pko_l1_sqx_red_packets_s {
1239		u64 reserved_40_63 : 24;
1240		u64 count : 40;
1241	} s;
1242	struct cvmx_pko_l1_sqx_red_packets_s cn73xx;
1243	struct cvmx_pko_l1_sqx_red_packets_s cn78xx;
1244	struct cvmx_pko_l1_sqx_red_packets_s cn78xxp1;
1245	struct cvmx_pko_l1_sqx_red_packets_s cnf75xx;
1246};
1247
1248typedef union cvmx_pko_l1_sqx_red_packets cvmx_pko_l1_sqx_red_packets_t;
1249
1250/**
1251 * cvmx_pko_l1_sq#_schedule
1252 */
1253union cvmx_pko_l1_sqx_schedule {
1254	u64 u64;
1255	struct cvmx_pko_l1_sqx_schedule_s {
1256		u64 dummy : 40;
1257		u64 rr_quantum : 24;
1258	} s;
1259	struct cvmx_pko_l1_sqx_schedule_cn73xx {
1260		u64 reserved_24_63 : 40;
1261		u64 rr_quantum : 24;
1262	} cn73xx;
1263	struct cvmx_pko_l1_sqx_schedule_cn73xx cn78xx;
1264	struct cvmx_pko_l1_sqx_schedule_s cn78xxp1;
1265	struct cvmx_pko_l1_sqx_schedule_cn73xx cnf75xx;
1266};
1267
1268typedef union cvmx_pko_l1_sqx_schedule cvmx_pko_l1_sqx_schedule_t;
1269
1270/**
1271 * cvmx_pko_l1_sq#_shape
1272 */
1273union cvmx_pko_l1_sqx_shape {
1274	u64 u64;
1275	struct cvmx_pko_l1_sqx_shape_s {
1276		u64 reserved_25_63 : 39;
1277		u64 length_disable : 1;
1278		u64 reserved_18_23 : 6;
1279		u64 link : 5;
1280		u64 reserved_9_12 : 4;
1281		u64 adjust : 9;
1282	} s;
1283	struct cvmx_pko_l1_sqx_shape_cn73xx {
1284		u64 reserved_25_63 : 39;
1285		u64 length_disable : 1;
1286		u64 reserved_17_23 : 7;
1287		u64 link : 4;
1288		u64 reserved_9_12 : 4;
1289		u64 adjust : 9;
1290	} cn73xx;
1291	struct cvmx_pko_l1_sqx_shape_s cn78xx;
1292	struct cvmx_pko_l1_sqx_shape_s cn78xxp1;
1293	struct cvmx_pko_l1_sqx_shape_cn73xx cnf75xx;
1294};
1295
1296typedef union cvmx_pko_l1_sqx_shape cvmx_pko_l1_sqx_shape_t;
1297
1298/**
1299 * cvmx_pko_l1_sq#_shape_state
1300 *
1301 * This register must not be written during normal operation.
1302 *
1303 */
1304union cvmx_pko_l1_sqx_shape_state {
1305	u64 u64;
1306	struct cvmx_pko_l1_sqx_shape_state_s {
1307		u64 reserved_60_63 : 4;
1308		u64 tw_timestamp : 6;
1309		u64 color2 : 1;
1310		u64 color : 1;
1311		u64 reserved_26_51 : 26;
1312		u64 cir_accum : 26;
1313	} s;
1314	struct cvmx_pko_l1_sqx_shape_state_cn73xx {
1315		u64 reserved_60_63 : 4;
1316		u64 tw_timestamp : 6;
1317		u64 reserved_53_53 : 1;
1318		u64 color : 1;
1319		u64 reserved_26_51 : 26;
1320		u64 cir_accum : 26;
1321	} cn73xx;
1322	struct cvmx_pko_l1_sqx_shape_state_cn73xx cn78xx;
1323	struct cvmx_pko_l1_sqx_shape_state_s cn78xxp1;
1324	struct cvmx_pko_l1_sqx_shape_state_cn73xx cnf75xx;
1325};
1326
1327typedef union cvmx_pko_l1_sqx_shape_state cvmx_pko_l1_sqx_shape_state_t;
1328
1329/**
1330 * cvmx_pko_l1_sq#_sw_xoff
1331 */
1332union cvmx_pko_l1_sqx_sw_xoff {
1333	u64 u64;
1334	struct cvmx_pko_l1_sqx_sw_xoff_s {
1335		u64 reserved_4_63 : 60;
1336		u64 drain_irq : 1;
1337		u64 drain_null_link : 1;
1338		u64 drain : 1;
1339		u64 xoff : 1;
1340	} s;
1341	struct cvmx_pko_l1_sqx_sw_xoff_s cn73xx;
1342	struct cvmx_pko_l1_sqx_sw_xoff_s cn78xx;
1343	struct cvmx_pko_l1_sqx_sw_xoff_s cn78xxp1;
1344	struct cvmx_pko_l1_sqx_sw_xoff_s cnf75xx;
1345};
1346
1347typedef union cvmx_pko_l1_sqx_sw_xoff cvmx_pko_l1_sqx_sw_xoff_t;
1348
1349/**
1350 * cvmx_pko_l1_sq#_topology
1351 */
1352union cvmx_pko_l1_sqx_topology {
1353	u64 u64;
1354	struct cvmx_pko_l1_sqx_topology_s {
1355		u64 reserved_41_63 : 23;
1356		u64 prio_anchor : 9;
1357		u64 reserved_21_31 : 11;
1358		u64 link : 5;
1359		u64 reserved_5_15 : 11;
1360		u64 rr_prio : 4;
1361		u64 reserved_0_0 : 1;
1362	} s;
1363	struct cvmx_pko_l1_sqx_topology_cn73xx {
1364		u64 reserved_40_63 : 24;
1365		u64 prio_anchor : 8;
1366		u64 reserved_20_31 : 12;
1367		u64 link : 4;
1368		u64 reserved_5_15 : 11;
1369		u64 rr_prio : 4;
1370		u64 reserved_0_0 : 1;
1371	} cn73xx;
1372	struct cvmx_pko_l1_sqx_topology_s cn78xx;
1373	struct cvmx_pko_l1_sqx_topology_s cn78xxp1;
1374	struct cvmx_pko_l1_sqx_topology_cn73xx cnf75xx;
1375};
1376
1377typedef union cvmx_pko_l1_sqx_topology cvmx_pko_l1_sqx_topology_t;
1378
1379/**
1380 * cvmx_pko_l1_sq#_yellow
1381 */
1382union cvmx_pko_l1_sqx_yellow {
1383	u64 u64;
1384	struct cvmx_pko_l1_sqx_yellow_s {
1385		u64 reserved_19_63 : 45;
1386		u64 head : 9;
1387		u64 reserved_9_9 : 1;
1388		u64 tail : 9;
1389	} s;
1390	struct cvmx_pko_l1_sqx_yellow_s cn73xx;
1391	struct cvmx_pko_l1_sqx_yellow_s cn78xx;
1392	struct cvmx_pko_l1_sqx_yellow_s cn78xxp1;
1393	struct cvmx_pko_l1_sqx_yellow_s cnf75xx;
1394};
1395
1396typedef union cvmx_pko_l1_sqx_yellow cvmx_pko_l1_sqx_yellow_t;
1397
1398/**
1399 * cvmx_pko_l1_sq#_yellow_bytes
1400 *
1401 * This register has the same bit fields as PKO_L1_SQ()_GREEN_BYTES.
1402 *
1403 */
1404union cvmx_pko_l1_sqx_yellow_bytes {
1405	u64 u64;
1406	struct cvmx_pko_l1_sqx_yellow_bytes_s {
1407		u64 reserved_48_63 : 16;
1408		u64 count : 48;
1409	} s;
1410	struct cvmx_pko_l1_sqx_yellow_bytes_s cn73xx;
1411	struct cvmx_pko_l1_sqx_yellow_bytes_s cn78xx;
1412	struct cvmx_pko_l1_sqx_yellow_bytes_s cn78xxp1;
1413	struct cvmx_pko_l1_sqx_yellow_bytes_s cnf75xx;
1414};
1415
1416typedef union cvmx_pko_l1_sqx_yellow_bytes cvmx_pko_l1_sqx_yellow_bytes_t;
1417
1418/**
1419 * cvmx_pko_l1_sq#_yellow_packets
1420 *
1421 * This register has the same bit fields as PKO_L1_SQ()_GREEN_PACKETS.
1422 *
1423 */
1424union cvmx_pko_l1_sqx_yellow_packets {
1425	u64 u64;
1426	struct cvmx_pko_l1_sqx_yellow_packets_s {
1427		u64 reserved_40_63 : 24;
1428		u64 count : 40;
1429	} s;
1430	struct cvmx_pko_l1_sqx_yellow_packets_s cn73xx;
1431	struct cvmx_pko_l1_sqx_yellow_packets_s cn78xx;
1432	struct cvmx_pko_l1_sqx_yellow_packets_s cn78xxp1;
1433	struct cvmx_pko_l1_sqx_yellow_packets_s cnf75xx;
1434};
1435
1436typedef union cvmx_pko_l1_sqx_yellow_packets cvmx_pko_l1_sqx_yellow_packets_t;
1437
1438/**
1439 * cvmx_pko_l1_sq_csr_bus_debug
1440 */
1441union cvmx_pko_l1_sq_csr_bus_debug {
1442	u64 u64;
1443	struct cvmx_pko_l1_sq_csr_bus_debug_s {
1444		u64 csr_bus_debug : 64;
1445	} s;
1446	struct cvmx_pko_l1_sq_csr_bus_debug_s cn73xx;
1447	struct cvmx_pko_l1_sq_csr_bus_debug_s cn78xx;
1448	struct cvmx_pko_l1_sq_csr_bus_debug_s cn78xxp1;
1449	struct cvmx_pko_l1_sq_csr_bus_debug_s cnf75xx;
1450};
1451
1452typedef union cvmx_pko_l1_sq_csr_bus_debug cvmx_pko_l1_sq_csr_bus_debug_t;
1453
1454/**
1455 * cvmx_pko_l1_sqa_debug
1456 *
1457 * This register has the same bit fields as PKO_PQA_DEBUG.
1458 *
1459 */
1460union cvmx_pko_l1_sqa_debug {
1461	u64 u64;
1462	struct cvmx_pko_l1_sqa_debug_s {
1463		u64 dbg_vec : 64;
1464	} s;
1465	struct cvmx_pko_l1_sqa_debug_s cn73xx;
1466	struct cvmx_pko_l1_sqa_debug_s cn78xx;
1467	struct cvmx_pko_l1_sqa_debug_s cn78xxp1;
1468	struct cvmx_pko_l1_sqa_debug_s cnf75xx;
1469};
1470
1471typedef union cvmx_pko_l1_sqa_debug cvmx_pko_l1_sqa_debug_t;
1472
1473/**
1474 * cvmx_pko_l1_sqb_debug
1475 *
1476 * This register has the same bit fields as PKO_PQA_DEBUG.
1477 *
1478 */
1479union cvmx_pko_l1_sqb_debug {
1480	u64 u64;
1481	struct cvmx_pko_l1_sqb_debug_s {
1482		u64 dbg_vec : 64;
1483	} s;
1484	struct cvmx_pko_l1_sqb_debug_s cn73xx;
1485	struct cvmx_pko_l1_sqb_debug_s cn78xx;
1486	struct cvmx_pko_l1_sqb_debug_s cn78xxp1;
1487	struct cvmx_pko_l1_sqb_debug_s cnf75xx;
1488};
1489
1490typedef union cvmx_pko_l1_sqb_debug cvmx_pko_l1_sqb_debug_t;
1491
1492/**
1493 * cvmx_pko_l2_sq#_cir
1494 *
1495 * This register has the same bit fields as PKO_L1_SQ()_CIR.
1496 *
1497 */
1498union cvmx_pko_l2_sqx_cir {
1499	u64 u64;
1500	struct cvmx_pko_l2_sqx_cir_s {
1501		u64 reserved_41_63 : 23;
1502		u64 burst_exponent : 4;
1503		u64 burst_mantissa : 8;
1504		u64 reserved_17_28 : 12;
1505		u64 rate_divider_exponent : 4;
1506		u64 rate_exponent : 4;
1507		u64 rate_mantissa : 8;
1508		u64 enable : 1;
1509	} s;
1510	struct cvmx_pko_l2_sqx_cir_s cn73xx;
1511	struct cvmx_pko_l2_sqx_cir_s cn78xx;
1512	struct cvmx_pko_l2_sqx_cir_s cn78xxp1;
1513	struct cvmx_pko_l2_sqx_cir_s cnf75xx;
1514};
1515
1516typedef union cvmx_pko_l2_sqx_cir cvmx_pko_l2_sqx_cir_t;
1517
1518/**
1519 * cvmx_pko_l2_sq#_green
1520 *
1521 * This register has the same bit fields as PKO_L1_SQ()_GREEN.
1522 *
1523 */
1524union cvmx_pko_l2_sqx_green {
1525	u64 u64;
1526	struct cvmx_pko_l2_sqx_green_s {
1527		u64 reserved_41_63 : 23;
1528		u64 rr_active : 1;
1529		u64 active_vec : 20;
1530		u64 reserved_19_19 : 1;
1531		u64 head : 9;
1532		u64 reserved_9_9 : 1;
1533		u64 tail : 9;
1534	} s;
1535	struct cvmx_pko_l2_sqx_green_s cn73xx;
1536	struct cvmx_pko_l2_sqx_green_s cn78xx;
1537	struct cvmx_pko_l2_sqx_green_s cn78xxp1;
1538	struct cvmx_pko_l2_sqx_green_s cnf75xx;
1539};
1540
1541typedef union cvmx_pko_l2_sqx_green cvmx_pko_l2_sqx_green_t;
1542
1543/**
1544 * cvmx_pko_l2_sq#_pick
1545 *
1546 * This CSR contains the meta for the L2 SQ, and is for debug and reconfiguration
1547 * only and should never be written. See also PKO_META_DESC_S.
1548 */
1549union cvmx_pko_l2_sqx_pick {
1550	u64 u64;
1551	struct cvmx_pko_l2_sqx_pick_s {
1552		u64 dq : 10;
1553		u64 color : 2;
1554		u64 child : 10;
1555		u64 bubble : 1;
1556		u64 p_con : 1;
1557		u64 c_con : 1;
1558		u64 uid : 7;
1559		u64 jump : 1;
1560		u64 fpd : 1;
1561		u64 ds : 1;
1562		u64 adjust : 9;
1563		u64 pir_dis : 1;
1564		u64 cir_dis : 1;
1565		u64 red_algo_override : 2;
1566		u64 length : 16;
1567	} s;
1568	struct cvmx_pko_l2_sqx_pick_s cn73xx;
1569	struct cvmx_pko_l2_sqx_pick_s cn78xx;
1570	struct cvmx_pko_l2_sqx_pick_s cn78xxp1;
1571	struct cvmx_pko_l2_sqx_pick_s cnf75xx;
1572};
1573
1574typedef union cvmx_pko_l2_sqx_pick cvmx_pko_l2_sqx_pick_t;
1575
1576/**
1577 * cvmx_pko_l2_sq#_pir
1578 *
1579 * This register has the same bit fields as PKO_L1_SQ()_CIR.
1580 *
1581 */
1582union cvmx_pko_l2_sqx_pir {
1583	u64 u64;
1584	struct cvmx_pko_l2_sqx_pir_s {
1585		u64 reserved_41_63 : 23;
1586		u64 burst_exponent : 4;
1587		u64 burst_mantissa : 8;
1588		u64 reserved_17_28 : 12;
1589		u64 rate_divider_exponent : 4;
1590		u64 rate_exponent : 4;
1591		u64 rate_mantissa : 8;
1592		u64 enable : 1;
1593	} s;
1594	struct cvmx_pko_l2_sqx_pir_s cn73xx;
1595	struct cvmx_pko_l2_sqx_pir_s cn78xx;
1596	struct cvmx_pko_l2_sqx_pir_s cn78xxp1;
1597	struct cvmx_pko_l2_sqx_pir_s cnf75xx;
1598};
1599
1600typedef union cvmx_pko_l2_sqx_pir cvmx_pko_l2_sqx_pir_t;
1601
1602/**
1603 * cvmx_pko_l2_sq#_pointers
1604 */
1605union cvmx_pko_l2_sqx_pointers {
1606	u64 u64;
1607	struct cvmx_pko_l2_sqx_pointers_s {
1608		u64 reserved_25_63 : 39;
1609		u64 prev : 9;
1610		u64 reserved_9_15 : 7;
1611		u64 next : 9;
1612	} s;
1613	struct cvmx_pko_l2_sqx_pointers_cn73xx {
1614		u64 reserved_24_63 : 40;
1615		u64 prev : 8;
1616		u64 reserved_8_15 : 8;
1617		u64 next : 8;
1618	} cn73xx;
1619	struct cvmx_pko_l2_sqx_pointers_s cn78xx;
1620	struct cvmx_pko_l2_sqx_pointers_s cn78xxp1;
1621	struct cvmx_pko_l2_sqx_pointers_cn73xx cnf75xx;
1622};
1623
1624typedef union cvmx_pko_l2_sqx_pointers cvmx_pko_l2_sqx_pointers_t;
1625
1626/**
1627 * cvmx_pko_l2_sq#_red
1628 *
1629 * This register has the same bit fields as PKO_L1_SQ()_RED.
1630 *
1631 */
1632union cvmx_pko_l2_sqx_red {
1633	u64 u64;
1634	struct cvmx_pko_l2_sqx_red_s {
1635		u64 reserved_19_63 : 45;
1636		u64 head : 9;
1637		u64 reserved_9_9 : 1;
1638		u64 tail : 9;
1639	} s;
1640	struct cvmx_pko_l2_sqx_red_s cn73xx;
1641	struct cvmx_pko_l2_sqx_red_s cn78xx;
1642	struct cvmx_pko_l2_sqx_red_s cn78xxp1;
1643	struct cvmx_pko_l2_sqx_red_s cnf75xx;
1644};
1645
1646typedef union cvmx_pko_l2_sqx_red cvmx_pko_l2_sqx_red_t;
1647
1648/**
1649 * cvmx_pko_l2_sq#_sched_state
1650 */
1651union cvmx_pko_l2_sqx_sched_state {
1652	u64 u64;
1653	struct cvmx_pko_l2_sqx_sched_state_s {
1654		u64 reserved_25_63 : 39;
1655		u64 rr_count : 25;
1656	} s;
1657	struct cvmx_pko_l2_sqx_sched_state_s cn73xx;
1658	struct cvmx_pko_l2_sqx_sched_state_s cn78xx;
1659	struct cvmx_pko_l2_sqx_sched_state_s cn78xxp1;
1660	struct cvmx_pko_l2_sqx_sched_state_s cnf75xx;
1661};
1662
1663typedef union cvmx_pko_l2_sqx_sched_state cvmx_pko_l2_sqx_sched_state_t;
1664
1665/**
1666 * cvmx_pko_l2_sq#_schedule
1667 */
1668union cvmx_pko_l2_sqx_schedule {
1669	u64 u64;
1670	struct cvmx_pko_l2_sqx_schedule_s {
1671		u64 reserved_28_63 : 36;
1672		u64 prio : 4;
1673		u64 rr_quantum : 24;
1674	} s;
1675	struct cvmx_pko_l2_sqx_schedule_s cn73xx;
1676	struct cvmx_pko_l2_sqx_schedule_s cn78xx;
1677	struct cvmx_pko_l2_sqx_schedule_s cn78xxp1;
1678	struct cvmx_pko_l2_sqx_schedule_s cnf75xx;
1679};
1680
1681typedef union cvmx_pko_l2_sqx_schedule cvmx_pko_l2_sqx_schedule_t;
1682
1683/**
1684 * cvmx_pko_l2_sq#_shape
1685 */
1686union cvmx_pko_l2_sqx_shape {
1687	u64 u64;
1688	struct cvmx_pko_l2_sqx_shape_s {
1689		u64 reserved_27_63 : 37;
1690		u64 schedule_list : 2;
1691		u64 length_disable : 1;
1692		u64 reserved_13_23 : 11;
1693		u64 yellow_disable : 1;
1694		u64 red_disable : 1;
1695		u64 red_algo : 2;
1696		u64 adjust : 9;
1697	} s;
1698	struct cvmx_pko_l2_sqx_shape_s cn73xx;
1699	struct cvmx_pko_l2_sqx_shape_cn78xx {
1700		u64 reserved_25_63 : 39;
1701		u64 length_disable : 1;
1702		u64 reserved_13_23 : 11;
1703		u64 yellow_disable : 1;
1704		u64 red_disable : 1;
1705		u64 red_algo : 2;
1706		u64 adjust : 9;
1707	} cn78xx;
1708	struct cvmx_pko_l2_sqx_shape_cn78xx cn78xxp1;
1709	struct cvmx_pko_l2_sqx_shape_s cnf75xx;
1710};
1711
1712typedef union cvmx_pko_l2_sqx_shape cvmx_pko_l2_sqx_shape_t;
1713
1714/**
1715 * cvmx_pko_l2_sq#_shape_state
1716 *
1717 * This register must not be written during normal operation.
1718 *
1719 */
1720union cvmx_pko_l2_sqx_shape_state {
1721	u64 u64;
1722	struct cvmx_pko_l2_sqx_shape_state_s {
1723		u64 reserved_60_63 : 4;
1724		u64 tw_timestamp : 6;
1725		u64 color : 2;
1726		u64 pir_accum : 26;
1727		u64 cir_accum : 26;
1728	} s;
1729	struct cvmx_pko_l2_sqx_shape_state_s cn73xx;
1730	struct cvmx_pko_l2_sqx_shape_state_s cn78xx;
1731	struct cvmx_pko_l2_sqx_shape_state_s cn78xxp1;
1732	struct cvmx_pko_l2_sqx_shape_state_s cnf75xx;
1733};
1734
1735typedef union cvmx_pko_l2_sqx_shape_state cvmx_pko_l2_sqx_shape_state_t;
1736
1737/**
1738 * cvmx_pko_l2_sq#_sw_xoff
1739 *
1740 * This register has the same bit fields as PKO_L1_SQ()_SW_XOFF.
1741 *
1742 */
1743union cvmx_pko_l2_sqx_sw_xoff {
1744	u64 u64;
1745	struct cvmx_pko_l2_sqx_sw_xoff_s {
1746		u64 reserved_4_63 : 60;
1747		u64 drain_irq : 1;
1748		u64 drain_null_link : 1;
1749		u64 drain : 1;
1750		u64 xoff : 1;
1751	} s;
1752	struct cvmx_pko_l2_sqx_sw_xoff_s cn73xx;
1753	struct cvmx_pko_l2_sqx_sw_xoff_s cn78xx;
1754	struct cvmx_pko_l2_sqx_sw_xoff_s cn78xxp1;
1755	struct cvmx_pko_l2_sqx_sw_xoff_s cnf75xx;
1756};
1757
1758typedef union cvmx_pko_l2_sqx_sw_xoff cvmx_pko_l2_sqx_sw_xoff_t;
1759
1760/**
1761 * cvmx_pko_l2_sq#_topology
1762 */
1763union cvmx_pko_l2_sqx_topology {
1764	u64 u64;
1765	struct cvmx_pko_l2_sqx_topology_s {
1766		u64 reserved_41_63 : 23;
1767		u64 prio_anchor : 9;
1768		u64 reserved_21_31 : 11;
1769		u64 parent : 5;
1770		u64 reserved_5_15 : 11;
1771		u64 rr_prio : 4;
1772		u64 reserved_0_0 : 1;
1773	} s;
1774	struct cvmx_pko_l2_sqx_topology_cn73xx {
1775		u64 reserved_40_63 : 24;
1776		u64 prio_anchor : 8;
1777		u64 reserved_20_31 : 12;
1778		u64 parent : 4;
1779		u64 reserved_5_15 : 11;
1780		u64 rr_prio : 4;
1781		u64 reserved_0_0 : 1;
1782	} cn73xx;
1783	struct cvmx_pko_l2_sqx_topology_s cn78xx;
1784	struct cvmx_pko_l2_sqx_topology_s cn78xxp1;
1785	struct cvmx_pko_l2_sqx_topology_cn73xx cnf75xx;
1786};
1787
1788typedef union cvmx_pko_l2_sqx_topology cvmx_pko_l2_sqx_topology_t;
1789
1790/**
1791 * cvmx_pko_l2_sq#_yellow
1792 *
1793 * This register has the same bit fields as PKO_L1_SQ()_YELLOW.
1794 *
1795 */
1796union cvmx_pko_l2_sqx_yellow {
1797	u64 u64;
1798	struct cvmx_pko_l2_sqx_yellow_s {
1799		u64 reserved_19_63 : 45;
1800		u64 head : 9;
1801		u64 reserved_9_9 : 1;
1802		u64 tail : 9;
1803	} s;
1804	struct cvmx_pko_l2_sqx_yellow_s cn73xx;
1805	struct cvmx_pko_l2_sqx_yellow_s cn78xx;
1806	struct cvmx_pko_l2_sqx_yellow_s cn78xxp1;
1807	struct cvmx_pko_l2_sqx_yellow_s cnf75xx;
1808};
1809
1810typedef union cvmx_pko_l2_sqx_yellow cvmx_pko_l2_sqx_yellow_t;
1811
1812/**
1813 * cvmx_pko_l2_sq_csr_bus_debug
1814 */
1815union cvmx_pko_l2_sq_csr_bus_debug {
1816	u64 u64;
1817	struct cvmx_pko_l2_sq_csr_bus_debug_s {
1818		u64 csr_bus_debug : 64;
1819	} s;
1820	struct cvmx_pko_l2_sq_csr_bus_debug_s cn73xx;
1821	struct cvmx_pko_l2_sq_csr_bus_debug_s cn78xx;
1822	struct cvmx_pko_l2_sq_csr_bus_debug_s cn78xxp1;
1823	struct cvmx_pko_l2_sq_csr_bus_debug_s cnf75xx;
1824};
1825
1826typedef union cvmx_pko_l2_sq_csr_bus_debug cvmx_pko_l2_sq_csr_bus_debug_t;
1827
1828/**
1829 * cvmx_pko_l2_sqa_debug
1830 *
1831 * This register has the same bit fields as PKO_PQA_DEBUG.
1832 *
1833 */
1834union cvmx_pko_l2_sqa_debug {
1835	u64 u64;
1836	struct cvmx_pko_l2_sqa_debug_s {
1837		u64 dbg_vec : 64;
1838	} s;
1839	struct cvmx_pko_l2_sqa_debug_s cn73xx;
1840	struct cvmx_pko_l2_sqa_debug_s cn78xx;
1841	struct cvmx_pko_l2_sqa_debug_s cn78xxp1;
1842	struct cvmx_pko_l2_sqa_debug_s cnf75xx;
1843};
1844
1845typedef union cvmx_pko_l2_sqa_debug cvmx_pko_l2_sqa_debug_t;
1846
1847/**
1848 * cvmx_pko_l2_sqb_debug
1849 *
1850 * This register has the same bit fields as PKO_PQA_DEBUG.
1851 *
1852 */
1853union cvmx_pko_l2_sqb_debug {
1854	u64 u64;
1855	struct cvmx_pko_l2_sqb_debug_s {
1856		u64 dbg_vec : 64;
1857	} s;
1858	struct cvmx_pko_l2_sqb_debug_s cn73xx;
1859	struct cvmx_pko_l2_sqb_debug_s cn78xx;
1860	struct cvmx_pko_l2_sqb_debug_s cn78xxp1;
1861	struct cvmx_pko_l2_sqb_debug_s cnf75xx;
1862};
1863
1864typedef union cvmx_pko_l2_sqb_debug cvmx_pko_l2_sqb_debug_t;
1865
1866/**
1867 * cvmx_pko_l3_l2_sq#_channel
1868 *
1869 * PKO_CHANNEL_LEVEL[CC_LEVEL] determines whether this CSR array is associated to
1870 * the L2 SQs or the L3 SQs.
1871 */
1872union cvmx_pko_l3_l2_sqx_channel {
1873	u64 u64;
1874	struct cvmx_pko_l3_l2_sqx_channel_s {
1875		u64 reserved_44_63 : 20;
1876		u64 cc_channel : 12;
1877		u64 cc_word_cnt : 20;
1878		u64 cc_packet_cnt : 10;
1879		u64 cc_enable : 1;
1880		u64 hw_xoff : 1;
1881	} s;
1882	struct cvmx_pko_l3_l2_sqx_channel_s cn73xx;
1883	struct cvmx_pko_l3_l2_sqx_channel_s cn78xx;
1884	struct cvmx_pko_l3_l2_sqx_channel_s cn78xxp1;
1885	struct cvmx_pko_l3_l2_sqx_channel_s cnf75xx;
1886};
1887
1888typedef union cvmx_pko_l3_l2_sqx_channel cvmx_pko_l3_l2_sqx_channel_t;
1889
1890/**
1891 * cvmx_pko_l3_sq#_cir
1892 *
1893 * This register has the same bit fields as PKO_L1_SQ()_CIR.
1894 *
1895 */
1896union cvmx_pko_l3_sqx_cir {
1897	u64 u64;
1898	struct cvmx_pko_l3_sqx_cir_s {
1899		u64 reserved_41_63 : 23;
1900		u64 burst_exponent : 4;
1901		u64 burst_mantissa : 8;
1902		u64 reserved_17_28 : 12;
1903		u64 rate_divider_exponent : 4;
1904		u64 rate_exponent : 4;
1905		u64 rate_mantissa : 8;
1906		u64 enable : 1;
1907	} s;
1908	struct cvmx_pko_l3_sqx_cir_s cn73xx;
1909	struct cvmx_pko_l3_sqx_cir_s cn78xx;
1910	struct cvmx_pko_l3_sqx_cir_s cn78xxp1;
1911	struct cvmx_pko_l3_sqx_cir_s cnf75xx;
1912};
1913
1914typedef union cvmx_pko_l3_sqx_cir cvmx_pko_l3_sqx_cir_t;
1915
1916/**
1917 * cvmx_pko_l3_sq#_green
1918 */
1919union cvmx_pko_l3_sqx_green {
1920	u64 u64;
1921	struct cvmx_pko_l3_sqx_green_s {
1922		u64 reserved_41_63 : 23;
1923		u64 rr_active : 1;
1924		u64 active_vec : 20;
1925		u64 head : 10;
1926		u64 tail : 10;
1927	} s;
1928	struct cvmx_pko_l3_sqx_green_cn73xx {
1929		u64 reserved_41_63 : 23;
1930		u64 rr_active : 1;
1931		u64 active_vec : 20;
1932		u64 reserved_18_19 : 2;
1933		u64 head : 8;
1934		u64 reserved_8_9 : 2;
1935		u64 tail : 8;
1936	} cn73xx;
1937	struct cvmx_pko_l3_sqx_green_s cn78xx;
1938	struct cvmx_pko_l3_sqx_green_s cn78xxp1;
1939	struct cvmx_pko_l3_sqx_green_cn73xx cnf75xx;
1940};
1941
1942typedef union cvmx_pko_l3_sqx_green cvmx_pko_l3_sqx_green_t;
1943
1944/**
1945 * cvmx_pko_l3_sq#_pick
1946 *
1947 * This CSR contains the meta for the L3 SQ, and is for debug and reconfiguration
1948 * only and should never be written. See also PKO_META_DESC_S.
1949 */
1950union cvmx_pko_l3_sqx_pick {
1951	u64 u64;
1952	struct cvmx_pko_l3_sqx_pick_s {
1953		u64 dq : 10;
1954		u64 color : 2;
1955		u64 child : 10;
1956		u64 bubble : 1;
1957		u64 p_con : 1;
1958		u64 c_con : 1;
1959		u64 uid : 7;
1960		u64 jump : 1;
1961		u64 fpd : 1;
1962		u64 ds : 1;
1963		u64 adjust : 9;
1964		u64 pir_dis : 1;
1965		u64 cir_dis : 1;
1966		u64 red_algo_override : 2;
1967		u64 length : 16;
1968	} s;
1969	struct cvmx_pko_l3_sqx_pick_s cn73xx;
1970	struct cvmx_pko_l3_sqx_pick_s cn78xx;
1971	struct cvmx_pko_l3_sqx_pick_s cn78xxp1;
1972	struct cvmx_pko_l3_sqx_pick_s cnf75xx;
1973};
1974
1975typedef union cvmx_pko_l3_sqx_pick cvmx_pko_l3_sqx_pick_t;
1976
1977/**
1978 * cvmx_pko_l3_sq#_pir
1979 *
1980 * This register has the same bit fields as PKO_L1_SQ()_CIR.
1981 *
1982 */
1983union cvmx_pko_l3_sqx_pir {
1984	u64 u64;
1985	struct cvmx_pko_l3_sqx_pir_s {
1986		u64 reserved_41_63 : 23;
1987		u64 burst_exponent : 4;
1988		u64 burst_mantissa : 8;
1989		u64 reserved_17_28 : 12;
1990		u64 rate_divider_exponent : 4;
1991		u64 rate_exponent : 4;
1992		u64 rate_mantissa : 8;
1993		u64 enable : 1;
1994	} s;
1995	struct cvmx_pko_l3_sqx_pir_s cn73xx;
1996	struct cvmx_pko_l3_sqx_pir_s cn78xx;
1997	struct cvmx_pko_l3_sqx_pir_s cn78xxp1;
1998	struct cvmx_pko_l3_sqx_pir_s cnf75xx;
1999};
2000
2001typedef union cvmx_pko_l3_sqx_pir cvmx_pko_l3_sqx_pir_t;
2002
2003/**
2004 * cvmx_pko_l3_sq#_pointers
2005 *
2006 * This register has the same bit fields as PKO_L2_SQ()_POINTERS.
2007 *
2008 */
2009union cvmx_pko_l3_sqx_pointers {
2010	u64 u64;
2011	struct cvmx_pko_l3_sqx_pointers_s {
2012		u64 reserved_25_63 : 39;
2013		u64 prev : 9;
2014		u64 reserved_9_15 : 7;
2015		u64 next : 9;
2016	} s;
2017	struct cvmx_pko_l3_sqx_pointers_cn73xx {
2018		u64 reserved_24_63 : 40;
2019		u64 prev : 8;
2020		u64 reserved_8_15 : 8;
2021		u64 next : 8;
2022	} cn73xx;
2023	struct cvmx_pko_l3_sqx_pointers_s cn78xx;
2024	struct cvmx_pko_l3_sqx_pointers_s cn78xxp1;
2025	struct cvmx_pko_l3_sqx_pointers_cn73xx cnf75xx;
2026};
2027
2028typedef union cvmx_pko_l3_sqx_pointers cvmx_pko_l3_sqx_pointers_t;
2029
2030/**
2031 * cvmx_pko_l3_sq#_red
2032 *
2033 * This register has the same bit fields as PKO_L3_SQ()_YELLOW.
2034 *
2035 */
2036union cvmx_pko_l3_sqx_red {
2037	u64 u64;
2038	struct cvmx_pko_l3_sqx_red_s {
2039		u64 reserved_20_63 : 44;
2040		u64 head : 10;
2041		u64 tail : 10;
2042	} s;
2043	struct cvmx_pko_l3_sqx_red_cn73xx {
2044		u64 reserved_18_63 : 46;
2045		u64 head : 8;
2046		u64 reserved_8_9 : 2;
2047		u64 tail : 8;
2048	} cn73xx;
2049	struct cvmx_pko_l3_sqx_red_s cn78xx;
2050	struct cvmx_pko_l3_sqx_red_s cn78xxp1;
2051	struct cvmx_pko_l3_sqx_red_cn73xx cnf75xx;
2052};
2053
2054typedef union cvmx_pko_l3_sqx_red cvmx_pko_l3_sqx_red_t;
2055
2056/**
2057 * cvmx_pko_l3_sq#_sched_state
2058 *
2059 * This register has the same bit fields as PKO_L2_SQ()_SCHED_STATE.
2060 *
2061 */
2062union cvmx_pko_l3_sqx_sched_state {
2063	u64 u64;
2064	struct cvmx_pko_l3_sqx_sched_state_s {
2065		u64 reserved_25_63 : 39;
2066		u64 rr_count : 25;
2067	} s;
2068	struct cvmx_pko_l3_sqx_sched_state_s cn73xx;
2069	struct cvmx_pko_l3_sqx_sched_state_s cn78xx;
2070	struct cvmx_pko_l3_sqx_sched_state_s cn78xxp1;
2071	struct cvmx_pko_l3_sqx_sched_state_s cnf75xx;
2072};
2073
2074typedef union cvmx_pko_l3_sqx_sched_state cvmx_pko_l3_sqx_sched_state_t;
2075
2076/**
2077 * cvmx_pko_l3_sq#_schedule
2078 *
2079 * This register has the same bit fields as PKO_L2_SQ()_SCHEDULE.
2080 *
2081 */
2082union cvmx_pko_l3_sqx_schedule {
2083	u64 u64;
2084	struct cvmx_pko_l3_sqx_schedule_s {
2085		u64 reserved_28_63 : 36;
2086		u64 prio : 4;
2087		u64 rr_quantum : 24;
2088	} s;
2089	struct cvmx_pko_l3_sqx_schedule_s cn73xx;
2090	struct cvmx_pko_l3_sqx_schedule_s cn78xx;
2091	struct cvmx_pko_l3_sqx_schedule_s cn78xxp1;
2092	struct cvmx_pko_l3_sqx_schedule_s cnf75xx;
2093};
2094
2095typedef union cvmx_pko_l3_sqx_schedule cvmx_pko_l3_sqx_schedule_t;
2096
2097/**
2098 * cvmx_pko_l3_sq#_shape
2099 */
2100union cvmx_pko_l3_sqx_shape {
2101	u64 u64;
2102	struct cvmx_pko_l3_sqx_shape_s {
2103		u64 reserved_27_63 : 37;
2104		u64 schedule_list : 2;
2105		u64 length_disable : 1;
2106		u64 reserved_13_23 : 11;
2107		u64 yellow_disable : 1;
2108		u64 red_disable : 1;
2109		u64 red_algo : 2;
2110		u64 adjust : 9;
2111	} s;
2112	struct cvmx_pko_l3_sqx_shape_s cn73xx;
2113	struct cvmx_pko_l3_sqx_shape_cn78xx {
2114		u64 reserved_25_63 : 39;
2115		u64 length_disable : 1;
2116		u64 reserved_13_23 : 11;
2117		u64 yellow_disable : 1;
2118		u64 red_disable : 1;
2119		u64 red_algo : 2;
2120		u64 adjust : 9;
2121	} cn78xx;
2122	struct cvmx_pko_l3_sqx_shape_cn78xx cn78xxp1;
2123	struct cvmx_pko_l3_sqx_shape_s cnf75xx;
2124};
2125
2126typedef union cvmx_pko_l3_sqx_shape cvmx_pko_l3_sqx_shape_t;
2127
2128/**
2129 * cvmx_pko_l3_sq#_shape_state
2130 *
2131 * This register has the same bit fields as PKO_L2_SQ()_SHAPE_STATE.
2132 * This register must not be written during normal operation.
2133 */
2134union cvmx_pko_l3_sqx_shape_state {
2135	u64 u64;
2136	struct cvmx_pko_l3_sqx_shape_state_s {
2137		u64 reserved_60_63 : 4;
2138		u64 tw_timestamp : 6;
2139		u64 color : 2;
2140		u64 pir_accum : 26;
2141		u64 cir_accum : 26;
2142	} s;
2143	struct cvmx_pko_l3_sqx_shape_state_s cn73xx;
2144	struct cvmx_pko_l3_sqx_shape_state_s cn78xx;
2145	struct cvmx_pko_l3_sqx_shape_state_s cn78xxp1;
2146	struct cvmx_pko_l3_sqx_shape_state_s cnf75xx;
2147};
2148
2149typedef union cvmx_pko_l3_sqx_shape_state cvmx_pko_l3_sqx_shape_state_t;
2150
2151/**
2152 * cvmx_pko_l3_sq#_sw_xoff
2153 *
2154 * This register has the same bit fields as PKO_L1_SQ()_SW_XOFF
2155 *
2156 */
2157union cvmx_pko_l3_sqx_sw_xoff {
2158	u64 u64;
2159	struct cvmx_pko_l3_sqx_sw_xoff_s {
2160		u64 reserved_4_63 : 60;
2161		u64 drain_irq : 1;
2162		u64 drain_null_link : 1;
2163		u64 drain : 1;
2164		u64 xoff : 1;
2165	} s;
2166	struct cvmx_pko_l3_sqx_sw_xoff_s cn73xx;
2167	struct cvmx_pko_l3_sqx_sw_xoff_s cn78xx;
2168	struct cvmx_pko_l3_sqx_sw_xoff_s cn78xxp1;
2169	struct cvmx_pko_l3_sqx_sw_xoff_s cnf75xx;
2170};
2171
2172typedef union cvmx_pko_l3_sqx_sw_xoff cvmx_pko_l3_sqx_sw_xoff_t;
2173
2174/**
2175 * cvmx_pko_l3_sq#_topology
2176 */
2177union cvmx_pko_l3_sqx_topology {
2178	u64 u64;
2179	struct cvmx_pko_l3_sqx_topology_s {
2180		u64 reserved_42_63 : 22;
2181		u64 prio_anchor : 10;
2182		u64 reserved_25_31 : 7;
2183		u64 parent : 9;
2184		u64 reserved_5_15 : 11;
2185		u64 rr_prio : 4;
2186		u64 reserved_0_0 : 1;
2187	} s;
2188	struct cvmx_pko_l3_sqx_topology_cn73xx {
2189		u64 reserved_40_63 : 24;
2190		u64 prio_anchor : 8;
2191		u64 reserved_24_31 : 8;
2192		u64 parent : 8;
2193		u64 reserved_5_15 : 11;
2194		u64 rr_prio : 4;
2195		u64 reserved_0_0 : 1;
2196	} cn73xx;
2197	struct cvmx_pko_l3_sqx_topology_s cn78xx;
2198	struct cvmx_pko_l3_sqx_topology_s cn78xxp1;
2199	struct cvmx_pko_l3_sqx_topology_cn73xx cnf75xx;
2200};
2201
2202typedef union cvmx_pko_l3_sqx_topology cvmx_pko_l3_sqx_topology_t;
2203
2204/**
2205 * cvmx_pko_l3_sq#_yellow
2206 */
2207union cvmx_pko_l3_sqx_yellow {
2208	u64 u64;
2209	struct cvmx_pko_l3_sqx_yellow_s {
2210		u64 reserved_20_63 : 44;
2211		u64 head : 10;
2212		u64 tail : 10;
2213	} s;
2214	struct cvmx_pko_l3_sqx_yellow_cn73xx {
2215		u64 reserved_18_63 : 46;
2216		u64 head : 8;
2217		u64 reserved_8_9 : 2;
2218		u64 tail : 8;
2219	} cn73xx;
2220	struct cvmx_pko_l3_sqx_yellow_s cn78xx;
2221	struct cvmx_pko_l3_sqx_yellow_s cn78xxp1;
2222	struct cvmx_pko_l3_sqx_yellow_cn73xx cnf75xx;
2223};
2224
2225typedef union cvmx_pko_l3_sqx_yellow cvmx_pko_l3_sqx_yellow_t;
2226
2227/**
2228 * cvmx_pko_l3_sq_csr_bus_debug
2229 */
2230union cvmx_pko_l3_sq_csr_bus_debug {
2231	u64 u64;
2232	struct cvmx_pko_l3_sq_csr_bus_debug_s {
2233		u64 csr_bus_debug : 64;
2234	} s;
2235	struct cvmx_pko_l3_sq_csr_bus_debug_s cn73xx;
2236	struct cvmx_pko_l3_sq_csr_bus_debug_s cn78xx;
2237	struct cvmx_pko_l3_sq_csr_bus_debug_s cn78xxp1;
2238	struct cvmx_pko_l3_sq_csr_bus_debug_s cnf75xx;
2239};
2240
2241typedef union cvmx_pko_l3_sq_csr_bus_debug cvmx_pko_l3_sq_csr_bus_debug_t;
2242
2243/**
2244 * cvmx_pko_l3_sqa_debug
2245 *
2246 * This register has the same bit fields as PKO_PQA_DEBUG.
2247 *
2248 */
2249union cvmx_pko_l3_sqa_debug {
2250	u64 u64;
2251	struct cvmx_pko_l3_sqa_debug_s {
2252		u64 dbg_vec : 64;
2253	} s;
2254	struct cvmx_pko_l3_sqa_debug_s cn73xx;
2255	struct cvmx_pko_l3_sqa_debug_s cn78xx;
2256	struct cvmx_pko_l3_sqa_debug_s cn78xxp1;
2257	struct cvmx_pko_l3_sqa_debug_s cnf75xx;
2258};
2259
2260typedef union cvmx_pko_l3_sqa_debug cvmx_pko_l3_sqa_debug_t;
2261
2262/**
2263 * cvmx_pko_l3_sqb_debug
2264 *
2265 * This register has the same bit fields as PKO_PQA_DEBUG.
2266 *
2267 */
2268union cvmx_pko_l3_sqb_debug {
2269	u64 u64;
2270	struct cvmx_pko_l3_sqb_debug_s {
2271		u64 dbg_vec : 64;
2272	} s;
2273	struct cvmx_pko_l3_sqb_debug_s cn73xx;
2274	struct cvmx_pko_l3_sqb_debug_s cn78xx;
2275	struct cvmx_pko_l3_sqb_debug_s cn78xxp1;
2276	struct cvmx_pko_l3_sqb_debug_s cnf75xx;
2277};
2278
2279typedef union cvmx_pko_l3_sqb_debug cvmx_pko_l3_sqb_debug_t;
2280
2281/**
2282 * cvmx_pko_l4_sq#_cir
2283 *
2284 * This register has the same bit fields as PKO_L1_SQ()_CIR.
2285 *
2286 */
2287union cvmx_pko_l4_sqx_cir {
2288	u64 u64;
2289	struct cvmx_pko_l4_sqx_cir_s {
2290		u64 reserved_41_63 : 23;
2291		u64 burst_exponent : 4;
2292		u64 burst_mantissa : 8;
2293		u64 reserved_17_28 : 12;
2294		u64 rate_divider_exponent : 4;
2295		u64 rate_exponent : 4;
2296		u64 rate_mantissa : 8;
2297		u64 enable : 1;
2298	} s;
2299	struct cvmx_pko_l4_sqx_cir_s cn78xx;
2300	struct cvmx_pko_l4_sqx_cir_s cn78xxp1;
2301};
2302
2303typedef union cvmx_pko_l4_sqx_cir cvmx_pko_l4_sqx_cir_t;
2304
2305/**
2306 * cvmx_pko_l4_sq#_green
2307 *
2308 * This register has the same bit fields as PKO_L3_SQ()_GREEN.
2309 *
2310 */
2311union cvmx_pko_l4_sqx_green {
2312	u64 u64;
2313	struct cvmx_pko_l4_sqx_green_s {
2314		u64 reserved_41_63 : 23;
2315		u64 rr_active : 1;
2316		u64 active_vec : 20;
2317		u64 head : 10;
2318		u64 tail : 10;
2319	} s;
2320	struct cvmx_pko_l4_sqx_green_s cn78xx;
2321	struct cvmx_pko_l4_sqx_green_s cn78xxp1;
2322};
2323
2324typedef union cvmx_pko_l4_sqx_green cvmx_pko_l4_sqx_green_t;
2325
2326/**
2327 * cvmx_pko_l4_sq#_pick
2328 *
2329 * This CSR contains the meta for the L4 SQ, and is for debug and reconfiguration
2330 * only and should never be written. See also PKO_META_DESC_S.
2331 */
2332union cvmx_pko_l4_sqx_pick {
2333	u64 u64;
2334	struct cvmx_pko_l4_sqx_pick_s {
2335		u64 dq : 10;
2336		u64 color : 2;
2337		u64 child : 10;
2338		u64 bubble : 1;
2339		u64 p_con : 1;
2340		u64 c_con : 1;
2341		u64 uid : 7;
2342		u64 jump : 1;
2343		u64 fpd : 1;
2344		u64 ds : 1;
2345		u64 adjust : 9;
2346		u64 pir_dis : 1;
2347		u64 cir_dis : 1;
2348		u64 red_algo_override : 2;
2349		u64 length : 16;
2350	} s;
2351	struct cvmx_pko_l4_sqx_pick_s cn78xx;
2352	struct cvmx_pko_l4_sqx_pick_s cn78xxp1;
2353};
2354
2355typedef union cvmx_pko_l4_sqx_pick cvmx_pko_l4_sqx_pick_t;
2356
2357/**
2358 * cvmx_pko_l4_sq#_pir
2359 *
2360 * This register has the same bit fields as PKO_L1_SQ()_CIR.
2361 *
2362 */
2363union cvmx_pko_l4_sqx_pir {
2364	u64 u64;
2365	struct cvmx_pko_l4_sqx_pir_s {
2366		u64 reserved_41_63 : 23;
2367		u64 burst_exponent : 4;
2368		u64 burst_mantissa : 8;
2369		u64 reserved_17_28 : 12;
2370		u64 rate_divider_exponent : 4;
2371		u64 rate_exponent : 4;
2372		u64 rate_mantissa : 8;
2373		u64 enable : 1;
2374	} s;
2375	struct cvmx_pko_l4_sqx_pir_s cn78xx;
2376	struct cvmx_pko_l4_sqx_pir_s cn78xxp1;
2377};
2378
2379typedef union cvmx_pko_l4_sqx_pir cvmx_pko_l4_sqx_pir_t;
2380
2381/**
2382 * cvmx_pko_l4_sq#_pointers
2383 */
2384union cvmx_pko_l4_sqx_pointers {
2385	u64 u64;
2386	struct cvmx_pko_l4_sqx_pointers_s {
2387		u64 reserved_26_63 : 38;
2388		u64 prev : 10;
2389		u64 reserved_10_15 : 6;
2390		u64 next : 10;
2391	} s;
2392	struct cvmx_pko_l4_sqx_pointers_s cn78xx;
2393	struct cvmx_pko_l4_sqx_pointers_s cn78xxp1;
2394};
2395
2396typedef union cvmx_pko_l4_sqx_pointers cvmx_pko_l4_sqx_pointers_t;
2397
2398/**
2399 * cvmx_pko_l4_sq#_red
2400 *
2401 * This register has the same bit fields as PKO_L3_SQ()_YELLOW.
2402 *
2403 */
2404union cvmx_pko_l4_sqx_red {
2405	u64 u64;
2406	struct cvmx_pko_l4_sqx_red_s {
2407		u64 reserved_20_63 : 44;
2408		u64 head : 10;
2409		u64 tail : 10;
2410	} s;
2411	struct cvmx_pko_l4_sqx_red_s cn78xx;
2412	struct cvmx_pko_l4_sqx_red_s cn78xxp1;
2413};
2414
2415typedef union cvmx_pko_l4_sqx_red cvmx_pko_l4_sqx_red_t;
2416
2417/**
2418 * cvmx_pko_l4_sq#_sched_state
2419 *
2420 * This register has the same bit fields as PKO_L2_SQ()_SCHED_STATE.
2421 *
2422 */
2423union cvmx_pko_l4_sqx_sched_state {
2424	u64 u64;
2425	struct cvmx_pko_l4_sqx_sched_state_s {
2426		u64 reserved_25_63 : 39;
2427		u64 rr_count : 25;
2428	} s;
2429	struct cvmx_pko_l4_sqx_sched_state_s cn78xx;
2430	struct cvmx_pko_l4_sqx_sched_state_s cn78xxp1;
2431};
2432
2433typedef union cvmx_pko_l4_sqx_sched_state cvmx_pko_l4_sqx_sched_state_t;
2434
2435/**
2436 * cvmx_pko_l4_sq#_schedule
2437 *
2438 * This register has the same bit fields as PKO_L2_SQ()_SCHEDULE.
2439 *
2440 */
2441union cvmx_pko_l4_sqx_schedule {
2442	u64 u64;
2443	struct cvmx_pko_l4_sqx_schedule_s {
2444		u64 reserved_28_63 : 36;
2445		u64 prio : 4;
2446		u64 rr_quantum : 24;
2447	} s;
2448	struct cvmx_pko_l4_sqx_schedule_s cn78xx;
2449	struct cvmx_pko_l4_sqx_schedule_s cn78xxp1;
2450};
2451
2452typedef union cvmx_pko_l4_sqx_schedule cvmx_pko_l4_sqx_schedule_t;
2453
2454/**
2455 * cvmx_pko_l4_sq#_shape
2456 *
2457 * This register has the same bit fields as PKO_L3_SQ()_SHAPE.
2458 *
2459 */
2460union cvmx_pko_l4_sqx_shape {
2461	u64 u64;
2462	struct cvmx_pko_l4_sqx_shape_s {
2463		u64 reserved_25_63 : 39;
2464		u64 length_disable : 1;
2465		u64 reserved_13_23 : 11;
2466		u64 yellow_disable : 1;
2467		u64 red_disable : 1;
2468		u64 red_algo : 2;
2469		u64 adjust : 9;
2470	} s;
2471	struct cvmx_pko_l4_sqx_shape_s cn78xx;
2472	struct cvmx_pko_l4_sqx_shape_s cn78xxp1;
2473};
2474
2475typedef union cvmx_pko_l4_sqx_shape cvmx_pko_l4_sqx_shape_t;
2476
2477/**
2478 * cvmx_pko_l4_sq#_shape_state
2479 *
2480 * This register has the same bit fields as PKO_L2_SQ()_SHAPE_STATE.
2481 * This register must not be written during normal operation.
2482 */
2483union cvmx_pko_l4_sqx_shape_state {
2484	u64 u64;
2485	struct cvmx_pko_l4_sqx_shape_state_s {
2486		u64 reserved_60_63 : 4;
2487		u64 tw_timestamp : 6;
2488		u64 color : 2;
2489		u64 pir_accum : 26;
2490		u64 cir_accum : 26;
2491	} s;
2492	struct cvmx_pko_l4_sqx_shape_state_s cn78xx;
2493	struct cvmx_pko_l4_sqx_shape_state_s cn78xxp1;
2494};
2495
2496typedef union cvmx_pko_l4_sqx_shape_state cvmx_pko_l4_sqx_shape_state_t;
2497
2498/**
2499 * cvmx_pko_l4_sq#_sw_xoff
2500 *
2501 * This register has the same bit fields as PKO_L1_SQ()_SW_XOFF.
2502 *
2503 */
2504union cvmx_pko_l4_sqx_sw_xoff {
2505	u64 u64;
2506	struct cvmx_pko_l4_sqx_sw_xoff_s {
2507		u64 reserved_4_63 : 60;
2508		u64 drain_irq : 1;
2509		u64 drain_null_link : 1;
2510		u64 drain : 1;
2511		u64 xoff : 1;
2512	} s;
2513	struct cvmx_pko_l4_sqx_sw_xoff_s cn78xx;
2514	struct cvmx_pko_l4_sqx_sw_xoff_s cn78xxp1;
2515};
2516
2517typedef union cvmx_pko_l4_sqx_sw_xoff cvmx_pko_l4_sqx_sw_xoff_t;
2518
2519/**
2520 * cvmx_pko_l4_sq#_topology
2521 */
2522union cvmx_pko_l4_sqx_topology {
2523	u64 u64;
2524	struct cvmx_pko_l4_sqx_topology_s {
2525		u64 reserved_42_63 : 22;
2526		u64 prio_anchor : 10;
2527		u64 reserved_25_31 : 7;
2528		u64 parent : 9;
2529		u64 reserved_5_15 : 11;
2530		u64 rr_prio : 4;
2531		u64 reserved_0_0 : 1;
2532	} s;
2533	struct cvmx_pko_l4_sqx_topology_s cn78xx;
2534	struct cvmx_pko_l4_sqx_topology_s cn78xxp1;
2535};
2536
2537typedef union cvmx_pko_l4_sqx_topology cvmx_pko_l4_sqx_topology_t;
2538
2539/**
2540 * cvmx_pko_l4_sq#_yellow
2541 *
2542 * This register has the same bit fields as PKO_L3_SQ()_YELLOW.
2543 *
2544 */
2545union cvmx_pko_l4_sqx_yellow {
2546	u64 u64;
2547	struct cvmx_pko_l4_sqx_yellow_s {
2548		u64 reserved_20_63 : 44;
2549		u64 head : 10;
2550		u64 tail : 10;
2551	} s;
2552	struct cvmx_pko_l4_sqx_yellow_s cn78xx;
2553	struct cvmx_pko_l4_sqx_yellow_s cn78xxp1;
2554};
2555
2556typedef union cvmx_pko_l4_sqx_yellow cvmx_pko_l4_sqx_yellow_t;
2557
2558/**
2559 * cvmx_pko_l4_sq_csr_bus_debug
2560 */
2561union cvmx_pko_l4_sq_csr_bus_debug {
2562	u64 u64;
2563	struct cvmx_pko_l4_sq_csr_bus_debug_s {
2564		u64 csr_bus_debug : 64;
2565	} s;
2566	struct cvmx_pko_l4_sq_csr_bus_debug_s cn78xx;
2567	struct cvmx_pko_l4_sq_csr_bus_debug_s cn78xxp1;
2568};
2569
2570typedef union cvmx_pko_l4_sq_csr_bus_debug cvmx_pko_l4_sq_csr_bus_debug_t;
2571
2572/**
2573 * cvmx_pko_l4_sqa_debug
2574 *
2575 * This register has the same bit fields as PKO_PQA_DEBUG.
2576 *
2577 */
2578union cvmx_pko_l4_sqa_debug {
2579	u64 u64;
2580	struct cvmx_pko_l4_sqa_debug_s {
2581		u64 dbg_vec : 64;
2582	} s;
2583	struct cvmx_pko_l4_sqa_debug_s cn78xx;
2584	struct cvmx_pko_l4_sqa_debug_s cn78xxp1;
2585};
2586
2587typedef union cvmx_pko_l4_sqa_debug cvmx_pko_l4_sqa_debug_t;
2588
2589/**
2590 * cvmx_pko_l4_sqb_debug
2591 *
2592 * This register has the same bit fields as PKO_PQA_DEBUG.
2593 *
2594 */
2595union cvmx_pko_l4_sqb_debug {
2596	u64 u64;
2597	struct cvmx_pko_l4_sqb_debug_s {
2598		u64 dbg_vec : 64;
2599	} s;
2600	struct cvmx_pko_l4_sqb_debug_s cn78xx;
2601	struct cvmx_pko_l4_sqb_debug_s cn78xxp1;
2602};
2603
2604typedef union cvmx_pko_l4_sqb_debug cvmx_pko_l4_sqb_debug_t;
2605
2606/**
2607 * cvmx_pko_l5_sq#_cir
2608 *
2609 * This register has the same bit fields as PKO_L1_SQ()_CIR.
2610 *
2611 */
2612union cvmx_pko_l5_sqx_cir {
2613	u64 u64;
2614	struct cvmx_pko_l5_sqx_cir_s {
2615		u64 reserved_41_63 : 23;
2616		u64 burst_exponent : 4;
2617		u64 burst_mantissa : 8;
2618		u64 reserved_17_28 : 12;
2619		u64 rate_divider_exponent : 4;
2620		u64 rate_exponent : 4;
2621		u64 rate_mantissa : 8;
2622		u64 enable : 1;
2623	} s;
2624	struct cvmx_pko_l5_sqx_cir_s cn78xx;
2625	struct cvmx_pko_l5_sqx_cir_s cn78xxp1;
2626};
2627
2628typedef union cvmx_pko_l5_sqx_cir cvmx_pko_l5_sqx_cir_t;
2629
2630/**
2631 * cvmx_pko_l5_sq#_green
2632 *
2633 * This register has the same bit fields as PKO_L3_SQ()_GREEN.
2634 *
2635 */
2636union cvmx_pko_l5_sqx_green {
2637	u64 u64;
2638	struct cvmx_pko_l5_sqx_green_s {
2639		u64 reserved_41_63 : 23;
2640		u64 rr_active : 1;
2641		u64 active_vec : 20;
2642		u64 head : 10;
2643		u64 tail : 10;
2644	} s;
2645	struct cvmx_pko_l5_sqx_green_s cn78xx;
2646	struct cvmx_pko_l5_sqx_green_s cn78xxp1;
2647};
2648
2649typedef union cvmx_pko_l5_sqx_green cvmx_pko_l5_sqx_green_t;
2650
2651/**
2652 * cvmx_pko_l5_sq#_pick
2653 *
2654 * This CSR contains the meta for the L5 SQ, and is for debug and reconfiguration
2655 * only and should never be written. See also PKO_META_DESC_S.
2656 */
2657union cvmx_pko_l5_sqx_pick {
2658	u64 u64;
2659	struct cvmx_pko_l5_sqx_pick_s {
2660		u64 dq : 10;
2661		u64 color : 2;
2662		u64 child : 10;
2663		u64 bubble : 1;
2664		u64 p_con : 1;
2665		u64 c_con : 1;
2666		u64 uid : 7;
2667		u64 jump : 1;
2668		u64 fpd : 1;
2669		u64 ds : 1;
2670		u64 adjust : 9;
2671		u64 pir_dis : 1;
2672		u64 cir_dis : 1;
2673		u64 red_algo_override : 2;
2674		u64 length : 16;
2675	} s;
2676	struct cvmx_pko_l5_sqx_pick_s cn78xx;
2677	struct cvmx_pko_l5_sqx_pick_s cn78xxp1;
2678};
2679
2680typedef union cvmx_pko_l5_sqx_pick cvmx_pko_l5_sqx_pick_t;
2681
2682/**
2683 * cvmx_pko_l5_sq#_pir
2684 *
2685 * This register has the same bit fields as PKO_L1_SQ()_CIR.
2686 *
2687 */
2688union cvmx_pko_l5_sqx_pir {
2689	u64 u64;
2690	struct cvmx_pko_l5_sqx_pir_s {
2691		u64 reserved_41_63 : 23;
2692		u64 burst_exponent : 4;
2693		u64 burst_mantissa : 8;
2694		u64 reserved_17_28 : 12;
2695		u64 rate_divider_exponent : 4;
2696		u64 rate_exponent : 4;
2697		u64 rate_mantissa : 8;
2698		u64 enable : 1;
2699	} s;
2700	struct cvmx_pko_l5_sqx_pir_s cn78xx;
2701	struct cvmx_pko_l5_sqx_pir_s cn78xxp1;
2702};
2703
2704typedef union cvmx_pko_l5_sqx_pir cvmx_pko_l5_sqx_pir_t;
2705
2706/**
2707 * cvmx_pko_l5_sq#_pointers
2708 *
2709 * This register has the same bit fields as PKO_L4_SQ()_POINTERS.
2710 *
2711 */
2712union cvmx_pko_l5_sqx_pointers {
2713	u64 u64;
2714	struct cvmx_pko_l5_sqx_pointers_s {
2715		u64 reserved_26_63 : 38;
2716		u64 prev : 10;
2717		u64 reserved_10_15 : 6;
2718		u64 next : 10;
2719	} s;
2720	struct cvmx_pko_l5_sqx_pointers_s cn78xx;
2721	struct cvmx_pko_l5_sqx_pointers_s cn78xxp1;
2722};
2723
2724typedef union cvmx_pko_l5_sqx_pointers cvmx_pko_l5_sqx_pointers_t;
2725
2726/**
2727 * cvmx_pko_l5_sq#_red
2728 *
2729 * This register has the same bit fields as PKO_L3_SQ()_YELLOW.
2730 *
2731 */
2732union cvmx_pko_l5_sqx_red {
2733	u64 u64;
2734	struct cvmx_pko_l5_sqx_red_s {
2735		u64 reserved_20_63 : 44;
2736		u64 head : 10;
2737		u64 tail : 10;
2738	} s;
2739	struct cvmx_pko_l5_sqx_red_s cn78xx;
2740	struct cvmx_pko_l5_sqx_red_s cn78xxp1;
2741};
2742
2743typedef union cvmx_pko_l5_sqx_red cvmx_pko_l5_sqx_red_t;
2744
2745/**
2746 * cvmx_pko_l5_sq#_sched_state
2747 *
2748 * This register has the same bit fields as PKO_L2_SQ()_SCHED_STATE.
2749 *
2750 */
2751union cvmx_pko_l5_sqx_sched_state {
2752	u64 u64;
2753	struct cvmx_pko_l5_sqx_sched_state_s {
2754		u64 reserved_25_63 : 39;
2755		u64 rr_count : 25;
2756	} s;
2757	struct cvmx_pko_l5_sqx_sched_state_s cn78xx;
2758	struct cvmx_pko_l5_sqx_sched_state_s cn78xxp1;
2759};
2760
2761typedef union cvmx_pko_l5_sqx_sched_state cvmx_pko_l5_sqx_sched_state_t;
2762
2763/**
2764 * cvmx_pko_l5_sq#_schedule
2765 *
2766 * This register has the same bit fields as PKO_L2_SQ()_SCHEDULE.
2767 *
2768 */
2769union cvmx_pko_l5_sqx_schedule {
2770	u64 u64;
2771	struct cvmx_pko_l5_sqx_schedule_s {
2772		u64 reserved_28_63 : 36;
2773		u64 prio : 4;
2774		u64 rr_quantum : 24;
2775	} s;
2776	struct cvmx_pko_l5_sqx_schedule_s cn78xx;
2777	struct cvmx_pko_l5_sqx_schedule_s cn78xxp1;
2778};
2779
2780typedef union cvmx_pko_l5_sqx_schedule cvmx_pko_l5_sqx_schedule_t;
2781
2782/**
2783 * cvmx_pko_l5_sq#_shape
2784 */
2785union cvmx_pko_l5_sqx_shape {
2786	u64 u64;
2787	struct cvmx_pko_l5_sqx_shape_s {
2788		u64 reserved_25_63 : 39;
2789		u64 length_disable : 1;
2790		u64 reserved_13_23 : 11;
2791		u64 yellow_disable : 1;
2792		u64 red_disable : 1;
2793		u64 red_algo : 2;
2794		u64 adjust : 9;
2795	} s;
2796	struct cvmx_pko_l5_sqx_shape_s cn78xx;
2797	struct cvmx_pko_l5_sqx_shape_s cn78xxp1;
2798};
2799
2800typedef union cvmx_pko_l5_sqx_shape cvmx_pko_l5_sqx_shape_t;
2801
2802/**
2803 * cvmx_pko_l5_sq#_shape_state
2804 *
2805 * This register has the same bit fields as PKO_L2_SQ()_SHAPE_STATE.
2806 * This register must not be written during normal operation.
2807 */
2808union cvmx_pko_l5_sqx_shape_state {
2809	u64 u64;
2810	struct cvmx_pko_l5_sqx_shape_state_s {
2811		u64 reserved_60_63 : 4;
2812		u64 tw_timestamp : 6;
2813		u64 color : 2;
2814		u64 pir_accum : 26;
2815		u64 cir_accum : 26;
2816	} s;
2817	struct cvmx_pko_l5_sqx_shape_state_s cn78xx;
2818	struct cvmx_pko_l5_sqx_shape_state_s cn78xxp1;
2819};
2820
2821typedef union cvmx_pko_l5_sqx_shape_state cvmx_pko_l5_sqx_shape_state_t;
2822
2823/**
2824 * cvmx_pko_l5_sq#_sw_xoff
2825 *
2826 * This register has the same bit fields as PKO_L1_SQ()_SW_XOFF.
2827 *
2828 */
2829union cvmx_pko_l5_sqx_sw_xoff {
2830	u64 u64;
2831	struct cvmx_pko_l5_sqx_sw_xoff_s {
2832		u64 reserved_4_63 : 60;
2833		u64 drain_irq : 1;
2834		u64 drain_null_link : 1;
2835		u64 drain : 1;
2836		u64 xoff : 1;
2837	} s;
2838	struct cvmx_pko_l5_sqx_sw_xoff_s cn78xx;
2839	struct cvmx_pko_l5_sqx_sw_xoff_s cn78xxp1;
2840};
2841
2842typedef union cvmx_pko_l5_sqx_sw_xoff cvmx_pko_l5_sqx_sw_xoff_t;
2843
2844/**
2845 * cvmx_pko_l5_sq#_topology
2846 */
2847union cvmx_pko_l5_sqx_topology {
2848	u64 u64;
2849	struct cvmx_pko_l5_sqx_topology_s {
2850		u64 reserved_42_63 : 22;
2851		u64 prio_anchor : 10;
2852		u64 reserved_26_31 : 6;
2853		u64 parent : 10;
2854		u64 reserved_5_15 : 11;
2855		u64 rr_prio : 4;
2856		u64 reserved_0_0 : 1;
2857	} s;
2858	struct cvmx_pko_l5_sqx_topology_s cn78xx;
2859	struct cvmx_pko_l5_sqx_topology_s cn78xxp1;
2860};
2861
2862typedef union cvmx_pko_l5_sqx_topology cvmx_pko_l5_sqx_topology_t;
2863
2864/**
2865 * cvmx_pko_l5_sq#_yellow
2866 *
2867 * This register has the same bit fields as PKO_L3_SQ()_YELLOW.
2868 *
2869 */
2870union cvmx_pko_l5_sqx_yellow {
2871	u64 u64;
2872	struct cvmx_pko_l5_sqx_yellow_s {
2873		u64 reserved_20_63 : 44;
2874		u64 head : 10;
2875		u64 tail : 10;
2876	} s;
2877	struct cvmx_pko_l5_sqx_yellow_s cn78xx;
2878	struct cvmx_pko_l5_sqx_yellow_s cn78xxp1;
2879};
2880
2881typedef union cvmx_pko_l5_sqx_yellow cvmx_pko_l5_sqx_yellow_t;
2882
2883/**
2884 * cvmx_pko_l5_sq_csr_bus_debug
2885 */
2886union cvmx_pko_l5_sq_csr_bus_debug {
2887	u64 u64;
2888	struct cvmx_pko_l5_sq_csr_bus_debug_s {
2889		u64 csr_bus_debug : 64;
2890	} s;
2891	struct cvmx_pko_l5_sq_csr_bus_debug_s cn78xx;
2892	struct cvmx_pko_l5_sq_csr_bus_debug_s cn78xxp1;
2893};
2894
2895typedef union cvmx_pko_l5_sq_csr_bus_debug cvmx_pko_l5_sq_csr_bus_debug_t;
2896
2897/**
2898 * cvmx_pko_l5_sqa_debug
2899 *
2900 * This register has the same bit fields as PKO_PQA_DEBUG.
2901 *
2902 */
2903union cvmx_pko_l5_sqa_debug {
2904	u64 u64;
2905	struct cvmx_pko_l5_sqa_debug_s {
2906		u64 dbg_vec : 64;
2907	} s;
2908	struct cvmx_pko_l5_sqa_debug_s cn78xx;
2909	struct cvmx_pko_l5_sqa_debug_s cn78xxp1;
2910};
2911
2912typedef union cvmx_pko_l5_sqa_debug cvmx_pko_l5_sqa_debug_t;
2913
2914/**
2915 * cvmx_pko_l5_sqb_debug
2916 *
2917 * This register has the same bit fields as PKO_PQA_DEBUG.
2918 *
2919 */
2920union cvmx_pko_l5_sqb_debug {
2921	u64 u64;
2922	struct cvmx_pko_l5_sqb_debug_s {
2923		u64 dbg_vec : 64;
2924	} s;
2925	struct cvmx_pko_l5_sqb_debug_s cn78xx;
2926	struct cvmx_pko_l5_sqb_debug_s cn78xxp1;
2927};
2928
2929typedef union cvmx_pko_l5_sqb_debug cvmx_pko_l5_sqb_debug_t;
2930
2931/**
2932 * cvmx_pko_lut#
2933 *
2934 * PKO_LUT has a location for each used PKI_CHAN_E. The following table
2935 * shows the mapping between LINK/MAC_NUM's, PKI_CHAN_E channels, and
2936 * PKO_LUT indices.
2937 *
2938 * <pre>
2939 *   LINK/   PKI_CHAN_E    Corresponding
2940 * MAC_NUM   Range         PKO_LUT index   Description
2941 * -------   -----------   -------------   -----------------
2942 *     0     0x000-0x03F   0x040-0x07F     LBK Loopback
2943 *     1     0x100-0x13F   0x080-0x0BF     DPI packet output
2944 *     2     0x800-0x80F   0x000-0x00F     BGX0 Logical MAC 0
2945 *     3     0x810-0x81F   0x010-0x01F     BGX0 Logical MAC 1
2946 *     4     0x820-0x82F   0x020-0x02F     BGX0 Logical MAC 2
2947 *     5     0x830-0x83F   0x030-0x03F     BGX0 Logical MAC 3
2948 * </pre>
2949 */
2950union cvmx_pko_lutx {
2951	u64 u64;
2952	struct cvmx_pko_lutx_s {
2953		u64 reserved_16_63 : 48;
2954		u64 valid : 1;
2955		u64 reserved_14_14 : 1;
2956		u64 pq_idx : 5;
2957		u64 queue_number : 9;
2958	} s;
2959	struct cvmx_pko_lutx_cn73xx {
2960		u64 reserved_16_63 : 48;
2961		u64 valid : 1;
2962		u64 reserved_13_14 : 2;
2963		u64 pq_idx : 4;
2964		u64 reserved_8_8 : 1;
2965		u64 queue_number : 8;
2966	} cn73xx;
2967	struct cvmx_pko_lutx_s cn78xx;
2968	struct cvmx_pko_lutx_s cn78xxp1;
2969	struct cvmx_pko_lutx_cn73xx cnf75xx;
2970};
2971
2972typedef union cvmx_pko_lutx cvmx_pko_lutx_t;
2973
2974/**
2975 * cvmx_pko_lut_bist_status
2976 */
2977union cvmx_pko_lut_bist_status {
2978	u64 u64;
2979	struct cvmx_pko_lut_bist_status_s {
2980		u64 reserved_1_63 : 63;
2981		u64 bist_status : 1;
2982	} s;
2983	struct cvmx_pko_lut_bist_status_s cn73xx;
2984	struct cvmx_pko_lut_bist_status_s cn78xx;
2985	struct cvmx_pko_lut_bist_status_s cn78xxp1;
2986	struct cvmx_pko_lut_bist_status_s cnf75xx;
2987};
2988
2989typedef union cvmx_pko_lut_bist_status cvmx_pko_lut_bist_status_t;
2990
2991/**
2992 * cvmx_pko_lut_ecc_ctl0
2993 */
2994union cvmx_pko_lut_ecc_ctl0 {
2995	u64 u64;
2996	struct cvmx_pko_lut_ecc_ctl0_s {
2997		u64 c2q_lut_ram_flip : 2;
2998		u64 c2q_lut_ram_cdis : 1;
2999		u64 reserved_0_60 : 61;
3000	} s;
3001	struct cvmx_pko_lut_ecc_ctl0_s cn73xx;
3002	struct cvmx_pko_lut_ecc_ctl0_s cn78xx;
3003	struct cvmx_pko_lut_ecc_ctl0_s cn78xxp1;
3004	struct cvmx_pko_lut_ecc_ctl0_s cnf75xx;
3005};
3006
3007typedef union cvmx_pko_lut_ecc_ctl0 cvmx_pko_lut_ecc_ctl0_t;
3008
3009/**
3010 * cvmx_pko_lut_ecc_dbe_sts0
3011 */
3012union cvmx_pko_lut_ecc_dbe_sts0 {
3013	u64 u64;
3014	struct cvmx_pko_lut_ecc_dbe_sts0_s {
3015		u64 c2q_lut_ram_dbe : 1;
3016		u64 reserved_0_62 : 63;
3017	} s;
3018	struct cvmx_pko_lut_ecc_dbe_sts0_s cn73xx;
3019	struct cvmx_pko_lut_ecc_dbe_sts0_s cn78xx;
3020	struct cvmx_pko_lut_ecc_dbe_sts0_s cn78xxp1;
3021	struct cvmx_pko_lut_ecc_dbe_sts0_s cnf75xx;
3022};
3023
3024typedef union cvmx_pko_lut_ecc_dbe_sts0 cvmx_pko_lut_ecc_dbe_sts0_t;
3025
3026/**
3027 * cvmx_pko_lut_ecc_dbe_sts_cmb0
3028 */
3029union cvmx_pko_lut_ecc_dbe_sts_cmb0 {
3030	u64 u64;
3031	struct cvmx_pko_lut_ecc_dbe_sts_cmb0_s {
3032		u64 lut_dbe_cmb0 : 1;
3033		u64 reserved_0_62 : 63;
3034	} s;
3035	struct cvmx_pko_lut_ecc_dbe_sts_cmb0_s cn73xx;
3036	struct cvmx_pko_lut_ecc_dbe_sts_cmb0_s cn78xx;
3037	struct cvmx_pko_lut_ecc_dbe_sts_cmb0_s cn78xxp1;
3038	struct cvmx_pko_lut_ecc_dbe_sts_cmb0_s cnf75xx;
3039};
3040
3041typedef union cvmx_pko_lut_ecc_dbe_sts_cmb0 cvmx_pko_lut_ecc_dbe_sts_cmb0_t;
3042
3043/**
3044 * cvmx_pko_lut_ecc_sbe_sts0
3045 */
3046union cvmx_pko_lut_ecc_sbe_sts0 {
3047	u64 u64;
3048	struct cvmx_pko_lut_ecc_sbe_sts0_s {
3049		u64 c2q_lut_ram_sbe : 1;
3050		u64 reserved_0_62 : 63;
3051	} s;
3052	struct cvmx_pko_lut_ecc_sbe_sts0_s cn73xx;
3053	struct cvmx_pko_lut_ecc_sbe_sts0_s cn78xx;
3054	struct cvmx_pko_lut_ecc_sbe_sts0_s cn78xxp1;
3055	struct cvmx_pko_lut_ecc_sbe_sts0_s cnf75xx;
3056};
3057
3058typedef union cvmx_pko_lut_ecc_sbe_sts0 cvmx_pko_lut_ecc_sbe_sts0_t;
3059
3060/**
3061 * cvmx_pko_lut_ecc_sbe_sts_cmb0
3062 */
3063union cvmx_pko_lut_ecc_sbe_sts_cmb0 {
3064	u64 u64;
3065	struct cvmx_pko_lut_ecc_sbe_sts_cmb0_s {
3066		u64 lut_sbe_cmb0 : 1;
3067		u64 reserved_0_62 : 63;
3068	} s;
3069	struct cvmx_pko_lut_ecc_sbe_sts_cmb0_s cn73xx;
3070	struct cvmx_pko_lut_ecc_sbe_sts_cmb0_s cn78xx;
3071	struct cvmx_pko_lut_ecc_sbe_sts_cmb0_s cn78xxp1;
3072	struct cvmx_pko_lut_ecc_sbe_sts_cmb0_s cnf75xx;
3073};
3074
3075typedef union cvmx_pko_lut_ecc_sbe_sts_cmb0 cvmx_pko_lut_ecc_sbe_sts_cmb0_t;
3076
3077/**
3078 * cvmx_pko_mac#_cfg
3079 *
3080 * These registers create the links between the MACs and the TxFIFO used to store the data,
3081 * and hold the per-MAC configuration bits.  These registers must be disabled (FIFO_NUM set
3082 * to 31) prior to reconfiguration of any of the other bits.
3083 *
3084 * <pre>
3085 *   CSR Name       Associated MAC
3086 *   ------------   -------------------
3087 *   PKO_MAC0_CFG   LBK loopback
3088 *   PKO_MAC1_CFG   DPI packet output
3089 *   PKO_MAC2_CFG   BGX0  logical MAC 0
3090 *   PKO_MAC3_CFG   BGX0  logical MAC 1
3091 *   PKO_MAC4_CFG   BGX0  logical MAC 2
3092 *   PKO_MAC5_CFG   BGX0  logical MAC 3
3093 *   PKO_MAC6_CFG   SRIO0 logical MAC 0
3094 *   PKO_MAC7_CFG   SRIO0 logical MAC 1
3095 *   PKO_MAC8_CFG   SRIO1 logical MAC 0
3096 *   PKO_MAC9_CFG   SRIO1 logical MAC 1
3097 * </pre>
3098 */
3099union cvmx_pko_macx_cfg {
3100	u64 u64;
3101	struct cvmx_pko_macx_cfg_s {
3102		u64 reserved_17_63 : 47;
3103		u64 min_pad_ena : 1;
3104		u64 fcs_ena : 1;
3105		u64 fcs_sop_off : 8;
3106		u64 skid_max_cnt : 2;
3107		u64 fifo_num : 5;
3108	} s;
3109	struct cvmx_pko_macx_cfg_s cn73xx;
3110	struct cvmx_pko_macx_cfg_s cn78xx;
3111	struct cvmx_pko_macx_cfg_s cn78xxp1;
3112	struct cvmx_pko_macx_cfg_s cnf75xx;
3113};
3114
3115typedef union cvmx_pko_macx_cfg cvmx_pko_macx_cfg_t;
3116
3117/**
3118 * cvmx_pko_mci0_cred_cnt#
3119 */
3120union cvmx_pko_mci0_cred_cntx {
3121	u64 u64;
3122	struct cvmx_pko_mci0_cred_cntx_s {
3123		u64 reserved_13_63 : 51;
3124		u64 cred_cnt : 13;
3125	} s;
3126	struct cvmx_pko_mci0_cred_cntx_s cn78xx;
3127	struct cvmx_pko_mci0_cred_cntx_s cn78xxp1;
3128};
3129
3130typedef union cvmx_pko_mci0_cred_cntx cvmx_pko_mci0_cred_cntx_t;
3131
3132/**
3133 * cvmx_pko_mci0_max_cred#
3134 */
3135union cvmx_pko_mci0_max_credx {
3136	u64 u64;
3137	struct cvmx_pko_mci0_max_credx_s {
3138		u64 reserved_12_63 : 52;
3139		u64 max_cred_lim : 12;
3140	} s;
3141	struct cvmx_pko_mci0_max_credx_s cn78xx;
3142	struct cvmx_pko_mci0_max_credx_s cn78xxp1;
3143};
3144
3145typedef union cvmx_pko_mci0_max_credx cvmx_pko_mci0_max_credx_t;
3146
3147/**
3148 * cvmx_pko_mci1_cred_cnt#
3149 */
3150union cvmx_pko_mci1_cred_cntx {
3151	u64 u64;
3152	struct cvmx_pko_mci1_cred_cntx_s {
3153		u64 reserved_13_63 : 51;
3154		u64 cred_cnt : 13;
3155	} s;
3156	struct cvmx_pko_mci1_cred_cntx_s cn73xx;
3157	struct cvmx_pko_mci1_cred_cntx_s cn78xx;
3158	struct cvmx_pko_mci1_cred_cntx_s cn78xxp1;
3159	struct cvmx_pko_mci1_cred_cntx_s cnf75xx;
3160};
3161
3162typedef union cvmx_pko_mci1_cred_cntx cvmx_pko_mci1_cred_cntx_t;
3163
3164/**
3165 * cvmx_pko_mci1_max_cred#
3166 */
3167union cvmx_pko_mci1_max_credx {
3168	u64 u64;
3169	struct cvmx_pko_mci1_max_credx_s {
3170		u64 reserved_12_63 : 52;
3171		u64 max_cred_lim : 12;
3172	} s;
3173	struct cvmx_pko_mci1_max_credx_s cn73xx;
3174	struct cvmx_pko_mci1_max_credx_s cn78xx;
3175	struct cvmx_pko_mci1_max_credx_s cn78xxp1;
3176	struct cvmx_pko_mci1_max_credx_s cnf75xx;
3177};
3178
3179typedef union cvmx_pko_mci1_max_credx cvmx_pko_mci1_max_credx_t;
3180
3181/**
3182 * cvmx_pko_mem_count0
3183 *
3184 * Notes:
3185 * Total number of packets seen by PKO, per port
3186 * A write to this address will clear the entry whose index is specified as COUNT[5:0].
3187 * This CSR is a memory of 44 entries, and thus, the PKO_REG_READ_IDX CSR must be written before any
3188 * CSR read operations to this address can be performed.  A read of any entry that has not been
3189 * previously written is illegal and will result in unpredictable CSR read data.
3190 */
3191union cvmx_pko_mem_count0 {
3192	u64 u64;
3193	struct cvmx_pko_mem_count0_s {
3194		u64 reserved_32_63 : 32;
3195		u64 count : 32;
3196	} s;
3197	struct cvmx_pko_mem_count0_s cn30xx;
3198	struct cvmx_pko_mem_count0_s cn31xx;
3199	struct cvmx_pko_mem_count0_s cn38xx;
3200	struct cvmx_pko_mem_count0_s cn38xxp2;
3201	struct cvmx_pko_mem_count0_s cn50xx;
3202	struct cvmx_pko_mem_count0_s cn52xx;
3203	struct cvmx_pko_mem_count0_s cn52xxp1;
3204	struct cvmx_pko_mem_count0_s cn56xx;
3205	struct cvmx_pko_mem_count0_s cn56xxp1;
3206	struct cvmx_pko_mem_count0_s cn58xx;
3207	struct cvmx_pko_mem_count0_s cn58xxp1;
3208	struct cvmx_pko_mem_count0_s cn61xx;
3209	struct cvmx_pko_mem_count0_s cn63xx;
3210	struct cvmx_pko_mem_count0_s cn63xxp1;
3211	struct cvmx_pko_mem_count0_s cn66xx;
3212	struct cvmx_pko_mem_count0_s cn68xx;
3213	struct cvmx_pko_mem_count0_s cn68xxp1;
3214	struct cvmx_pko_mem_count0_s cn70xx;
3215	struct cvmx_pko_mem_count0_s cn70xxp1;
3216	struct cvmx_pko_mem_count0_s cnf71xx;
3217};
3218
3219typedef union cvmx_pko_mem_count0 cvmx_pko_mem_count0_t;
3220
3221/**
3222 * cvmx_pko_mem_count1
3223 *
3224 * Notes:
3225 * Total number of bytes seen by PKO, per port
3226 * A write to this address will clear the entry whose index is specified as COUNT[5:0].
3227 * This CSR is a memory of 44 entries, and thus, the PKO_REG_READ_IDX CSR must be written before any
3228 * CSR read operations to this address can be performed.  A read of any entry that has not been
3229 * previously written is illegal and will result in unpredictable CSR read data.
3230 */
3231union cvmx_pko_mem_count1 {
3232	u64 u64;
3233	struct cvmx_pko_mem_count1_s {
3234		u64 reserved_48_63 : 16;
3235		u64 count : 48;
3236	} s;
3237	struct cvmx_pko_mem_count1_s cn30xx;
3238	struct cvmx_pko_mem_count1_s cn31xx;
3239	struct cvmx_pko_mem_count1_s cn38xx;
3240	struct cvmx_pko_mem_count1_s cn38xxp2;
3241	struct cvmx_pko_mem_count1_s cn50xx;
3242	struct cvmx_pko_mem_count1_s cn52xx;
3243	struct cvmx_pko_mem_count1_s cn52xxp1;
3244	struct cvmx_pko_mem_count1_s cn56xx;
3245	struct cvmx_pko_mem_count1_s cn56xxp1;
3246	struct cvmx_pko_mem_count1_s cn58xx;
3247	struct cvmx_pko_mem_count1_s cn58xxp1;
3248	struct cvmx_pko_mem_count1_s cn61xx;
3249	struct cvmx_pko_mem_count1_s cn63xx;
3250	struct cvmx_pko_mem_count1_s cn63xxp1;
3251	struct cvmx_pko_mem_count1_s cn66xx;
3252	struct cvmx_pko_mem_count1_s cn68xx;
3253	struct cvmx_pko_mem_count1_s cn68xxp1;
3254	struct cvmx_pko_mem_count1_s cn70xx;
3255	struct cvmx_pko_mem_count1_s cn70xxp1;
3256	struct cvmx_pko_mem_count1_s cnf71xx;
3257};
3258
3259typedef union cvmx_pko_mem_count1 cvmx_pko_mem_count1_t;
3260
3261/**
3262 * cvmx_pko_mem_debug0
3263 *
3264 * Notes:
3265 * Internal per-port state intended for debug use only - pko_prt_psb.cmnd[63:0]
3266 * This CSR is a memory of 12 entries, and thus, the PKO_REG_READ_IDX CSR must be written before any
3267 * CSR read operations to this address can be performed.
3268 */
3269union cvmx_pko_mem_debug0 {
3270	u64 u64;
3271	struct cvmx_pko_mem_debug0_s {
3272		u64 fau : 28;
3273		u64 cmd : 14;
3274		u64 segs : 6;
3275		u64 size : 16;
3276	} s;
3277	struct cvmx_pko_mem_debug0_s cn30xx;
3278	struct cvmx_pko_mem_debug0_s cn31xx;
3279	struct cvmx_pko_mem_debug0_s cn38xx;
3280	struct cvmx_pko_mem_debug0_s cn38xxp2;
3281	struct cvmx_pko_mem_debug0_s cn50xx;
3282	struct cvmx_pko_mem_debug0_s cn52xx;
3283	struct cvmx_pko_mem_debug0_s cn52xxp1;
3284	struct cvmx_pko_mem_debug0_s cn56xx;
3285	struct cvmx_pko_mem_debug0_s cn56xxp1;
3286	struct cvmx_pko_mem_debug0_s cn58xx;
3287	struct cvmx_pko_mem_debug0_s cn58xxp1;
3288	struct cvmx_pko_mem_debug0_s cn61xx;
3289	struct cvmx_pko_mem_debug0_s cn63xx;
3290	struct cvmx_pko_mem_debug0_s cn63xxp1;
3291	struct cvmx_pko_mem_debug0_s cn66xx;
3292	struct cvmx_pko_mem_debug0_s cn68xx;
3293	struct cvmx_pko_mem_debug0_s cn68xxp1;
3294	struct cvmx_pko_mem_debug0_s cn70xx;
3295	struct cvmx_pko_mem_debug0_s cn70xxp1;
3296	struct cvmx_pko_mem_debug0_s cnf71xx;
3297};
3298
3299typedef union cvmx_pko_mem_debug0 cvmx_pko_mem_debug0_t;
3300
3301/**
3302 * cvmx_pko_mem_debug1
3303 *
3304 * Notes:
3305 * Internal per-port state intended for debug use only - pko_prt_psb.curr[63:0]
3306 * This CSR is a memory of 12 entries, and thus, the PKO_REG_READ_IDX CSR must be written before any
3307 * CSR read operations to this address can be performed.
3308 */
3309union cvmx_pko_mem_debug1 {
3310	u64 u64;
3311	struct cvmx_pko_mem_debug1_s {
3312		u64 i : 1;
3313		u64 back : 4;
3314		u64 pool : 3;
3315		u64 size : 16;
3316		u64 ptr : 40;
3317	} s;
3318	struct cvmx_pko_mem_debug1_s cn30xx;
3319	struct cvmx_pko_mem_debug1_s cn31xx;
3320	struct cvmx_pko_mem_debug1_s cn38xx;
3321	struct cvmx_pko_mem_debug1_s cn38xxp2;
3322	struct cvmx_pko_mem_debug1_s cn50xx;
3323	struct cvmx_pko_mem_debug1_s cn52xx;
3324	struct cvmx_pko_mem_debug1_s cn52xxp1;
3325	struct cvmx_pko_mem_debug1_s cn56xx;
3326	struct cvmx_pko_mem_debug1_s cn56xxp1;
3327	struct cvmx_pko_mem_debug1_s cn58xx;
3328	struct cvmx_pko_mem_debug1_s cn58xxp1;
3329	struct cvmx_pko_mem_debug1_s cn61xx;
3330	struct cvmx_pko_mem_debug1_s cn63xx;
3331	struct cvmx_pko_mem_debug1_s cn63xxp1;
3332	struct cvmx_pko_mem_debug1_s cn66xx;
3333	struct cvmx_pko_mem_debug1_s cn68xx;
3334	struct cvmx_pko_mem_debug1_s cn68xxp1;
3335	struct cvmx_pko_mem_debug1_s cn70xx;
3336	struct cvmx_pko_mem_debug1_s cn70xxp1;
3337	struct cvmx_pko_mem_debug1_s cnf71xx;
3338};
3339
3340typedef union cvmx_pko_mem_debug1 cvmx_pko_mem_debug1_t;
3341
3342/**
3343 * cvmx_pko_mem_debug10
3344 *
3345 * Notes:
3346 * Internal per-engine state intended for debug use only - pko.dat.ptr.ptrs1, pko.dat.ptr.ptrs2
3347 * This CSR is a memory of 10 entries, and thus, the PKO_REG_READ_IDX CSR must be written before any
3348 * CSR read operations to this address can be performed.
3349 */
3350union cvmx_pko_mem_debug10 {
3351	u64 u64;
3352	struct cvmx_pko_mem_debug10_s {
3353		u64 reserved_0_63 : 64;
3354	} s;
3355	struct cvmx_pko_mem_debug10_cn30xx {
3356		u64 fau : 28;
3357		u64 cmd : 14;
3358		u64 segs : 6;
3359		u64 size : 16;
3360	} cn30xx;
3361	struct cvmx_pko_mem_debug10_cn30xx cn31xx;
3362	struct cvmx_pko_mem_debug10_cn30xx cn38xx;
3363	struct cvmx_pko_mem_debug10_cn30xx cn38xxp2;
3364	struct cvmx_pko_mem_debug10_cn50xx {
3365		u64 reserved_49_63 : 15;
3366		u64 ptrs1 : 17;
3367		u64 reserved_17_31 : 15;
3368		u64 ptrs2 : 17;
3369	} cn50xx;
3370	struct cvmx_pko_mem_debug10_cn50xx cn52xx;
3371	struct cvmx_pko_mem_debug10_cn50xx cn52xxp1;
3372	struct cvmx_pko_mem_debug10_cn50xx cn56xx;
3373	struct cvmx_pko_mem_debug10_cn50xx cn56xxp1;
3374	struct cvmx_pko_mem_debug10_cn50xx cn58xx;
3375	struct cvmx_pko_mem_debug10_cn50xx cn58xxp1;
3376	struct cvmx_pko_mem_debug10_cn50xx cn61xx;
3377	struct cvmx_pko_mem_debug10_cn50xx cn63xx;
3378	struct cvmx_pko_mem_debug10_cn50xx cn63xxp1;
3379	struct cvmx_pko_mem_debug10_cn50xx cn66xx;
3380	struct cvmx_pko_mem_debug10_cn50xx cn68xx;
3381	struct cvmx_pko_mem_debug10_cn50xx cn68xxp1;
3382	struct cvmx_pko_mem_debug10_cn50xx cn70xx;
3383	struct cvmx_pko_mem_debug10_cn50xx cn70xxp1;
3384	struct cvmx_pko_mem_debug10_cn50xx cnf71xx;
3385};
3386
3387typedef union cvmx_pko_mem_debug10 cvmx_pko_mem_debug10_t;
3388
3389/**
3390 * cvmx_pko_mem_debug11
3391 *
3392 * Notes:
3393 * Internal per-engine state intended for debug use only - pko.out.sta.state[22:0]
3394 * This CSR is a memory of 10 entries, and thus, the PKO_REG_READ_IDX CSR must be written before any
3395 * CSR read operations to this address can be performed.
3396 */
3397union cvmx_pko_mem_debug11 {
3398	u64 u64;
3399	struct cvmx_pko_mem_debug11_s {
3400		u64 i : 1;
3401		u64 back : 4;
3402		u64 pool : 3;
3403		u64 size : 16;
3404		u64 reserved_0_39 : 40;
3405	} s;
3406	struct cvmx_pko_mem_debug11_cn30xx {
3407		u64 i : 1;
3408		u64 back : 4;
3409		u64 pool : 3;
3410		u64 size : 16;
3411		u64 ptr : 40;
3412	} cn30xx;
3413	struct cvmx_pko_mem_debug11_cn30xx cn31xx;
3414	struct cvmx_pko_mem_debug11_cn30xx cn38xx;
3415	struct cvmx_pko_mem_debug11_cn30xx cn38xxp2;
3416	struct cvmx_pko_mem_debug11_cn50xx {
3417		u64 reserved_23_63 : 41;
3418		u64 maj : 1;
3419		u64 uid : 3;
3420		u64 sop : 1;
3421		u64 len : 1;
3422		u64 chk : 1;
3423		u64 cnt : 13;
3424		u64 mod : 3;
3425	} cn50xx;
3426	struct cvmx_pko_mem_debug11_cn50xx cn52xx;
3427	struct cvmx_pko_mem_debug11_cn50xx cn52xxp1;
3428	struct cvmx_pko_mem_debug11_cn50xx cn56xx;
3429	struct cvmx_pko_mem_debug11_cn50xx cn56xxp1;
3430	struct cvmx_pko_mem_debug11_cn50xx cn58xx;
3431	struct cvmx_pko_mem_debug11_cn50xx cn58xxp1;
3432	struct cvmx_pko_mem_debug11_cn50xx cn61xx;
3433	struct cvmx_pko_mem_debug11_cn50xx cn63xx;
3434	struct cvmx_pko_mem_debug11_cn50xx cn63xxp1;
3435	struct cvmx_pko_mem_debug11_cn50xx cn66xx;
3436	struct cvmx_pko_mem_debug11_cn50xx cn68xx;
3437	struct cvmx_pko_mem_debug11_cn50xx cn68xxp1;
3438	struct cvmx_pko_mem_debug11_cn50xx cn70xx;
3439	struct cvmx_pko_mem_debug11_cn50xx cn70xxp1;
3440	struct cvmx_pko_mem_debug11_cn50xx cnf71xx;
3441};
3442
3443typedef union cvmx_pko_mem_debug11 cvmx_pko_mem_debug11_t;
3444
3445/**
3446 * cvmx_pko_mem_debug12
3447 *
3448 * Notes:
3449 * Internal per-engine x4 state intended for debug use only - pko.out.ctl.cmnd[63:0]
3450 * This CSR is a memory of 40 entries, and thus, the PKO_REG_READ_IDX CSR must be written before any
3451 * CSR read operations to this address can be performed.
3452 */
3453union cvmx_pko_mem_debug12 {
3454	u64 u64;
3455	struct cvmx_pko_mem_debug12_s {
3456		u64 reserved_0_63 : 64;
3457	} s;
3458	struct cvmx_pko_mem_debug12_cn30xx {
3459		u64 data : 64;
3460	} cn30xx;
3461	struct cvmx_pko_mem_debug12_cn30xx cn31xx;
3462	struct cvmx_pko_mem_debug12_cn30xx cn38xx;
3463	struct cvmx_pko_mem_debug12_cn30xx cn38xxp2;
3464	struct cvmx_pko_mem_debug12_cn50xx {
3465		u64 fau : 28;
3466		u64 cmd : 14;
3467		u64 segs : 6;
3468		u64 size : 16;
3469	} cn50xx;
3470	struct cvmx_pko_mem_debug12_cn50xx cn52xx;
3471	struct cvmx_pko_mem_debug12_cn50xx cn52xxp1;
3472	struct cvmx_pko_mem_debug12_cn50xx cn56xx;
3473	struct cvmx_pko_mem_debug12_cn50xx cn56xxp1;
3474	struct cvmx_pko_mem_debug12_cn50xx cn58xx;
3475	struct cvmx_pko_mem_debug12_cn50xx cn58xxp1;
3476	struct cvmx_pko_mem_debug12_cn50xx cn61xx;
3477	struct cvmx_pko_mem_debug12_cn50xx cn63xx;
3478	struct cvmx_pko_mem_debug12_cn50xx cn63xxp1;
3479	struct cvmx_pko_mem_debug12_cn50xx cn66xx;
3480	struct cvmx_pko_mem_debug12_cn68xx {
3481		u64 state : 64;
3482	} cn68xx;
3483	struct cvmx_pko_mem_debug12_cn68xx cn68xxp1;
3484	struct cvmx_pko_mem_debug12_cn50xx cn70xx;
3485	struct cvmx_pko_mem_debug12_cn50xx cn70xxp1;
3486	struct cvmx_pko_mem_debug12_cn50xx cnf71xx;
3487};
3488
3489typedef union cvmx_pko_mem_debug12 cvmx_pko_mem_debug12_t;
3490
3491/**
3492 * cvmx_pko_mem_debug13
3493 *
3494 * Notes:
3495 * Internal per-engine x4 state intended for debug use only - pko.out.ctl.head[63:0]
3496 * This CSR is a memory of 40 entries, and thus, the PKO_REG_READ_IDX CSR must be written before any
3497 * CSR read operations to this address can be performed.
3498 */
3499union cvmx_pko_mem_debug13 {
3500	u64 u64;
3501	struct cvmx_pko_mem_debug13_s {
3502		u64 reserved_0_63 : 64;
3503	} s;
3504	struct cvmx_pko_mem_debug13_cn30xx {
3505		u64 reserved_51_63 : 13;
3506		u64 widx : 17;
3507		u64 ridx2 : 17;
3508		u64 widx2 : 17;
3509	} cn30xx;
3510	struct cvmx_pko_mem_debug13_cn30xx cn31xx;
3511	struct cvmx_pko_mem_debug13_cn30xx cn38xx;
3512	struct cvmx_pko_mem_debug13_cn30xx cn38xxp2;
3513	struct cvmx_pko_mem_debug13_cn50xx {
3514		u64 i : 1;
3515		u64 back : 4;
3516		u64 pool : 3;
3517		u64 size : 16;
3518		u64 ptr : 40;
3519	} cn50xx;
3520	struct cvmx_pko_mem_debug13_cn50xx cn52xx;
3521	struct cvmx_pko_mem_debug13_cn50xx cn52xxp1;
3522	struct cvmx_pko_mem_debug13_cn50xx cn56xx;
3523	struct cvmx_pko_mem_debug13_cn50xx cn56xxp1;
3524	struct cvmx_pko_mem_debug13_cn50xx cn58xx;
3525	struct cvmx_pko_mem_debug13_cn50xx cn58xxp1;
3526	struct cvmx_pko_mem_debug13_cn50xx cn61xx;
3527	struct cvmx_pko_mem_debug13_cn50xx cn63xx;
3528	struct cvmx_pko_mem_debug13_cn50xx cn63xxp1;
3529	struct cvmx_pko_mem_debug13_cn50xx cn66xx;
3530	struct cvmx_pko_mem_debug13_cn68xx {
3531		u64 state : 64;
3532	} cn68xx;
3533	struct cvmx_pko_mem_debug13_cn68xx cn68xxp1;
3534	struct cvmx_pko_mem_debug13_cn50xx cn70xx;
3535	struct cvmx_pko_mem_debug13_cn50xx cn70xxp1;
3536	struct cvmx_pko_mem_debug13_cn50xx cnf71xx;
3537};
3538
3539typedef union cvmx_pko_mem_debug13 cvmx_pko_mem_debug13_t;
3540
3541/**
3542 * cvmx_pko_mem_debug14
3543 *
3544 * Notes:
3545 * Internal per-port state intended for debug use only - pko.prt.psb.save[63:0]
3546 * This CSR is a memory of 132 entries, and thus, the PKO_REG_READ_IDX CSR must be written before any
3547 * CSR read operations to this address can be performed.
3548 */
3549union cvmx_pko_mem_debug14 {
3550	u64 u64;
3551	struct cvmx_pko_mem_debug14_s {
3552		u64 reserved_0_63 : 64;
3553	} s;
3554	struct cvmx_pko_mem_debug14_cn30xx {
3555		u64 reserved_17_63 : 47;
3556		u64 ridx : 17;
3557	} cn30xx;
3558	struct cvmx_pko_mem_debug14_cn30xx cn31xx;
3559	struct cvmx_pko_mem_debug14_cn30xx cn38xx;
3560	struct cvmx_pko_mem_debug14_cn30xx cn38xxp2;
3561	struct cvmx_pko_mem_debug14_cn52xx {
3562		u64 data : 64;
3563	} cn52xx;
3564	struct cvmx_pko_mem_debug14_cn52xx cn52xxp1;
3565	struct cvmx_pko_mem_debug14_cn52xx cn56xx;
3566	struct cvmx_pko_mem_debug14_cn52xx cn56xxp1;
3567	struct cvmx_pko_mem_debug14_cn52xx cn61xx;
3568	struct cvmx_pko_mem_debug14_cn52xx cn63xx;
3569	struct cvmx_pko_mem_debug14_cn52xx cn63xxp1;
3570	struct cvmx_pko_mem_debug14_cn52xx cn66xx;
3571	struct cvmx_pko_mem_debug14_cn52xx cn70xx;
3572	struct cvmx_pko_mem_debug14_cn52xx cn70xxp1;
3573	struct cvmx_pko_mem_debug14_cn52xx cnf71xx;
3574};
3575
3576typedef union cvmx_pko_mem_debug14 cvmx_pko_mem_debug14_t;
3577
3578/**
3579 * cvmx_pko_mem_debug2
3580 *
3581 * Notes:
3582 * Internal per-port state intended for debug use only - pko_prt_psb.head[63:0]
3583 * This CSR is a memory of 12 entries, and thus, the PKO_REG_READ_IDX CSR must be written before any
3584 * CSR read operations to this address can be performed.
3585 */
3586union cvmx_pko_mem_debug2 {
3587	u64 u64;
3588	struct cvmx_pko_mem_debug2_s {
3589		u64 i : 1;
3590		u64 back : 4;
3591		u64 pool : 3;
3592		u64 size : 16;
3593		u64 ptr : 40;
3594	} s;
3595	struct cvmx_pko_mem_debug2_s cn30xx;
3596	struct cvmx_pko_mem_debug2_s cn31xx;
3597	struct cvmx_pko_mem_debug2_s cn38xx;
3598	struct cvmx_pko_mem_debug2_s cn38xxp2;
3599	struct cvmx_pko_mem_debug2_s cn50xx;
3600	struct cvmx_pko_mem_debug2_s cn52xx;
3601	struct cvmx_pko_mem_debug2_s cn52xxp1;
3602	struct cvmx_pko_mem_debug2_s cn56xx;
3603	struct cvmx_pko_mem_debug2_s cn56xxp1;
3604	struct cvmx_pko_mem_debug2_s cn58xx;
3605	struct cvmx_pko_mem_debug2_s cn58xxp1;
3606	struct cvmx_pko_mem_debug2_s cn61xx;
3607	struct cvmx_pko_mem_debug2_s cn63xx;
3608	struct cvmx_pko_mem_debug2_s cn63xxp1;
3609	struct cvmx_pko_mem_debug2_s cn66xx;
3610	struct cvmx_pko_mem_debug2_s cn68xx;
3611	struct cvmx_pko_mem_debug2_s cn68xxp1;
3612	struct cvmx_pko_mem_debug2_s cn70xx;
3613	struct cvmx_pko_mem_debug2_s cn70xxp1;
3614	struct cvmx_pko_mem_debug2_s cnf71xx;
3615};
3616
3617typedef union cvmx_pko_mem_debug2 cvmx_pko_mem_debug2_t;
3618
3619/**
3620 * cvmx_pko_mem_debug3
3621 *
3622 * Notes:
3623 * Internal per-port state intended for debug use only - pko_prt_psb.resp[63:0]
3624 * This CSR is a memory of 12 entries, and thus, the PKO_REG_READ_IDX CSR must be written before any
3625 * CSR read operations to this address can be performed.
3626 */
3627union cvmx_pko_mem_debug3 {
3628	u64 u64;
3629	struct cvmx_pko_mem_debug3_s {
3630		u64 reserved_0_63 : 64;
3631	} s;
3632	struct cvmx_pko_mem_debug3_cn30xx {
3633		u64 i : 1;
3634		u64 back : 4;
3635		u64 pool : 3;
3636		u64 size : 16;
3637		u64 ptr : 40;
3638	} cn30xx;
3639	struct cvmx_pko_mem_debug3_cn30xx cn31xx;
3640	struct cvmx_pko_mem_debug3_cn30xx cn38xx;
3641	struct cvmx_pko_mem_debug3_cn30xx cn38xxp2;
3642	struct cvmx_pko_mem_debug3_cn50xx {
3643		u64 data : 64;
3644	} cn50xx;
3645	struct cvmx_pko_mem_debug3_cn50xx cn52xx;
3646	struct cvmx_pko_mem_debug3_cn50xx cn52xxp1;
3647	struct cvmx_pko_mem_debug3_cn50xx cn56xx;
3648	struct cvmx_pko_mem_debug3_cn50xx cn56xxp1;
3649	struct cvmx_pko_mem_debug3_cn50xx cn58xx;
3650	struct cvmx_pko_mem_debug3_cn50xx cn58xxp1;
3651	struct cvmx_pko_mem_debug3_cn50xx cn61xx;
3652	struct cvmx_pko_mem_debug3_cn50xx cn63xx;
3653	struct cvmx_pko_mem_debug3_cn50xx cn63xxp1;
3654	struct cvmx_pko_mem_debug3_cn50xx cn66xx;
3655	struct cvmx_pko_mem_debug3_cn50xx cn68xx;
3656	struct cvmx_pko_mem_debug3_cn50xx cn68xxp1;
3657	struct cvmx_pko_mem_debug3_cn50xx cn70xx;
3658	struct cvmx_pko_mem_debug3_cn50xx cn70xxp1;
3659	struct cvmx_pko_mem_debug3_cn50xx cnf71xx;
3660};
3661
3662typedef union cvmx_pko_mem_debug3 cvmx_pko_mem_debug3_t;
3663
3664/**
3665 * cvmx_pko_mem_debug4
3666 *
3667 * Notes:
3668 * Internal per-port state intended for debug use only - pko_prt_psb.state[63:0]
3669 * This CSR is a memory of 12 entries, and thus, the PKO_REG_READ_IDX CSR must be written before any
3670 * CSR read operations to this address can be performed.
3671 */
3672union cvmx_pko_mem_debug4 {
3673	u64 u64;
3674	struct cvmx_pko_mem_debug4_s {
3675		u64 reserved_0_63 : 64;
3676	} s;
3677	struct cvmx_pko_mem_debug4_cn30xx {
3678		u64 data : 64;
3679	} cn30xx;
3680	struct cvmx_pko_mem_debug4_cn30xx cn31xx;
3681	struct cvmx_pko_mem_debug4_cn30xx cn38xx;
3682	struct cvmx_pko_mem_debug4_cn30xx cn38xxp2;
3683	struct cvmx_pko_mem_debug4_cn50xx {
3684		u64 cmnd_segs : 3;
3685		u64 cmnd_siz : 16;
3686		u64 cmnd_off : 6;
3687		u64 uid : 3;
3688		u64 dread_sop : 1;
3689		u64 init_dwrite : 1;
3690		u64 chk_once : 1;
3691		u64 chk_mode : 1;
3692		u64 active : 1;
3693		u64 static_p : 1;
3694		u64 qos : 3;
3695		u64 qcb_ridx : 5;
3696		u64 qid_off_max : 4;
3697		u64 qid_off : 4;
3698		u64 qid_base : 8;
3699		u64 wait : 1;
3700		u64 minor : 2;
3701		u64 major : 3;
3702	} cn50xx;
3703	struct cvmx_pko_mem_debug4_cn52xx {
3704		u64 curr_siz : 8;
3705		u64 curr_off : 16;
3706		u64 cmnd_segs : 6;
3707		u64 cmnd_siz : 16;
3708		u64 cmnd_off : 6;
3709		u64 uid : 2;
3710		u64 dread_sop : 1;
3711		u64 init_dwrite : 1;
3712		u64 chk_once : 1;
3713		u64 chk_mode : 1;
3714		u64 wait : 1;
3715		u64 minor : 2;
3716		u64 major : 3;
3717	} cn52xx;
3718	struct cvmx_pko_mem_debug4_cn52xx cn52xxp1;
3719	struct cvmx_pko_mem_debug4_cn52xx cn56xx;
3720	struct cvmx_pko_mem_debug4_cn52xx cn56xxp1;
3721	struct cvmx_pko_mem_debug4_cn50xx cn58xx;
3722	struct cvmx_pko_mem_debug4_cn50xx cn58xxp1;
3723	struct cvmx_pko_mem_debug4_cn52xx cn61xx;
3724	struct cvmx_pko_mem_debug4_cn52xx cn63xx;
3725	struct cvmx_pko_mem_debug4_cn52xx cn63xxp1;
3726	struct cvmx_pko_mem_debug4_cn52xx cn66xx;
3727	struct cvmx_pko_mem_debug4_cn68xx {
3728		u64 curr_siz : 9;
3729		u64 curr_off : 16;
3730		u64 cmnd_segs : 6;
3731		u64 cmnd_siz : 16;
3732		u64 cmnd_off : 6;
3733		u64 dread_sop : 1;
3734		u64 init_dwrite : 1;
3735		u64 chk_once : 1;
3736		u64 chk_mode : 1;
3737		u64 reserved_6_6 : 1;
3738		u64 minor : 2;
3739		u64 major : 4;
3740	} cn68xx;
3741	struct cvmx_pko_mem_debug4_cn68xx cn68xxp1;
3742	struct cvmx_pko_mem_debug4_cn52xx cn70xx;
3743	struct cvmx_pko_mem_debug4_cn52xx cn70xxp1;
3744	struct cvmx_pko_mem_debug4_cn52xx cnf71xx;
3745};
3746
3747typedef union cvmx_pko_mem_debug4 cvmx_pko_mem_debug4_t;
3748
3749/**
3750 * cvmx_pko_mem_debug5
3751 *
3752 * Notes:
3753 * Internal per-port state intended for debug use only - pko_prt_psb.state[127:64]
3754 * This CSR is a memory of 12 entries, and thus, the PKO_REG_READ_IDX CSR must be written before any
3755 * CSR read operations to this address can be performed.
3756 */
3757union cvmx_pko_mem_debug5 {
3758	u64 u64;
3759	struct cvmx_pko_mem_debug5_s {
3760		u64 reserved_0_63 : 64;
3761	} s;
3762	struct cvmx_pko_mem_debug5_cn30xx {
3763		u64 dwri_mod : 1;
3764		u64 dwri_sop : 1;
3765		u64 dwri_len : 1;
3766		u64 dwri_cnt : 13;
3767		u64 cmnd_siz : 16;
3768		u64 uid : 1;
3769		u64 xfer_wor : 1;
3770		u64 xfer_dwr : 1;
3771		u64 cbuf_fre : 1;
3772		u64 reserved_27_27 : 1;
3773		u64 chk_mode : 1;
3774		u64 active : 1;
3775		u64 qos : 3;
3776		u64 qcb_ridx : 5;
3777		u64 qid_off : 3;
3778		u64 qid_base : 7;
3779		u64 wait : 1;
3780		u64 minor : 2;
3781		u64 major : 4;
3782	} cn30xx;
3783	struct cvmx_pko_mem_debug5_cn30xx cn31xx;
3784	struct cvmx_pko_mem_debug5_cn30xx cn38xx;
3785	struct cvmx_pko_mem_debug5_cn30xx cn38xxp2;
3786	struct cvmx_pko_mem_debug5_cn50xx {
3787		u64 curr_ptr : 29;
3788		u64 curr_siz : 16;
3789		u64 curr_off : 16;
3790		u64 cmnd_segs : 3;
3791	} cn50xx;
3792	struct cvmx_pko_mem_debug5_cn52xx {
3793		u64 reserved_54_63 : 10;
3794		u64 nxt_inflt : 6;
3795		u64 curr_ptr : 40;
3796		u64 curr_siz : 8;
3797	} cn52xx;
3798	struct cvmx_pko_mem_debug5_cn52xx cn52xxp1;
3799	struct cvmx_pko_mem_debug5_cn52xx cn56xx;
3800	struct cvmx_pko_mem_debug5_cn52xx cn56xxp1;
3801	struct cvmx_pko_mem_debug5_cn50xx cn58xx;
3802	struct cvmx_pko_mem_debug5_cn50xx cn58xxp1;
3803	struct cvmx_pko_mem_debug5_cn61xx {
3804		u64 reserved_56_63 : 8;
3805		u64 ptp : 1;
3806		u64 major_3 : 1;
3807		u64 nxt_inflt : 6;
3808		u64 curr_ptr : 40;
3809		u64 curr_siz : 8;
3810	} cn61xx;
3811	struct cvmx_pko_mem_debug5_cn61xx cn63xx;
3812	struct cvmx_pko_mem_debug5_cn61xx cn63xxp1;
3813	struct cvmx_pko_mem_debug5_cn61xx cn66xx;
3814	struct cvmx_pko_mem_debug5_cn68xx {
3815		u64 reserved_57_63 : 7;
3816		u64 uid : 3;
3817		u64 ptp : 1;
3818		u64 nxt_inflt : 6;
3819		u64 curr_ptr : 40;
3820		u64 curr_siz : 7;
3821	} cn68xx;
3822	struct cvmx_pko_mem_debug5_cn68xx cn68xxp1;
3823	struct cvmx_pko_mem_debug5_cn61xx cn70xx;
3824	struct cvmx_pko_mem_debug5_cn61xx cn70xxp1;
3825	struct cvmx_pko_mem_debug5_cn61xx cnf71xx;
3826};
3827
3828typedef union cvmx_pko_mem_debug5 cvmx_pko_mem_debug5_t;
3829
3830/**
3831 * cvmx_pko_mem_debug6
3832 *
3833 * Notes:
3834 * Internal per-port state intended for debug use only - pko_prt_psb.port[63:0]
3835 * This CSR is a memory of 44 entries, and thus, the PKO_REG_READ_IDX CSR must be written before any
3836 * CSR read operations to this address can be performed.
3837 */
3838union cvmx_pko_mem_debug6 {
3839	u64 u64;
3840	struct cvmx_pko_mem_debug6_s {
3841		u64 reserved_38_63 : 26;
3842		u64 qos_active : 1;
3843		u64 reserved_0_36 : 37;
3844	} s;
3845	struct cvmx_pko_mem_debug6_cn30xx {
3846		u64 reserved_11_63 : 53;
3847		u64 qid_offm : 3;
3848		u64 static_p : 1;
3849		u64 work_min : 3;
3850		u64 dwri_chk : 1;
3851		u64 dwri_uid : 1;
3852		u64 dwri_mod : 2;
3853	} cn30xx;
3854	struct cvmx_pko_mem_debug6_cn30xx cn31xx;
3855	struct cvmx_pko_mem_debug6_cn30xx cn38xx;
3856	struct cvmx_pko_mem_debug6_cn30xx cn38xxp2;
3857	struct cvmx_pko_mem_debug6_cn50xx {
3858		u64 reserved_11_63 : 53;
3859		u64 curr_ptr : 11;
3860	} cn50xx;
3861	struct cvmx_pko_mem_debug6_cn52xx {
3862		u64 reserved_37_63 : 27;
3863		u64 qid_offres : 4;
3864		u64 qid_offths : 4;
3865		u64 preempter : 1;
3866		u64 preemptee : 1;
3867		u64 preempted : 1;
3868		u64 active : 1;
3869		u64 statc : 1;
3870		u64 qos : 3;
3871		u64 qcb_ridx : 5;
3872		u64 qid_offmax : 4;
3873		u64 qid_off : 4;
3874		u64 qid_base : 8;
3875	} cn52xx;
3876	struct cvmx_pko_mem_debug6_cn52xx cn52xxp1;
3877	struct cvmx_pko_mem_debug6_cn52xx cn56xx;
3878	struct cvmx_pko_mem_debug6_cn52xx cn56xxp1;
3879	struct cvmx_pko_mem_debug6_cn50xx cn58xx;
3880	struct cvmx_pko_mem_debug6_cn50xx cn58xxp1;
3881	struct cvmx_pko_mem_debug6_cn52xx cn61xx;
3882	struct cvmx_pko_mem_debug6_cn52xx cn63xx;
3883	struct cvmx_pko_mem_debug6_cn52xx cn63xxp1;
3884	struct cvmx_pko_mem_debug6_cn52xx cn66xx;
3885	struct cvmx_pko_mem_debug6_cn68xx {
3886		u64 reserved_38_63 : 26;
3887		u64 qos_active : 1;
3888		u64 qid_offths : 5;
3889		u64 preempter : 1;
3890		u64 preemptee : 1;
3891		u64 active : 1;
3892		u64 static_p : 1;
3893		u64 qos : 3;
3894		u64 qcb_ridx : 7;
3895		u64 qid_offmax : 5;
3896		u64 qid_off : 5;
3897		u64 qid_base : 8;
3898	} cn68xx;
3899	struct cvmx_pko_mem_debug6_cn68xx cn68xxp1;
3900	struct cvmx_pko_mem_debug6_cn70xx {
3901		u64 reserved_63_37 : 27;
3902		u64 qid_offres : 4;
3903		u64 qid_offths : 4;
3904		u64 preempter : 1;
3905		u64 preemptee : 1;
3906		u64 preempted : 1;
3907		u64 active : 1;
3908		u64 staticb : 1;
3909		u64 qos : 3;
3910		u64 qcb_ridx : 5;
3911		u64 qid_offmax : 4;
3912		u64 qid_off : 4;
3913		u64 qid_base : 8;
3914	} cn70xx;
3915	struct cvmx_pko_mem_debug6_cn70xx cn70xxp1;
3916	struct cvmx_pko_mem_debug6_cn52xx cnf71xx;
3917};
3918
3919typedef union cvmx_pko_mem_debug6 cvmx_pko_mem_debug6_t;
3920
3921/**
3922 * cvmx_pko_mem_debug7
3923 *
3924 * Notes:
3925 * Internal per-queue state intended for debug use only - pko_prt_qsb.state[63:0]
3926 * This CSR is a memory of 256 entries, and thus, the PKO_REG_READ_IDX CSR must be written before any
3927 * CSR read operations to this address can be performed.
3928 */
3929union cvmx_pko_mem_debug7 {
3930	u64 u64;
3931	struct cvmx_pko_mem_debug7_s {
3932		u64 reserved_0_63 : 64;
3933	} s;
3934	struct cvmx_pko_mem_debug7_cn30xx {
3935		u64 reserved_58_63 : 6;
3936		u64 dwb : 9;
3937		u64 start : 33;
3938		u64 size : 16;
3939	} cn30xx;
3940	struct cvmx_pko_mem_debug7_cn30xx cn31xx;
3941	struct cvmx_pko_mem_debug7_cn30xx cn38xx;
3942	struct cvmx_pko_mem_debug7_cn30xx cn38xxp2;
3943	struct cvmx_pko_mem_debug7_cn50xx {
3944		u64 qos : 5;
3945		u64 tail : 1;
3946		u64 buf_siz : 13;
3947		u64 buf_ptr : 33;
3948		u64 qcb_widx : 6;
3949		u64 qcb_ridx : 6;
3950	} cn50xx;
3951	struct cvmx_pko_mem_debug7_cn50xx cn52xx;
3952	struct cvmx_pko_mem_debug7_cn50xx cn52xxp1;
3953	struct cvmx_pko_mem_debug7_cn50xx cn56xx;
3954	struct cvmx_pko_mem_debug7_cn50xx cn56xxp1;
3955	struct cvmx_pko_mem_debug7_cn50xx cn58xx;
3956	struct cvmx_pko_mem_debug7_cn50xx cn58xxp1;
3957	struct cvmx_pko_mem_debug7_cn50xx cn61xx;
3958	struct cvmx_pko_mem_debug7_cn50xx cn63xx;
3959	struct cvmx_pko_mem_debug7_cn50xx cn63xxp1;
3960	struct cvmx_pko_mem_debug7_cn50xx cn66xx;
3961	struct cvmx_pko_mem_debug7_cn68xx {
3962		u64 buf_siz : 11;
3963		u64 buf_ptr : 37;
3964		u64 qcb_widx : 8;
3965		u64 qcb_ridx : 8;
3966	} cn68xx;
3967	struct cvmx_pko_mem_debug7_cn68xx cn68xxp1;
3968	struct cvmx_pko_mem_debug7_cn50xx cn70xx;
3969	struct cvmx_pko_mem_debug7_cn50xx cn70xxp1;
3970	struct cvmx_pko_mem_debug7_cn50xx cnf71xx;
3971};
3972
3973typedef union cvmx_pko_mem_debug7 cvmx_pko_mem_debug7_t;
3974
3975/**
3976 * cvmx_pko_mem_debug8
3977 *
3978 * Notes:
3979 * Internal per-queue state intended for debug use only - pko_prt_qsb.state[91:64]
3980 * This CSR is a memory of 256 entries, and thus, the PKO_REG_READ_IDX CSR must be written before any
3981 * CSR read operations to this address can be performed.
3982 */
3983union cvmx_pko_mem_debug8 {
3984	u64 u64;
3985	struct cvmx_pko_mem_debug8_s {
3986		u64 reserved_59_63 : 5;
3987		u64 tail : 1;
3988		u64 reserved_0_57 : 58;
3989	} s;
3990	struct cvmx_pko_mem_debug8_cn30xx {
3991		u64 qos : 5;
3992		u64 tail : 1;
3993		u64 buf_siz : 13;
3994		u64 buf_ptr : 33;
3995		u64 qcb_widx : 6;
3996		u64 qcb_ridx : 6;
3997	} cn30xx;
3998	struct cvmx_pko_mem_debug8_cn30xx cn31xx;
3999	struct cvmx_pko_mem_debug8_cn30xx cn38xx;
4000	struct cvmx_pko_mem_debug8_cn30xx cn38xxp2;
4001	struct cvmx_pko_mem_debug8_cn50xx {
4002		u64 reserved_28_63 : 36;
4003		u64 doorbell : 20;
4004		u64 reserved_6_7 : 2;
4005		u64 static_p : 1;
4006		u64 s_tail : 1;
4007		u64 static_q : 1;
4008		u64 qos : 3;
4009	} cn50xx;
4010	struct cvmx_pko_mem_debug8_cn52xx {
4011		u64 reserved_29_63 : 35;
4012		u64 preempter : 1;
4013		u64 doorbell : 20;
4014		u64 reserved_7_7 : 1;
4015		u64 preemptee : 1;
4016		u64 static_p : 1;
4017		u64 s_tail : 1;
4018		u64 static_q : 1;
4019		u64 qos : 3;
4020	} cn52xx;
4021	struct cvmx_pko_mem_debug8_cn52xx cn52xxp1;
4022	struct cvmx_pko_mem_debug8_cn52xx cn56xx;
4023	struct cvmx_pko_mem_debug8_cn52xx cn56xxp1;
4024	struct cvmx_pko_mem_debug8_cn50xx cn58xx;
4025	struct cvmx_pko_mem_debug8_cn50xx cn58xxp1;
4026	struct cvmx_pko_mem_debug8_cn61xx {
4027		u64 reserved_42_63 : 22;
4028		u64 qid_qqos : 8;
4029		u64 reserved_33_33 : 1;
4030		u64 qid_idx : 4;
4031		u64 preempter : 1;
4032		u64 doorbell : 20;
4033		u64 reserved_7_7 : 1;
4034		u64 preemptee : 1;
4035		u64 static_p : 1;
4036		u64 s_tail : 1;
4037		u64 static_q : 1;
4038		u64 qos : 3;
4039	} cn61xx;
4040	struct cvmx_pko_mem_debug8_cn52xx cn63xx;
4041	struct cvmx_pko_mem_debug8_cn52xx cn63xxp1;
4042	struct cvmx_pko_mem_debug8_cn61xx cn66xx;
4043	struct cvmx_pko_mem_debug8_cn68xx {
4044		u64 reserved_50_63 : 14;
4045		u64 qid_qqos : 8;
4046		u64 qid_idx : 5;
4047		u64 preempter : 1;
4048		u64 doorbell : 20;
4049		u64 reserved_9_15 : 7;
4050		u64 qid_qos : 6;
4051		u64 qid_tail : 1;
4052		u64 buf_siz : 2;
4053	} cn68xx;
4054	struct cvmx_pko_mem_debug8_cn68xx cn68xxp1;
4055	struct cvmx_pko_mem_debug8_cn61xx cn70xx;
4056	struct cvmx_pko_mem_debug8_cn61xx cn70xxp1;
4057	struct cvmx_pko_mem_debug8_cn61xx cnf71xx;
4058};
4059
4060typedef union cvmx_pko_mem_debug8 cvmx_pko_mem_debug8_t;
4061
4062/**
4063 * cvmx_pko_mem_debug9
4064 *
4065 * Notes:
4066 * Internal per-engine state intended for debug use only - pko.dat.ptr.ptrs0, pko.dat.ptr.ptrs3
4067 * This CSR is a memory of 10 entries, and thus, the PKO_REG_READ_IDX CSR must be written before any
4068 * CSR read operations to this address can be performed.
4069 */
4070union cvmx_pko_mem_debug9 {
4071	u64 u64;
4072	struct cvmx_pko_mem_debug9_s {
4073		u64 reserved_49_63 : 15;
4074		u64 ptrs0 : 17;
4075		u64 reserved_0_31 : 32;
4076	} s;
4077	struct cvmx_pko_mem_debug9_cn30xx {
4078		u64 reserved_28_63 : 36;
4079		u64 doorbell : 20;
4080		u64 reserved_5_7 : 3;
4081		u64 s_tail : 1;
4082		u64 static_q : 1;
4083		u64 qos : 3;
4084	} cn30xx;
4085	struct cvmx_pko_mem_debug9_cn30xx cn31xx;
4086	struct cvmx_pko_mem_debug9_cn38xx {
4087		u64 reserved_28_63 : 36;
4088		u64 doorbell : 20;
4089		u64 reserved_6_7 : 2;
4090		u64 static_p : 1;
4091		u64 s_tail : 1;
4092		u64 static_q : 1;
4093		u64 qos : 3;
4094	} cn38xx;
4095	struct cvmx_pko_mem_debug9_cn38xx cn38xxp2;
4096	struct cvmx_pko_mem_debug9_cn50xx {
4097		u64 reserved_49_63 : 15;
4098		u64 ptrs0 : 17;
4099		u64 reserved_17_31 : 15;
4100		u64 ptrs3 : 17;
4101	} cn50xx;
4102	struct cvmx_pko_mem_debug9_cn50xx cn52xx;
4103	struct cvmx_pko_mem_debug9_cn50xx cn52xxp1;
4104	struct cvmx_pko_mem_debug9_cn50xx cn56xx;
4105	struct cvmx_pko_mem_debug9_cn50xx cn56xxp1;
4106	struct cvmx_pko_mem_debug9_cn50xx cn58xx;
4107	struct cvmx_pko_mem_debug9_cn50xx cn58xxp1;
4108	struct cvmx_pko_mem_debug9_cn50xx cn61xx;
4109	struct cvmx_pko_mem_debug9_cn50xx cn63xx;
4110	struct cvmx_pko_mem_debug9_cn50xx cn63xxp1;
4111	struct cvmx_pko_mem_debug9_cn50xx cn66xx;
4112	struct cvmx_pko_mem_debug9_cn50xx cn68xx;
4113	struct cvmx_pko_mem_debug9_cn50xx cn68xxp1;
4114	struct cvmx_pko_mem_debug9_cn50xx cn70xx;
4115	struct cvmx_pko_mem_debug9_cn50xx cn70xxp1;
4116	struct cvmx_pko_mem_debug9_cn50xx cnf71xx;
4117};
4118
4119typedef union cvmx_pko_mem_debug9 cvmx_pko_mem_debug9_t;
4120
4121/**
4122 * cvmx_pko_mem_iport_ptrs
4123 *
4124 * Notes:
4125 * This CSR is a memory of 128 entries, and thus, the PKO_REG_READ_IDX CSR must be written before any
4126 * CSR read operations to this address can be performed.  The index to this CSR is an IPORT.  A read of any
4127 * entry that has not been previously written is illegal and will result in unpredictable CSR read data.
4128 */
4129union cvmx_pko_mem_iport_ptrs {
4130	u64 u64;
4131	struct cvmx_pko_mem_iport_ptrs_s {
4132		u64 reserved_63_63 : 1;
4133		u64 crc : 1;
4134		u64 static_p : 1;
4135		u64 qos_mask : 8;
4136		u64 min_pkt : 3;
4137		u64 reserved_31_49 : 19;
4138		u64 pipe : 7;
4139		u64 reserved_21_23 : 3;
4140		u64 intr : 5;
4141		u64 reserved_13_15 : 3;
4142		u64 eid : 5;
4143		u64 reserved_7_7 : 1;
4144		u64 ipid : 7;
4145	} s;
4146	struct cvmx_pko_mem_iport_ptrs_s cn68xx;
4147	struct cvmx_pko_mem_iport_ptrs_s cn68xxp1;
4148};
4149
4150typedef union cvmx_pko_mem_iport_ptrs cvmx_pko_mem_iport_ptrs_t;
4151
4152/**
4153 * cvmx_pko_mem_iport_qos
4154 *
4155 * Notes:
4156 * Sets the QOS mask, per port.  These QOS_MASK bits are logically and physically the same QOS_MASK
4157 * bits in PKO_MEM_IPORT_PTRS.  This CSR address allows the QOS_MASK bits to be written during PKO
4158 * operation without affecting any other port state.  The engine to which port PID is mapped is engine
4159 * EID.  Note that the port to engine mapping must be the same as was previously programmed via the
4160 * PKO_MEM_IPORT_PTRS CSR.
4161 * This CSR is a memory of 128 entries, and thus, the PKO_REG_READ_IDX CSR must be written before any
4162 * CSR read operations to this address can be performed.  The index to this CSR is an IPORT.  A read of
4163 * any entry that has not been previously written is illegal and will result in unpredictable CSR read data.
4164 */
4165union cvmx_pko_mem_iport_qos {
4166	u64 u64;
4167	struct cvmx_pko_mem_iport_qos_s {
4168		u64 reserved_61_63 : 3;
4169		u64 qos_mask : 8;
4170		u64 reserved_13_52 : 40;
4171		u64 eid : 5;
4172		u64 reserved_7_7 : 1;
4173		u64 ipid : 7;
4174	} s;
4175	struct cvmx_pko_mem_iport_qos_s cn68xx;
4176	struct cvmx_pko_mem_iport_qos_s cn68xxp1;
4177};
4178
4179typedef union cvmx_pko_mem_iport_qos cvmx_pko_mem_iport_qos_t;
4180
4181/**
4182 * cvmx_pko_mem_iqueue_ptrs
4183 *
4184 * Notes:
4185 * Sets the queue to port mapping and the initial command buffer pointer, per queue.  Unused queues must
4186 * set BUF_PTR=0.  Each queue may map to at most one port.  No more than 32 queues may map to a port.
4187 * The set of queues that is mapped to a port must be a contiguous array of queues.  The port to which
4188 * queue QID is mapped is port IPID.  The index of queue QID in port IPID's queue list is IDX.  The last
4189 * queue in port IPID's queue array must have its TAIL bit set.
4190 * STATIC_Q marks queue QID as having static priority.  STATIC_P marks the port IPID to which QID is
4191 * mapped as having at least one queue with static priority.  If any QID that maps to IPID has static
4192 * priority, then all QID that map to IPID must have STATIC_P set.  Queues marked as static priority
4193 * must be contiguous and begin at IDX 0.  The last queue that is marked as having static priority
4194 * must have its S_TAIL bit set.
4195 * This CSR is a memory of 256 entries, and thus, the PKO_REG_READ_IDX CSR must be written before any
4196 * CSR read operations to this address can be performed.  The index to this CSR is an IQUEUE.  A read of any
4197 * entry that has not been previously written is illegal and will result in unpredictable CSR read data.
4198 */
4199union cvmx_pko_mem_iqueue_ptrs {
4200	u64 u64;
4201	struct cvmx_pko_mem_iqueue_ptrs_s {
4202		u64 s_tail : 1;
4203		u64 static_p : 1;
4204		u64 static_q : 1;
4205		u64 qos_mask : 8;
4206		u64 buf_ptr : 31;
4207		u64 tail : 1;
4208		u64 index : 5;
4209		u64 reserved_15_15 : 1;
4210		u64 ipid : 7;
4211		u64 qid : 8;
4212	} s;
4213	struct cvmx_pko_mem_iqueue_ptrs_s cn68xx;
4214	struct cvmx_pko_mem_iqueue_ptrs_s cn68xxp1;
4215};
4216
4217typedef union cvmx_pko_mem_iqueue_ptrs cvmx_pko_mem_iqueue_ptrs_t;
4218
4219/**
4220 * cvmx_pko_mem_iqueue_qos
4221 *
4222 * Notes:
4223 * Sets the QOS mask, per queue.  These QOS_MASK bits are logically and physically the same QOS_MASK
4224 * bits in PKO_MEM_IQUEUE_PTRS.  This CSR address allows the QOS_MASK bits to be written during PKO
4225 * operation without affecting any other queue state.  The port to which queue QID is mapped is port
4226 * IPID.  Note that the queue to port mapping must be the same as was previously programmed via the
4227 * PKO_MEM_IQUEUE_PTRS CSR.
4228 * This CSR is a memory of 256 entries, and thus, the PKO_REG_READ_IDX CSR must be written before any
4229 * CSR read operations to this address can be performed.  The index to this CSR is an IQUEUE.  A read of any
4230 * entry that has not been previously written is illegal and will result in unpredictable CSR read data.
4231 */
4232union cvmx_pko_mem_iqueue_qos {
4233	u64 u64;
4234	struct cvmx_pko_mem_iqueue_qos_s {
4235		u64 reserved_61_63 : 3;
4236		u64 qos_mask : 8;
4237		u64 reserved_15_52 : 38;
4238		u64 ipid : 7;
4239		u64 qid : 8;
4240	} s;
4241	struct cvmx_pko_mem_iqueue_qos_s cn68xx;
4242	struct cvmx_pko_mem_iqueue_qos_s cn68xxp1;
4243};
4244
4245typedef union cvmx_pko_mem_iqueue_qos cvmx_pko_mem_iqueue_qos_t;
4246
4247/**
4248 * cvmx_pko_mem_port_ptrs
4249 *
4250 * Notes:
4251 * Sets the port to engine mapping, per port.  Ports marked as static priority need not be contiguous,
4252 * but they must be the lowest numbered PIDs mapped to this EID and must have QOS_MASK=0xff.  If EID==8
4253 * or EID==9, then PID[1:0] is used to direct the packet to the correct port on that interface.
4254 * EID==15 can be used for unused PKO-internal ports.
4255 * The reset configuration is the following:
4256 *   PID EID(ext port) BP_PORT QOS_MASK STATIC_P
4257 *   -------------------------------------------
4258 *     0   0( 0)             0     0xff        0
4259 *     1   1( 1)             1     0xff        0
4260 *     2   2( 2)             2     0xff        0
4261 *     3   3( 3)             3     0xff        0
4262 *     4   0( 0)             4     0xff        0
4263 *     5   1( 1)             5     0xff        0
4264 *     6   2( 2)             6     0xff        0
4265 *     7   3( 3)             7     0xff        0
4266 *     8   0( 0)             8     0xff        0
4267 *     9   1( 1)             9     0xff        0
4268 *    10   2( 2)            10     0xff        0
4269 *    11   3( 3)            11     0xff        0
4270 *    12   0( 0)            12     0xff        0
4271 *    13   1( 1)            13     0xff        0
4272 *    14   2( 2)            14     0xff        0
4273 *    15   3( 3)            15     0xff        0
4274 *   -------------------------------------------
4275 *    16   4(16)            16     0xff        0
4276 *    17   5(17)            17     0xff        0
4277 *    18   6(18)            18     0xff        0
4278 *    19   7(19)            19     0xff        0
4279 *    20   4(16)            20     0xff        0
4280 *    21   5(17)            21     0xff        0
4281 *    22   6(18)            22     0xff        0
4282 *    23   7(19)            23     0xff        0
4283 *    24   4(16)            24     0xff        0
4284 *    25   5(17)            25     0xff        0
4285 *    26   6(18)            26     0xff        0
4286 *    27   7(19)            27     0xff        0
4287 *    28   4(16)            28     0xff        0
4288 *    29   5(17)            29     0xff        0
4289 *    30   6(18)            30     0xff        0
4290 *    31   7(19)            31     0xff        0
4291 *   -------------------------------------------
4292 *    32   8(32)            32     0xff        0
4293 *    33   8(33)            33     0xff        0
4294 *    34   8(34)            34     0xff        0
4295 *    35   8(35)            35     0xff        0
4296 *   -------------------------------------------
4297 *    36   9(36)            36     0xff        0
4298 *    37   9(37)            37     0xff        0
4299 *    38   9(38)            38     0xff        0
4300 *    39   9(39)            39     0xff        0
4301 *
4302 * This CSR is a memory of 48 entries, and thus, the PKO_REG_READ_IDX CSR must be written before any
4303 * CSR read operations to this address can be performed.  A read of any entry that has not been
4304 * previously written is illegal and will result in unpredictable CSR read data.
4305 */
4306union cvmx_pko_mem_port_ptrs {
4307	u64 u64;
4308	struct cvmx_pko_mem_port_ptrs_s {
4309		u64 reserved_62_63 : 2;
4310		u64 static_p : 1;
4311		u64 qos_mask : 8;
4312		u64 reserved_16_52 : 37;
4313		u64 bp_port : 6;
4314		u64 eid : 4;
4315		u64 pid : 6;
4316	} s;
4317	struct cvmx_pko_mem_port_ptrs_s cn52xx;
4318	struct cvmx_pko_mem_port_ptrs_s cn52xxp1;
4319	struct cvmx_pko_mem_port_ptrs_s cn56xx;
4320	struct cvmx_pko_mem_port_ptrs_s cn56xxp1;
4321	struct cvmx_pko_mem_port_ptrs_s cn61xx;
4322	struct cvmx_pko_mem_port_ptrs_s cn63xx;
4323	struct cvmx_pko_mem_port_ptrs_s cn63xxp1;
4324	struct cvmx_pko_mem_port_ptrs_s cn66xx;
4325	struct cvmx_pko_mem_port_ptrs_s cn70xx;
4326	struct cvmx_pko_mem_port_ptrs_s cn70xxp1;
4327	struct cvmx_pko_mem_port_ptrs_s cnf71xx;
4328};
4329
4330typedef union cvmx_pko_mem_port_ptrs cvmx_pko_mem_port_ptrs_t;
4331
4332/**
4333 * cvmx_pko_mem_port_qos
4334 *
4335 * Notes:
4336 * Sets the QOS mask, per port.  These QOS_MASK bits are logically and physically the same QOS_MASK
4337 * bits in PKO_MEM_PORT_PTRS.  This CSR address allows the QOS_MASK bits to be written during PKO
4338 * operation without affecting any other port state.  The engine to which port PID is mapped is engine
4339 * EID.  Note that the port to engine mapping must be the same as was previously programmed via the
4340 * PKO_MEM_PORT_PTRS CSR.
4341 * This CSR is a memory of 44 entries, and thus, the PKO_REG_READ_IDX CSR must be written before any
4342 * CSR read operations to this address can be performed.  A read of any entry that has not been
4343 * previously written is illegal and will result in unpredictable CSR read data.
4344 */
4345union cvmx_pko_mem_port_qos {
4346	u64 u64;
4347	struct cvmx_pko_mem_port_qos_s {
4348		u64 reserved_61_63 : 3;
4349		u64 qos_mask : 8;
4350		u64 reserved_10_52 : 43;
4351		u64 eid : 4;
4352		u64 pid : 6;
4353	} s;
4354	struct cvmx_pko_mem_port_qos_s cn52xx;
4355	struct cvmx_pko_mem_port_qos_s cn52xxp1;
4356	struct cvmx_pko_mem_port_qos_s cn56xx;
4357	struct cvmx_pko_mem_port_qos_s cn56xxp1;
4358	struct cvmx_pko_mem_port_qos_s cn61xx;
4359	struct cvmx_pko_mem_port_qos_s cn63xx;
4360	struct cvmx_pko_mem_port_qos_s cn63xxp1;
4361	struct cvmx_pko_mem_port_qos_s cn66xx;
4362	struct cvmx_pko_mem_port_qos_s cn70xx;
4363	struct cvmx_pko_mem_port_qos_s cn70xxp1;
4364	struct cvmx_pko_mem_port_qos_s cnf71xx;
4365};
4366
4367typedef union cvmx_pko_mem_port_qos cvmx_pko_mem_port_qos_t;
4368
4369/**
4370 * cvmx_pko_mem_port_rate0
4371 *
4372 * Notes:
4373 * This CSR is a memory of 44 entries, and thus, the PKO_REG_READ_IDX CSR must be written before any
4374 * CSR read operations to this address can be performed.  A read of any entry that has not been
4375 * previously written is illegal and will result in unpredictable CSR read data.
4376 */
4377union cvmx_pko_mem_port_rate0 {
4378	u64 u64;
4379	struct cvmx_pko_mem_port_rate0_s {
4380		u64 reserved_51_63 : 13;
4381		u64 rate_word : 19;
4382		u64 rate_pkt : 24;
4383		u64 reserved_7_7 : 1;
4384		u64 pid : 7;
4385	} s;
4386	struct cvmx_pko_mem_port_rate0_cn52xx {
4387		u64 reserved_51_63 : 13;
4388		u64 rate_word : 19;
4389		u64 rate_pkt : 24;
4390		u64 reserved_6_7 : 2;
4391		u64 pid : 6;
4392	} cn52xx;
4393	struct cvmx_pko_mem_port_rate0_cn52xx cn52xxp1;
4394	struct cvmx_pko_mem_port_rate0_cn52xx cn56xx;
4395	struct cvmx_pko_mem_port_rate0_cn52xx cn56xxp1;
4396	struct cvmx_pko_mem_port_rate0_cn52xx cn61xx;
4397	struct cvmx_pko_mem_port_rate0_cn52xx cn63xx;
4398	struct cvmx_pko_mem_port_rate0_cn52xx cn63xxp1;
4399	struct cvmx_pko_mem_port_rate0_cn52xx cn66xx;
4400	struct cvmx_pko_mem_port_rate0_s cn68xx;
4401	struct cvmx_pko_mem_port_rate0_s cn68xxp1;
4402	struct cvmx_pko_mem_port_rate0_cn52xx cn70xx;
4403	struct cvmx_pko_mem_port_rate0_cn52xx cn70xxp1;
4404	struct cvmx_pko_mem_port_rate0_cn52xx cnf71xx;
4405};
4406
4407typedef union cvmx_pko_mem_port_rate0 cvmx_pko_mem_port_rate0_t;
4408
4409/**
4410 * cvmx_pko_mem_port_rate1
4411 *
4412 * Notes:
4413 * Writing PKO_MEM_PORT_RATE1[PID,RATE_LIM] has the side effect of setting the corresponding
4414 * accumulator to zero.
4415 * This CSR is a memory of 44 entries, and thus, the PKO_REG_READ_IDX CSR must be written before any
4416 * CSR read operations to this address can be performed.  A read of any entry that has not been
4417 * previously written is illegal and will result in unpredictable CSR read data.
4418 */
4419union cvmx_pko_mem_port_rate1 {
4420	u64 u64;
4421	struct cvmx_pko_mem_port_rate1_s {
4422		u64 reserved_32_63 : 32;
4423		u64 rate_lim : 24;
4424		u64 reserved_7_7 : 1;
4425		u64 pid : 7;
4426	} s;
4427	struct cvmx_pko_mem_port_rate1_cn52xx {
4428		u64 reserved_32_63 : 32;
4429		u64 rate_lim : 24;
4430		u64 reserved_6_7 : 2;
4431		u64 pid : 6;
4432	} cn52xx;
4433	struct cvmx_pko_mem_port_rate1_cn52xx cn52xxp1;
4434	struct cvmx_pko_mem_port_rate1_cn52xx cn56xx;
4435	struct cvmx_pko_mem_port_rate1_cn52xx cn56xxp1;
4436	struct cvmx_pko_mem_port_rate1_cn52xx cn61xx;
4437	struct cvmx_pko_mem_port_rate1_cn52xx cn63xx;
4438	struct cvmx_pko_mem_port_rate1_cn52xx cn63xxp1;
4439	struct cvmx_pko_mem_port_rate1_cn52xx cn66xx;
4440	struct cvmx_pko_mem_port_rate1_s cn68xx;
4441	struct cvmx_pko_mem_port_rate1_s cn68xxp1;
4442	struct cvmx_pko_mem_port_rate1_cn52xx cn70xx;
4443	struct cvmx_pko_mem_port_rate1_cn52xx cn70xxp1;
4444	struct cvmx_pko_mem_port_rate1_cn52xx cnf71xx;
4445};
4446
4447typedef union cvmx_pko_mem_port_rate1 cvmx_pko_mem_port_rate1_t;
4448
4449/**
4450 * cvmx_pko_mem_queue_ptrs
4451 *
4452 * Notes:
4453 * Sets the queue to port mapping and the initial command buffer pointer, per queue
4454 * Each queue may map to at most one port.  No more than 16 queues may map to a port.  The set of
4455 * queues that is mapped to a port must be a contiguous array of queues.  The port to which queue QID
4456 * is mapped is port PID.  The index of queue QID in port PID's queue list is IDX.  The last queue in
4457 * port PID's queue array must have its TAIL bit set.  Unused queues must be mapped to port 63.
4458 * STATIC_Q marks queue QID as having static priority.  STATIC_P marks the port PID to which QID is
4459 * mapped as having at least one queue with static priority.  If any QID that maps to PID has static
4460 * priority, then all QID that map to PID must have STATIC_P set.  Queues marked as static priority
4461 * must be contiguous and begin at IDX 0.  The last queue that is marked as having static priority
4462 * must have its S_TAIL bit set.
4463 * This CSR is a memory of 256 entries, and thus, the PKO_REG_READ_IDX CSR must be written before any
4464 * CSR read operations to this address can be performed.  A read of any entry that has not been
4465 * previously written is illegal and will result in unpredictable CSR read data.
4466 */
4467union cvmx_pko_mem_queue_ptrs {
4468	u64 u64;
4469	struct cvmx_pko_mem_queue_ptrs_s {
4470		u64 s_tail : 1;
4471		u64 static_p : 1;
4472		u64 static_q : 1;
4473		u64 qos_mask : 8;
4474		u64 buf_ptr : 36;
4475		u64 tail : 1;
4476		u64 index : 3;
4477		u64 port : 6;
4478		u64 queue : 7;
4479	} s;
4480	struct cvmx_pko_mem_queue_ptrs_s cn30xx;
4481	struct cvmx_pko_mem_queue_ptrs_s cn31xx;
4482	struct cvmx_pko_mem_queue_ptrs_s cn38xx;
4483	struct cvmx_pko_mem_queue_ptrs_s cn38xxp2;
4484	struct cvmx_pko_mem_queue_ptrs_s cn50xx;
4485	struct cvmx_pko_mem_queue_ptrs_s cn52xx;
4486	struct cvmx_pko_mem_queue_ptrs_s cn52xxp1;
4487	struct cvmx_pko_mem_queue_ptrs_s cn56xx;
4488	struct cvmx_pko_mem_queue_ptrs_s cn56xxp1;
4489	struct cvmx_pko_mem_queue_ptrs_s cn58xx;
4490	struct cvmx_pko_mem_queue_ptrs_s cn58xxp1;
4491	struct cvmx_pko_mem_queue_ptrs_s cn61xx;
4492	struct cvmx_pko_mem_queue_ptrs_s cn63xx;
4493	struct cvmx_pko_mem_queue_ptrs_s cn63xxp1;
4494	struct cvmx_pko_mem_queue_ptrs_s cn66xx;
4495	struct cvmx_pko_mem_queue_ptrs_s cn70xx;
4496	struct cvmx_pko_mem_queue_ptrs_s cn70xxp1;
4497	struct cvmx_pko_mem_queue_ptrs_s cnf71xx;
4498};
4499
4500typedef union cvmx_pko_mem_queue_ptrs cvmx_pko_mem_queue_ptrs_t;
4501
4502/**
4503 * cvmx_pko_mem_queue_qos
4504 *
4505 * Notes:
4506 * Sets the QOS mask, per queue.  These QOS_MASK bits are logically and physically the same QOS_MASK
4507 * bits in PKO_MEM_QUEUE_PTRS.  This CSR address allows the QOS_MASK bits to be written during PKO
4508 * operation without affecting any other queue state.  The port to which queue QID is mapped is port
4509 * PID.  Note that the queue to port mapping must be the same as was previously programmed via the
4510 * PKO_MEM_QUEUE_PTRS CSR.
4511 * This CSR is a memory of 256 entries, and thus, the PKO_REG_READ_IDX CSR must be written before any
4512 * CSR read operations to this address can be performed.  A read of any entry that has not been
4513 * previously written is illegal and will result in unpredictable CSR read data.
4514 */
4515union cvmx_pko_mem_queue_qos {
4516	u64 u64;
4517	struct cvmx_pko_mem_queue_qos_s {
4518		u64 reserved_61_63 : 3;
4519		u64 qos_mask : 8;
4520		u64 reserved_13_52 : 40;
4521		u64 pid : 6;
4522		u64 qid : 7;
4523	} s;
4524	struct cvmx_pko_mem_queue_qos_s cn30xx;
4525	struct cvmx_pko_mem_queue_qos_s cn31xx;
4526	struct cvmx_pko_mem_queue_qos_s cn38xx;
4527	struct cvmx_pko_mem_queue_qos_s cn38xxp2;
4528	struct cvmx_pko_mem_queue_qos_s cn50xx;
4529	struct cvmx_pko_mem_queue_qos_s cn52xx;
4530	struct cvmx_pko_mem_queue_qos_s cn52xxp1;
4531	struct cvmx_pko_mem_queue_qos_s cn56xx;
4532	struct cvmx_pko_mem_queue_qos_s cn56xxp1;
4533	struct cvmx_pko_mem_queue_qos_s cn58xx;
4534	struct cvmx_pko_mem_queue_qos_s cn58xxp1;
4535	struct cvmx_pko_mem_queue_qos_s cn61xx;
4536	struct cvmx_pko_mem_queue_qos_s cn63xx;
4537	struct cvmx_pko_mem_queue_qos_s cn63xxp1;
4538	struct cvmx_pko_mem_queue_qos_s cn66xx;
4539	struct cvmx_pko_mem_queue_qos_s cn70xx;
4540	struct cvmx_pko_mem_queue_qos_s cn70xxp1;
4541	struct cvmx_pko_mem_queue_qos_s cnf71xx;
4542};
4543
4544typedef union cvmx_pko_mem_queue_qos cvmx_pko_mem_queue_qos_t;
4545
4546/**
4547 * cvmx_pko_mem_throttle_int
4548 *
4549 * Notes:
4550 * Writing PACKET and WORD with 0 resets both counts for INT to 0 rather than add 0.
4551 * Otherwise, writes to this CSR add to the existing WORD/PACKET counts for the interface INT.
4552 *
4553 * PKO tracks the number of (8-byte) WORD's and PACKET's in-flight (sum total in both PKO
4554 * and the interface MAC) on the interface. (When PKO first selects a packet from a PKO queue, it
4555 * increments the counts appropriately. When the interface MAC has (largely) completed sending
4556 * the words/packet, PKO decrements the count appropriately.) When PKO_REG_FLAGS[ENA_THROTTLE]
4557 * is set and the most-significant bit of the WORD or packet count for a interface is set,
4558 * PKO will not transfer any packets over the interface. Software can limit the amount of
4559 * packet data and/or the number of packets that OCTEON can send out the chip after receiving backpressure
4560 * from the interface/pipe via these per-pipe throttle counts when PKO_REG_FLAGS[ENA_THROTTLE]=1.
4561 * For example, to limit the number of packets outstanding in the interface to N, preset PACKET for
4562 * the pipe to the value 0x20-N (0x20 is the smallest PACKET value with the most-significant bit set).
4563 *
4564 * This CSR is a memory of 32 entries, and thus, the PKO_REG_READ_IDX CSR must be written before any
4565 * CSR read operations to this address can be performed.  The index to this CSR is an INTERFACE.  A read of any
4566 * entry that has not been previously written is illegal and will result in unpredictable CSR read data.
4567 */
4568union cvmx_pko_mem_throttle_int {
4569	u64 u64;
4570	struct cvmx_pko_mem_throttle_int_s {
4571		u64 reserved_47_63 : 17;
4572		u64 word : 15;
4573		u64 reserved_14_31 : 18;
4574		u64 packet : 6;
4575		u64 reserved_5_7 : 3;
4576		u64 intr : 5;
4577	} s;
4578	struct cvmx_pko_mem_throttle_int_s cn68xx;
4579	struct cvmx_pko_mem_throttle_int_s cn68xxp1;
4580};
4581
4582typedef union cvmx_pko_mem_throttle_int cvmx_pko_mem_throttle_int_t;
4583
4584/**
4585 * cvmx_pko_mem_throttle_pipe
4586 *
4587 * Notes:
4588 * Writing PACKET and WORD with 0 resets both counts for PIPE to 0 rather than add 0.
4589 * Otherwise, writes to this CSR add to the existing WORD/PACKET counts for the PKO pipe PIPE.
4590 *
4591 * PKO tracks the number of (8-byte) WORD's and PACKET's in-flight (sum total in both PKO
4592 * and the interface MAC) on the pipe. (When PKO first selects a packet from a PKO queue, it
4593 * increments the counts appropriately. When the interface MAC has (largely) completed sending
4594 * the words/packet, PKO decrements the count appropriately.) When PKO_REG_FLAGS[ENA_THROTTLE]
4595 * is set and the most-significant bit of the WORD or packet count for a PKO pipe is set,
4596 * PKO will not transfer any packets over the PKO pipe. Software can limit the amount of
4597 * packet data and/or the number of packets that OCTEON can send out the chip after receiving backpressure
4598 * from the interface/pipe via these per-pipe throttle counts when PKO_REG_FLAGS[ENA_THROTTLE]=1.
4599 * For example, to limit the number of packets outstanding in the pipe to N, preset PACKET for
4600 * the pipe to the value 0x20-N (0x20 is the smallest PACKET value with the most-significant bit set).
4601 *
4602 * This CSR is a memory of 128 entries, and thus, the PKO_REG_READ_IDX CSR must be written before any
4603 * CSR read operations to this address can be performed.  The index to this CSR is a PIPE.  A read of any
4604 * entry that has not been previously written is illegal and will result in unpredictable CSR read data.
4605 */
4606union cvmx_pko_mem_throttle_pipe {
4607	u64 u64;
4608	struct cvmx_pko_mem_throttle_pipe_s {
4609		u64 reserved_47_63 : 17;
4610		u64 word : 15;
4611		u64 reserved_14_31 : 18;
4612		u64 packet : 6;
4613		u64 reserved_7_7 : 1;
4614		u64 pipe : 7;
4615	} s;
4616	struct cvmx_pko_mem_throttle_pipe_s cn68xx;
4617	struct cvmx_pko_mem_throttle_pipe_s cn68xxp1;
4618};
4619
4620typedef union cvmx_pko_mem_throttle_pipe cvmx_pko_mem_throttle_pipe_t;
4621
4622/**
4623 * cvmx_pko_ncb_bist_status
4624 *
4625 * Each bit is the BIST result of an individual memory (per bit, 0 = pass and 1 = fail).
4626 *
4627 */
4628union cvmx_pko_ncb_bist_status {
4629	u64 u64;
4630	struct cvmx_pko_ncb_bist_status_s {
4631		u64 ncbi_l2_out_ram_bist_status : 1;
4632		u64 ncbi_pp_out_ram_bist_status : 1;
4633		u64 ncbo_pdm_cmd_dat_ram_bist_status : 1;
4634		u64 ncbi_l2_pdm_pref_ram_bist_status : 1;
4635		u64 ncbo_pp_fif_ram_bist_status : 1;
4636		u64 ncbo_skid_fif_ram_bist_status : 1;
4637		u64 reserved_0_57 : 58;
4638	} s;
4639	struct cvmx_pko_ncb_bist_status_s cn73xx;
4640	struct cvmx_pko_ncb_bist_status_s cn78xx;
4641	struct cvmx_pko_ncb_bist_status_s cn78xxp1;
4642	struct cvmx_pko_ncb_bist_status_s cnf75xx;
4643};
4644
4645typedef union cvmx_pko_ncb_bist_status cvmx_pko_ncb_bist_status_t;
4646
4647/**
4648 * cvmx_pko_ncb_ecc_ctl0
4649 */
4650union cvmx_pko_ncb_ecc_ctl0 {
4651	u64 u64;
4652	struct cvmx_pko_ncb_ecc_ctl0_s {
4653		u64 ncbi_l2_out_ram_flip : 2;
4654		u64 ncbi_l2_out_ram_cdis : 1;
4655		u64 ncbi_pp_out_ram_flip : 2;
4656		u64 ncbi_pp_out_ram_cdis : 1;
4657		u64 ncbo_pdm_cmd_dat_ram_flip : 2;
4658		u64 ncbo_pdm_cmd_dat_ram_cdis : 1;
4659		u64 ncbi_l2_pdm_pref_ram_flip : 2;
4660		u64 ncbi_l2_pdm_pref_ram_cdis : 1;
4661		u64 ncbo_pp_fif_ram_flip : 2;
4662		u64 ncbo_pp_fif_ram_cdis : 1;
4663		u64 ncbo_skid_fif_ram_flip : 2;
4664		u64 ncbo_skid_fif_ram_cdis : 1;
4665		u64 reserved_0_45 : 46;
4666	} s;
4667	struct cvmx_pko_ncb_ecc_ctl0_s cn73xx;
4668	struct cvmx_pko_ncb_ecc_ctl0_s cn78xx;
4669	struct cvmx_pko_ncb_ecc_ctl0_s cn78xxp1;
4670	struct cvmx_pko_ncb_ecc_ctl0_s cnf75xx;
4671};
4672
4673typedef union cvmx_pko_ncb_ecc_ctl0 cvmx_pko_ncb_ecc_ctl0_t;
4674
4675/**
4676 * cvmx_pko_ncb_ecc_dbe_sts0
4677 */
4678union cvmx_pko_ncb_ecc_dbe_sts0 {
4679	u64 u64;
4680	struct cvmx_pko_ncb_ecc_dbe_sts0_s {
4681		u64 ncbi_l2_out_ram_dbe : 1;
4682		u64 ncbi_pp_out_ram_dbe : 1;
4683		u64 ncbo_pdm_cmd_dat_ram_dbe : 1;
4684		u64 ncbi_l2_pdm_pref_ram_dbe : 1;
4685		u64 ncbo_pp_fif_ram_dbe : 1;
4686		u64 ncbo_skid_fif_ram_dbe : 1;
4687		u64 reserved_0_57 : 58;
4688	} s;
4689	struct cvmx_pko_ncb_ecc_dbe_sts0_s cn73xx;
4690	struct cvmx_pko_ncb_ecc_dbe_sts0_s cn78xx;
4691	struct cvmx_pko_ncb_ecc_dbe_sts0_s cn78xxp1;
4692	struct cvmx_pko_ncb_ecc_dbe_sts0_s cnf75xx;
4693};
4694
4695typedef union cvmx_pko_ncb_ecc_dbe_sts0 cvmx_pko_ncb_ecc_dbe_sts0_t;
4696
4697/**
4698 * cvmx_pko_ncb_ecc_dbe_sts_cmb0
4699 */
4700union cvmx_pko_ncb_ecc_dbe_sts_cmb0 {
4701	u64 u64;
4702	struct cvmx_pko_ncb_ecc_dbe_sts_cmb0_s {
4703		u64 ncb_dbe_cmb0 : 1;
4704		u64 reserved_0_62 : 63;
4705	} s;
4706	struct cvmx_pko_ncb_ecc_dbe_sts_cmb0_s cn73xx;
4707	struct cvmx_pko_ncb_ecc_dbe_sts_cmb0_s cn78xx;
4708	struct cvmx_pko_ncb_ecc_dbe_sts_cmb0_s cn78xxp1;
4709	struct cvmx_pko_ncb_ecc_dbe_sts_cmb0_s cnf75xx;
4710};
4711
4712typedef union cvmx_pko_ncb_ecc_dbe_sts_cmb0 cvmx_pko_ncb_ecc_dbe_sts_cmb0_t;
4713
4714/**
4715 * cvmx_pko_ncb_ecc_sbe_sts0
4716 */
4717union cvmx_pko_ncb_ecc_sbe_sts0 {
4718	u64 u64;
4719	struct cvmx_pko_ncb_ecc_sbe_sts0_s {
4720		u64 ncbi_l2_out_ram_sbe : 1;
4721		u64 ncbi_pp_out_ram_sbe : 1;
4722		u64 ncbo_pdm_cmd_dat_ram_sbe : 1;
4723		u64 ncbi_l2_pdm_pref_ram_sbe : 1;
4724		u64 ncbo_pp_fif_ram_sbe : 1;
4725		u64 ncbo_skid_fif_ram_sbe : 1;
4726		u64 reserved_0_57 : 58;
4727	} s;
4728	struct cvmx_pko_ncb_ecc_sbe_sts0_s cn73xx;
4729	struct cvmx_pko_ncb_ecc_sbe_sts0_s cn78xx;
4730	struct cvmx_pko_ncb_ecc_sbe_sts0_s cn78xxp1;
4731	struct cvmx_pko_ncb_ecc_sbe_sts0_s cnf75xx;
4732};
4733
4734typedef union cvmx_pko_ncb_ecc_sbe_sts0 cvmx_pko_ncb_ecc_sbe_sts0_t;
4735
4736/**
4737 * cvmx_pko_ncb_ecc_sbe_sts_cmb0
4738 */
4739union cvmx_pko_ncb_ecc_sbe_sts_cmb0 {
4740	u64 u64;
4741	struct cvmx_pko_ncb_ecc_sbe_sts_cmb0_s {
4742		u64 ncb_sbe_cmb0 : 1;
4743		u64 reserved_0_62 : 63;
4744	} s;
4745	struct cvmx_pko_ncb_ecc_sbe_sts_cmb0_s cn73xx;
4746	struct cvmx_pko_ncb_ecc_sbe_sts_cmb0_s cn78xx;
4747	struct cvmx_pko_ncb_ecc_sbe_sts_cmb0_s cn78xxp1;
4748	struct cvmx_pko_ncb_ecc_sbe_sts_cmb0_s cnf75xx;
4749};
4750
4751typedef union cvmx_pko_ncb_ecc_sbe_sts_cmb0 cvmx_pko_ncb_ecc_sbe_sts_cmb0_t;
4752
4753/**
4754 * cvmx_pko_ncb_int
4755 */
4756union cvmx_pko_ncb_int {
4757	u64 u64;
4758	struct cvmx_pko_ncb_int_s {
4759		u64 reserved_2_63 : 62;
4760		u64 tso_segment_cnt : 1;
4761		u64 ncb_tx_error : 1;
4762	} s;
4763	struct cvmx_pko_ncb_int_s cn73xx;
4764	struct cvmx_pko_ncb_int_s cn78xx;
4765	struct cvmx_pko_ncb_int_s cn78xxp1;
4766	struct cvmx_pko_ncb_int_s cnf75xx;
4767};
4768
4769typedef union cvmx_pko_ncb_int cvmx_pko_ncb_int_t;
4770
4771/**
4772 * cvmx_pko_ncb_tx_err_info
4773 */
4774union cvmx_pko_ncb_tx_err_info {
4775	u64 u64;
4776	struct cvmx_pko_ncb_tx_err_info_s {
4777		u64 reserved_32_63 : 32;
4778		u64 wcnt : 5;
4779		u64 src : 12;
4780		u64 dst : 8;
4781		u64 tag : 4;
4782		u64 eot : 1;
4783		u64 sot : 1;
4784		u64 valid : 1;
4785	} s;
4786	struct cvmx_pko_ncb_tx_err_info_s cn73xx;
4787	struct cvmx_pko_ncb_tx_err_info_s cn78xx;
4788	struct cvmx_pko_ncb_tx_err_info_s cn78xxp1;
4789	struct cvmx_pko_ncb_tx_err_info_s cnf75xx;
4790};
4791
4792typedef union cvmx_pko_ncb_tx_err_info cvmx_pko_ncb_tx_err_info_t;
4793
4794/**
4795 * cvmx_pko_ncb_tx_err_word
4796 */
4797union cvmx_pko_ncb_tx_err_word {
4798	u64 u64;
4799	struct cvmx_pko_ncb_tx_err_word_s {
4800		u64 err_word : 64;
4801	} s;
4802	struct cvmx_pko_ncb_tx_err_word_s cn73xx;
4803	struct cvmx_pko_ncb_tx_err_word_s cn78xx;
4804	struct cvmx_pko_ncb_tx_err_word_s cn78xxp1;
4805	struct cvmx_pko_ncb_tx_err_word_s cnf75xx;
4806};
4807
4808typedef union cvmx_pko_ncb_tx_err_word cvmx_pko_ncb_tx_err_word_t;
4809
4810/**
4811 * cvmx_pko_pdm_bist_status
4812 *
4813 * Each bit is the BIST result of an individual memory (per bit, 0 = pass and 1 = fail).
4814 *
4815 */
4816union cvmx_pko_pdm_bist_status {
4817	u64 u64;
4818	struct cvmx_pko_pdm_bist_status_s {
4819		u64 flshb_cache_lo_ram_bist_status : 1;
4820		u64 flshb_cache_hi_ram_bist_status : 1;
4821		u64 isrm_ca_iinst_ram_bist_status : 1;
4822		u64 isrm_ca_cm_ram_bist_status : 1;
4823		u64 isrm_st_ram2_bist_status : 1;
4824		u64 isrm_st_ram1_bist_status : 1;
4825		u64 isrm_st_ram0_bist_status : 1;
4826		u64 isrd_st_ram3_bist_status : 1;
4827		u64 isrd_st_ram2_bist_status : 1;
4828		u64 isrd_st_ram1_bist_status : 1;
4829		u64 isrd_st_ram0_bist_status : 1;
4830		u64 drp_hi_ram_bist_status : 1;
4831		u64 drp_lo_ram_bist_status : 1;
4832		u64 dwp_hi_ram_bist_status : 1;
4833		u64 dwp_lo_ram_bist_status : 1;
4834		u64 mwp_hi_ram_bist_status : 1;
4835		u64 mwp_lo_ram_bist_status : 1;
4836		u64 fillb_m_rsp_ram_hi_bist_status : 1;
4837		u64 fillb_m_rsp_ram_lo_bist_status : 1;
4838		u64 fillb_d_rsp_ram_hi_bist_status : 1;
4839		u64 fillb_d_rsp_ram_lo_bist_status : 1;
4840		u64 fillb_d_rsp_dat_fifo_bist_status : 1;
4841		u64 fillb_m_rsp_dat_fifo_bist_status : 1;
4842		u64 flshb_m_dat_ram_bist_status : 1;
4843		u64 flshb_d_dat_ram_bist_status : 1;
4844		u64 minpad_ram_bist_status : 1;
4845		u64 mwp_hi_spt_ram_bist_status : 1;
4846		u64 mwp_lo_spt_ram_bist_status : 1;
4847		u64 buf_wm_ram_bist_status : 1;
4848		u64 reserved_0_34 : 35;
4849	} s;
4850	struct cvmx_pko_pdm_bist_status_s cn73xx;
4851	struct cvmx_pko_pdm_bist_status_s cn78xx;
4852	struct cvmx_pko_pdm_bist_status_s cn78xxp1;
4853	struct cvmx_pko_pdm_bist_status_s cnf75xx;
4854};
4855
4856typedef union cvmx_pko_pdm_bist_status cvmx_pko_pdm_bist_status_t;
4857
4858/**
4859 * cvmx_pko_pdm_cfg
4860 */
4861union cvmx_pko_pdm_cfg {
4862	u64 u64;
4863	struct cvmx_pko_pdm_cfg_s {
4864		u64 reserved_13_63 : 51;
4865		u64 dis_lpd_w2r_fill : 1;
4866		u64 en_fr_w2r_ptr_swp : 1;
4867		u64 dis_flsh_cache : 1;
4868		u64 pko_pad_minlen : 7;
4869		u64 diag_mode : 1;
4870		u64 alloc_lds : 1;
4871		u64 alloc_sts : 1;
4872	} s;
4873	struct cvmx_pko_pdm_cfg_s cn73xx;
4874	struct cvmx_pko_pdm_cfg_s cn78xx;
4875	struct cvmx_pko_pdm_cfg_s cn78xxp1;
4876	struct cvmx_pko_pdm_cfg_s cnf75xx;
4877};
4878
4879typedef union cvmx_pko_pdm_cfg cvmx_pko_pdm_cfg_t;
4880
4881/**
4882 * cvmx_pko_pdm_cfg_dbg
4883 */
4884union cvmx_pko_pdm_cfg_dbg {
4885	u64 u64;
4886	struct cvmx_pko_pdm_cfg_dbg_s {
4887		u64 reserved_32_63 : 32;
4888		u64 cp_stall_thrshld : 32;
4889	} s;
4890	struct cvmx_pko_pdm_cfg_dbg_s cn73xx;
4891	struct cvmx_pko_pdm_cfg_dbg_s cn78xx;
4892	struct cvmx_pko_pdm_cfg_dbg_s cn78xxp1;
4893	struct cvmx_pko_pdm_cfg_dbg_s cnf75xx;
4894};
4895
4896typedef union cvmx_pko_pdm_cfg_dbg cvmx_pko_pdm_cfg_dbg_t;
4897
4898/**
4899 * cvmx_pko_pdm_cp_dbg
4900 */
4901union cvmx_pko_pdm_cp_dbg {
4902	u64 u64;
4903	struct cvmx_pko_pdm_cp_dbg_s {
4904		u64 reserved_16_63 : 48;
4905		u64 stateless_fif_cnt : 6;
4906		u64 reserved_5_9 : 5;
4907		u64 op_fif_not_full : 5;
4908	} s;
4909	struct cvmx_pko_pdm_cp_dbg_s cn73xx;
4910	struct cvmx_pko_pdm_cp_dbg_s cn78xx;
4911	struct cvmx_pko_pdm_cp_dbg_s cn78xxp1;
4912	struct cvmx_pko_pdm_cp_dbg_s cnf75xx;
4913};
4914
4915typedef union cvmx_pko_pdm_cp_dbg cvmx_pko_pdm_cp_dbg_t;
4916
4917/**
4918 * cvmx_pko_pdm_dq#_minpad
4919 */
4920union cvmx_pko_pdm_dqx_minpad {
4921	u64 u64;
4922	struct cvmx_pko_pdm_dqx_minpad_s {
4923		u64 reserved_1_63 : 63;
4924		u64 minpad : 1;
4925	} s;
4926	struct cvmx_pko_pdm_dqx_minpad_s cn73xx;
4927	struct cvmx_pko_pdm_dqx_minpad_s cn78xx;
4928	struct cvmx_pko_pdm_dqx_minpad_s cn78xxp1;
4929	struct cvmx_pko_pdm_dqx_minpad_s cnf75xx;
4930};
4931
4932typedef union cvmx_pko_pdm_dqx_minpad cvmx_pko_pdm_dqx_minpad_t;
4933
4934/**
4935 * cvmx_pko_pdm_drpbuf_dbg
4936 */
4937union cvmx_pko_pdm_drpbuf_dbg {
4938	u64 u64;
4939	struct cvmx_pko_pdm_drpbuf_dbg_s {
4940		u64 reserved_43_63 : 21;
4941		u64 sel_nxt_ptr : 1;
4942		u64 load_val : 1;
4943		u64 rdy : 1;
4944		u64 cur_state : 3;
4945		u64 reserved_33_36 : 4;
4946		u64 track_rd_cnt : 6;
4947		u64 track_wr_cnt : 6;
4948		u64 reserved_17_20 : 4;
4949		u64 mem_addr : 13;
4950		u64 mem_en : 4;
4951	} s;
4952	struct cvmx_pko_pdm_drpbuf_dbg_s cn73xx;
4953	struct cvmx_pko_pdm_drpbuf_dbg_s cn78xx;
4954	struct cvmx_pko_pdm_drpbuf_dbg_s cn78xxp1;
4955	struct cvmx_pko_pdm_drpbuf_dbg_s cnf75xx;
4956};
4957
4958typedef union cvmx_pko_pdm_drpbuf_dbg cvmx_pko_pdm_drpbuf_dbg_t;
4959
4960/**
4961 * cvmx_pko_pdm_dwpbuf_dbg
4962 */
4963union cvmx_pko_pdm_dwpbuf_dbg {
4964	u64 u64;
4965	struct cvmx_pko_pdm_dwpbuf_dbg_s {
4966		u64 reserved_48_63 : 16;
4967		u64 cmd_proc : 1;
4968		u64 reserved_46_46 : 1;
4969		u64 mem_data_val : 1;
4970		u64 insert_np : 1;
4971		u64 reserved_43_43 : 1;
4972		u64 sel_nxt_ptr : 1;
4973		u64 load_val : 1;
4974		u64 rdy : 1;
4975		u64 cur_state : 3;
4976		u64 mem_rdy : 1;
4977		u64 reserved_33_35 : 3;
4978		u64 track_rd_cnt : 6;
4979		u64 track_wr_cnt : 6;
4980		u64 reserved_19_20 : 2;
4981		u64 insert_dp : 2;
4982		u64 mem_addr : 13;
4983		u64 mem_en : 4;
4984	} s;
4985	struct cvmx_pko_pdm_dwpbuf_dbg_cn73xx {
4986		u64 reserved_48_63 : 16;
4987		u64 cmd_proc : 1;
4988		u64 reserved_46_46 : 1;
4989		u64 mem_data_val : 1;
4990		u64 insert_np : 1;
4991		u64 reserved_43_43 : 1;
4992		u64 sel_nxt_ptr : 1;
4993		u64 load_val : 1;
4994		u64 rdy : 1;
4995		u64 reserved_37_39 : 3;
4996		u64 mem_rdy : 1;
4997		u64 reserved_19_35 : 17;
4998		u64 insert_dp : 2;
4999		u64 reserved_15_16 : 2;
5000		u64 mem_addr : 11;
5001		u64 mem_en : 4;
5002	} cn73xx;
5003	struct cvmx_pko_pdm_dwpbuf_dbg_s cn78xx;
5004	struct cvmx_pko_pdm_dwpbuf_dbg_s cn78xxp1;
5005	struct cvmx_pko_pdm_dwpbuf_dbg_cn73xx cnf75xx;
5006};
5007
5008typedef union cvmx_pko_pdm_dwpbuf_dbg cvmx_pko_pdm_dwpbuf_dbg_t;
5009
5010/**
5011 * cvmx_pko_pdm_ecc_ctl0
5012 */
5013union cvmx_pko_pdm_ecc_ctl0 {
5014	u64 u64;
5015	struct cvmx_pko_pdm_ecc_ctl0_s {
5016		u64 flshb_cache_lo_ram_flip : 2;
5017		u64 flshb_cache_lo_ram_cdis : 1;
5018		u64 flshb_cache_hi_ram_flip : 2;
5019		u64 flshb_cache_hi_ram_cdis : 1;
5020		u64 isrm_ca_iinst_ram_flip : 2;
5021		u64 isrm_ca_iinst_ram_cdis : 1;
5022		u64 isrm_ca_cm_ram_flip : 2;
5023		u64 isrm_ca_cm_ram_cdis : 1;
5024		u64 isrm_st_ram2_flip : 2;
5025		u64 isrm_st_ram2_cdis : 1;
5026		u64 isrm_st_ram1_flip : 2;
5027		u64 isrm_st_ram1_cdis : 1;
5028		u64 isrm_st_ram0_flip : 2;
5029		u64 isrm_st_ram0_cdis : 1;
5030		u64 isrd_st_ram3_flip : 2;
5031		u64 isrd_st_ram3_cdis : 1;
5032		u64 isrd_st_ram2_flip : 2;
5033		u64 isrd_st_ram2_cdis : 1;
5034		u64 isrd_st_ram1_flip : 2;
5035		u64 isrd_st_ram1_cdis : 1;
5036		u64 isrd_st_ram0_flip : 2;
5037		u64 isrd_st_ram0_cdis : 1;
5038		u64 drp_hi_ram_flip : 2;
5039		u64 drp_hi_ram_cdis : 1;
5040		u64 drp_lo_ram_flip : 2;
5041		u64 drp_lo_ram_cdis : 1;
5042		u64 dwp_hi_ram_flip : 2;
5043		u64 dwp_hi_ram_cdis : 1;
5044		u64 dwp_lo_ram_flip : 2;
5045		u64 dwp_lo_ram_cdis : 1;
5046		u64 mwp_hi_ram_flip : 2;
5047		u64 mwp_hi_ram_cdis : 1;
5048		u64 mwp_lo_ram_flip : 2;
5049		u64 mwp_lo_ram_cdis : 1;
5050		u64 fillb_m_rsp_ram_hi_flip : 2;
5051		u64 fillb_m_rsp_ram_hi_cdis : 1;
5052		u64 fillb_m_rsp_ram_lo_flip : 2;
5053		u64 fillb_m_rsp_ram_lo_cdis : 1;
5054		u64 fillb_d_rsp_ram_hi_flip : 2;
5055		u64 fillb_d_rsp_ram_hi_cdis : 1;
5056		u64 fillb_d_rsp_ram_lo_flip : 2;
5057		u64 fillb_d_rsp_ram_lo_cdis : 1;
5058		u64 reserved_0_0 : 1;
5059	} s;
5060	struct cvmx_pko_pdm_ecc_ctl0_cn73xx {
5061		u64 flshb_cache_lo_ram_flip : 2;
5062		u64 flshb_cache_lo_ram_cdis : 1;
5063		u64 flshb_cache_hi_ram_flip : 2;
5064		u64 flshb_cache_hi_ram_cdis : 1;
5065		u64 isrm_ca_iinst_ram_flip : 2;
5066		u64 isrm_ca_iinst_ram_cdis : 1;
5067		u64 isrm_ca_cm_ram_flip : 2;
5068		u64 isrm_ca_cm_ram_cdis : 1;
5069		u64 isrm_st_ram2_flip : 2;
5070		u64 isrm_st_ram2_cdis : 1;
5071		u64 isrm_st_ram1_flip : 2;
5072		u64 isrm_st_ram1_cdis : 1;
5073		u64 isrm_st_ram0_flip : 2;
5074		u64 isrm_st_ram0_cdis : 1;
5075		u64 isrd_st_ram3_flip : 2;
5076		u64 isrd_st_ram3_cdis : 1;
5077		u64 isrd_st_ram2_flip : 2;
5078		u64 isrd_st_ram2_cdis : 1;
5079		u64 isrd_st_ram1_flip : 2;
5080		u64 isrd_st_ram1_cdis : 1;
5081		u64 isrd_st_ram0_flip : 2;
5082		u64 isrd_st_ram0_cdis : 1;
5083		u64 drp_hi_ram_flip : 2;
5084		u64 drp_hi_ram_cdis : 1;
5085		u64 drp_lo_ram_flip : 2;
5086		u64 drp_lo_ram_cdis : 1;
5087		u64 dwp_hi_ram_flip : 2;
5088		u64 dwp_hi_ram_cdis : 1;
5089		u64 dwp_lo_ram_flip : 2;
5090		u64 dwp_lo_ram_cdis : 1;
5091		u64 reserved_13_18 : 6;
5092		u64 fillb_m_rsp_ram_hi_flip : 2;
5093		u64 fillb_m_rsp_ram_hi_cdis : 1;
5094		u64 fillb_m_rsp_ram_lo_flip : 2;
5095		u64 fillb_m_rsp_ram_lo_cdis : 1;
5096		u64 fillb_d_rsp_ram_hi_flip : 2;
5097		u64 fillb_d_rsp_ram_hi_cdis : 1;
5098		u64 fillb_d_rsp_ram_lo_flip : 2;
5099		u64 fillb_d_rsp_ram_lo_cdis : 1;
5100		u64 reserved_0_0 : 1;
5101	} cn73xx;
5102	struct cvmx_pko_pdm_ecc_ctl0_s cn78xx;
5103	struct cvmx_pko_pdm_ecc_ctl0_s cn78xxp1;
5104	struct cvmx_pko_pdm_ecc_ctl0_cn73xx cnf75xx;
5105};
5106
5107typedef union cvmx_pko_pdm_ecc_ctl0 cvmx_pko_pdm_ecc_ctl0_t;
5108
5109/**
5110 * cvmx_pko_pdm_ecc_ctl1
5111 */
5112union cvmx_pko_pdm_ecc_ctl1 {
5113	u64 u64;
5114	struct cvmx_pko_pdm_ecc_ctl1_s {
5115		u64 reserved_15_63 : 49;
5116		u64 buf_wm_ram_flip : 2;
5117		u64 buf_wm_ram_cdis : 1;
5118		u64 mwp_mem0_ram_flip : 2;
5119		u64 mwp_mem1_ram_flip : 2;
5120		u64 mwp_mem2_ram_flip : 2;
5121		u64 mwp_mem3_ram_flip : 2;
5122		u64 mwp_ram_cdis : 1;
5123		u64 minpad_ram_flip : 2;
5124		u64 minpad_ram_cdis : 1;
5125	} s;
5126	struct cvmx_pko_pdm_ecc_ctl1_s cn73xx;
5127	struct cvmx_pko_pdm_ecc_ctl1_s cn78xx;
5128	struct cvmx_pko_pdm_ecc_ctl1_s cn78xxp1;
5129	struct cvmx_pko_pdm_ecc_ctl1_s cnf75xx;
5130};
5131
5132typedef union cvmx_pko_pdm_ecc_ctl1 cvmx_pko_pdm_ecc_ctl1_t;
5133
5134/**
5135 * cvmx_pko_pdm_ecc_dbe_sts0
5136 */
5137union cvmx_pko_pdm_ecc_dbe_sts0 {
5138	u64 u64;
5139	struct cvmx_pko_pdm_ecc_dbe_sts0_s {
5140		u64 flshb_cache_lo_ram_dbe : 1;
5141		u64 flshb_cache_hi_ram_dbe : 1;
5142		u64 isrm_ca_iinst_ram_dbe : 1;
5143		u64 isrm_ca_cm_ram_dbe : 1;
5144		u64 isrm_st_ram2_dbe : 1;
5145		u64 isrm_st_ram1_dbe : 1;
5146		u64 isrm_st_ram0_dbe : 1;
5147		u64 isrd_st_ram3_dbe : 1;
5148		u64 isrd_st_ram2_dbe : 1;
5149		u64 isrd_st_ram1_dbe : 1;
5150		u64 isrd_st_ram0_dbe : 1;
5151		u64 drp_hi_ram_dbe : 1;
5152		u64 drp_lo_ram_dbe : 1;
5153		u64 dwp_hi_ram_dbe : 1;
5154		u64 dwp_lo_ram_dbe : 1;
5155		u64 mwp_hi_ram_dbe : 1;
5156		u64 mwp_lo_ram_dbe : 1;
5157		u64 fillb_m_rsp_ram_hi_dbe : 1;
5158		u64 fillb_m_rsp_ram_lo_dbe : 1;
5159		u64 fillb_d_rsp_ram_hi_dbe : 1;
5160		u64 fillb_d_rsp_ram_lo_dbe : 1;
5161		u64 minpad_ram_dbe : 1;
5162		u64 mwp_hi_spt_ram_dbe : 1;
5163		u64 mwp_lo_spt_ram_dbe : 1;
5164		u64 buf_wm_ram_dbe : 1;
5165		u64 reserved_0_38 : 39;
5166	} s;
5167	struct cvmx_pko_pdm_ecc_dbe_sts0_s cn73xx;
5168	struct cvmx_pko_pdm_ecc_dbe_sts0_s cn78xx;
5169	struct cvmx_pko_pdm_ecc_dbe_sts0_s cn78xxp1;
5170	struct cvmx_pko_pdm_ecc_dbe_sts0_s cnf75xx;
5171};
5172
5173typedef union cvmx_pko_pdm_ecc_dbe_sts0 cvmx_pko_pdm_ecc_dbe_sts0_t;
5174
5175/**
5176 * cvmx_pko_pdm_ecc_dbe_sts_cmb0
5177 */
5178union cvmx_pko_pdm_ecc_dbe_sts_cmb0 {
5179	u64 u64;
5180	struct cvmx_pko_pdm_ecc_dbe_sts_cmb0_s {
5181		u64 pdm_dbe_cmb0 : 1;
5182		u64 reserved_0_62 : 63;
5183	} s;
5184	struct cvmx_pko_pdm_ecc_dbe_sts_cmb0_s cn73xx;
5185	struct cvmx_pko_pdm_ecc_dbe_sts_cmb0_s cn78xx;
5186	struct cvmx_pko_pdm_ecc_dbe_sts_cmb0_s cn78xxp1;
5187	struct cvmx_pko_pdm_ecc_dbe_sts_cmb0_s cnf75xx;
5188};
5189
5190typedef union cvmx_pko_pdm_ecc_dbe_sts_cmb0 cvmx_pko_pdm_ecc_dbe_sts_cmb0_t;
5191
5192/**
5193 * cvmx_pko_pdm_ecc_sbe_sts0
5194 */
5195union cvmx_pko_pdm_ecc_sbe_sts0 {
5196	u64 u64;
5197	struct cvmx_pko_pdm_ecc_sbe_sts0_s {
5198		u64 flshb_cache_lo_ram_sbe : 1;
5199		u64 flshb_cache_hi_ram_sbe : 1;
5200		u64 isrm_ca_iinst_ram_sbe : 1;
5201		u64 isrm_ca_cm_ram_sbe : 1;
5202		u64 isrm_st_ram2_sbe : 1;
5203		u64 isrm_st_ram1_sbe : 1;
5204		u64 isrm_st_ram0_sbe : 1;
5205		u64 isrd_st_ram3_sbe : 1;
5206		u64 isrd_st_ram2_sbe : 1;
5207		u64 isrd_st_ram1_sbe : 1;
5208		u64 isrd_st_ram0_sbe : 1;
5209		u64 drp_hi_ram_sbe : 1;
5210		u64 drp_lo_ram_sbe : 1;
5211		u64 dwp_hi_ram_sbe : 1;
5212		u64 dwp_lo_ram_sbe : 1;
5213		u64 mwp_hi_ram_sbe : 1;
5214		u64 mwp_lo_ram_sbe : 1;
5215		u64 fillb_m_rsp_ram_hi_sbe : 1;
5216		u64 fillb_m_rsp_ram_lo_sbe : 1;
5217		u64 fillb_d_rsp_ram_hi_sbe : 1;
5218		u64 fillb_d_rsp_ram_lo_sbe : 1;
5219		u64 minpad_ram_sbe : 1;
5220		u64 mwp_hi_spt_ram_sbe : 1;
5221		u64 mwp_lo_spt_ram_sbe : 1;
5222		u64 buf_wm_ram_sbe : 1;
5223		u64 reserved_0_38 : 39;
5224	} s;
5225	struct cvmx_pko_pdm_ecc_sbe_sts0_s cn73xx;
5226	struct cvmx_pko_pdm_ecc_sbe_sts0_s cn78xx;
5227	struct cvmx_pko_pdm_ecc_sbe_sts0_s cn78xxp1;
5228	struct cvmx_pko_pdm_ecc_sbe_sts0_s cnf75xx;
5229};
5230
5231typedef union cvmx_pko_pdm_ecc_sbe_sts0 cvmx_pko_pdm_ecc_sbe_sts0_t;
5232
5233/**
5234 * cvmx_pko_pdm_ecc_sbe_sts_cmb0
5235 */
5236union cvmx_pko_pdm_ecc_sbe_sts_cmb0 {
5237	u64 u64;
5238	struct cvmx_pko_pdm_ecc_sbe_sts_cmb0_s {
5239		u64 pdm_sbe_cmb0 : 1;
5240		u64 reserved_0_62 : 63;
5241	} s;
5242	struct cvmx_pko_pdm_ecc_sbe_sts_cmb0_s cn73xx;
5243	struct cvmx_pko_pdm_ecc_sbe_sts_cmb0_s cn78xx;
5244	struct cvmx_pko_pdm_ecc_sbe_sts_cmb0_s cn78xxp1;
5245	struct cvmx_pko_pdm_ecc_sbe_sts_cmb0_s cnf75xx;
5246};
5247
5248typedef union cvmx_pko_pdm_ecc_sbe_sts_cmb0 cvmx_pko_pdm_ecc_sbe_sts_cmb0_t;
5249
5250/**
5251 * cvmx_pko_pdm_fillb_dbg0
5252 */
5253union cvmx_pko_pdm_fillb_dbg0 {
5254	u64 u64;
5255	struct cvmx_pko_pdm_fillb_dbg0_s {
5256		u64 reserved_57_63 : 7;
5257		u64 pd_seq : 5;
5258		u64 resp_pd_seq : 5;
5259		u64 d_rsp_lo_ram_addr_sel : 2;
5260		u64 d_rsp_hi_ram_addr_sel : 2;
5261		u64 d_rsp_rd_seq : 5;
5262		u64 d_rsp_fifo_rd_seq : 5;
5263		u64 d_fill_req_fifo_val : 1;
5264		u64 d_rsp_ram_valid : 32;
5265	} s;
5266	struct cvmx_pko_pdm_fillb_dbg0_s cn73xx;
5267	struct cvmx_pko_pdm_fillb_dbg0_s cn78xx;
5268	struct cvmx_pko_pdm_fillb_dbg0_s cn78xxp1;
5269	struct cvmx_pko_pdm_fillb_dbg0_s cnf75xx;
5270};
5271
5272typedef union cvmx_pko_pdm_fillb_dbg0 cvmx_pko_pdm_fillb_dbg0_t;
5273
5274/**
5275 * cvmx_pko_pdm_fillb_dbg1
5276 */
5277union cvmx_pko_pdm_fillb_dbg1 {
5278	u64 u64;
5279	struct cvmx_pko_pdm_fillb_dbg1_s {
5280		u64 reserved_57_63 : 7;
5281		u64 mp_seq : 5;
5282		u64 resp_mp_seq : 5;
5283		u64 m_rsp_lo_ram_addr_sel : 2;
5284		u64 m_rsp_hi_ram_addr_sel : 2;
5285		u64 m_rsp_rd_seq : 5;
5286		u64 m_rsp_fifo_rd_seq : 5;
5287		u64 m_fill_req_fifo_val : 1;
5288		u64 m_rsp_ram_valid : 32;
5289	} s;
5290	struct cvmx_pko_pdm_fillb_dbg1_s cn73xx;
5291	struct cvmx_pko_pdm_fillb_dbg1_s cn78xx;
5292	struct cvmx_pko_pdm_fillb_dbg1_s cn78xxp1;
5293	struct cvmx_pko_pdm_fillb_dbg1_s cnf75xx;
5294};
5295
5296typedef union cvmx_pko_pdm_fillb_dbg1 cvmx_pko_pdm_fillb_dbg1_t;
5297
5298/**
5299 * cvmx_pko_pdm_fillb_dbg2
5300 */
5301union cvmx_pko_pdm_fillb_dbg2 {
5302	u64 u64;
5303	struct cvmx_pko_pdm_fillb_dbg2_s {
5304		u64 reserved_9_63 : 55;
5305		u64 fillb_sm : 5;
5306		u64 reserved_3_3 : 1;
5307		u64 iobp0_credit_cntr : 3;
5308	} s;
5309	struct cvmx_pko_pdm_fillb_dbg2_s cn73xx;
5310	struct cvmx_pko_pdm_fillb_dbg2_s cn78xx;
5311	struct cvmx_pko_pdm_fillb_dbg2_s cn78xxp1;
5312	struct cvmx_pko_pdm_fillb_dbg2_s cnf75xx;
5313};
5314
5315typedef union cvmx_pko_pdm_fillb_dbg2 cvmx_pko_pdm_fillb_dbg2_t;
5316
5317/**
5318 * cvmx_pko_pdm_flshb_dbg0
5319 */
5320union cvmx_pko_pdm_flshb_dbg0 {
5321	u64 u64;
5322	struct cvmx_pko_pdm_flshb_dbg0_s {
5323		u64 reserved_44_63 : 20;
5324		u64 flshb_sm : 7;
5325		u64 flshb_ctl_sm : 9;
5326		u64 cam_hptr : 5;
5327		u64 cam_tptr : 5;
5328		u64 expected_stdns : 6;
5329		u64 d_flshb_eot_cntr : 3;
5330		u64 m_flshb_eot_cntr : 3;
5331		u64 ncbi_credit_cntr : 6;
5332	} s;
5333	struct cvmx_pko_pdm_flshb_dbg0_s cn73xx;
5334	struct cvmx_pko_pdm_flshb_dbg0_s cn78xx;
5335	struct cvmx_pko_pdm_flshb_dbg0_s cn78xxp1;
5336	struct cvmx_pko_pdm_flshb_dbg0_s cnf75xx;
5337};
5338
5339typedef union cvmx_pko_pdm_flshb_dbg0 cvmx_pko_pdm_flshb_dbg0_t;
5340
5341/**
5342 * cvmx_pko_pdm_flshb_dbg1
5343 */
5344union cvmx_pko_pdm_flshb_dbg1 {
5345	u64 u64;
5346	struct cvmx_pko_pdm_flshb_dbg1_s {
5347		u64 cam_stdn : 32;
5348		u64 cam_valid : 32;
5349	} s;
5350	struct cvmx_pko_pdm_flshb_dbg1_s cn73xx;
5351	struct cvmx_pko_pdm_flshb_dbg1_s cn78xx;
5352	struct cvmx_pko_pdm_flshb_dbg1_s cn78xxp1;
5353	struct cvmx_pko_pdm_flshb_dbg1_s cnf75xx;
5354};
5355
5356typedef union cvmx_pko_pdm_flshb_dbg1 cvmx_pko_pdm_flshb_dbg1_t;
5357
5358/**
5359 * cvmx_pko_pdm_intf_dbg_rd
5360 *
5361 * For diagnostic use only.
5362 *
5363 */
5364union cvmx_pko_pdm_intf_dbg_rd {
5365	u64 u64;
5366	struct cvmx_pko_pdm_intf_dbg_rd_s {
5367		u64 reserved_48_63 : 16;
5368		u64 in_flight : 8;
5369		u64 pdm_req_cred_cnt : 8;
5370		u64 pse_buf_waddr : 8;
5371		u64 pse_buf_raddr : 8;
5372		u64 resp_buf_waddr : 8;
5373		u64 resp_buf_raddr : 8;
5374	} s;
5375	struct cvmx_pko_pdm_intf_dbg_rd_s cn73xx;
5376	struct cvmx_pko_pdm_intf_dbg_rd_s cn78xx;
5377	struct cvmx_pko_pdm_intf_dbg_rd_s cn78xxp1;
5378	struct cvmx_pko_pdm_intf_dbg_rd_s cnf75xx;
5379};
5380
5381typedef union cvmx_pko_pdm_intf_dbg_rd cvmx_pko_pdm_intf_dbg_rd_t;
5382
5383/**
5384 * cvmx_pko_pdm_isrd_dbg
5385 */
5386union cvmx_pko_pdm_isrd_dbg {
5387	u64 u64;
5388	struct cvmx_pko_pdm_isrd_dbg_s {
5389		u64 isrd_vals_in : 4;
5390		u64 reserved_59_59 : 1;
5391		u64 req_hptr : 6;
5392		u64 rdy_hptr : 6;
5393		u64 reserved_44_46 : 3;
5394		u64 in_arb_reqs : 8;
5395		u64 in_arb_gnts : 7;
5396		u64 cmt_arb_reqs : 7;
5397		u64 cmt_arb_gnts : 7;
5398		u64 in_use : 4;
5399		u64 has_cred : 4;
5400		u64 val_exec : 7;
5401	} s;
5402	struct cvmx_pko_pdm_isrd_dbg_s cn73xx;
5403	struct cvmx_pko_pdm_isrd_dbg_s cn78xx;
5404	struct cvmx_pko_pdm_isrd_dbg_cn78xxp1 {
5405		u64 reserved_44_63 : 20;
5406		u64 in_arb_reqs : 8;
5407		u64 in_arb_gnts : 7;
5408		u64 cmt_arb_reqs : 7;
5409		u64 cmt_arb_gnts : 7;
5410		u64 in_use : 4;
5411		u64 has_cred : 4;
5412		u64 val_exec : 7;
5413	} cn78xxp1;
5414	struct cvmx_pko_pdm_isrd_dbg_s cnf75xx;
5415};
5416
5417typedef union cvmx_pko_pdm_isrd_dbg cvmx_pko_pdm_isrd_dbg_t;
5418
5419/**
5420 * cvmx_pko_pdm_isrd_dbg_dq
5421 */
5422union cvmx_pko_pdm_isrd_dbg_dq {
5423	u64 u64;
5424	struct cvmx_pko_pdm_isrd_dbg_dq_s {
5425		u64 reserved_46_63 : 18;
5426		u64 pebrd_sic_dq : 10;
5427		u64 reserved_34_35 : 2;
5428		u64 pebfill_sic_dq : 10;
5429		u64 reserved_22_23 : 2;
5430		u64 fr_sic_dq : 10;
5431		u64 reserved_10_11 : 2;
5432		u64 cp_sic_dq : 10;
5433	} s;
5434	struct cvmx_pko_pdm_isrd_dbg_dq_s cn73xx;
5435	struct cvmx_pko_pdm_isrd_dbg_dq_s cn78xx;
5436	struct cvmx_pko_pdm_isrd_dbg_dq_s cn78xxp1;
5437	struct cvmx_pko_pdm_isrd_dbg_dq_s cnf75xx;
5438};
5439
5440typedef union cvmx_pko_pdm_isrd_dbg_dq cvmx_pko_pdm_isrd_dbg_dq_t;
5441
5442/**
5443 * cvmx_pko_pdm_isrm_dbg
5444 */
5445union cvmx_pko_pdm_isrm_dbg {
5446	u64 u64;
5447	struct cvmx_pko_pdm_isrm_dbg_s {
5448		u64 val_in : 3;
5449		u64 reserved_34_60 : 27;
5450		u64 in_arb_reqs : 7;
5451		u64 in_arb_gnts : 6;
5452		u64 cmt_arb_reqs : 6;
5453		u64 cmt_arb_gnts : 6;
5454		u64 in_use : 3;
5455		u64 has_cred : 3;
5456		u64 val_exec : 3;
5457	} s;
5458	struct cvmx_pko_pdm_isrm_dbg_s cn73xx;
5459	struct cvmx_pko_pdm_isrm_dbg_s cn78xx;
5460	struct cvmx_pko_pdm_isrm_dbg_cn78xxp1 {
5461		u64 reserved_34_63 : 30;
5462		u64 in_arb_reqs : 7;
5463		u64 in_arb_gnts : 6;
5464		u64 cmt_arb_reqs : 6;
5465		u64 cmt_arb_gnts : 6;
5466		u64 in_use : 3;
5467		u64 has_cred : 3;
5468		u64 val_exec : 3;
5469	} cn78xxp1;
5470	struct cvmx_pko_pdm_isrm_dbg_s cnf75xx;
5471};
5472
5473typedef union cvmx_pko_pdm_isrm_dbg cvmx_pko_pdm_isrm_dbg_t;
5474
5475/**
5476 * cvmx_pko_pdm_isrm_dbg_dq
5477 */
5478union cvmx_pko_pdm_isrm_dbg_dq {
5479	u64 u64;
5480	struct cvmx_pko_pdm_isrm_dbg_dq_s {
5481		u64 reserved_34_63 : 30;
5482		u64 ack_sic_dq : 10;
5483		u64 reserved_22_23 : 2;
5484		u64 fr_sic_dq : 10;
5485		u64 reserved_10_11 : 2;
5486		u64 cp_sic_dq : 10;
5487	} s;
5488	struct cvmx_pko_pdm_isrm_dbg_dq_s cn73xx;
5489	struct cvmx_pko_pdm_isrm_dbg_dq_s cn78xx;
5490	struct cvmx_pko_pdm_isrm_dbg_dq_s cn78xxp1;
5491	struct cvmx_pko_pdm_isrm_dbg_dq_s cnf75xx;
5492};
5493
5494typedef union cvmx_pko_pdm_isrm_dbg_dq cvmx_pko_pdm_isrm_dbg_dq_t;
5495
5496/**
5497 * cvmx_pko_pdm_mem_addr
5498 */
5499union cvmx_pko_pdm_mem_addr {
5500	u64 u64;
5501	struct cvmx_pko_pdm_mem_addr_s {
5502		u64 memsel : 3;
5503		u64 reserved_17_60 : 44;
5504		u64 memaddr : 14;
5505		u64 reserved_2_2 : 1;
5506		u64 membanksel : 2;
5507	} s;
5508	struct cvmx_pko_pdm_mem_addr_s cn73xx;
5509	struct cvmx_pko_pdm_mem_addr_s cn78xx;
5510	struct cvmx_pko_pdm_mem_addr_s cn78xxp1;
5511	struct cvmx_pko_pdm_mem_addr_s cnf75xx;
5512};
5513
5514typedef union cvmx_pko_pdm_mem_addr cvmx_pko_pdm_mem_addr_t;
5515
5516/**
5517 * cvmx_pko_pdm_mem_data
5518 */
5519union cvmx_pko_pdm_mem_data {
5520	u64 u64;
5521	struct cvmx_pko_pdm_mem_data_s {
5522		u64 data : 64;
5523	} s;
5524	struct cvmx_pko_pdm_mem_data_s cn73xx;
5525	struct cvmx_pko_pdm_mem_data_s cn78xx;
5526	struct cvmx_pko_pdm_mem_data_s cn78xxp1;
5527	struct cvmx_pko_pdm_mem_data_s cnf75xx;
5528};
5529
5530typedef union cvmx_pko_pdm_mem_data cvmx_pko_pdm_mem_data_t;
5531
5532/**
5533 * cvmx_pko_pdm_mem_rw_ctl
5534 */
5535union cvmx_pko_pdm_mem_rw_ctl {
5536	u64 u64;
5537	struct cvmx_pko_pdm_mem_rw_ctl_s {
5538		u64 reserved_2_63 : 62;
5539		u64 read : 1;
5540		u64 write : 1;
5541	} s;
5542	struct cvmx_pko_pdm_mem_rw_ctl_s cn73xx;
5543	struct cvmx_pko_pdm_mem_rw_ctl_s cn78xx;
5544	struct cvmx_pko_pdm_mem_rw_ctl_s cn78xxp1;
5545	struct cvmx_pko_pdm_mem_rw_ctl_s cnf75xx;
5546};
5547
5548typedef union cvmx_pko_pdm_mem_rw_ctl cvmx_pko_pdm_mem_rw_ctl_t;
5549
5550/**
5551 * cvmx_pko_pdm_mem_rw_sts
5552 */
5553union cvmx_pko_pdm_mem_rw_sts {
5554	u64 u64;
5555	struct cvmx_pko_pdm_mem_rw_sts_s {
5556		u64 reserved_1_63 : 63;
5557		u64 readdone : 1;
5558	} s;
5559	struct cvmx_pko_pdm_mem_rw_sts_s cn73xx;
5560	struct cvmx_pko_pdm_mem_rw_sts_s cn78xx;
5561	struct cvmx_pko_pdm_mem_rw_sts_s cn78xxp1;
5562	struct cvmx_pko_pdm_mem_rw_sts_s cnf75xx;
5563};
5564
5565typedef union cvmx_pko_pdm_mem_rw_sts cvmx_pko_pdm_mem_rw_sts_t;
5566
5567/**
5568 * cvmx_pko_pdm_mwpbuf_dbg
5569 */
5570union cvmx_pko_pdm_mwpbuf_dbg {
5571	u64 u64;
5572	struct cvmx_pko_pdm_mwpbuf_dbg_s {
5573		u64 reserved_49_63 : 15;
5574		u64 str_proc : 1;
5575		u64 cmd_proc : 1;
5576		u64 str_val : 1;
5577		u64 mem_data_val : 1;
5578		u64 insert_np : 1;
5579		u64 insert_mp : 1;
5580		u64 sel_nxt_ptr : 1;
5581		u64 load_val : 1;
5582		u64 rdy : 1;
5583		u64 cur_state : 3;
5584		u64 mem_rdy : 1;
5585		u64 str_rdy : 1;
5586		u64 contention_type : 2;
5587		u64 track_rd_cnt : 6;
5588		u64 track_wr_cnt : 6;
5589		u64 mem_wen : 4;
5590		u64 mem_addr : 13;
5591		u64 mem_en : 4;
5592	} s;
5593	struct cvmx_pko_pdm_mwpbuf_dbg_cn73xx {
5594		u64 reserved_49_63 : 15;
5595		u64 str_proc : 1;
5596		u64 cmd_proc : 1;
5597		u64 str_val : 1;
5598		u64 mem_data_val : 1;
5599		u64 insert_np : 1;
5600		u64 insert_mp : 1;
5601		u64 sel_nxt_ptr : 1;
5602		u64 load_val : 1;
5603		u64 rdy : 1;
5604		u64 cur_state : 3;
5605		u64 mem_rdy : 1;
5606		u64 str_rdy : 1;
5607		u64 contention_type : 2;
5608		u64 reserved_21_32 : 12;
5609		u64 mem_wen : 4;
5610		u64 reserved_15_16 : 2;
5611		u64 mem_addr : 11;
5612		u64 mem_en : 4;
5613	} cn73xx;
5614	struct cvmx_pko_pdm_mwpbuf_dbg_s cn78xx;
5615	struct cvmx_pko_pdm_mwpbuf_dbg_s cn78xxp1;
5616	struct cvmx_pko_pdm_mwpbuf_dbg_cn73xx cnf75xx;
5617};
5618
5619typedef union cvmx_pko_pdm_mwpbuf_dbg cvmx_pko_pdm_mwpbuf_dbg_t;
5620
5621/**
5622 * cvmx_pko_pdm_sts
5623 */
5624union cvmx_pko_pdm_sts {
5625	u64 u64;
5626	struct cvmx_pko_pdm_sts_s {
5627		u64 reserved_38_63 : 26;
5628		u64 cp_stalled_thrshld_hit : 1;
5629		u64 reserved_35_36 : 2;
5630		u64 mwpbuf_data_val_err : 1;
5631		u64 drpbuf_data_val_err : 1;
5632		u64 dwpbuf_data_val_err : 1;
5633		u64 reserved_30_31 : 2;
5634		u64 qcmd_iobx_err_sts : 4;
5635		u64 qcmd_iobx_err : 1;
5636		u64 sendpkt_lmtdma_err_sts : 4;
5637		u64 sendpkt_lmtdma_err : 1;
5638		u64 sendpkt_lmtst_err_sts : 4;
5639		u64 sendpkt_lmtst_err : 1;
5640		u64 fpa_no_ptrs : 1;
5641		u64 reserved_12_13 : 2;
5642		u64 cp_sendpkt_err_no_drp_code : 2;
5643		u64 cp_sendpkt_err_no_drp : 1;
5644		u64 reserved_7_8 : 2;
5645		u64 cp_sendpkt_err_drop_code : 3;
5646		u64 cp_sendpkt_err_drop : 1;
5647		u64 reserved_1_2 : 2;
5648		u64 desc_crc_err : 1;
5649	} s;
5650	struct cvmx_pko_pdm_sts_s cn73xx;
5651	struct cvmx_pko_pdm_sts_s cn78xx;
5652	struct cvmx_pko_pdm_sts_s cn78xxp1;
5653	struct cvmx_pko_pdm_sts_s cnf75xx;
5654};
5655
5656typedef union cvmx_pko_pdm_sts cvmx_pko_pdm_sts_t;
5657
5658/**
5659 * cvmx_pko_peb_bist_status
5660 *
5661 * Each bit is the BIST result of an individual memory (per bit, 0 = pass and 1 = fail).
5662 *
5663 */
5664union cvmx_pko_peb_bist_status {
5665	u64 u64;
5666	struct cvmx_pko_peb_bist_status_s {
5667		u64 reserved_26_63 : 38;
5668		u64 add_work_fifo : 1;
5669		u64 pdm_pse_buf_ram : 1;
5670		u64 iobp0_fifo_ram : 1;
5671		u64 iobp1_fifo_ram : 1;
5672		u64 state_mem0 : 1;
5673		u64 reserved_19_20 : 2;
5674		u64 state_mem3 : 1;
5675		u64 iobp1_uid_fifo_ram : 1;
5676		u64 nxt_link_ptr_ram : 1;
5677		u64 pd_bank0_ram : 1;
5678		u64 pd_bank1_ram : 1;
5679		u64 pd_bank2_ram : 1;
5680		u64 pd_bank3_ram : 1;
5681		u64 pd_var_bank_ram : 1;
5682		u64 pdm_resp_buf_ram : 1;
5683		u64 tx_fifo_pkt_ram : 1;
5684		u64 tx_fifo_hdr_ram : 1;
5685		u64 tx_fifo_crc_ram : 1;
5686		u64 ts_addwork_ram : 1;
5687		u64 send_mem_ts_fifo : 1;
5688		u64 send_mem_stdn_fifo : 1;
5689		u64 send_mem_fifo : 1;
5690		u64 pkt_mrk_ram : 1;
5691		u64 peb_st_inf_ram : 1;
5692		u64 peb_sm_jmp_ram : 1;
5693	} s;
5694	struct cvmx_pko_peb_bist_status_cn73xx {
5695		u64 reserved_26_63 : 38;
5696		u64 add_work_fifo : 1;
5697		u64 pdm_pse_buf_ram : 1;
5698		u64 iobp0_fifo_ram : 1;
5699		u64 iobp1_fifo_ram : 1;
5700		u64 state_mem0 : 1;
5701		u64 reserved_19_20 : 2;
5702		u64 state_mem3 : 1;
5703		u64 iobp1_uid_fifo_ram : 1;
5704		u64 nxt_link_ptr_ram : 1;
5705		u64 pd_bank0_ram : 1;
5706		u64 reserved_13_14 : 2;
5707		u64 pd_bank3_ram : 1;
5708		u64 pd_var_bank_ram : 1;
5709		u64 pdm_resp_buf_ram : 1;
5710		u64 tx_fifo_pkt_ram : 1;
5711		u64 tx_fifo_hdr_ram : 1;
5712		u64 tx_fifo_crc_ram : 1;
5713		u64 ts_addwork_ram : 1;
5714		u64 send_mem_ts_fifo : 1;
5715		u64 send_mem_stdn_fifo : 1;
5716		u64 send_mem_fifo : 1;
5717		u64 pkt_mrk_ram : 1;
5718		u64 peb_st_inf_ram : 1;
5719		u64 reserved_0_0 : 1;
5720	} cn73xx;
5721	struct cvmx_pko_peb_bist_status_cn73xx cn78xx;
5722	struct cvmx_pko_peb_bist_status_s cn78xxp1;
5723	struct cvmx_pko_peb_bist_status_cn73xx cnf75xx;
5724};
5725
5726typedef union cvmx_pko_peb_bist_status cvmx_pko_peb_bist_status_t;
5727
5728/**
5729 * cvmx_pko_peb_ecc_ctl0
5730 */
5731union cvmx_pko_peb_ecc_ctl0 {
5732	u64 u64;
5733	struct cvmx_pko_peb_ecc_ctl0_s {
5734		u64 iobp1_uid_fifo_ram_flip : 2;
5735		u64 iobp1_uid_fifo_ram_cdis : 1;
5736		u64 iobp0_fifo_ram_flip : 2;
5737		u64 iobp0_fifo_ram_cdis : 1;
5738		u64 iobp1_fifo_ram_flip : 2;
5739		u64 iobp1_fifo_ram_cdis : 1;
5740		u64 pdm_resp_buf_ram_flip : 2;
5741		u64 pdm_resp_buf_ram_cdis : 1;
5742		u64 pdm_pse_buf_ram_flip : 2;
5743		u64 pdm_pse_buf_ram_cdis : 1;
5744		u64 peb_sm_jmp_ram_flip : 2;
5745		u64 peb_sm_jmp_ram_cdis : 1;
5746		u64 peb_st_inf_ram_flip : 2;
5747		u64 peb_st_inf_ram_cdis : 1;
5748		u64 pd_bank3_ram_flip : 2;
5749		u64 pd_bank3_ram_cdis : 1;
5750		u64 pd_bank2_ram_flip : 2;
5751		u64 pd_bank2_ram_cdis : 1;
5752		u64 pd_bank1_ram_flip : 2;
5753		u64 pd_bank1_ram_cdis : 1;
5754		u64 pd_bank0_ram_flip : 2;
5755		u64 pd_bank0_ram_cdis : 1;
5756		u64 pd_var_bank_ram_flip : 2;
5757		u64 pd_var_bank_ram_cdis : 1;
5758		u64 tx_fifo_crc_ram_flip : 2;
5759		u64 tx_fifo_crc_ram_cdis : 1;
5760		u64 tx_fifo_hdr_ram_flip : 2;
5761		u64 tx_fifo_hdr_ram_cdis : 1;
5762		u64 tx_fifo_pkt_ram_flip : 2;
5763		u64 tx_fifo_pkt_ram_cdis : 1;
5764		u64 add_work_fifo_flip : 2;
5765		u64 add_work_fifo_cdis : 1;
5766		u64 send_mem_fifo_flip : 2;
5767		u64 send_mem_fifo_cdis : 1;
5768		u64 send_mem_stdn_fifo_flip : 2;
5769		u64 send_mem_stdn_fifo_cdis : 1;
5770		u64 send_mem_ts_fifo_flip : 2;
5771		u64 send_mem_ts_fifo_cdis : 1;
5772		u64 nxt_link_ptr_ram_flip : 2;
5773		u64 nxt_link_ptr_ram_cdis : 1;
5774		u64 pkt_mrk_ram_flip : 2;
5775		u64 pkt_mrk_ram_cdis : 1;
5776		u64 reserved_0_0 : 1;
5777	} s;
5778	struct cvmx_pko_peb_ecc_ctl0_cn73xx {
5779		u64 iobp1_uid_fifo_ram_flip : 2;
5780		u64 iobp1_uid_fifo_ram_cdis : 1;
5781		u64 iobp0_fifo_ram_flip : 2;
5782		u64 iobp0_fifo_ram_cdis : 1;
5783		u64 iobp1_fifo_ram_flip : 2;
5784		u64 iobp1_fifo_ram_cdis : 1;
5785		u64 pdm_resp_buf_ram_flip : 2;
5786		u64 pdm_resp_buf_ram_cdis : 1;
5787		u64 pdm_pse_buf_ram_flip : 2;
5788		u64 pdm_pse_buf_ram_cdis : 1;
5789		u64 reserved_46_48 : 3;
5790		u64 peb_st_inf_ram_flip : 2;
5791		u64 peb_st_inf_ram_cdis : 1;
5792		u64 pd_bank3_ram_flip : 2;
5793		u64 pd_bank3_ram_cdis : 1;
5794		u64 reserved_34_39 : 6;
5795		u64 pd_bank0_ram_flip : 2;
5796		u64 pd_bank0_ram_cdis : 1;
5797		u64 pd_var_bank_ram_flip : 2;
5798		u64 pd_var_bank_ram_cdis : 1;
5799		u64 tx_fifo_crc_ram_flip : 2;
5800		u64 tx_fifo_crc_ram_cdis : 1;
5801		u64 tx_fifo_hdr_ram_flip : 2;
5802		u64 tx_fifo_hdr_ram_cdis : 1;
5803		u64 tx_fifo_pkt_ram_flip : 2;
5804		u64 tx_fifo_pkt_ram_cdis : 1;
5805		u64 add_work_fifo_flip : 2;
5806		u64 add_work_fifo_cdis : 1;
5807		u64 send_mem_fifo_flip : 2;
5808		u64 send_mem_fifo_cdis : 1;
5809		u64 send_mem_stdn_fifo_flip : 2;
5810		u64 send_mem_stdn_fifo_cdis : 1;
5811		u64 send_mem_ts_fifo_flip : 2;
5812		u64 send_mem_ts_fifo_cdis : 1;
5813		u64 nxt_link_ptr_ram_flip : 2;
5814		u64 nxt_link_ptr_ram_cdis : 1;
5815		u64 pkt_mrk_ram_flip : 2;
5816		u64 pkt_mrk_ram_cdis : 1;
5817		u64 reserved_0_0 : 1;
5818	} cn73xx;
5819	struct cvmx_pko_peb_ecc_ctl0_cn73xx cn78xx;
5820	struct cvmx_pko_peb_ecc_ctl0_s cn78xxp1;
5821	struct cvmx_pko_peb_ecc_ctl0_cn73xx cnf75xx;
5822};
5823
5824typedef union cvmx_pko_peb_ecc_ctl0 cvmx_pko_peb_ecc_ctl0_t;
5825
5826/**
5827 * cvmx_pko_peb_ecc_ctl1
5828 */
5829union cvmx_pko_peb_ecc_ctl1 {
5830	u64 u64;
5831	struct cvmx_pko_peb_ecc_ctl1_s {
5832		u64 ts_addwork_ram_flip : 2;
5833		u64 ts_addwork_ram_cdis : 1;
5834		u64 state_mem0_flip : 2;
5835		u64 state_mem0_cdis : 1;
5836		u64 reserved_52_57 : 6;
5837		u64 state_mem3_flip : 2;
5838		u64 state_mem3_cdis : 1;
5839		u64 reserved_0_48 : 49;
5840	} s;
5841	struct cvmx_pko_peb_ecc_ctl1_s cn73xx;
5842	struct cvmx_pko_peb_ecc_ctl1_cn78xx {
5843		u64 ts_addwork_ram_flip : 2;
5844		u64 ts_addwork_ram_cdis : 1;
5845		u64 reserved_0_60 : 61;
5846	} cn78xx;
5847	struct cvmx_pko_peb_ecc_ctl1_cn78xx cn78xxp1;
5848	struct cvmx_pko_peb_ecc_ctl1_s cnf75xx;
5849};
5850
5851typedef union cvmx_pko_peb_ecc_ctl1 cvmx_pko_peb_ecc_ctl1_t;
5852
5853/**
5854 * cvmx_pko_peb_ecc_dbe_sts0
5855 */
5856union cvmx_pko_peb_ecc_dbe_sts0 {
5857	u64 u64;
5858	struct cvmx_pko_peb_ecc_dbe_sts0_s {
5859		u64 iobp1_uid_fifo_ram_dbe : 1;
5860		u64 iobp0_fifo_ram_dbe : 1;
5861		u64 iobp1_fifo_ram_dbe : 1;
5862		u64 pdm_resp_buf_ram_dbe : 1;
5863		u64 pdm_pse_buf_ram_dbe : 1;
5864		u64 peb_sm_jmp_ram_dbe : 1;
5865		u64 peb_st_inf_ram_dbe : 1;
5866		u64 pd_bank3_ram_dbe : 1;
5867		u64 pd_bank2_ram_dbe : 1;
5868		u64 pd_bank1_ram_dbe : 1;
5869		u64 pd_bank0_ram_dbe : 1;
5870		u64 pd_var_bank_ram_dbe : 1;
5871		u64 tx_fifo_crc_ram_dbe : 1;
5872		u64 tx_fifo_hdr_ram_dbe : 1;
5873		u64 tx_fifo_pkt_ram_dbe : 1;
5874		u64 add_work_fifo_dbe : 1;
5875		u64 send_mem_fifo_dbe : 1;
5876		u64 send_mem_stdn_fifo_dbe : 1;
5877		u64 send_mem_ts_fifo_dbe : 1;
5878		u64 nxt_link_ptr_ram_dbe : 1;
5879		u64 pkt_mrk_ram_dbe : 1;
5880		u64 ts_addwork_ram_dbe : 1;
5881		u64 state_mem0_dbe : 1;
5882		u64 reserved_39_40 : 2;
5883		u64 state_mem3_dbe : 1;
5884		u64 reserved_0_37 : 38;
5885	} s;
5886	struct cvmx_pko_peb_ecc_dbe_sts0_cn73xx {
5887		u64 iobp1_uid_fifo_ram_dbe : 1;
5888		u64 iobp0_fifo_ram_dbe : 1;
5889		u64 iobp1_fifo_ram_dbe : 1;
5890		u64 pdm_resp_buf_ram_dbe : 1;
5891		u64 pdm_pse_buf_ram_dbe : 1;
5892		u64 reserved_58_58 : 1;
5893		u64 peb_st_inf_ram_dbe : 1;
5894		u64 pd_bank3_ram_dbe : 1;
5895		u64 reserved_54_55 : 2;
5896		u64 pd_bank0_ram_dbe : 1;
5897		u64 pd_var_bank_ram_dbe : 1;
5898		u64 tx_fifo_crc_ram_dbe : 1;
5899		u64 tx_fifo_hdr_ram_dbe : 1;
5900		u64 tx_fifo_pkt_ram_dbe : 1;
5901		u64 add_work_fifo_dbe : 1;
5902		u64 send_mem_fifo_dbe : 1;
5903		u64 send_mem_stdn_fifo_dbe : 1;
5904		u64 send_mem_ts_fifo_dbe : 1;
5905		u64 nxt_link_ptr_ram_dbe : 1;
5906		u64 pkt_mrk_ram_dbe : 1;
5907		u64 ts_addwork_ram_dbe : 1;
5908		u64 state_mem0_dbe : 1;
5909		u64 reserved_39_40 : 2;
5910		u64 state_mem3_dbe : 1;
5911		u64 reserved_0_37 : 38;
5912	} cn73xx;
5913	struct cvmx_pko_peb_ecc_dbe_sts0_cn78xx {
5914		u64 iobp1_uid_fifo_ram_dbe : 1;
5915		u64 iobp0_fifo_ram_dbe : 1;
5916		u64 iobp1_fifo_ram_dbe : 1;
5917		u64 pdm_resp_buf_ram_dbe : 1;
5918		u64 pdm_pse_buf_ram_dbe : 1;
5919		u64 reserved_58_58 : 1;
5920		u64 peb_st_inf_ram_dbe : 1;
5921		u64 pd_bank3_ram_dbe : 1;
5922		u64 reserved_54_55 : 2;
5923		u64 pd_bank0_ram_dbe : 1;
5924		u64 pd_var_bank_ram_dbe : 1;
5925		u64 tx_fifo_crc_ram_dbe : 1;
5926		u64 tx_fifo_hdr_ram_dbe : 1;
5927		u64 tx_fifo_pkt_ram_dbe : 1;
5928		u64 add_work_fifo_dbe : 1;
5929		u64 send_mem_fifo_dbe : 1;
5930		u64 send_mem_stdn_fifo_dbe : 1;
5931		u64 send_mem_ts_fifo_dbe : 1;
5932		u64 nxt_link_ptr_ram_dbe : 1;
5933		u64 pkt_mrk_ram_dbe : 1;
5934		u64 ts_addwork_ram_dbe : 1;
5935		u64 reserved_0_41 : 42;
5936	} cn78xx;
5937	struct cvmx_pko_peb_ecc_dbe_sts0_cn78xxp1 {
5938		u64 iobp1_uid_fifo_ram_dbe : 1;
5939		u64 iobp0_fifo_ram_dbe : 1;
5940		u64 iobp1_fifo_ram_dbe : 1;
5941		u64 pdm_resp_buf_ram_dbe : 1;
5942		u64 pdm_pse_buf_ram_dbe : 1;
5943		u64 peb_sm_jmp_ram_dbe : 1;
5944		u64 peb_st_inf_ram_dbe : 1;
5945		u64 pd_bank3_ram_dbe : 1;
5946		u64 pd_bank2_ram_dbe : 1;
5947		u64 pd_bank1_ram_dbe : 1;
5948		u64 pd_bank0_ram_dbe : 1;
5949		u64 pd_var_bank_ram_dbe : 1;
5950		u64 tx_fifo_crc_ram_dbe : 1;
5951		u64 tx_fifo_hdr_ram_dbe : 1;
5952		u64 tx_fifo_pkt_ram_dbe : 1;
5953		u64 add_work_fifo_dbe : 1;
5954		u64 send_mem_fifo_dbe : 1;
5955		u64 send_mem_stdn_fifo_dbe : 1;
5956		u64 send_mem_ts_fifo_dbe : 1;
5957		u64 nxt_link_ptr_ram_dbe : 1;
5958		u64 pkt_mrk_ram_dbe : 1;
5959		u64 ts_addwork_ram_dbe : 1;
5960		u64 reserved_0_41 : 42;
5961	} cn78xxp1;
5962	struct cvmx_pko_peb_ecc_dbe_sts0_cn73xx cnf75xx;
5963};
5964
5965typedef union cvmx_pko_peb_ecc_dbe_sts0 cvmx_pko_peb_ecc_dbe_sts0_t;
5966
5967/**
5968 * cvmx_pko_peb_ecc_dbe_sts_cmb0
5969 */
5970union cvmx_pko_peb_ecc_dbe_sts_cmb0 {
5971	u64 u64;
5972	struct cvmx_pko_peb_ecc_dbe_sts_cmb0_s {
5973		u64 peb_dbe_cmb0 : 1;
5974		u64 reserved_0_62 : 63;
5975	} s;
5976	struct cvmx_pko_peb_ecc_dbe_sts_cmb0_s cn73xx;
5977	struct cvmx_pko_peb_ecc_dbe_sts_cmb0_s cn78xx;
5978	struct cvmx_pko_peb_ecc_dbe_sts_cmb0_s cn78xxp1;
5979	struct cvmx_pko_peb_ecc_dbe_sts_cmb0_s cnf75xx;
5980};
5981
5982typedef union cvmx_pko_peb_ecc_dbe_sts_cmb0 cvmx_pko_peb_ecc_dbe_sts_cmb0_t;
5983
5984/**
5985 * cvmx_pko_peb_ecc_sbe_sts0
5986 */
5987union cvmx_pko_peb_ecc_sbe_sts0 {
5988	u64 u64;
5989	struct cvmx_pko_peb_ecc_sbe_sts0_s {
5990		u64 iobp1_uid_fifo_ram_sbe : 1;
5991		u64 iobp0_fifo_ram_sbe : 1;
5992		u64 iobp1_fifo_ram_sbe : 1;
5993		u64 pdm_resp_buf_ram_sbe : 1;
5994		u64 pdm_pse_buf_ram_sbe : 1;
5995		u64 peb_sm_jmp_ram_sbe : 1;
5996		u64 peb_st_inf_ram_sbe : 1;
5997		u64 pd_bank3_ram_sbe : 1;
5998		u64 pd_bank2_ram_sbe : 1;
5999		u64 pd_bank1_ram_sbe : 1;
6000		u64 pd_bank0_ram_sbe : 1;
6001		u64 pd_var_bank_ram_sbe : 1;
6002		u64 tx_fifo_crc_ram_sbe : 1;
6003		u64 tx_fifo_hdr_ram_sbe : 1;
6004		u64 tx_fifo_pkt_ram_sbe : 1;
6005		u64 add_work_fifo_sbe : 1;
6006		u64 send_mem_fifo_sbe : 1;
6007		u64 send_mem_stdn_fifo_sbe : 1;
6008		u64 send_mem_ts_fifo_sbe : 1;
6009		u64 nxt_link_ptr_ram_sbe : 1;
6010		u64 pkt_mrk_ram_sbe : 1;
6011		u64 ts_addwork_ram_sbe : 1;
6012		u64 state_mem0_sbe : 1;
6013		u64 reserved_39_40 : 2;
6014		u64 state_mem3_sbe : 1;
6015		u64 reserved_0_37 : 38;
6016	} s;
6017	struct cvmx_pko_peb_ecc_sbe_sts0_cn73xx {
6018		u64 iobp1_uid_fifo_ram_sbe : 1;
6019		u64 iobp0_fifo_ram_sbe : 1;
6020		u64 iobp1_fifo_ram_sbe : 1;
6021		u64 pdm_resp_buf_ram_sbe : 1;
6022		u64 pdm_pse_buf_ram_sbe : 1;
6023		u64 reserved_58_58 : 1;
6024		u64 peb_st_inf_ram_sbe : 1;
6025		u64 pd_bank3_ram_sbe : 1;
6026		u64 reserved_54_55 : 2;
6027		u64 pd_bank0_ram_sbe : 1;
6028		u64 pd_var_bank_ram_sbe : 1;
6029		u64 tx_fifo_crc_ram_sbe : 1;
6030		u64 tx_fifo_hdr_ram_sbe : 1;
6031		u64 tx_fifo_pkt_ram_sbe : 1;
6032		u64 add_work_fifo_sbe : 1;
6033		u64 send_mem_fifo_sbe : 1;
6034		u64 send_mem_stdn_fifo_sbe : 1;
6035		u64 send_mem_ts_fifo_sbe : 1;
6036		u64 nxt_link_ptr_ram_sbe : 1;
6037		u64 pkt_mrk_ram_sbe : 1;
6038		u64 ts_addwork_ram_sbe : 1;
6039		u64 state_mem0_sbe : 1;
6040		u64 reserved_39_40 : 2;
6041		u64 state_mem3_sbe : 1;
6042		u64 reserved_0_37 : 38;
6043	} cn73xx;
6044	struct cvmx_pko_peb_ecc_sbe_sts0_cn78xx {
6045		u64 iobp1_uid_fifo_ram_sbe : 1;
6046		u64 iobp0_fifo_ram_sbe : 1;
6047		u64 iobp1_fifo_ram_sbe : 1;
6048		u64 pdm_resp_buf_ram_sbe : 1;
6049		u64 pdm_pse_buf_ram_sbe : 1;
6050		u64 reserved_58_58 : 1;
6051		u64 peb_st_inf_ram_sbe : 1;
6052		u64 pd_bank3_ram_sbe : 1;
6053		u64 reserved_54_55 : 2;
6054		u64 pd_bank0_ram_sbe : 1;
6055		u64 pd_var_bank_ram_sbe : 1;
6056		u64 tx_fifo_crc_ram_sbe : 1;
6057		u64 tx_fifo_hdr_ram_sbe : 1;
6058		u64 tx_fifo_pkt_ram_sbe : 1;
6059		u64 add_work_fifo_sbe : 1;
6060		u64 send_mem_fifo_sbe : 1;
6061		u64 send_mem_stdn_fifo_sbe : 1;
6062		u64 send_mem_ts_fifo_sbe : 1;
6063		u64 nxt_link_ptr_ram_sbe : 1;
6064		u64 pkt_mrk_ram_sbe : 1;
6065		u64 ts_addwork_ram_sbe : 1;
6066		u64 reserved_0_41 : 42;
6067	} cn78xx;
6068	struct cvmx_pko_peb_ecc_sbe_sts0_cn78xxp1 {
6069		u64 iobp1_uid_fifo_ram_sbe : 1;
6070		u64 iobp0_fifo_ram_sbe : 1;
6071		u64 iobp1_fifo_ram_sbe : 1;
6072		u64 pdm_resp_buf_ram_sbe : 1;
6073		u64 pdm_pse_buf_ram_sbe : 1;
6074		u64 peb_sm_jmp_ram_sbe : 1;
6075		u64 peb_st_inf_ram_sbe : 1;
6076		u64 pd_bank3_ram_sbe : 1;
6077		u64 pd_bank2_ram_sbe : 1;
6078		u64 pd_bank1_ram_sbe : 1;
6079		u64 pd_bank0_ram_sbe : 1;
6080		u64 pd_var_bank_ram_sbe : 1;
6081		u64 tx_fifo_crc_ram_sbe : 1;
6082		u64 tx_fifo_hdr_ram_sbe : 1;
6083		u64 tx_fifo_pkt_ram_sbe : 1;
6084		u64 add_work_fifo_sbe : 1;
6085		u64 send_mem_fifo_sbe : 1;
6086		u64 send_mem_stdn_fifo_sbe : 1;
6087		u64 send_mem_ts_fifo_sbe : 1;
6088		u64 nxt_link_ptr_ram_sbe : 1;
6089		u64 pkt_mrk_ram_sbe : 1;
6090		u64 ts_addwork_ram_sbe : 1;
6091		u64 reserved_0_41 : 42;
6092	} cn78xxp1;
6093	struct cvmx_pko_peb_ecc_sbe_sts0_cn73xx cnf75xx;
6094};
6095
6096typedef union cvmx_pko_peb_ecc_sbe_sts0 cvmx_pko_peb_ecc_sbe_sts0_t;
6097
6098/**
6099 * cvmx_pko_peb_ecc_sbe_sts_cmb0
6100 */
6101union cvmx_pko_peb_ecc_sbe_sts_cmb0 {
6102	u64 u64;
6103	struct cvmx_pko_peb_ecc_sbe_sts_cmb0_s {
6104		u64 peb_sbe_cmb0 : 1;
6105		u64 reserved_0_62 : 63;
6106	} s;
6107	struct cvmx_pko_peb_ecc_sbe_sts_cmb0_s cn73xx;
6108	struct cvmx_pko_peb_ecc_sbe_sts_cmb0_s cn78xx;
6109	struct cvmx_pko_peb_ecc_sbe_sts_cmb0_s cn78xxp1;
6110	struct cvmx_pko_peb_ecc_sbe_sts_cmb0_s cnf75xx;
6111};
6112
6113typedef union cvmx_pko_peb_ecc_sbe_sts_cmb0 cvmx_pko_peb_ecc_sbe_sts_cmb0_t;
6114
6115/**
6116 * cvmx_pko_peb_eco
6117 */
6118union cvmx_pko_peb_eco {
6119	u64 u64;
6120	struct cvmx_pko_peb_eco_s {
6121		u64 reserved_32_63 : 32;
6122		u64 eco_rw : 32;
6123	} s;
6124	struct cvmx_pko_peb_eco_s cn73xx;
6125	struct cvmx_pko_peb_eco_s cn78xx;
6126	struct cvmx_pko_peb_eco_s cnf75xx;
6127};
6128
6129typedef union cvmx_pko_peb_eco cvmx_pko_peb_eco_t;
6130
6131/**
6132 * cvmx_pko_peb_err_int
6133 */
6134union cvmx_pko_peb_err_int {
6135	u64 u64;
6136	struct cvmx_pko_peb_err_int_s {
6137		u64 reserved_10_63 : 54;
6138		u64 peb_macx_cfg_wr_err : 1;
6139		u64 peb_max_link_err : 1;
6140		u64 peb_subd_size_err : 1;
6141		u64 peb_subd_addr_err : 1;
6142		u64 peb_trunc_err : 1;
6143		u64 peb_pad_err : 1;
6144		u64 peb_pse_fifo_err : 1;
6145		u64 peb_fcs_sop_err : 1;
6146		u64 peb_jump_def_err : 1;
6147		u64 peb_ext_hdr_def_err : 1;
6148	} s;
6149	struct cvmx_pko_peb_err_int_s cn73xx;
6150	struct cvmx_pko_peb_err_int_s cn78xx;
6151	struct cvmx_pko_peb_err_int_s cn78xxp1;
6152	struct cvmx_pko_peb_err_int_s cnf75xx;
6153};
6154
6155typedef union cvmx_pko_peb_err_int cvmx_pko_peb_err_int_t;
6156
6157/**
6158 * cvmx_pko_peb_ext_hdr_def_err_info
6159 */
6160union cvmx_pko_peb_ext_hdr_def_err_info {
6161	u64 u64;
6162	struct cvmx_pko_peb_ext_hdr_def_err_info_s {
6163		u64 reserved_20_63 : 44;
6164		u64 val : 1;
6165		u64 fifo : 7;
6166		u64 chan : 12;
6167	} s;
6168	struct cvmx_pko_peb_ext_hdr_def_err_info_s cn73xx;
6169	struct cvmx_pko_peb_ext_hdr_def_err_info_s cn78xx;
6170	struct cvmx_pko_peb_ext_hdr_def_err_info_s cn78xxp1;
6171	struct cvmx_pko_peb_ext_hdr_def_err_info_s cnf75xx;
6172};
6173
6174typedef union cvmx_pko_peb_ext_hdr_def_err_info cvmx_pko_peb_ext_hdr_def_err_info_t;
6175
6176/**
6177 * cvmx_pko_peb_fcs_sop_err_info
6178 */
6179union cvmx_pko_peb_fcs_sop_err_info {
6180	u64 u64;
6181	struct cvmx_pko_peb_fcs_sop_err_info_s {
6182		u64 reserved_20_63 : 44;
6183		u64 val : 1;
6184		u64 fifo : 7;
6185		u64 chan : 12;
6186	} s;
6187	struct cvmx_pko_peb_fcs_sop_err_info_s cn73xx;
6188	struct cvmx_pko_peb_fcs_sop_err_info_s cn78xx;
6189	struct cvmx_pko_peb_fcs_sop_err_info_s cn78xxp1;
6190	struct cvmx_pko_peb_fcs_sop_err_info_s cnf75xx;
6191};
6192
6193typedef union cvmx_pko_peb_fcs_sop_err_info cvmx_pko_peb_fcs_sop_err_info_t;
6194
6195/**
6196 * cvmx_pko_peb_jump_def_err_info
6197 */
6198union cvmx_pko_peb_jump_def_err_info {
6199	u64 u64;
6200	struct cvmx_pko_peb_jump_def_err_info_s {
6201		u64 reserved_20_63 : 44;
6202		u64 val : 1;
6203		u64 fifo : 7;
6204		u64 chan : 12;
6205	} s;
6206	struct cvmx_pko_peb_jump_def_err_info_s cn73xx;
6207	struct cvmx_pko_peb_jump_def_err_info_s cn78xx;
6208	struct cvmx_pko_peb_jump_def_err_info_s cn78xxp1;
6209	struct cvmx_pko_peb_jump_def_err_info_s cnf75xx;
6210};
6211
6212typedef union cvmx_pko_peb_jump_def_err_info cvmx_pko_peb_jump_def_err_info_t;
6213
6214/**
6215 * cvmx_pko_peb_macx_cfg_wr_err_info
6216 */
6217union cvmx_pko_peb_macx_cfg_wr_err_info {
6218	u64 u64;
6219	struct cvmx_pko_peb_macx_cfg_wr_err_info_s {
6220		u64 reserved_8_63 : 56;
6221		u64 val : 1;
6222		u64 mac : 7;
6223	} s;
6224	struct cvmx_pko_peb_macx_cfg_wr_err_info_s cn73xx;
6225	struct cvmx_pko_peb_macx_cfg_wr_err_info_s cn78xx;
6226	struct cvmx_pko_peb_macx_cfg_wr_err_info_s cn78xxp1;
6227	struct cvmx_pko_peb_macx_cfg_wr_err_info_s cnf75xx;
6228};
6229
6230typedef union cvmx_pko_peb_macx_cfg_wr_err_info cvmx_pko_peb_macx_cfg_wr_err_info_t;
6231
6232/**
6233 * cvmx_pko_peb_max_link_err_info
6234 */
6235union cvmx_pko_peb_max_link_err_info {
6236	u64 u64;
6237	struct cvmx_pko_peb_max_link_err_info_s {
6238		u64 reserved_20_63 : 44;
6239		u64 val : 1;
6240		u64 fifo : 7;
6241		u64 chan : 12;
6242	} s;
6243	struct cvmx_pko_peb_max_link_err_info_s cn73xx;
6244	struct cvmx_pko_peb_max_link_err_info_s cn78xx;
6245	struct cvmx_pko_peb_max_link_err_info_s cn78xxp1;
6246	struct cvmx_pko_peb_max_link_err_info_s cnf75xx;
6247};
6248
6249typedef union cvmx_pko_peb_max_link_err_info cvmx_pko_peb_max_link_err_info_t;
6250
6251/**
6252 * cvmx_pko_peb_ncb_cfg
6253 */
6254union cvmx_pko_peb_ncb_cfg {
6255	u64 u64;
6256	struct cvmx_pko_peb_ncb_cfg_s {
6257		u64 reserved_1_63 : 63;
6258		u64 rstp : 1;
6259	} s;
6260	struct cvmx_pko_peb_ncb_cfg_s cn73xx;
6261	struct cvmx_pko_peb_ncb_cfg_s cn78xx;
6262	struct cvmx_pko_peb_ncb_cfg_s cn78xxp1;
6263	struct cvmx_pko_peb_ncb_cfg_s cnf75xx;
6264};
6265
6266typedef union cvmx_pko_peb_ncb_cfg cvmx_pko_peb_ncb_cfg_t;
6267
6268/**
6269 * cvmx_pko_peb_pad_err_info
6270 */
6271union cvmx_pko_peb_pad_err_info {
6272	u64 u64;
6273	struct cvmx_pko_peb_pad_err_info_s {
6274		u64 reserved_20_63 : 44;
6275		u64 val : 1;
6276		u64 fifo : 7;
6277		u64 chan : 12;
6278	} s;
6279	struct cvmx_pko_peb_pad_err_info_s cn73xx;
6280	struct cvmx_pko_peb_pad_err_info_s cn78xx;
6281	struct cvmx_pko_peb_pad_err_info_s cn78xxp1;
6282	struct cvmx_pko_peb_pad_err_info_s cnf75xx;
6283};
6284
6285typedef union cvmx_pko_peb_pad_err_info cvmx_pko_peb_pad_err_info_t;
6286
6287/**
6288 * cvmx_pko_peb_pse_fifo_err_info
6289 */
6290union cvmx_pko_peb_pse_fifo_err_info {
6291	u64 u64;
6292	struct cvmx_pko_peb_pse_fifo_err_info_s {
6293		u64 reserved_25_63 : 39;
6294		u64 link : 5;
6295		u64 val : 1;
6296		u64 fifo : 7;
6297		u64 chan : 12;
6298	} s;
6299	struct cvmx_pko_peb_pse_fifo_err_info_cn73xx {
6300		u64 reserved_20_63 : 44;
6301		u64 val : 1;
6302		u64 fifo : 7;
6303		u64 chan : 12;
6304	} cn73xx;
6305	struct cvmx_pko_peb_pse_fifo_err_info_s cn78xx;
6306	struct cvmx_pko_peb_pse_fifo_err_info_cn73xx cn78xxp1;
6307	struct cvmx_pko_peb_pse_fifo_err_info_s cnf75xx;
6308};
6309
6310typedef union cvmx_pko_peb_pse_fifo_err_info cvmx_pko_peb_pse_fifo_err_info_t;
6311
6312/**
6313 * cvmx_pko_peb_subd_addr_err_info
6314 */
6315union cvmx_pko_peb_subd_addr_err_info {
6316	u64 u64;
6317	struct cvmx_pko_peb_subd_addr_err_info_s {
6318		u64 reserved_20_63 : 44;
6319		u64 val : 1;
6320		u64 fifo : 7;
6321		u64 chan : 12;
6322	} s;
6323	struct cvmx_pko_peb_subd_addr_err_info_s cn73xx;
6324	struct cvmx_pko_peb_subd_addr_err_info_s cn78xx;
6325	struct cvmx_pko_peb_subd_addr_err_info_s cn78xxp1;
6326	struct cvmx_pko_peb_subd_addr_err_info_s cnf75xx;
6327};
6328
6329typedef union cvmx_pko_peb_subd_addr_err_info cvmx_pko_peb_subd_addr_err_info_t;
6330
6331/**
6332 * cvmx_pko_peb_subd_size_err_info
6333 */
6334union cvmx_pko_peb_subd_size_err_info {
6335	u64 u64;
6336	struct cvmx_pko_peb_subd_size_err_info_s {
6337		u64 reserved_20_63 : 44;
6338		u64 val : 1;
6339		u64 fifo : 7;
6340		u64 chan : 12;
6341	} s;
6342	struct cvmx_pko_peb_subd_size_err_info_s cn73xx;
6343	struct cvmx_pko_peb_subd_size_err_info_s cn78xx;
6344	struct cvmx_pko_peb_subd_size_err_info_s cn78xxp1;
6345	struct cvmx_pko_peb_subd_size_err_info_s cnf75xx;
6346};
6347
6348typedef union cvmx_pko_peb_subd_size_err_info cvmx_pko_peb_subd_size_err_info_t;
6349
6350/**
6351 * cvmx_pko_peb_trunc_err_info
6352 */
6353union cvmx_pko_peb_trunc_err_info {
6354	u64 u64;
6355	struct cvmx_pko_peb_trunc_err_info_s {
6356		u64 reserved_20_63 : 44;
6357		u64 val : 1;
6358		u64 fifo : 7;
6359		u64 chan : 12;
6360	} s;
6361	struct cvmx_pko_peb_trunc_err_info_s cn73xx;
6362	struct cvmx_pko_peb_trunc_err_info_s cn78xx;
6363	struct cvmx_pko_peb_trunc_err_info_s cn78xxp1;
6364	struct cvmx_pko_peb_trunc_err_info_s cnf75xx;
6365};
6366
6367typedef union cvmx_pko_peb_trunc_err_info cvmx_pko_peb_trunc_err_info_t;
6368
6369/**
6370 * cvmx_pko_peb_tso_cfg
6371 */
6372union cvmx_pko_peb_tso_cfg {
6373	u64 u64;
6374	struct cvmx_pko_peb_tso_cfg_s {
6375		u64 reserved_44_63 : 20;
6376		u64 fsf : 12;
6377		u64 reserved_28_31 : 4;
6378		u64 msf : 12;
6379		u64 reserved_12_15 : 4;
6380		u64 lsf : 12;
6381	} s;
6382	struct cvmx_pko_peb_tso_cfg_s cn73xx;
6383	struct cvmx_pko_peb_tso_cfg_s cn78xx;
6384	struct cvmx_pko_peb_tso_cfg_s cn78xxp1;
6385	struct cvmx_pko_peb_tso_cfg_s cnf75xx;
6386};
6387
6388typedef union cvmx_pko_peb_tso_cfg cvmx_pko_peb_tso_cfg_t;
6389
6390/**
6391 * cvmx_pko_pq_csr_bus_debug
6392 */
6393union cvmx_pko_pq_csr_bus_debug {
6394	u64 u64;
6395	struct cvmx_pko_pq_csr_bus_debug_s {
6396		u64 csr_bus_debug : 64;
6397	} s;
6398	struct cvmx_pko_pq_csr_bus_debug_s cn73xx;
6399	struct cvmx_pko_pq_csr_bus_debug_s cn78xx;
6400	struct cvmx_pko_pq_csr_bus_debug_s cn78xxp1;
6401	struct cvmx_pko_pq_csr_bus_debug_s cnf75xx;
6402};
6403
6404typedef union cvmx_pko_pq_csr_bus_debug cvmx_pko_pq_csr_bus_debug_t;
6405
6406/**
6407 * cvmx_pko_pq_debug_green
6408 */
6409union cvmx_pko_pq_debug_green {
6410	u64 u64;
6411	struct cvmx_pko_pq_debug_green_s {
6412		u64 g_valid : 32;
6413		u64 cred_ok_n : 32;
6414	} s;
6415	struct cvmx_pko_pq_debug_green_s cn73xx;
6416	struct cvmx_pko_pq_debug_green_s cn78xx;
6417	struct cvmx_pko_pq_debug_green_s cn78xxp1;
6418	struct cvmx_pko_pq_debug_green_s cnf75xx;
6419};
6420
6421typedef union cvmx_pko_pq_debug_green cvmx_pko_pq_debug_green_t;
6422
6423/**
6424 * cvmx_pko_pq_debug_links
6425 */
6426union cvmx_pko_pq_debug_links {
6427	u64 u64;
6428	struct cvmx_pko_pq_debug_links_s {
6429		u64 links_ready : 32;
6430		u64 peb_lnk_rdy_ir : 32;
6431	} s;
6432	struct cvmx_pko_pq_debug_links_s cn73xx;
6433	struct cvmx_pko_pq_debug_links_s cn78xx;
6434	struct cvmx_pko_pq_debug_links_s cn78xxp1;
6435	struct cvmx_pko_pq_debug_links_s cnf75xx;
6436};
6437
6438typedef union cvmx_pko_pq_debug_links cvmx_pko_pq_debug_links_t;
6439
6440/**
6441 * cvmx_pko_pq_debug_yellow
6442 */
6443union cvmx_pko_pq_debug_yellow {
6444	u64 u64;
6445	struct cvmx_pko_pq_debug_yellow_s {
6446		u64 y_valid : 32;
6447		u64 reserved_28_31 : 4;
6448		u64 link_vv : 28;
6449	} s;
6450	struct cvmx_pko_pq_debug_yellow_s cn73xx;
6451	struct cvmx_pko_pq_debug_yellow_s cn78xx;
6452	struct cvmx_pko_pq_debug_yellow_s cn78xxp1;
6453	struct cvmx_pko_pq_debug_yellow_s cnf75xx;
6454};
6455
6456typedef union cvmx_pko_pq_debug_yellow cvmx_pko_pq_debug_yellow_t;
6457
6458/**
6459 * cvmx_pko_pqa_debug
6460 */
6461union cvmx_pko_pqa_debug {
6462	u64 u64;
6463	struct cvmx_pko_pqa_debug_s {
6464		u64 dbg_vec : 64;
6465	} s;
6466	struct cvmx_pko_pqa_debug_s cn73xx;
6467	struct cvmx_pko_pqa_debug_s cn78xx;
6468	struct cvmx_pko_pqa_debug_s cn78xxp1;
6469	struct cvmx_pko_pqa_debug_s cnf75xx;
6470};
6471
6472typedef union cvmx_pko_pqa_debug cvmx_pko_pqa_debug_t;
6473
6474/**
6475 * cvmx_pko_pqb_debug
6476 *
6477 * This register has the same bit fields as PKO_PQA_DEBUG.
6478 *
6479 */
6480union cvmx_pko_pqb_debug {
6481	u64 u64;
6482	struct cvmx_pko_pqb_debug_s {
6483		u64 dbg_vec : 64;
6484	} s;
6485	struct cvmx_pko_pqb_debug_s cn73xx;
6486	struct cvmx_pko_pqb_debug_s cn78xx;
6487	struct cvmx_pko_pqb_debug_s cn78xxp1;
6488	struct cvmx_pko_pqb_debug_s cnf75xx;
6489};
6490
6491typedef union cvmx_pko_pqb_debug cvmx_pko_pqb_debug_t;
6492
6493/**
6494 * cvmx_pko_pse_dq_bist_status
6495 *
6496 * Each bit is the BIST result of an individual memory (per bit, 0 = pass and 1 = fail).
6497 *
6498 */
6499union cvmx_pko_pse_dq_bist_status {
6500	u64 u64;
6501	struct cvmx_pko_pse_dq_bist_status_s {
6502		u64 reserved_8_63 : 56;
6503		u64 rt7_sram : 1;
6504		u64 rt6_sram : 1;
6505		u64 rt5_sram : 1;
6506		u64 reserved_4_4 : 1;
6507		u64 rt3_sram : 1;
6508		u64 rt2_sram : 1;
6509		u64 rt1_sram : 1;
6510		u64 rt0_sram : 1;
6511	} s;
6512	struct cvmx_pko_pse_dq_bist_status_cn73xx {
6513		u64 reserved_5_63 : 59;
6514		u64 wt_sram : 1;
6515		u64 reserved_2_3 : 2;
6516		u64 rt1_sram : 1;
6517		u64 rt0_sram : 1;
6518	} cn73xx;
6519	struct cvmx_pko_pse_dq_bist_status_cn78xx {
6520		u64 reserved_9_63 : 55;
6521		u64 wt_sram : 1;
6522		u64 rt7_sram : 1;
6523		u64 rt6_sram : 1;
6524		u64 rt5_sram : 1;
6525		u64 rt4_sram : 1;
6526		u64 rt3_sram : 1;
6527		u64 rt2_sram : 1;
6528		u64 rt1_sram : 1;
6529		u64 rt0_sram : 1;
6530	} cn78xx;
6531	struct cvmx_pko_pse_dq_bist_status_cn78xx cn78xxp1;
6532	struct cvmx_pko_pse_dq_bist_status_cn73xx cnf75xx;
6533};
6534
6535typedef union cvmx_pko_pse_dq_bist_status cvmx_pko_pse_dq_bist_status_t;
6536
6537/**
6538 * cvmx_pko_pse_dq_ecc_ctl0
6539 */
6540union cvmx_pko_pse_dq_ecc_ctl0 {
6541	u64 u64;
6542	struct cvmx_pko_pse_dq_ecc_ctl0_s {
6543		u64 dq_wt_ram_flip : 2;
6544		u64 dq_wt_ram_cdis : 1;
6545		u64 dq_rt7_flip : 2;
6546		u64 dq_rt7_cdis : 1;
6547		u64 dq_rt6_flip : 2;
6548		u64 dq_rt6_cdis : 1;
6549		u64 dq_rt5_flip : 2;
6550		u64 dq_rt5_cdis : 1;
6551		u64 dq_rt4_flip : 2;
6552		u64 dq_rt4_cdis : 1;
6553		u64 dq_rt3_flip : 2;
6554		u64 dq_rt3_cdis : 1;
6555		u64 dq_rt2_flip : 2;
6556		u64 dq_rt2_cdis : 1;
6557		u64 dq_rt1_flip : 2;
6558		u64 dq_rt1_cdis : 1;
6559		u64 dq_rt0_flip : 2;
6560		u64 dq_rt0_cdis : 1;
6561		u64 reserved_0_36 : 37;
6562	} s;
6563	struct cvmx_pko_pse_dq_ecc_ctl0_cn73xx {
6564		u64 dq_wt_ram_flip : 2;
6565		u64 dq_wt_ram_cdis : 1;
6566		u64 reserved_43_60 : 18;
6567		u64 dq_rt1_flip : 2;
6568		u64 dq_rt1_cdis : 1;
6569		u64 dq_rt0_flip : 2;
6570		u64 dq_rt0_cdis : 1;
6571		u64 reserved_0_36 : 37;
6572	} cn73xx;
6573	struct cvmx_pko_pse_dq_ecc_ctl0_s cn78xx;
6574	struct cvmx_pko_pse_dq_ecc_ctl0_s cn78xxp1;
6575	struct cvmx_pko_pse_dq_ecc_ctl0_cn73xx cnf75xx;
6576};
6577
6578typedef union cvmx_pko_pse_dq_ecc_ctl0 cvmx_pko_pse_dq_ecc_ctl0_t;
6579
6580/**
6581 * cvmx_pko_pse_dq_ecc_dbe_sts0
6582 */
6583union cvmx_pko_pse_dq_ecc_dbe_sts0 {
6584	u64 u64;
6585	struct cvmx_pko_pse_dq_ecc_dbe_sts0_s {
6586		u64 dq_wt_ram_dbe : 1;
6587		u64 dq_rt7_dbe : 1;
6588		u64 dq_rt6_dbe : 1;
6589		u64 dq_rt5_dbe : 1;
6590		u64 dq_rt4_dbe : 1;
6591		u64 dq_rt3_dbe : 1;
6592		u64 dq_rt2_dbe : 1;
6593		u64 dq_rt1_dbe : 1;
6594		u64 dq_rt0_dbe : 1;
6595		u64 reserved_0_54 : 55;
6596	} s;
6597	struct cvmx_pko_pse_dq_ecc_dbe_sts0_cn73xx {
6598		u64 dq_wt_ram_dbe : 1;
6599		u64 reserved_57_62 : 6;
6600		u64 dq_rt1_dbe : 1;
6601		u64 dq_rt0_dbe : 1;
6602		u64 reserved_0_54 : 55;
6603	} cn73xx;
6604	struct cvmx_pko_pse_dq_ecc_dbe_sts0_s cn78xx;
6605	struct cvmx_pko_pse_dq_ecc_dbe_sts0_s cn78xxp1;
6606	struct cvmx_pko_pse_dq_ecc_dbe_sts0_cn73xx cnf75xx;
6607};
6608
6609typedef union cvmx_pko_pse_dq_ecc_dbe_sts0 cvmx_pko_pse_dq_ecc_dbe_sts0_t;
6610
6611/**
6612 * cvmx_pko_pse_dq_ecc_dbe_sts_cmb0
6613 */
6614union cvmx_pko_pse_dq_ecc_dbe_sts_cmb0 {
6615	u64 u64;
6616	struct cvmx_pko_pse_dq_ecc_dbe_sts_cmb0_s {
6617		u64 pse_dq_dbe_cmb0 : 1;
6618		u64 reserved_0_62 : 63;
6619	} s;
6620	struct cvmx_pko_pse_dq_ecc_dbe_sts_cmb0_s cn73xx;
6621	struct cvmx_pko_pse_dq_ecc_dbe_sts_cmb0_s cn78xx;
6622	struct cvmx_pko_pse_dq_ecc_dbe_sts_cmb0_s cn78xxp1;
6623	struct cvmx_pko_pse_dq_ecc_dbe_sts_cmb0_s cnf75xx;
6624};
6625
6626typedef union cvmx_pko_pse_dq_ecc_dbe_sts_cmb0 cvmx_pko_pse_dq_ecc_dbe_sts_cmb0_t;
6627
6628/**
6629 * cvmx_pko_pse_dq_ecc_sbe_sts0
6630 */
6631union cvmx_pko_pse_dq_ecc_sbe_sts0 {
6632	u64 u64;
6633	struct cvmx_pko_pse_dq_ecc_sbe_sts0_s {
6634		u64 dq_wt_ram_sbe : 1;
6635		u64 dq_rt7_sbe : 1;
6636		u64 dq_rt6_sbe : 1;
6637		u64 dq_rt5_sbe : 1;
6638		u64 dq_rt4_sbe : 1;
6639		u64 dq_rt3_sbe : 1;
6640		u64 dq_rt2_sbe : 1;
6641		u64 dq_rt1_sbe : 1;
6642		u64 dq_rt0_sbe : 1;
6643		u64 reserved_0_54 : 55;
6644	} s;
6645	struct cvmx_pko_pse_dq_ecc_sbe_sts0_cn73xx {
6646		u64 dq_wt_ram_sbe : 1;
6647		u64 reserved_57_62 : 6;
6648		u64 dq_rt1_sbe : 1;
6649		u64 dq_rt0_sbe : 1;
6650		u64 reserved_0_54 : 55;
6651	} cn73xx;
6652	struct cvmx_pko_pse_dq_ecc_sbe_sts0_s cn78xx;
6653	struct cvmx_pko_pse_dq_ecc_sbe_sts0_s cn78xxp1;
6654	struct cvmx_pko_pse_dq_ecc_sbe_sts0_cn73xx cnf75xx;
6655};
6656
6657typedef union cvmx_pko_pse_dq_ecc_sbe_sts0 cvmx_pko_pse_dq_ecc_sbe_sts0_t;
6658
6659/**
6660 * cvmx_pko_pse_dq_ecc_sbe_sts_cmb0
6661 */
6662union cvmx_pko_pse_dq_ecc_sbe_sts_cmb0 {
6663	u64 u64;
6664	struct cvmx_pko_pse_dq_ecc_sbe_sts_cmb0_s {
6665		u64 pse_dq_sbe_cmb0 : 1;
6666		u64 reserved_0_62 : 63;
6667	} s;
6668	struct cvmx_pko_pse_dq_ecc_sbe_sts_cmb0_s cn73xx;
6669	struct cvmx_pko_pse_dq_ecc_sbe_sts_cmb0_s cn78xx;
6670	struct cvmx_pko_pse_dq_ecc_sbe_sts_cmb0_s cn78xxp1;
6671	struct cvmx_pko_pse_dq_ecc_sbe_sts_cmb0_s cnf75xx;
6672};
6673
6674typedef union cvmx_pko_pse_dq_ecc_sbe_sts_cmb0 cvmx_pko_pse_dq_ecc_sbe_sts_cmb0_t;
6675
6676/**
6677 * cvmx_pko_pse_pq_bist_status
6678 *
6679 * Each bit is the BIST result of an individual memory (per bit, 0 = pass and 1 = fail).
6680 *
6681 */
6682union cvmx_pko_pse_pq_bist_status {
6683	u64 u64;
6684	struct cvmx_pko_pse_pq_bist_status_s {
6685		u64 reserved_15_63 : 49;
6686		u64 tp_sram : 1;
6687		u64 irq_fifo_sram : 1;
6688		u64 wmd_sram : 1;
6689		u64 wms_sram : 1;
6690		u64 cxd_sram : 1;
6691		u64 dqd_sram : 1;
6692		u64 dqs_sram : 1;
6693		u64 pqd_sram : 1;
6694		u64 pqr_sram : 1;
6695		u64 pqy_sram : 1;
6696		u64 pqg_sram : 1;
6697		u64 std_sram : 1;
6698		u64 st_sram : 1;
6699		u64 reserved_1_1 : 1;
6700		u64 cxs_sram : 1;
6701	} s;
6702	struct cvmx_pko_pse_pq_bist_status_cn73xx {
6703		u64 reserved_15_63 : 49;
6704		u64 tp_sram : 1;
6705		u64 reserved_13_13 : 1;
6706		u64 wmd_sram : 1;
6707		u64 reserved_11_11 : 1;
6708		u64 cxd_sram : 1;
6709		u64 dqd_sram : 1;
6710		u64 dqs_sram : 1;
6711		u64 pqd_sram : 1;
6712		u64 pqr_sram : 1;
6713		u64 pqy_sram : 1;
6714		u64 pqg_sram : 1;
6715		u64 std_sram : 1;
6716		u64 st_sram : 1;
6717		u64 reserved_1_1 : 1;
6718		u64 cxs_sram : 1;
6719	} cn73xx;
6720	struct cvmx_pko_pse_pq_bist_status_s cn78xx;
6721	struct cvmx_pko_pse_pq_bist_status_s cn78xxp1;
6722	struct cvmx_pko_pse_pq_bist_status_cn73xx cnf75xx;
6723};
6724
6725typedef union cvmx_pko_pse_pq_bist_status cvmx_pko_pse_pq_bist_status_t;
6726
6727/**
6728 * cvmx_pko_pse_pq_ecc_ctl0
6729 */
6730union cvmx_pko_pse_pq_ecc_ctl0 {
6731	u64 u64;
6732	struct cvmx_pko_pse_pq_ecc_ctl0_s {
6733		u64 pq_cxs_ram_flip : 2;
6734		u64 pq_cxs_ram_cdis : 1;
6735		u64 pq_cxd_ram_flip : 2;
6736		u64 pq_cxd_ram_cdis : 1;
6737		u64 irq_fifo_sram_flip : 2;
6738		u64 irq_fifo_sram_cdis : 1;
6739		u64 tp_sram_flip : 2;
6740		u64 tp_sram_cdis : 1;
6741		u64 pq_std_ram_flip : 2;
6742		u64 pq_std_ram_cdis : 1;
6743		u64 pq_st_ram_flip : 2;
6744		u64 pq_st_ram_cdis : 1;
6745		u64 pq_wmd_ram_flip : 2;
6746		u64 pq_wmd_ram_cdis : 1;
6747		u64 pq_wms_ram_flip : 2;
6748		u64 pq_wms_ram_cdis : 1;
6749		u64 reserved_0_39 : 40;
6750	} s;
6751	struct cvmx_pko_pse_pq_ecc_ctl0_cn73xx {
6752		u64 pq_cxs_ram_flip : 2;
6753		u64 pq_cxs_ram_cdis : 1;
6754		u64 pq_cxd_ram_flip : 2;
6755		u64 pq_cxd_ram_cdis : 1;
6756		u64 reserved_55_57 : 3;
6757		u64 tp_sram_flip : 2;
6758		u64 tp_sram_cdis : 1;
6759		u64 pq_std_ram_flip : 2;
6760		u64 pq_std_ram_cdis : 1;
6761		u64 pq_st_ram_flip : 2;
6762		u64 pq_st_ram_cdis : 1;
6763		u64 pq_wmd_ram_flip : 2;
6764		u64 pq_wmd_ram_cdis : 1;
6765		u64 reserved_0_42 : 43;
6766	} cn73xx;
6767	struct cvmx_pko_pse_pq_ecc_ctl0_s cn78xx;
6768	struct cvmx_pko_pse_pq_ecc_ctl0_s cn78xxp1;
6769	struct cvmx_pko_pse_pq_ecc_ctl0_cn73xx cnf75xx;
6770};
6771
6772typedef union cvmx_pko_pse_pq_ecc_ctl0 cvmx_pko_pse_pq_ecc_ctl0_t;
6773
6774/**
6775 * cvmx_pko_pse_pq_ecc_dbe_sts0
6776 */
6777union cvmx_pko_pse_pq_ecc_dbe_sts0 {
6778	u64 u64;
6779	struct cvmx_pko_pse_pq_ecc_dbe_sts0_s {
6780		u64 pq_cxs_ram_dbe : 1;
6781		u64 pq_cxd_ram_dbe : 1;
6782		u64 irq_fifo_sram_dbe : 1;
6783		u64 tp_sram_dbe : 1;
6784		u64 pq_std_ram_dbe : 1;
6785		u64 pq_st_ram_dbe : 1;
6786		u64 pq_wmd_ram_dbe : 1;
6787		u64 pq_wms_ram_dbe : 1;
6788		u64 reserved_0_55 : 56;
6789	} s;
6790	struct cvmx_pko_pse_pq_ecc_dbe_sts0_cn73xx {
6791		u64 pq_cxs_ram_dbe : 1;
6792		u64 pq_cxd_ram_dbe : 1;
6793		u64 reserved_61_61 : 1;
6794		u64 tp_sram_dbe : 1;
6795		u64 pq_std_ram_dbe : 1;
6796		u64 pq_st_ram_dbe : 1;
6797		u64 pq_wmd_ram_dbe : 1;
6798		u64 reserved_0_56 : 57;
6799	} cn73xx;
6800	struct cvmx_pko_pse_pq_ecc_dbe_sts0_s cn78xx;
6801	struct cvmx_pko_pse_pq_ecc_dbe_sts0_s cn78xxp1;
6802	struct cvmx_pko_pse_pq_ecc_dbe_sts0_cn73xx cnf75xx;
6803};
6804
6805typedef union cvmx_pko_pse_pq_ecc_dbe_sts0 cvmx_pko_pse_pq_ecc_dbe_sts0_t;
6806
6807/**
6808 * cvmx_pko_pse_pq_ecc_dbe_sts_cmb0
6809 */
6810union cvmx_pko_pse_pq_ecc_dbe_sts_cmb0 {
6811	u64 u64;
6812	struct cvmx_pko_pse_pq_ecc_dbe_sts_cmb0_s {
6813		u64 pse_pq_dbe_cmb0 : 1;
6814		u64 reserved_0_62 : 63;
6815	} s;
6816	struct cvmx_pko_pse_pq_ecc_dbe_sts_cmb0_s cn73xx;
6817	struct cvmx_pko_pse_pq_ecc_dbe_sts_cmb0_s cn78xx;
6818	struct cvmx_pko_pse_pq_ecc_dbe_sts_cmb0_s cn78xxp1;
6819	struct cvmx_pko_pse_pq_ecc_dbe_sts_cmb0_s cnf75xx;
6820};
6821
6822typedef union cvmx_pko_pse_pq_ecc_dbe_sts_cmb0 cvmx_pko_pse_pq_ecc_dbe_sts_cmb0_t;
6823
6824/**
6825 * cvmx_pko_pse_pq_ecc_sbe_sts0
6826 */
6827union cvmx_pko_pse_pq_ecc_sbe_sts0 {
6828	u64 u64;
6829	struct cvmx_pko_pse_pq_ecc_sbe_sts0_s {
6830		u64 pq_cxs_ram_sbe : 1;
6831		u64 pq_cxd_ram_sbe : 1;
6832		u64 irq_fifo_sram_sbe : 1;
6833		u64 tp_sram_sbe : 1;
6834		u64 pq_std_ram_sbe : 1;
6835		u64 pq_st_ram_sbe : 1;
6836		u64 pq_wmd_ram_sbe : 1;
6837		u64 pq_wms_ram_sbe : 1;
6838		u64 reserved_0_55 : 56;
6839	} s;
6840	struct cvmx_pko_pse_pq_ecc_sbe_sts0_cn73xx {
6841		u64 pq_cxs_ram_sbe : 1;
6842		u64 pq_cxd_ram_sbe : 1;
6843		u64 reserved_61_61 : 1;
6844		u64 tp_sram_sbe : 1;
6845		u64 pq_std_ram_sbe : 1;
6846		u64 pq_st_ram_sbe : 1;
6847		u64 pq_wmd_ram_sbe : 1;
6848		u64 reserved_0_56 : 57;
6849	} cn73xx;
6850	struct cvmx_pko_pse_pq_ecc_sbe_sts0_s cn78xx;
6851	struct cvmx_pko_pse_pq_ecc_sbe_sts0_s cn78xxp1;
6852	struct cvmx_pko_pse_pq_ecc_sbe_sts0_cn73xx cnf75xx;
6853};
6854
6855typedef union cvmx_pko_pse_pq_ecc_sbe_sts0 cvmx_pko_pse_pq_ecc_sbe_sts0_t;
6856
6857/**
6858 * cvmx_pko_pse_pq_ecc_sbe_sts_cmb0
6859 */
6860union cvmx_pko_pse_pq_ecc_sbe_sts_cmb0 {
6861	u64 u64;
6862	struct cvmx_pko_pse_pq_ecc_sbe_sts_cmb0_s {
6863		u64 pse_pq_sbe_cmb0 : 1;
6864		u64 reserved_0_62 : 63;
6865	} s;
6866	struct cvmx_pko_pse_pq_ecc_sbe_sts_cmb0_s cn73xx;
6867	struct cvmx_pko_pse_pq_ecc_sbe_sts_cmb0_s cn78xx;
6868	struct cvmx_pko_pse_pq_ecc_sbe_sts_cmb0_s cn78xxp1;
6869	struct cvmx_pko_pse_pq_ecc_sbe_sts_cmb0_s cnf75xx;
6870};
6871
6872typedef union cvmx_pko_pse_pq_ecc_sbe_sts_cmb0 cvmx_pko_pse_pq_ecc_sbe_sts_cmb0_t;
6873
6874/**
6875 * cvmx_pko_pse_sq1_bist_status
6876 *
6877 * Each bit is the BIST result of an individual memory (per bit, 0 = pass and 1 = fail).
6878 *
6879 */
6880union cvmx_pko_pse_sq1_bist_status {
6881	u64 u64;
6882	struct cvmx_pko_pse_sq1_bist_status_s {
6883		u64 reserved_29_63 : 35;
6884		u64 sc_sram : 1;
6885		u64 pc_sram : 1;
6886		u64 xon_sram : 1;
6887		u64 cc_sram : 1;
6888		u64 vc1_sram : 1;
6889		u64 vc0_sram : 1;
6890		u64 reserved_21_22 : 2;
6891		u64 tp1_sram : 1;
6892		u64 tp0_sram : 1;
6893		u64 xo_sram : 1;
6894		u64 rt_sram : 1;
6895		u64 reserved_9_16 : 8;
6896		u64 tw1_cmd_fifo : 1;
6897		u64 std_sram : 1;
6898		u64 sts_sram : 1;
6899		u64 tw0_cmd_fifo : 1;
6900		u64 cxd_sram : 1;
6901		u64 cxs_sram : 1;
6902		u64 nt_sram : 1;
6903		u64 pt_sram : 1;
6904		u64 wt_sram : 1;
6905	} s;
6906	struct cvmx_pko_pse_sq1_bist_status_cn73xx {
6907		u64 reserved_29_63 : 35;
6908		u64 sc_sram : 1;
6909		u64 pc_sram : 1;
6910		u64 xon_sram : 1;
6911		u64 cc_sram : 1;
6912		u64 vc1_sram : 1;
6913		u64 vc0_sram : 1;
6914		u64 reserved_20_22 : 3;
6915		u64 tp0_sram : 1;
6916		u64 xo_sram : 1;
6917		u64 rt_sram : 1;
6918		u64 reserved_9_16 : 8;
6919		u64 tw1_cmd_fifo : 1;
6920		u64 std_sram : 1;
6921		u64 sts_sram : 1;
6922		u64 tw0_cmd_fifo : 1;
6923		u64 cxd_sram : 1;
6924		u64 cxs_sram : 1;
6925		u64 nt_sram : 1;
6926		u64 pt_sram : 1;
6927		u64 wt_sram : 1;
6928	} cn73xx;
6929	struct cvmx_pko_pse_sq1_bist_status_s cn78xx;
6930	struct cvmx_pko_pse_sq1_bist_status_s cn78xxp1;
6931	struct cvmx_pko_pse_sq1_bist_status_cn73xx cnf75xx;
6932};
6933
6934typedef union cvmx_pko_pse_sq1_bist_status cvmx_pko_pse_sq1_bist_status_t;
6935
6936/**
6937 * cvmx_pko_pse_sq1_ecc_ctl0
6938 */
6939union cvmx_pko_pse_sq1_ecc_ctl0 {
6940	u64 u64;
6941	struct cvmx_pko_pse_sq1_ecc_ctl0_s {
6942		u64 cxs_ram_flip : 2;
6943		u64 cxs_ram_cdis : 1;
6944		u64 cxd_ram_flip : 2;
6945		u64 cxd_ram_cdis : 1;
6946		u64 vc1_sram_flip : 2;
6947		u64 vc1_sram_cdis : 1;
6948		u64 vc0_sram_flip : 2;
6949		u64 vc0_sram_cdis : 1;
6950		u64 sq_pt_ram_flip : 2;
6951		u64 sq_pt_ram_cdis : 1;
6952		u64 sq_nt_ram_flip : 2;
6953		u64 sq_nt_ram_cdis : 1;
6954		u64 rt_ram_flip : 2;
6955		u64 rt_ram_cdis : 1;
6956		u64 pc_ram_flip : 2;
6957		u64 pc_ram_cdis : 1;
6958		u64 tw1_cmd_fifo_ram_flip : 2;
6959		u64 tw1_cmd_fifo_ram_cdis : 1;
6960		u64 tw0_cmd_fifo_ram_flip : 2;
6961		u64 tw0_cmd_fifo_ram_cdis : 1;
6962		u64 tp1_sram_flip : 2;
6963		u64 tp1_sram_cdis : 1;
6964		u64 tp0_sram_flip : 2;
6965		u64 tp0_sram_cdis : 1;
6966		u64 sts1_ram_flip : 2;
6967		u64 sts1_ram_cdis : 1;
6968		u64 sts0_ram_flip : 2;
6969		u64 sts0_ram_cdis : 1;
6970		u64 std1_ram_flip : 2;
6971		u64 std1_ram_cdis : 1;
6972		u64 std0_ram_flip : 2;
6973		u64 std0_ram_cdis : 1;
6974		u64 wt_ram_flip : 2;
6975		u64 wt_ram_cdis : 1;
6976		u64 sc_ram_flip : 2;
6977		u64 sc_ram_cdis : 1;
6978		u64 reserved_0_9 : 10;
6979	} s;
6980	struct cvmx_pko_pse_sq1_ecc_ctl0_cn73xx {
6981		u64 cxs_ram_flip : 2;
6982		u64 cxs_ram_cdis : 1;
6983		u64 cxd_ram_flip : 2;
6984		u64 cxd_ram_cdis : 1;
6985		u64 reserved_55_57 : 3;
6986		u64 vc0_sram_flip : 2;
6987		u64 vc0_sram_cdis : 1;
6988		u64 sq_pt_ram_flip : 2;
6989		u64 sq_pt_ram_cdis : 1;
6990		u64 sq_nt_ram_flip : 2;
6991		u64 sq_nt_ram_cdis : 1;
6992		u64 rt_ram_flip : 2;
6993		u64 rt_ram_cdis : 1;
6994		u64 pc_ram_flip : 2;
6995		u64 pc_ram_cdis : 1;
6996		u64 reserved_37_39 : 3;
6997		u64 tw0_cmd_fifo_ram_flip : 2;
6998		u64 tw0_cmd_fifo_ram_cdis : 1;
6999		u64 reserved_31_33 : 3;
7000		u64 tp0_sram_flip : 2;
7001		u64 tp0_sram_cdis : 1;
7002		u64 reserved_25_27 : 3;
7003		u64 sts0_ram_flip : 2;
7004		u64 sts0_ram_cdis : 1;
7005		u64 reserved_19_21 : 3;
7006		u64 std0_ram_flip : 2;
7007		u64 std0_ram_cdis : 1;
7008		u64 wt_ram_flip : 2;
7009		u64 wt_ram_cdis : 1;
7010		u64 sc_ram_flip : 2;
7011		u64 sc_ram_cdis : 1;
7012		u64 reserved_0_9 : 10;
7013	} cn73xx;
7014	struct cvmx_pko_pse_sq1_ecc_ctl0_s cn78xx;
7015	struct cvmx_pko_pse_sq1_ecc_ctl0_s cn78xxp1;
7016	struct cvmx_pko_pse_sq1_ecc_ctl0_cn73xx cnf75xx;
7017};
7018
7019typedef union cvmx_pko_pse_sq1_ecc_ctl0 cvmx_pko_pse_sq1_ecc_ctl0_t;
7020
7021/**
7022 * cvmx_pko_pse_sq1_ecc_dbe_sts0
7023 */
7024union cvmx_pko_pse_sq1_ecc_dbe_sts0 {
7025	u64 u64;
7026	struct cvmx_pko_pse_sq1_ecc_dbe_sts0_s {
7027		u64 cxs_ram_dbe : 1;
7028		u64 cxd_ram_dbe : 1;
7029		u64 vc1_sram_dbe : 1;
7030		u64 vc0_sram_dbe : 1;
7031		u64 sq_pt_ram_dbe : 1;
7032		u64 sq_nt_ram_dbe : 1;
7033		u64 rt_ram_dbe : 1;
7034		u64 pc_ram_dbe : 1;
7035		u64 tw1_cmd_fifo_ram_dbe : 1;
7036		u64 tw0_cmd_fifo_ram_dbe : 1;
7037		u64 tp1_sram_dbe : 1;
7038		u64 tp0_sram_dbe : 1;
7039		u64 sts1_ram_dbe : 1;
7040		u64 sts0_ram_dbe : 1;
7041		u64 std1_ram_dbe : 1;
7042		u64 std0_ram_dbe : 1;
7043		u64 wt_ram_dbe : 1;
7044		u64 sc_ram_dbe : 1;
7045		u64 reserved_0_45 : 46;
7046	} s;
7047	struct cvmx_pko_pse_sq1_ecc_dbe_sts0_cn73xx {
7048		u64 cxs_ram_dbe : 1;
7049		u64 cxd_ram_dbe : 1;
7050		u64 reserved_61_61 : 1;
7051		u64 vc0_sram_dbe : 1;
7052		u64 sq_pt_ram_dbe : 1;
7053		u64 sq_nt_ram_dbe : 1;
7054		u64 rt_ram_dbe : 1;
7055		u64 pc_ram_dbe : 1;
7056		u64 reserved_55_55 : 1;
7057		u64 tw0_cmd_fifo_ram_dbe : 1;
7058		u64 reserved_53_53 : 1;
7059		u64 tp0_sram_dbe : 1;
7060		u64 reserved_51_51 : 1;
7061		u64 sts0_ram_dbe : 1;
7062		u64 reserved_49_49 : 1;
7063		u64 std0_ram_dbe : 1;
7064		u64 wt_ram_dbe : 1;
7065		u64 sc_ram_dbe : 1;
7066		u64 reserved_0_45 : 46;
7067	} cn73xx;
7068	struct cvmx_pko_pse_sq1_ecc_dbe_sts0_s cn78xx;
7069	struct cvmx_pko_pse_sq1_ecc_dbe_sts0_s cn78xxp1;
7070	struct cvmx_pko_pse_sq1_ecc_dbe_sts0_cn73xx cnf75xx;
7071};
7072
7073typedef union cvmx_pko_pse_sq1_ecc_dbe_sts0 cvmx_pko_pse_sq1_ecc_dbe_sts0_t;
7074
7075/**
7076 * cvmx_pko_pse_sq1_ecc_dbe_sts_cmb0
7077 */
7078union cvmx_pko_pse_sq1_ecc_dbe_sts_cmb0 {
7079	u64 u64;
7080	struct cvmx_pko_pse_sq1_ecc_dbe_sts_cmb0_s {
7081		u64 pse_sq1_dbe_cmb0 : 1;
7082		u64 reserved_0_62 : 63;
7083	} s;
7084	struct cvmx_pko_pse_sq1_ecc_dbe_sts_cmb0_s cn73xx;
7085	struct cvmx_pko_pse_sq1_ecc_dbe_sts_cmb0_s cn78xx;
7086	struct cvmx_pko_pse_sq1_ecc_dbe_sts_cmb0_s cn78xxp1;
7087	struct cvmx_pko_pse_sq1_ecc_dbe_sts_cmb0_s cnf75xx;
7088};
7089
7090typedef union cvmx_pko_pse_sq1_ecc_dbe_sts_cmb0 cvmx_pko_pse_sq1_ecc_dbe_sts_cmb0_t;
7091
7092/**
7093 * cvmx_pko_pse_sq1_ecc_sbe_sts0
7094 */
7095union cvmx_pko_pse_sq1_ecc_sbe_sts0 {
7096	u64 u64;
7097	struct cvmx_pko_pse_sq1_ecc_sbe_sts0_s {
7098		u64 cxs_ram_sbe : 1;
7099		u64 cxd_ram_sbe : 1;
7100		u64 vc1_sram_sbe : 1;
7101		u64 vc0_sram_sbe : 1;
7102		u64 sq_pt_ram_sbe : 1;
7103		u64 sq_nt_ram_sbe : 1;
7104		u64 rt_ram_sbe : 1;
7105		u64 pc_ram_sbe : 1;
7106		u64 tw1_cmd_fifo_ram_sbe : 1;
7107		u64 tw0_cmd_fifo_ram_sbe : 1;
7108		u64 tp1_sram_sbe : 1;
7109		u64 tp0_sram_sbe : 1;
7110		u64 sts1_ram_sbe : 1;
7111		u64 sts0_ram_sbe : 1;
7112		u64 std1_ram_sbe : 1;
7113		u64 std0_ram_sbe : 1;
7114		u64 wt_ram_sbe : 1;
7115		u64 sc_ram_sbe : 1;
7116		u64 reserved_0_45 : 46;
7117	} s;
7118	struct cvmx_pko_pse_sq1_ecc_sbe_sts0_cn73xx {
7119		u64 cxs_ram_sbe : 1;
7120		u64 cxd_ram_sbe : 1;
7121		u64 reserved_61_61 : 1;
7122		u64 vc0_sram_sbe : 1;
7123		u64 sq_pt_ram_sbe : 1;
7124		u64 sq_nt_ram_sbe : 1;
7125		u64 rt_ram_sbe : 1;
7126		u64 pc_ram_sbe : 1;
7127		u64 reserved_55_55 : 1;
7128		u64 tw0_cmd_fifo_ram_sbe : 1;
7129		u64 reserved_53_53 : 1;
7130		u64 tp0_sram_sbe : 1;
7131		u64 reserved_51_51 : 1;
7132		u64 sts0_ram_sbe : 1;
7133		u64 reserved_49_49 : 1;
7134		u64 std0_ram_sbe : 1;
7135		u64 wt_ram_sbe : 1;
7136		u64 sc_ram_sbe : 1;
7137		u64 reserved_0_45 : 46;
7138	} cn73xx;
7139	struct cvmx_pko_pse_sq1_ecc_sbe_sts0_s cn78xx;
7140	struct cvmx_pko_pse_sq1_ecc_sbe_sts0_s cn78xxp1;
7141	struct cvmx_pko_pse_sq1_ecc_sbe_sts0_cn73xx cnf75xx;
7142};
7143
7144typedef union cvmx_pko_pse_sq1_ecc_sbe_sts0 cvmx_pko_pse_sq1_ecc_sbe_sts0_t;
7145
7146/**
7147 * cvmx_pko_pse_sq1_ecc_sbe_sts_cmb0
7148 */
7149union cvmx_pko_pse_sq1_ecc_sbe_sts_cmb0 {
7150	u64 u64;
7151	struct cvmx_pko_pse_sq1_ecc_sbe_sts_cmb0_s {
7152		u64 pse_sq1_sbe_cmb0 : 1;
7153		u64 reserved_0_62 : 63;
7154	} s;
7155	struct cvmx_pko_pse_sq1_ecc_sbe_sts_cmb0_s cn73xx;
7156	struct cvmx_pko_pse_sq1_ecc_sbe_sts_cmb0_s cn78xx;
7157	struct cvmx_pko_pse_sq1_ecc_sbe_sts_cmb0_s cn78xxp1;
7158	struct cvmx_pko_pse_sq1_ecc_sbe_sts_cmb0_s cnf75xx;
7159};
7160
7161typedef union cvmx_pko_pse_sq1_ecc_sbe_sts_cmb0 cvmx_pko_pse_sq1_ecc_sbe_sts_cmb0_t;
7162
7163/**
7164 * cvmx_pko_pse_sq2_bist_status
7165 *
7166 * Each bit is the BIST result of an individual memory (per bit, 0 = pass and 1 = fail).
7167 *
7168 */
7169union cvmx_pko_pse_sq2_bist_status {
7170	u64 u64;
7171	struct cvmx_pko_pse_sq2_bist_status_s {
7172		u64 reserved_29_63 : 35;
7173		u64 sc_sram : 1;
7174		u64 reserved_21_27 : 7;
7175		u64 tp1_sram : 1;
7176		u64 tp0_sram : 1;
7177		u64 reserved_18_18 : 1;
7178		u64 rt_sram : 1;
7179		u64 reserved_9_16 : 8;
7180		u64 tw1_cmd_fifo : 1;
7181		u64 std_sram : 1;
7182		u64 sts_sram : 1;
7183		u64 tw0_cmd_fifo : 1;
7184		u64 reserved_3_4 : 2;
7185		u64 nt_sram : 1;
7186		u64 pt_sram : 1;
7187		u64 wt_sram : 1;
7188	} s;
7189	struct cvmx_pko_pse_sq2_bist_status_cn73xx {
7190		u64 reserved_29_63 : 35;
7191		u64 sc_sram : 1;
7192		u64 reserved_20_27 : 8;
7193		u64 tp0_sram : 1;
7194		u64 reserved_18_18 : 1;
7195		u64 rt_sram : 1;
7196		u64 reserved_8_16 : 9;
7197		u64 std_sram : 1;
7198		u64 sts_sram : 1;
7199		u64 tw0_cmd_fifo : 1;
7200		u64 reserved_3_4 : 2;
7201		u64 nt_sram : 1;
7202		u64 pt_sram : 1;
7203		u64 wt_sram : 1;
7204	} cn73xx;
7205	struct cvmx_pko_pse_sq2_bist_status_s cn78xx;
7206	struct cvmx_pko_pse_sq2_bist_status_s cn78xxp1;
7207	struct cvmx_pko_pse_sq2_bist_status_cn73xx cnf75xx;
7208};
7209
7210typedef union cvmx_pko_pse_sq2_bist_status cvmx_pko_pse_sq2_bist_status_t;
7211
7212/**
7213 * cvmx_pko_pse_sq2_ecc_ctl0
7214 */
7215union cvmx_pko_pse_sq2_ecc_ctl0 {
7216	u64 u64;
7217	struct cvmx_pko_pse_sq2_ecc_ctl0_s {
7218		u64 sq_pt_ram_flip : 2;
7219		u64 sq_pt_ram_cdis : 1;
7220		u64 sq_nt_ram_flip : 2;
7221		u64 sq_nt_ram_cdis : 1;
7222		u64 rt_ram_flip : 2;
7223		u64 rt_ram_cdis : 1;
7224		u64 tw1_cmd_fifo_ram_flip : 2;
7225		u64 tw1_cmd_fifo_ram_cdis : 1;
7226		u64 tw0_cmd_fifo_ram_flip : 2;
7227		u64 tw0_cmd_fifo_ram_cdis : 1;
7228		u64 tp1_sram_flip : 2;
7229		u64 tp1_sram_cdis : 1;
7230		u64 tp0_sram_flip : 2;
7231		u64 tp0_sram_cdis : 1;
7232		u64 sts1_ram_flip : 2;
7233		u64 sts1_ram_cdis : 1;
7234		u64 sts0_ram_flip : 2;
7235		u64 sts0_ram_cdis : 1;
7236		u64 std1_ram_flip : 2;
7237		u64 std1_ram_cdis : 1;
7238		u64 std0_ram_flip : 2;
7239		u64 std0_ram_cdis : 1;
7240		u64 wt_ram_flip : 2;
7241		u64 wt_ram_cdis : 1;
7242		u64 sc_ram_flip : 2;
7243		u64 sc_ram_cdis : 1;
7244		u64 reserved_0_24 : 25;
7245	} s;
7246	struct cvmx_pko_pse_sq2_ecc_ctl0_cn73xx {
7247		u64 sq_pt_ram_flip : 2;
7248		u64 sq_pt_ram_cdis : 1;
7249		u64 sq_nt_ram_flip : 2;
7250		u64 sq_nt_ram_cdis : 1;
7251		u64 rt_ram_flip : 2;
7252		u64 rt_ram_cdis : 1;
7253		u64 reserved_52_54 : 3;
7254		u64 tw0_cmd_fifo_ram_flip : 2;
7255		u64 tw0_cmd_fifo_ram_cdis : 1;
7256		u64 reserved_46_48 : 3;
7257		u64 tp0_sram_flip : 2;
7258		u64 tp0_sram_cdis : 1;
7259		u64 reserved_40_42 : 3;
7260		u64 sts0_ram_flip : 2;
7261		u64 sts0_ram_cdis : 1;
7262		u64 reserved_34_36 : 3;
7263		u64 std0_ram_flip : 2;
7264		u64 std0_ram_cdis : 1;
7265		u64 wt_ram_flip : 2;
7266		u64 wt_ram_cdis : 1;
7267		u64 sc_ram_flip : 2;
7268		u64 sc_ram_cdis : 1;
7269		u64 reserved_0_24 : 25;
7270	} cn73xx;
7271	struct cvmx_pko_pse_sq2_ecc_ctl0_s cn78xx;
7272	struct cvmx_pko_pse_sq2_ecc_ctl0_s cn78xxp1;
7273	struct cvmx_pko_pse_sq2_ecc_ctl0_cn73xx cnf75xx;
7274};
7275
7276typedef union cvmx_pko_pse_sq2_ecc_ctl0 cvmx_pko_pse_sq2_ecc_ctl0_t;
7277
7278/**
7279 * cvmx_pko_pse_sq2_ecc_dbe_sts0
7280 */
7281union cvmx_pko_pse_sq2_ecc_dbe_sts0 {
7282	u64 u64;
7283	struct cvmx_pko_pse_sq2_ecc_dbe_sts0_s {
7284		u64 sq_pt_ram_dbe : 1;
7285		u64 sq_nt_ram_dbe : 1;
7286		u64 rt_ram_dbe : 1;
7287		u64 tw1_cmd_fifo_ram_dbe : 1;
7288		u64 tw0_cmd_fifo_ram_dbe : 1;
7289		u64 tp1_sram_dbe : 1;
7290		u64 tp0_sram_dbe : 1;
7291		u64 sts1_ram_dbe : 1;
7292		u64 sts0_ram_dbe : 1;
7293		u64 std1_ram_dbe : 1;
7294		u64 std0_ram_dbe : 1;
7295		u64 wt_ram_dbe : 1;
7296		u64 sc_ram_dbe : 1;
7297		u64 reserved_0_50 : 51;
7298	} s;
7299	struct cvmx_pko_pse_sq2_ecc_dbe_sts0_cn73xx {
7300		u64 sq_pt_ram_dbe : 1;
7301		u64 sq_nt_ram_dbe : 1;
7302		u64 rt_ram_dbe : 1;
7303		u64 reserved_60_60 : 1;
7304		u64 tw0_cmd_fifo_ram_dbe : 1;
7305		u64 reserved_58_58 : 1;
7306		u64 tp0_sram_dbe : 1;
7307		u64 reserved_56_56 : 1;
7308		u64 sts0_ram_dbe : 1;
7309		u64 reserved_54_54 : 1;
7310		u64 std0_ram_dbe : 1;
7311		u64 wt_ram_dbe : 1;
7312		u64 sc_ram_dbe : 1;
7313		u64 reserved_0_50 : 51;
7314	} cn73xx;
7315	struct cvmx_pko_pse_sq2_ecc_dbe_sts0_s cn78xx;
7316	struct cvmx_pko_pse_sq2_ecc_dbe_sts0_s cn78xxp1;
7317	struct cvmx_pko_pse_sq2_ecc_dbe_sts0_cn73xx cnf75xx;
7318};
7319
7320typedef union cvmx_pko_pse_sq2_ecc_dbe_sts0 cvmx_pko_pse_sq2_ecc_dbe_sts0_t;
7321
7322/**
7323 * cvmx_pko_pse_sq2_ecc_dbe_sts_cmb0
7324 */
7325union cvmx_pko_pse_sq2_ecc_dbe_sts_cmb0 {
7326	u64 u64;
7327	struct cvmx_pko_pse_sq2_ecc_dbe_sts_cmb0_s {
7328		u64 pse_sq2_dbe_cmb0 : 1;
7329		u64 reserved_0_62 : 63;
7330	} s;
7331	struct cvmx_pko_pse_sq2_ecc_dbe_sts_cmb0_s cn73xx;
7332	struct cvmx_pko_pse_sq2_ecc_dbe_sts_cmb0_s cn78xx;
7333	struct cvmx_pko_pse_sq2_ecc_dbe_sts_cmb0_s cn78xxp1;
7334	struct cvmx_pko_pse_sq2_ecc_dbe_sts_cmb0_s cnf75xx;
7335};
7336
7337typedef union cvmx_pko_pse_sq2_ecc_dbe_sts_cmb0 cvmx_pko_pse_sq2_ecc_dbe_sts_cmb0_t;
7338
7339/**
7340 * cvmx_pko_pse_sq2_ecc_sbe_sts0
7341 */
7342union cvmx_pko_pse_sq2_ecc_sbe_sts0 {
7343	u64 u64;
7344	struct cvmx_pko_pse_sq2_ecc_sbe_sts0_s {
7345		u64 sq_pt_ram_sbe : 1;
7346		u64 sq_nt_ram_sbe : 1;
7347		u64 rt_ram_sbe : 1;
7348		u64 tw1_cmd_fifo_ram_sbe : 1;
7349		u64 tw0_cmd_fifo_ram_sbe : 1;
7350		u64 tp1_sram_sbe : 1;
7351		u64 tp0_sram_sbe : 1;
7352		u64 sts1_ram_sbe : 1;
7353		u64 sts0_ram_sbe : 1;
7354		u64 std1_ram_sbe : 1;
7355		u64 std0_ram_sbe : 1;
7356		u64 wt_ram_sbe : 1;
7357		u64 sc_ram_sbe : 1;
7358		u64 reserved_0_50 : 51;
7359	} s;
7360	struct cvmx_pko_pse_sq2_ecc_sbe_sts0_cn73xx {
7361		u64 sq_pt_ram_sbe : 1;
7362		u64 sq_nt_ram_sbe : 1;
7363		u64 rt_ram_sbe : 1;
7364		u64 reserved_60_60 : 1;
7365		u64 tw0_cmd_fifo_ram_sbe : 1;
7366		u64 reserved_58_58 : 1;
7367		u64 tp0_sram_sbe : 1;
7368		u64 reserved_56_56 : 1;
7369		u64 sts0_ram_sbe : 1;
7370		u64 reserved_54_54 : 1;
7371		u64 std0_ram_sbe : 1;
7372		u64 wt_ram_sbe : 1;
7373		u64 sc_ram_sbe : 1;
7374		u64 reserved_0_50 : 51;
7375	} cn73xx;
7376	struct cvmx_pko_pse_sq2_ecc_sbe_sts0_s cn78xx;
7377	struct cvmx_pko_pse_sq2_ecc_sbe_sts0_s cn78xxp1;
7378	struct cvmx_pko_pse_sq2_ecc_sbe_sts0_cn73xx cnf75xx;
7379};
7380
7381typedef union cvmx_pko_pse_sq2_ecc_sbe_sts0 cvmx_pko_pse_sq2_ecc_sbe_sts0_t;
7382
7383/**
7384 * cvmx_pko_pse_sq2_ecc_sbe_sts_cmb0
7385 */
7386union cvmx_pko_pse_sq2_ecc_sbe_sts_cmb0 {
7387	u64 u64;
7388	struct cvmx_pko_pse_sq2_ecc_sbe_sts_cmb0_s {
7389		u64 pse_sq2_sbe_cmb0 : 1;
7390		u64 reserved_0_62 : 63;
7391	} s;
7392	struct cvmx_pko_pse_sq2_ecc_sbe_sts_cmb0_s cn73xx;
7393	struct cvmx_pko_pse_sq2_ecc_sbe_sts_cmb0_s cn78xx;
7394	struct cvmx_pko_pse_sq2_ecc_sbe_sts_cmb0_s cn78xxp1;
7395	struct cvmx_pko_pse_sq2_ecc_sbe_sts_cmb0_s cnf75xx;
7396};
7397
7398typedef union cvmx_pko_pse_sq2_ecc_sbe_sts_cmb0 cvmx_pko_pse_sq2_ecc_sbe_sts_cmb0_t;
7399
7400/**
7401 * cvmx_pko_pse_sq3_bist_status
7402 *
7403 * Each bit is the BIST result of an individual memory (per bit, 0 = pass and 1 = fail).
7404 *
7405 */
7406union cvmx_pko_pse_sq3_bist_status {
7407	u64 u64;
7408	struct cvmx_pko_pse_sq3_bist_status_s {
7409		u64 reserved_29_63 : 35;
7410		u64 sc_sram : 1;
7411		u64 reserved_23_27 : 5;
7412		u64 tp3_sram : 1;
7413		u64 tp2_sram : 1;
7414		u64 tp1_sram : 1;
7415		u64 tp0_sram : 1;
7416		u64 reserved_18_18 : 1;
7417		u64 rt_sram : 1;
7418		u64 reserved_15_16 : 2;
7419		u64 tw3_cmd_fifo : 1;
7420		u64 reserved_12_13 : 2;
7421		u64 tw2_cmd_fifo : 1;
7422		u64 reserved_9_10 : 2;
7423		u64 tw1_cmd_fifo : 1;
7424		u64 std_sram : 1;
7425		u64 sts_sram : 1;
7426		u64 tw0_cmd_fifo : 1;
7427		u64 reserved_3_4 : 2;
7428		u64 nt_sram : 1;
7429		u64 pt_sram : 1;
7430		u64 wt_sram : 1;
7431	} s;
7432	struct cvmx_pko_pse_sq3_bist_status_cn73xx {
7433		u64 reserved_29_63 : 35;
7434		u64 sc_sram : 1;
7435		u64 reserved_20_27 : 8;
7436		u64 tp0_sram : 1;
7437		u64 reserved_18_18 : 1;
7438		u64 rt_sram : 1;
7439		u64 reserved_8_16 : 9;
7440		u64 std_sram : 1;
7441		u64 sts_sram : 1;
7442		u64 tw0_cmd_fifo : 1;
7443		u64 reserved_3_4 : 2;
7444		u64 nt_sram : 1;
7445		u64 pt_sram : 1;
7446		u64 wt_sram : 1;
7447	} cn73xx;
7448	struct cvmx_pko_pse_sq3_bist_status_s cn78xx;
7449	struct cvmx_pko_pse_sq3_bist_status_s cn78xxp1;
7450	struct cvmx_pko_pse_sq3_bist_status_cn73xx cnf75xx;
7451};
7452
7453typedef union cvmx_pko_pse_sq3_bist_status cvmx_pko_pse_sq3_bist_status_t;
7454
7455/**
7456 * cvmx_pko_pse_sq3_ecc_ctl0
7457 */
7458union cvmx_pko_pse_sq3_ecc_ctl0 {
7459	u64 u64;
7460	struct cvmx_pko_pse_sq3_ecc_ctl0_s {
7461		u64 sq_pt_ram_flip : 2;
7462		u64 sq_pt_ram_cdis : 1;
7463		u64 sq_nt_ram_flip : 2;
7464		u64 sq_nt_ram_cdis : 1;
7465		u64 rt_ram_flip : 2;
7466		u64 rt_ram_cdis : 1;
7467		u64 tw3_cmd_fifo_ram_flip : 2;
7468		u64 tw3_cmd_fifo_ram_cdis : 1;
7469		u64 tw2_cmd_fifo_ram_flip : 2;
7470		u64 tw2_cmd_fifo_ram_cdis : 1;
7471		u64 tw1_cmd_fifo_ram_flip : 2;
7472		u64 tw1_cmd_fifo_ram_cdis : 1;
7473		u64 tw0_cmd_fifo_ram_flip : 2;
7474		u64 tw0_cmd_fifo_ram_cdis : 1;
7475		u64 tp3_sram_flip : 2;
7476		u64 tp3_sram_cdis : 1;
7477		u64 tp2_sram_flip : 2;
7478		u64 tp2_sram_cdis : 1;
7479		u64 tp1_sram_flip : 2;
7480		u64 tp1_sram_cdis : 1;
7481		u64 tp0_sram_flip : 2;
7482		u64 tp0_sram_cdis : 1;
7483		u64 sts3_ram_flip : 2;
7484		u64 sts3_ram_cdis : 1;
7485		u64 sts2_ram_flip : 2;
7486		u64 sts2_ram_cdis : 1;
7487		u64 sts1_ram_flip : 2;
7488		u64 sts1_ram_cdis : 1;
7489		u64 sts0_ram_flip : 2;
7490		u64 sts0_ram_cdis : 1;
7491		u64 std3_ram_flip : 2;
7492		u64 std3_ram_cdis : 1;
7493		u64 std2_ram_flip : 2;
7494		u64 std2_ram_cdis : 1;
7495		u64 std1_ram_flip : 2;
7496		u64 std1_ram_cdis : 1;
7497		u64 std0_ram_flip : 2;
7498		u64 std0_ram_cdis : 1;
7499		u64 wt_ram_flip : 2;
7500		u64 wt_ram_cdis : 1;
7501		u64 sc_ram_flip : 2;
7502		u64 sc_ram_cdis : 1;
7503		u64 reserved_0_0 : 1;
7504	} s;
7505	struct cvmx_pko_pse_sq3_ecc_ctl0_cn73xx {
7506		u64 sq_pt_ram_flip : 2;
7507		u64 sq_pt_ram_cdis : 1;
7508		u64 sq_nt_ram_flip : 2;
7509		u64 sq_nt_ram_cdis : 1;
7510		u64 rt_ram_flip : 2;
7511		u64 rt_ram_cdis : 1;
7512		u64 reserved_46_54 : 9;
7513		u64 tw0_cmd_fifo_ram_flip : 2;
7514		u64 tw0_cmd_fifo_ram_cdis : 1;
7515		u64 reserved_34_42 : 9;
7516		u64 tp0_sram_flip : 2;
7517		u64 tp0_sram_cdis : 1;
7518		u64 reserved_22_30 : 9;
7519		u64 sts0_ram_flip : 2;
7520		u64 sts0_ram_cdis : 1;
7521		u64 reserved_10_18 : 9;
7522		u64 std0_ram_flip : 2;
7523		u64 std0_ram_cdis : 1;
7524		u64 wt_ram_flip : 2;
7525		u64 wt_ram_cdis : 1;
7526		u64 sc_ram_flip : 2;
7527		u64 sc_ram_cdis : 1;
7528		u64 reserved_0_0 : 1;
7529	} cn73xx;
7530	struct cvmx_pko_pse_sq3_ecc_ctl0_s cn78xx;
7531	struct cvmx_pko_pse_sq3_ecc_ctl0_s cn78xxp1;
7532	struct cvmx_pko_pse_sq3_ecc_ctl0_cn73xx cnf75xx;
7533};
7534
7535typedef union cvmx_pko_pse_sq3_ecc_ctl0 cvmx_pko_pse_sq3_ecc_ctl0_t;
7536
7537/**
7538 * cvmx_pko_pse_sq3_ecc_dbe_sts0
7539 */
7540union cvmx_pko_pse_sq3_ecc_dbe_sts0 {
7541	u64 u64;
7542	struct cvmx_pko_pse_sq3_ecc_dbe_sts0_s {
7543		u64 sq_pt_ram_dbe : 1;
7544		u64 sq_nt_ram_dbe : 1;
7545		u64 rt_ram_dbe : 1;
7546		u64 tw3_cmd_fifo_ram_dbe : 1;
7547		u64 tw2_cmd_fifo_ram_dbe : 1;
7548		u64 tw1_cmd_fifo_ram_dbe : 1;
7549		u64 tw0_cmd_fifo_ram_dbe : 1;
7550		u64 tp3_sram_dbe : 1;
7551		u64 tp2_sram_dbe : 1;
7552		u64 tp1_sram_dbe : 1;
7553		u64 tp0_sram_dbe : 1;
7554		u64 sts3_ram_dbe : 1;
7555		u64 sts2_ram_dbe : 1;
7556		u64 sts1_ram_dbe : 1;
7557		u64 sts0_ram_dbe : 1;
7558		u64 std3_ram_dbe : 1;
7559		u64 std2_ram_dbe : 1;
7560		u64 std1_ram_dbe : 1;
7561		u64 std0_ram_dbe : 1;
7562		u64 wt_ram_dbe : 1;
7563		u64 sc_ram_dbe : 1;
7564		u64 reserved_0_42 : 43;
7565	} s;
7566	struct cvmx_pko_pse_sq3_ecc_dbe_sts0_cn73xx {
7567		u64 sq_pt_ram_dbe : 1;
7568		u64 sq_nt_ram_dbe : 1;
7569		u64 rt_ram_dbe : 1;
7570		u64 reserved_58_60 : 3;
7571		u64 tw0_cmd_fifo_ram_dbe : 1;
7572		u64 reserved_54_56 : 3;
7573		u64 tp0_sram_dbe : 1;
7574		u64 reserved_50_52 : 3;
7575		u64 sts0_ram_dbe : 1;
7576		u64 reserved_46_48 : 3;
7577		u64 std0_ram_dbe : 1;
7578		u64 wt_ram_dbe : 1;
7579		u64 sc_ram_dbe : 1;
7580		u64 reserved_0_42 : 43;
7581	} cn73xx;
7582	struct cvmx_pko_pse_sq3_ecc_dbe_sts0_s cn78xx;
7583	struct cvmx_pko_pse_sq3_ecc_dbe_sts0_s cn78xxp1;
7584	struct cvmx_pko_pse_sq3_ecc_dbe_sts0_cn73xx cnf75xx;
7585};
7586
7587typedef union cvmx_pko_pse_sq3_ecc_dbe_sts0 cvmx_pko_pse_sq3_ecc_dbe_sts0_t;
7588
7589/**
7590 * cvmx_pko_pse_sq3_ecc_dbe_sts_cmb0
7591 */
7592union cvmx_pko_pse_sq3_ecc_dbe_sts_cmb0 {
7593	u64 u64;
7594	struct cvmx_pko_pse_sq3_ecc_dbe_sts_cmb0_s {
7595		u64 pse_sq3_dbe_cmb0 : 1;
7596		u64 reserved_0_62 : 63;
7597	} s;
7598	struct cvmx_pko_pse_sq3_ecc_dbe_sts_cmb0_s cn73xx;
7599	struct cvmx_pko_pse_sq3_ecc_dbe_sts_cmb0_s cn78xx;
7600	struct cvmx_pko_pse_sq3_ecc_dbe_sts_cmb0_s cn78xxp1;
7601	struct cvmx_pko_pse_sq3_ecc_dbe_sts_cmb0_s cnf75xx;
7602};
7603
7604typedef union cvmx_pko_pse_sq3_ecc_dbe_sts_cmb0 cvmx_pko_pse_sq3_ecc_dbe_sts_cmb0_t;
7605
7606/**
7607 * cvmx_pko_pse_sq3_ecc_sbe_sts0
7608 */
7609union cvmx_pko_pse_sq3_ecc_sbe_sts0 {
7610	u64 u64;
7611	struct cvmx_pko_pse_sq3_ecc_sbe_sts0_s {
7612		u64 sq_pt_ram_sbe : 1;
7613		u64 sq_nt_ram_sbe : 1;
7614		u64 rt_ram_sbe : 1;
7615		u64 tw3_cmd_fifo_ram_sbe : 1;
7616		u64 tw2_cmd_fifo_ram_sbe : 1;
7617		u64 tw1_cmd_fifo_ram_sbe : 1;
7618		u64 tw0_cmd_fifo_ram_sbe : 1;
7619		u64 tp3_sram_sbe : 1;
7620		u64 tp2_sram_sbe : 1;
7621		u64 tp1_sram_sbe : 1;
7622		u64 tp0_sram_sbe : 1;
7623		u64 sts3_ram_sbe : 1;
7624		u64 sts2_ram_sbe : 1;
7625		u64 sts1_ram_sbe : 1;
7626		u64 sts0_ram_sbe : 1;
7627		u64 std3_ram_sbe : 1;
7628		u64 std2_ram_sbe : 1;
7629		u64 std1_ram_sbe : 1;
7630		u64 std0_ram_sbe : 1;
7631		u64 wt_ram_sbe : 1;
7632		u64 sc_ram_sbe : 1;
7633		u64 reserved_0_42 : 43;
7634	} s;
7635	struct cvmx_pko_pse_sq3_ecc_sbe_sts0_cn73xx {
7636		u64 sq_pt_ram_sbe : 1;
7637		u64 sq_nt_ram_sbe : 1;
7638		u64 rt_ram_sbe : 1;
7639		u64 reserved_58_60 : 3;
7640		u64 tw0_cmd_fifo_ram_sbe : 1;
7641		u64 reserved_54_56 : 3;
7642		u64 tp0_sram_sbe : 1;
7643		u64 reserved_50_52 : 3;
7644		u64 sts0_ram_sbe : 1;
7645		u64 reserved_46_48 : 3;
7646		u64 std0_ram_sbe : 1;
7647		u64 wt_ram_sbe : 1;
7648		u64 sc_ram_sbe : 1;
7649		u64 reserved_0_42 : 43;
7650	} cn73xx;
7651	struct cvmx_pko_pse_sq3_ecc_sbe_sts0_s cn78xx;
7652	struct cvmx_pko_pse_sq3_ecc_sbe_sts0_s cn78xxp1;
7653	struct cvmx_pko_pse_sq3_ecc_sbe_sts0_cn73xx cnf75xx;
7654};
7655
7656typedef union cvmx_pko_pse_sq3_ecc_sbe_sts0 cvmx_pko_pse_sq3_ecc_sbe_sts0_t;
7657
7658/**
7659 * cvmx_pko_pse_sq3_ecc_sbe_sts_cmb0
7660 */
7661union cvmx_pko_pse_sq3_ecc_sbe_sts_cmb0 {
7662	u64 u64;
7663	struct cvmx_pko_pse_sq3_ecc_sbe_sts_cmb0_s {
7664		u64 pse_sq3_sbe_cmb0 : 1;
7665		u64 reserved_0_62 : 63;
7666	} s;
7667	struct cvmx_pko_pse_sq3_ecc_sbe_sts_cmb0_s cn73xx;
7668	struct cvmx_pko_pse_sq3_ecc_sbe_sts_cmb0_s cn78xx;
7669	struct cvmx_pko_pse_sq3_ecc_sbe_sts_cmb0_s cn78xxp1;
7670	struct cvmx_pko_pse_sq3_ecc_sbe_sts_cmb0_s cnf75xx;
7671};
7672
7673typedef union cvmx_pko_pse_sq3_ecc_sbe_sts_cmb0 cvmx_pko_pse_sq3_ecc_sbe_sts_cmb0_t;
7674
7675/**
7676 * cvmx_pko_pse_sq4_bist_status
7677 *
7678 * Each bit is the BIST result of an individual memory (per bit, 0 = pass and 1 = fail).
7679 *
7680 */
7681union cvmx_pko_pse_sq4_bist_status {
7682	u64 u64;
7683	struct cvmx_pko_pse_sq4_bist_status_s {
7684		u64 reserved_29_63 : 35;
7685		u64 sc_sram : 1;
7686		u64 reserved_23_27 : 5;
7687		u64 tp3_sram : 1;
7688		u64 tp2_sram : 1;
7689		u64 tp1_sram : 1;
7690		u64 tp0_sram : 1;
7691		u64 reserved_18_18 : 1;
7692		u64 rt_sram : 1;
7693		u64 reserved_15_16 : 2;
7694		u64 tw3_cmd_fifo : 1;
7695		u64 reserved_12_13 : 2;
7696		u64 tw2_cmd_fifo : 1;
7697		u64 reserved_9_10 : 2;
7698		u64 tw1_cmd_fifo : 1;
7699		u64 std_sram : 1;
7700		u64 sts_sram : 1;
7701		u64 tw0_cmd_fifo : 1;
7702		u64 reserved_3_4 : 2;
7703		u64 nt_sram : 1;
7704		u64 pt_sram : 1;
7705		u64 wt_sram : 1;
7706	} s;
7707	struct cvmx_pko_pse_sq4_bist_status_s cn78xx;
7708	struct cvmx_pko_pse_sq4_bist_status_s cn78xxp1;
7709};
7710
7711typedef union cvmx_pko_pse_sq4_bist_status cvmx_pko_pse_sq4_bist_status_t;
7712
7713/**
7714 * cvmx_pko_pse_sq4_ecc_ctl0
7715 */
7716union cvmx_pko_pse_sq4_ecc_ctl0 {
7717	u64 u64;
7718	struct cvmx_pko_pse_sq4_ecc_ctl0_s {
7719		u64 sq_pt_ram_flip : 2;
7720		u64 sq_pt_ram_cdis : 1;
7721		u64 sq_nt_ram_flip : 2;
7722		u64 sq_nt_ram_cdis : 1;
7723		u64 rt_ram_flip : 2;
7724		u64 rt_ram_cdis : 1;
7725		u64 tw3_cmd_fifo_ram_flip : 2;
7726		u64 tw3_cmd_fifo_ram_cdis : 1;
7727		u64 tw2_cmd_fifo_ram_flip : 2;
7728		u64 tw2_cmd_fifo_ram_cdis : 1;
7729		u64 tw1_cmd_fifo_ram_flip : 2;
7730		u64 tw1_cmd_fifo_ram_cdis : 1;
7731		u64 tw0_cmd_fifo_ram_flip : 2;
7732		u64 tw0_cmd_fifo_ram_cdis : 1;
7733		u64 tp3_sram_flip : 2;
7734		u64 tp3_sram_cdis : 1;
7735		u64 tp2_sram_flip : 2;
7736		u64 tp2_sram_cdis : 1;
7737		u64 tp1_sram_flip : 2;
7738		u64 tp1_sram_cdis : 1;
7739		u64 tp0_sram_flip : 2;
7740		u64 tp0_sram_cdis : 1;
7741		u64 sts3_ram_flip : 2;
7742		u64 sts3_ram_cdis : 1;
7743		u64 sts2_ram_flip : 2;
7744		u64 sts2_ram_cdis : 1;
7745		u64 sts1_ram_flip : 2;
7746		u64 sts1_ram_cdis : 1;
7747		u64 sts0_ram_flip : 2;
7748		u64 sts0_ram_cdis : 1;
7749		u64 std3_ram_flip : 2;
7750		u64 std3_ram_cdis : 1;
7751		u64 std2_ram_flip : 2;
7752		u64 std2_ram_cdis : 1;
7753		u64 std1_ram_flip : 2;
7754		u64 std1_ram_cdis : 1;
7755		u64 std0_ram_flip : 2;
7756		u64 std0_ram_cdis : 1;
7757		u64 wt_ram_flip : 2;
7758		u64 wt_ram_cdis : 1;
7759		u64 sc_ram_flip : 2;
7760		u64 sc_ram_cdis : 1;
7761		u64 reserved_0_0 : 1;
7762	} s;
7763	struct cvmx_pko_pse_sq4_ecc_ctl0_s cn78xx;
7764	struct cvmx_pko_pse_sq4_ecc_ctl0_s cn78xxp1;
7765};
7766
7767typedef union cvmx_pko_pse_sq4_ecc_ctl0 cvmx_pko_pse_sq4_ecc_ctl0_t;
7768
7769/**
7770 * cvmx_pko_pse_sq4_ecc_dbe_sts0
7771 */
7772union cvmx_pko_pse_sq4_ecc_dbe_sts0 {
7773	u64 u64;
7774	struct cvmx_pko_pse_sq4_ecc_dbe_sts0_s {
7775		u64 sq_pt_ram_dbe : 1;
7776		u64 sq_nt_ram_dbe : 1;
7777		u64 rt_ram_dbe : 1;
7778		u64 tw3_cmd_fifo_ram_dbe : 1;
7779		u64 tw2_cmd_fifo_ram_dbe : 1;
7780		u64 tw1_cmd_fifo_ram_dbe : 1;
7781		u64 tw0_cmd_fifo_ram_dbe : 1;
7782		u64 tp3_sram_dbe : 1;
7783		u64 tp2_sram_dbe : 1;
7784		u64 tp1_sram_dbe : 1;
7785		u64 tp0_sram_dbe : 1;
7786		u64 sts3_ram_dbe : 1;
7787		u64 sts2_ram_dbe : 1;
7788		u64 sts1_ram_dbe : 1;
7789		u64 sts0_ram_dbe : 1;
7790		u64 std3_ram_dbe : 1;
7791		u64 std2_ram_dbe : 1;
7792		u64 std1_ram_dbe : 1;
7793		u64 std0_ram_dbe : 1;
7794		u64 wt_ram_dbe : 1;
7795		u64 sc_ram_dbe : 1;
7796		u64 reserved_0_42 : 43;
7797	} s;
7798	struct cvmx_pko_pse_sq4_ecc_dbe_sts0_s cn78xx;
7799	struct cvmx_pko_pse_sq4_ecc_dbe_sts0_s cn78xxp1;
7800};
7801
7802typedef union cvmx_pko_pse_sq4_ecc_dbe_sts0 cvmx_pko_pse_sq4_ecc_dbe_sts0_t;
7803
7804/**
7805 * cvmx_pko_pse_sq4_ecc_dbe_sts_cmb0
7806 */
7807union cvmx_pko_pse_sq4_ecc_dbe_sts_cmb0 {
7808	u64 u64;
7809	struct cvmx_pko_pse_sq4_ecc_dbe_sts_cmb0_s {
7810		u64 pse_sq4_dbe_cmb0 : 1;
7811		u64 reserved_0_62 : 63;
7812	} s;
7813	struct cvmx_pko_pse_sq4_ecc_dbe_sts_cmb0_s cn78xx;
7814	struct cvmx_pko_pse_sq4_ecc_dbe_sts_cmb0_s cn78xxp1;
7815};
7816
7817typedef union cvmx_pko_pse_sq4_ecc_dbe_sts_cmb0 cvmx_pko_pse_sq4_ecc_dbe_sts_cmb0_t;
7818
7819/**
7820 * cvmx_pko_pse_sq4_ecc_sbe_sts0
7821 */
7822union cvmx_pko_pse_sq4_ecc_sbe_sts0 {
7823	u64 u64;
7824	struct cvmx_pko_pse_sq4_ecc_sbe_sts0_s {
7825		u64 sq_pt_ram_sbe : 1;
7826		u64 sq_nt_ram_sbe : 1;
7827		u64 rt_ram_sbe : 1;
7828		u64 tw3_cmd_fifo_ram_sbe : 1;
7829		u64 tw2_cmd_fifo_ram_sbe : 1;
7830		u64 tw1_cmd_fifo_ram_sbe : 1;
7831		u64 tw0_cmd_fifo_ram_sbe : 1;
7832		u64 tp3_sram_sbe : 1;
7833		u64 tp2_sram_sbe : 1;
7834		u64 tp1_sram_sbe : 1;
7835		u64 tp0_sram_sbe : 1;
7836		u64 sts3_ram_sbe : 1;
7837		u64 sts2_ram_sbe : 1;
7838		u64 sts1_ram_sbe : 1;
7839		u64 sts0_ram_sbe : 1;
7840		u64 std3_ram_sbe : 1;
7841		u64 std2_ram_sbe : 1;
7842		u64 std1_ram_sbe : 1;
7843		u64 std0_ram_sbe : 1;
7844		u64 wt_ram_sbe : 1;
7845		u64 sc_ram_sbe : 1;
7846		u64 reserved_0_42 : 43;
7847	} s;
7848	struct cvmx_pko_pse_sq4_ecc_sbe_sts0_s cn78xx;
7849	struct cvmx_pko_pse_sq4_ecc_sbe_sts0_s cn78xxp1;
7850};
7851
7852typedef union cvmx_pko_pse_sq4_ecc_sbe_sts0 cvmx_pko_pse_sq4_ecc_sbe_sts0_t;
7853
7854/**
7855 * cvmx_pko_pse_sq4_ecc_sbe_sts_cmb0
7856 */
7857union cvmx_pko_pse_sq4_ecc_sbe_sts_cmb0 {
7858	u64 u64;
7859	struct cvmx_pko_pse_sq4_ecc_sbe_sts_cmb0_s {
7860		u64 pse_sq4_sbe_cmb0 : 1;
7861		u64 reserved_0_62 : 63;
7862	} s;
7863	struct cvmx_pko_pse_sq4_ecc_sbe_sts_cmb0_s cn78xx;
7864	struct cvmx_pko_pse_sq4_ecc_sbe_sts_cmb0_s cn78xxp1;
7865};
7866
7867typedef union cvmx_pko_pse_sq4_ecc_sbe_sts_cmb0 cvmx_pko_pse_sq4_ecc_sbe_sts_cmb0_t;
7868
7869/**
7870 * cvmx_pko_pse_sq5_bist_status
7871 *
7872 * Each bit is the BIST result of an individual memory (per bit, 0 = pass and 1 = fail).
7873 *
7874 */
7875union cvmx_pko_pse_sq5_bist_status {
7876	u64 u64;
7877	struct cvmx_pko_pse_sq5_bist_status_s {
7878		u64 reserved_29_63 : 35;
7879		u64 sc_sram : 1;
7880		u64 reserved_23_27 : 5;
7881		u64 tp3_sram : 1;
7882		u64 tp2_sram : 1;
7883		u64 tp1_sram : 1;
7884		u64 tp0_sram : 1;
7885		u64 reserved_18_18 : 1;
7886		u64 rt_sram : 1;
7887		u64 reserved_15_16 : 2;
7888		u64 tw3_cmd_fifo : 1;
7889		u64 reserved_12_13 : 2;
7890		u64 tw2_cmd_fifo : 1;
7891		u64 reserved_9_10 : 2;
7892		u64 tw1_cmd_fifo : 1;
7893		u64 std_sram : 1;
7894		u64 sts_sram : 1;
7895		u64 tw0_cmd_fifo : 1;
7896		u64 reserved_3_4 : 2;
7897		u64 nt_sram : 1;
7898		u64 pt_sram : 1;
7899		u64 wt_sram : 1;
7900	} s;
7901	struct cvmx_pko_pse_sq5_bist_status_s cn78xx;
7902	struct cvmx_pko_pse_sq5_bist_status_s cn78xxp1;
7903};
7904
7905typedef union cvmx_pko_pse_sq5_bist_status cvmx_pko_pse_sq5_bist_status_t;
7906
7907/**
7908 * cvmx_pko_pse_sq5_ecc_ctl0
7909 */
7910union cvmx_pko_pse_sq5_ecc_ctl0 {
7911	u64 u64;
7912	struct cvmx_pko_pse_sq5_ecc_ctl0_s {
7913		u64 sq_pt_ram_flip : 2;
7914		u64 sq_pt_ram_cdis : 1;
7915		u64 sq_nt_ram_flip : 2;
7916		u64 sq_nt_ram_cdis : 1;
7917		u64 rt_ram_flip : 2;
7918		u64 rt_ram_cdis : 1;
7919		u64 tw3_cmd_fifo_ram_flip : 2;
7920		u64 tw3_cmd_fifo_ram_cdis : 1;
7921		u64 tw2_cmd_fifo_ram_flip : 2;
7922		u64 tw2_cmd_fifo_ram_cdis : 1;
7923		u64 tw1_cmd_fifo_ram_flip : 2;
7924		u64 tw1_cmd_fifo_ram_cdis : 1;
7925		u64 tw0_cmd_fifo_ram_flip : 2;
7926		u64 tw0_cmd_fifo_ram_cdis : 1;
7927		u64 tp3_sram_flip : 2;
7928		u64 tp3_sram_cdis : 1;
7929		u64 tp2_sram_flip : 2;
7930		u64 tp2_sram_cdis : 1;
7931		u64 tp1_sram_flip : 2;
7932		u64 tp1_sram_cdis : 1;
7933		u64 tp0_sram_flip : 2;
7934		u64 tp0_sram_cdis : 1;
7935		u64 sts3_ram_flip : 2;
7936		u64 sts3_ram_cdis : 1;
7937		u64 sts2_ram_flip : 2;
7938		u64 sts2_ram_cdis : 1;
7939		u64 sts1_ram_flip : 2;
7940		u64 sts1_ram_cdis : 1;
7941		u64 sts0_ram_flip : 2;
7942		u64 sts0_ram_cdis : 1;
7943		u64 std3_ram_flip : 2;
7944		u64 std3_ram_cdis : 1;
7945		u64 std2_ram_flip : 2;
7946		u64 std2_ram_cdis : 1;
7947		u64 std1_ram_flip : 2;
7948		u64 std1_ram_cdis : 1;
7949		u64 std0_ram_flip : 2;
7950		u64 std0_ram_cdis : 1;
7951		u64 wt_ram_flip : 2;
7952		u64 wt_ram_cdis : 1;
7953		u64 sc_ram_flip : 2;
7954		u64 sc_ram_cdis : 1;
7955		u64 reserved_0_0 : 1;
7956	} s;
7957	struct cvmx_pko_pse_sq5_ecc_ctl0_s cn78xx;
7958	struct cvmx_pko_pse_sq5_ecc_ctl0_s cn78xxp1;
7959};
7960
7961typedef union cvmx_pko_pse_sq5_ecc_ctl0 cvmx_pko_pse_sq5_ecc_ctl0_t;
7962
7963/**
7964 * cvmx_pko_pse_sq5_ecc_dbe_sts0
7965 */
7966union cvmx_pko_pse_sq5_ecc_dbe_sts0 {
7967	u64 u64;
7968	struct cvmx_pko_pse_sq5_ecc_dbe_sts0_s {
7969		u64 sq_pt_ram_dbe : 1;
7970		u64 sq_nt_ram_dbe : 1;
7971		u64 rt_ram_dbe : 1;
7972		u64 tw3_cmd_fifo_ram_dbe : 1;
7973		u64 tw2_cmd_fifo_ram_dbe : 1;
7974		u64 tw1_cmd_fifo_ram_dbe : 1;
7975		u64 tw0_cmd_fifo_ram_dbe : 1;
7976		u64 tp3_sram_dbe : 1;
7977		u64 tp2_sram_dbe : 1;
7978		u64 tp1_sram_dbe : 1;
7979		u64 tp0_sram_dbe : 1;
7980		u64 sts3_ram_dbe : 1;
7981		u64 sts2_ram_dbe : 1;
7982		u64 sts1_ram_dbe : 1;
7983		u64 sts0_ram_dbe : 1;
7984		u64 std3_ram_dbe : 1;
7985		u64 std2_ram_dbe : 1;
7986		u64 std1_ram_dbe : 1;
7987		u64 std0_ram_dbe : 1;
7988		u64 wt_ram_dbe : 1;
7989		u64 sc_ram_dbe : 1;
7990		u64 reserved_0_42 : 43;
7991	} s;
7992	struct cvmx_pko_pse_sq5_ecc_dbe_sts0_s cn78xx;
7993	struct cvmx_pko_pse_sq5_ecc_dbe_sts0_s cn78xxp1;
7994};
7995
7996typedef union cvmx_pko_pse_sq5_ecc_dbe_sts0 cvmx_pko_pse_sq5_ecc_dbe_sts0_t;
7997
7998/**
7999 * cvmx_pko_pse_sq5_ecc_dbe_sts_cmb0
8000 */
8001union cvmx_pko_pse_sq5_ecc_dbe_sts_cmb0 {
8002	u64 u64;
8003	struct cvmx_pko_pse_sq5_ecc_dbe_sts_cmb0_s {
8004		u64 pse_sq5_dbe_cmb0 : 1;
8005		u64 reserved_0_62 : 63;
8006	} s;
8007	struct cvmx_pko_pse_sq5_ecc_dbe_sts_cmb0_s cn78xx;
8008	struct cvmx_pko_pse_sq5_ecc_dbe_sts_cmb0_s cn78xxp1;
8009};
8010
8011typedef union cvmx_pko_pse_sq5_ecc_dbe_sts_cmb0 cvmx_pko_pse_sq5_ecc_dbe_sts_cmb0_t;
8012
8013/**
8014 * cvmx_pko_pse_sq5_ecc_sbe_sts0
8015 */
8016union cvmx_pko_pse_sq5_ecc_sbe_sts0 {
8017	u64 u64;
8018	struct cvmx_pko_pse_sq5_ecc_sbe_sts0_s {
8019		u64 sq_pt_ram_sbe : 1;
8020		u64 sq_nt_ram_sbe : 1;
8021		u64 rt_ram_sbe : 1;
8022		u64 tw3_cmd_fifo_ram_sbe : 1;
8023		u64 tw2_cmd_fifo_ram_sbe : 1;
8024		u64 tw1_cmd_fifo_ram_sbe : 1;
8025		u64 tw0_cmd_fifo_ram_sbe : 1;
8026		u64 tp3_sram_sbe : 1;
8027		u64 tp2_sram_sbe : 1;
8028		u64 tp1_sram_sbe : 1;
8029		u64 tp0_sram_sbe : 1;
8030		u64 sts3_ram_sbe : 1;
8031		u64 sts2_ram_sbe : 1;
8032		u64 sts1_ram_sbe : 1;
8033		u64 sts0_ram_sbe : 1;
8034		u64 std3_ram_sbe : 1;
8035		u64 std2_ram_sbe : 1;
8036		u64 std1_ram_sbe : 1;
8037		u64 std0_ram_sbe : 1;
8038		u64 wt_ram_sbe : 1;
8039		u64 sc_ram_sbe : 1;
8040		u64 reserved_0_42 : 43;
8041	} s;
8042	struct cvmx_pko_pse_sq5_ecc_sbe_sts0_s cn78xx;
8043	struct cvmx_pko_pse_sq5_ecc_sbe_sts0_s cn78xxp1;
8044};
8045
8046typedef union cvmx_pko_pse_sq5_ecc_sbe_sts0 cvmx_pko_pse_sq5_ecc_sbe_sts0_t;
8047
8048/**
8049 * cvmx_pko_pse_sq5_ecc_sbe_sts_cmb0
8050 */
8051union cvmx_pko_pse_sq5_ecc_sbe_sts_cmb0 {
8052	u64 u64;
8053	struct cvmx_pko_pse_sq5_ecc_sbe_sts_cmb0_s {
8054		u64 pse_sq5_sbe_cmb0 : 1;
8055		u64 reserved_0_62 : 63;
8056	} s;
8057	struct cvmx_pko_pse_sq5_ecc_sbe_sts_cmb0_s cn78xx;
8058	struct cvmx_pko_pse_sq5_ecc_sbe_sts_cmb0_s cn78xxp1;
8059};
8060
8061typedef union cvmx_pko_pse_sq5_ecc_sbe_sts_cmb0 cvmx_pko_pse_sq5_ecc_sbe_sts_cmb0_t;
8062
8063/**
8064 * cvmx_pko_ptf#_status
8065 */
8066union cvmx_pko_ptfx_status {
8067	u64 u64;
8068	struct cvmx_pko_ptfx_status_s {
8069		u64 reserved_30_63 : 34;
8070		u64 tx_fifo_pkt_credit_cnt : 10;
8071		u64 total_in_flight_cnt : 8;
8072		u64 in_flight_cnt : 7;
8073		u64 mac_num : 5;
8074	} s;
8075	struct cvmx_pko_ptfx_status_s cn73xx;
8076	struct cvmx_pko_ptfx_status_s cn78xx;
8077	struct cvmx_pko_ptfx_status_s cn78xxp1;
8078	struct cvmx_pko_ptfx_status_s cnf75xx;
8079};
8080
8081typedef union cvmx_pko_ptfx_status cvmx_pko_ptfx_status_t;
8082
8083/**
8084 * cvmx_pko_ptf_iobp_cfg
8085 */
8086union cvmx_pko_ptf_iobp_cfg {
8087	u64 u64;
8088	struct cvmx_pko_ptf_iobp_cfg_s {
8089		u64 reserved_44_63 : 20;
8090		u64 iobp1_ds_opt : 1;
8091		u64 iobp0_l2_allocate : 1;
8092		u64 iobp1_magic_addr : 35;
8093		u64 max_read_size : 7;
8094	} s;
8095	struct cvmx_pko_ptf_iobp_cfg_s cn73xx;
8096	struct cvmx_pko_ptf_iobp_cfg_s cn78xx;
8097	struct cvmx_pko_ptf_iobp_cfg_s cn78xxp1;
8098	struct cvmx_pko_ptf_iobp_cfg_s cnf75xx;
8099};
8100
8101typedef union cvmx_pko_ptf_iobp_cfg cvmx_pko_ptf_iobp_cfg_t;
8102
8103/**
8104 * cvmx_pko_ptgf#_cfg
8105 *
8106 * This register configures a PKO TX FIFO group. PKO supports up to 17 independent
8107 * TX FIFOs, where 0-15 are physical and 16 is Virtual/NULL. (PKO drops packets
8108 * targeting the NULL FIFO, returning their buffers to the FPA.) PKO puts each
8109 * FIFO into one of five groups:
8110 *
8111 * <pre>
8112 *    CSR Name       FIFO's in FIFO Group
8113 *   ------------------------------------
8114 *   PKO_PTGF0_CFG      0,  1,  2,  3
8115 *   PKO_PTGF1_CFG      4,  5,  6,  7
8116 *   PKO_PTGF2_CFG      8,  9, 10, 11
8117 *   PKO_PTGF3_CFG     12, 13, 14, 15
8118 *   PKO_PTGF4_CFG      Virtual/NULL
8119 * </pre>
8120 */
8121union cvmx_pko_ptgfx_cfg {
8122	u64 u64;
8123	struct cvmx_pko_ptgfx_cfg_s {
8124		u64 reserved_7_63 : 57;
8125		u64 reset : 1;
8126		u64 rate : 3;
8127		u64 size : 3;
8128	} s;
8129	struct cvmx_pko_ptgfx_cfg_cn73xx {
8130		u64 reserved_7_63 : 57;
8131		u64 reset : 1;
8132		u64 reserved_5_5 : 1;
8133		u64 rate : 2;
8134		u64 size : 3;
8135	} cn73xx;
8136	struct cvmx_pko_ptgfx_cfg_s cn78xx;
8137	struct cvmx_pko_ptgfx_cfg_s cn78xxp1;
8138	struct cvmx_pko_ptgfx_cfg_cn73xx cnf75xx;
8139};
8140
8141typedef union cvmx_pko_ptgfx_cfg cvmx_pko_ptgfx_cfg_t;
8142
8143/**
8144 * cvmx_pko_reg_bist_result
8145 *
8146 * Notes:
8147 * Access to the internal BiST results
8148 * Each bit is the BiST result of an individual memory (per bit, 0=pass and 1=fail).
8149 */
8150union cvmx_pko_reg_bist_result {
8151	u64 u64;
8152	struct cvmx_pko_reg_bist_result_s {
8153		u64 reserved_0_63 : 64;
8154	} s;
8155	struct cvmx_pko_reg_bist_result_cn30xx {
8156		u64 reserved_27_63 : 37;
8157		u64 psb2 : 5;
8158		u64 count : 1;
8159		u64 rif : 1;
8160		u64 wif : 1;
8161		u64 ncb : 1;
8162		u64 out : 1;
8163		u64 crc : 1;
8164		u64 chk : 1;
8165		u64 qsb : 2;
8166		u64 qcb : 2;
8167		u64 pdb : 4;
8168		u64 psb : 7;
8169	} cn30xx;
8170	struct cvmx_pko_reg_bist_result_cn30xx cn31xx;
8171	struct cvmx_pko_reg_bist_result_cn30xx cn38xx;
8172	struct cvmx_pko_reg_bist_result_cn30xx cn38xxp2;
8173	struct cvmx_pko_reg_bist_result_cn50xx {
8174		u64 reserved_33_63 : 31;
8175		u64 csr : 1;
8176		u64 iob : 1;
8177		u64 out_crc : 1;
8178		u64 out_ctl : 3;
8179		u64 out_sta : 1;
8180		u64 out_wif : 1;
8181		u64 prt_chk : 3;
8182		u64 prt_nxt : 1;
8183		u64 prt_psb : 6;
8184		u64 ncb_inb : 2;
8185		u64 prt_qcb : 2;
8186		u64 prt_qsb : 3;
8187		u64 dat_dat : 4;
8188		u64 dat_ptr : 4;
8189	} cn50xx;
8190	struct cvmx_pko_reg_bist_result_cn52xx {
8191		u64 reserved_35_63 : 29;
8192		u64 csr : 1;
8193		u64 iob : 1;
8194		u64 out_dat : 1;
8195		u64 out_ctl : 3;
8196		u64 out_sta : 1;
8197		u64 out_wif : 1;
8198		u64 prt_chk : 3;
8199		u64 prt_nxt : 1;
8200		u64 prt_psb : 8;
8201		u64 ncb_inb : 2;
8202		u64 prt_qcb : 2;
8203		u64 prt_qsb : 3;
8204		u64 prt_ctl : 2;
8205		u64 dat_dat : 2;
8206		u64 dat_ptr : 4;
8207	} cn52xx;
8208	struct cvmx_pko_reg_bist_result_cn52xx cn52xxp1;
8209	struct cvmx_pko_reg_bist_result_cn52xx cn56xx;
8210	struct cvmx_pko_reg_bist_result_cn52xx cn56xxp1;
8211	struct cvmx_pko_reg_bist_result_cn50xx cn58xx;
8212	struct cvmx_pko_reg_bist_result_cn50xx cn58xxp1;
8213	struct cvmx_pko_reg_bist_result_cn52xx cn61xx;
8214	struct cvmx_pko_reg_bist_result_cn52xx cn63xx;
8215	struct cvmx_pko_reg_bist_result_cn52xx cn63xxp1;
8216	struct cvmx_pko_reg_bist_result_cn52xx cn66xx;
8217	struct cvmx_pko_reg_bist_result_cn68xx {
8218		u64 reserved_36_63 : 28;
8219		u64 crc : 1;
8220		u64 csr : 1;
8221		u64 iob : 1;
8222		u64 out_dat : 1;
8223		u64 reserved_31_31 : 1;
8224		u64 out_ctl : 2;
8225		u64 out_sta : 1;
8226		u64 out_wif : 1;
8227		u64 prt_chk : 3;
8228		u64 prt_nxt : 1;
8229		u64 prt_psb7 : 1;
8230		u64 reserved_21_21 : 1;
8231		u64 prt_psb : 6;
8232		u64 ncb_inb : 2;
8233		u64 prt_qcb : 2;
8234		u64 prt_qsb : 3;
8235		u64 prt_ctl : 2;
8236		u64 dat_dat : 2;
8237		u64 dat_ptr : 4;
8238	} cn68xx;
8239	struct cvmx_pko_reg_bist_result_cn68xxp1 {
8240		u64 reserved_35_63 : 29;
8241		u64 csr : 1;
8242		u64 iob : 1;
8243		u64 out_dat : 1;
8244		u64 reserved_31_31 : 1;
8245		u64 out_ctl : 2;
8246		u64 out_sta : 1;
8247		u64 out_wif : 1;
8248		u64 prt_chk : 3;
8249		u64 prt_nxt : 1;
8250		u64 prt_psb7 : 1;
8251		u64 reserved_21_21 : 1;
8252		u64 prt_psb : 6;
8253		u64 ncb_inb : 2;
8254		u64 prt_qcb : 2;
8255		u64 prt_qsb : 3;
8256		u64 prt_ctl : 2;
8257		u64 dat_dat : 2;
8258		u64 dat_ptr : 4;
8259	} cn68xxp1;
8260	struct cvmx_pko_reg_bist_result_cn70xx {
8261		u64 reserved_30_63 : 34;
8262		u64 csr : 1;
8263		u64 iob : 1;
8264		u64 out_dat : 1;
8265		u64 out_ctl : 1;
8266		u64 out_sta : 1;
8267		u64 out_wif : 1;
8268		u64 prt_chk : 3;
8269		u64 prt_nxt : 1;
8270		u64 prt_psb : 8;
8271		u64 ncb_inb : 1;
8272		u64 prt_qcb : 1;
8273		u64 prt_qsb : 2;
8274		u64 prt_ctl : 2;
8275		u64 dat_dat : 2;
8276		u64 dat_ptr : 4;
8277	} cn70xx;
8278	struct cvmx_pko_reg_bist_result_cn70xx cn70xxp1;
8279	struct cvmx_pko_reg_bist_result_cn52xx cnf71xx;
8280};
8281
8282typedef union cvmx_pko_reg_bist_result cvmx_pko_reg_bist_result_t;
8283
8284/**
8285 * cvmx_pko_reg_cmd_buf
8286 *
8287 * Notes:
8288 * Sets the command buffer parameters
8289 * The size of the command buffer segments is measured in uint64s.  The pool specifies (1 of 8 free
8290 * lists to be used when freeing command buffer segments.
8291 */
8292union cvmx_pko_reg_cmd_buf {
8293	u64 u64;
8294	struct cvmx_pko_reg_cmd_buf_s {
8295		u64 reserved_23_63 : 41;
8296		u64 pool : 3;
8297		u64 reserved_13_19 : 7;
8298		u64 size : 13;
8299	} s;
8300	struct cvmx_pko_reg_cmd_buf_s cn30xx;
8301	struct cvmx_pko_reg_cmd_buf_s cn31xx;
8302	struct cvmx_pko_reg_cmd_buf_s cn38xx;
8303	struct cvmx_pko_reg_cmd_buf_s cn38xxp2;
8304	struct cvmx_pko_reg_cmd_buf_s cn50xx;
8305	struct cvmx_pko_reg_cmd_buf_s cn52xx;
8306	struct cvmx_pko_reg_cmd_buf_s cn52xxp1;
8307	struct cvmx_pko_reg_cmd_buf_s cn56xx;
8308	struct cvmx_pko_reg_cmd_buf_s cn56xxp1;
8309	struct cvmx_pko_reg_cmd_buf_s cn58xx;
8310	struct cvmx_pko_reg_cmd_buf_s cn58xxp1;
8311	struct cvmx_pko_reg_cmd_buf_s cn61xx;
8312	struct cvmx_pko_reg_cmd_buf_s cn63xx;
8313	struct cvmx_pko_reg_cmd_buf_s cn63xxp1;
8314	struct cvmx_pko_reg_cmd_buf_s cn66xx;
8315	struct cvmx_pko_reg_cmd_buf_s cn68xx;
8316	struct cvmx_pko_reg_cmd_buf_s cn68xxp1;
8317	struct cvmx_pko_reg_cmd_buf_cn70xx {
8318		u64 reserved_23_63 : 41;
8319		u64 pool : 3;
8320		u64 reserved_19_13 : 7;
8321		u64 size : 13;
8322	} cn70xx;
8323	struct cvmx_pko_reg_cmd_buf_cn70xx cn70xxp1;
8324	struct cvmx_pko_reg_cmd_buf_s cnf71xx;
8325};
8326
8327typedef union cvmx_pko_reg_cmd_buf cvmx_pko_reg_cmd_buf_t;
8328
8329/**
8330 * cvmx_pko_reg_crc_ctl#
8331 *
8332 * Notes:
8333 * Controls datapath reflection when calculating CRC
8334 *
8335 */
8336union cvmx_pko_reg_crc_ctlx {
8337	u64 u64;
8338	struct cvmx_pko_reg_crc_ctlx_s {
8339		u64 reserved_2_63 : 62;
8340		u64 invres : 1;
8341		u64 refin : 1;
8342	} s;
8343	struct cvmx_pko_reg_crc_ctlx_s cn38xx;
8344	struct cvmx_pko_reg_crc_ctlx_s cn38xxp2;
8345	struct cvmx_pko_reg_crc_ctlx_s cn58xx;
8346	struct cvmx_pko_reg_crc_ctlx_s cn58xxp1;
8347};
8348
8349typedef union cvmx_pko_reg_crc_ctlx cvmx_pko_reg_crc_ctlx_t;
8350
8351/**
8352 * cvmx_pko_reg_crc_enable
8353 *
8354 * Notes:
8355 * Enables CRC for the GMX ports.
8356 *
8357 */
8358union cvmx_pko_reg_crc_enable {
8359	u64 u64;
8360	struct cvmx_pko_reg_crc_enable_s {
8361		u64 reserved_32_63 : 32;
8362		u64 enable : 32;
8363	} s;
8364	struct cvmx_pko_reg_crc_enable_s cn38xx;
8365	struct cvmx_pko_reg_crc_enable_s cn38xxp2;
8366	struct cvmx_pko_reg_crc_enable_s cn58xx;
8367	struct cvmx_pko_reg_crc_enable_s cn58xxp1;
8368};
8369
8370typedef union cvmx_pko_reg_crc_enable cvmx_pko_reg_crc_enable_t;
8371
8372/**
8373 * cvmx_pko_reg_crc_iv#
8374 *
8375 * Notes:
8376 * Determines the IV used by the CRC algorithm
8377 * * PKO_CRC_IV
8378 *  PKO_CRC_IV controls the initial state of the CRC algorithm.  Octane can
8379 *  support a wide range of CRC algorithms and as such, the IV must be
8380 *  carefully constructed to meet the specific algorithm.  The code below
8381 *  determines the value to program into Octane based on the algorthim's IV
8382 *  and width.  In the case of Octane, the width should always be 32.
8383 *
8384 *  PKO_CRC_IV0 sets the IV for ports 0-15 while PKO_CRC_IV1 sets the IV for
8385 *  ports 16-31.
8386 *
8387 *   @verbatim
8388 *   unsigned octane_crc_iv(unsigned algorithm_iv, unsigned poly, unsigned w)
8389 *   [
8390 *     int i;
8391 *     int doit;
8392 *     unsigned int current_val = algorithm_iv;
8393 *
8394 *     for(i = 0; i < w; i++) [
8395 *       doit = current_val & 0x1;
8396 *
8397 *       if(doit) current_val ^= poly;
8398 *       assert(!(current_val & 0x1));
8399 *
8400 *       current_val = (current_val >> 1) | (doit << (w-1));
8401 *     ]
8402 *
8403 *     return current_val;
8404 *   ]
8405 *   @endverbatim
8406 */
8407union cvmx_pko_reg_crc_ivx {
8408	u64 u64;
8409	struct cvmx_pko_reg_crc_ivx_s {
8410		u64 reserved_32_63 : 32;
8411		u64 iv : 32;
8412	} s;
8413	struct cvmx_pko_reg_crc_ivx_s cn38xx;
8414	struct cvmx_pko_reg_crc_ivx_s cn38xxp2;
8415	struct cvmx_pko_reg_crc_ivx_s cn58xx;
8416	struct cvmx_pko_reg_crc_ivx_s cn58xxp1;
8417};
8418
8419typedef union cvmx_pko_reg_crc_ivx cvmx_pko_reg_crc_ivx_t;
8420
8421/**
8422 * cvmx_pko_reg_debug0
8423 *
8424 * Notes:
8425 * Note that this CSR is present only in chip revisions beginning with pass2.
8426 *
8427 */
8428union cvmx_pko_reg_debug0 {
8429	u64 u64;
8430	struct cvmx_pko_reg_debug0_s {
8431		u64 asserts : 64;
8432	} s;
8433	struct cvmx_pko_reg_debug0_cn30xx {
8434		u64 reserved_17_63 : 47;
8435		u64 asserts : 17;
8436	} cn30xx;
8437	struct cvmx_pko_reg_debug0_cn30xx cn31xx;
8438	struct cvmx_pko_reg_debug0_cn30xx cn38xx;
8439	struct cvmx_pko_reg_debug0_cn30xx cn38xxp2;
8440	struct cvmx_pko_reg_debug0_s cn50xx;
8441	struct cvmx_pko_reg_debug0_s cn52xx;
8442	struct cvmx_pko_reg_debug0_s cn52xxp1;
8443	struct cvmx_pko_reg_debug0_s cn56xx;
8444	struct cvmx_pko_reg_debug0_s cn56xxp1;
8445	struct cvmx_pko_reg_debug0_s cn58xx;
8446	struct cvmx_pko_reg_debug0_s cn58xxp1;
8447	struct cvmx_pko_reg_debug0_s cn61xx;
8448	struct cvmx_pko_reg_debug0_s cn63xx;
8449	struct cvmx_pko_reg_debug0_s cn63xxp1;
8450	struct cvmx_pko_reg_debug0_s cn66xx;
8451	struct cvmx_pko_reg_debug0_s cn68xx;
8452	struct cvmx_pko_reg_debug0_s cn68xxp1;
8453	struct cvmx_pko_reg_debug0_s cn70xx;
8454	struct cvmx_pko_reg_debug0_s cn70xxp1;
8455	struct cvmx_pko_reg_debug0_s cnf71xx;
8456};
8457
8458typedef union cvmx_pko_reg_debug0 cvmx_pko_reg_debug0_t;
8459
8460/**
8461 * cvmx_pko_reg_debug1
8462 */
8463union cvmx_pko_reg_debug1 {
8464	u64 u64;
8465	struct cvmx_pko_reg_debug1_s {
8466		u64 asserts : 64;
8467	} s;
8468	struct cvmx_pko_reg_debug1_s cn50xx;
8469	struct cvmx_pko_reg_debug1_s cn52xx;
8470	struct cvmx_pko_reg_debug1_s cn52xxp1;
8471	struct cvmx_pko_reg_debug1_s cn56xx;
8472	struct cvmx_pko_reg_debug1_s cn56xxp1;
8473	struct cvmx_pko_reg_debug1_s cn58xx;
8474	struct cvmx_pko_reg_debug1_s cn58xxp1;
8475	struct cvmx_pko_reg_debug1_s cn61xx;
8476	struct cvmx_pko_reg_debug1_s cn63xx;
8477	struct cvmx_pko_reg_debug1_s cn63xxp1;
8478	struct cvmx_pko_reg_debug1_s cn66xx;
8479	struct cvmx_pko_reg_debug1_s cn68xx;
8480	struct cvmx_pko_reg_debug1_s cn68xxp1;
8481	struct cvmx_pko_reg_debug1_s cn70xx;
8482	struct cvmx_pko_reg_debug1_s cn70xxp1;
8483	struct cvmx_pko_reg_debug1_s cnf71xx;
8484};
8485
8486typedef union cvmx_pko_reg_debug1 cvmx_pko_reg_debug1_t;
8487
8488/**
8489 * cvmx_pko_reg_debug2
8490 */
8491union cvmx_pko_reg_debug2 {
8492	u64 u64;
8493	struct cvmx_pko_reg_debug2_s {
8494		u64 asserts : 64;
8495	} s;
8496	struct cvmx_pko_reg_debug2_s cn50xx;
8497	struct cvmx_pko_reg_debug2_s cn52xx;
8498	struct cvmx_pko_reg_debug2_s cn52xxp1;
8499	struct cvmx_pko_reg_debug2_s cn56xx;
8500	struct cvmx_pko_reg_debug2_s cn56xxp1;
8501	struct cvmx_pko_reg_debug2_s cn58xx;
8502	struct cvmx_pko_reg_debug2_s cn58xxp1;
8503	struct cvmx_pko_reg_debug2_s cn61xx;
8504	struct cvmx_pko_reg_debug2_s cn63xx;
8505	struct cvmx_pko_reg_debug2_s cn63xxp1;
8506	struct cvmx_pko_reg_debug2_s cn66xx;
8507	struct cvmx_pko_reg_debug2_s cn68xx;
8508	struct cvmx_pko_reg_debug2_s cn68xxp1;
8509	struct cvmx_pko_reg_debug2_s cn70xx;
8510	struct cvmx_pko_reg_debug2_s cn70xxp1;
8511	struct cvmx_pko_reg_debug2_s cnf71xx;
8512};
8513
8514typedef union cvmx_pko_reg_debug2 cvmx_pko_reg_debug2_t;
8515
8516/**
8517 * cvmx_pko_reg_debug3
8518 */
8519union cvmx_pko_reg_debug3 {
8520	u64 u64;
8521	struct cvmx_pko_reg_debug3_s {
8522		u64 asserts : 64;
8523	} s;
8524	struct cvmx_pko_reg_debug3_s cn50xx;
8525	struct cvmx_pko_reg_debug3_s cn52xx;
8526	struct cvmx_pko_reg_debug3_s cn52xxp1;
8527	struct cvmx_pko_reg_debug3_s cn56xx;
8528	struct cvmx_pko_reg_debug3_s cn56xxp1;
8529	struct cvmx_pko_reg_debug3_s cn58xx;
8530	struct cvmx_pko_reg_debug3_s cn58xxp1;
8531	struct cvmx_pko_reg_debug3_s cn61xx;
8532	struct cvmx_pko_reg_debug3_s cn63xx;
8533	struct cvmx_pko_reg_debug3_s cn63xxp1;
8534	struct cvmx_pko_reg_debug3_s cn66xx;
8535	struct cvmx_pko_reg_debug3_s cn68xx;
8536	struct cvmx_pko_reg_debug3_s cn68xxp1;
8537	struct cvmx_pko_reg_debug3_s cn70xx;
8538	struct cvmx_pko_reg_debug3_s cn70xxp1;
8539	struct cvmx_pko_reg_debug3_s cnf71xx;
8540};
8541
8542typedef union cvmx_pko_reg_debug3 cvmx_pko_reg_debug3_t;
8543
8544/**
8545 * cvmx_pko_reg_debug4
8546 */
8547union cvmx_pko_reg_debug4 {
8548	u64 u64;
8549	struct cvmx_pko_reg_debug4_s {
8550		u64 asserts : 64;
8551	} s;
8552	struct cvmx_pko_reg_debug4_s cn68xx;
8553	struct cvmx_pko_reg_debug4_s cn68xxp1;
8554};
8555
8556typedef union cvmx_pko_reg_debug4 cvmx_pko_reg_debug4_t;
8557
8558/**
8559 * cvmx_pko_reg_engine_inflight
8560 *
8561 * Notes:
8562 * Sets the maximum number of inflight packets, per engine.  Values greater than 4 are illegal.
8563 * Setting an engine's value to 0 effectively stops the engine.
8564 */
8565union cvmx_pko_reg_engine_inflight {
8566	u64 u64;
8567	struct cvmx_pko_reg_engine_inflight_s {
8568		u64 engine15 : 4;
8569		u64 engine14 : 4;
8570		u64 engine13 : 4;
8571		u64 engine12 : 4;
8572		u64 engine11 : 4;
8573		u64 engine10 : 4;
8574		u64 engine9 : 4;
8575		u64 engine8 : 4;
8576		u64 engine7 : 4;
8577		u64 engine6 : 4;
8578		u64 engine5 : 4;
8579		u64 engine4 : 4;
8580		u64 engine3 : 4;
8581		u64 engine2 : 4;
8582		u64 engine1 : 4;
8583		u64 engine0 : 4;
8584	} s;
8585	struct cvmx_pko_reg_engine_inflight_cn52xx {
8586		u64 reserved_40_63 : 24;
8587		u64 engine9 : 4;
8588		u64 engine8 : 4;
8589		u64 engine7 : 4;
8590		u64 engine6 : 4;
8591		u64 engine5 : 4;
8592		u64 engine4 : 4;
8593		u64 engine3 : 4;
8594		u64 engine2 : 4;
8595		u64 engine1 : 4;
8596		u64 engine0 : 4;
8597	} cn52xx;
8598	struct cvmx_pko_reg_engine_inflight_cn52xx cn52xxp1;
8599	struct cvmx_pko_reg_engine_inflight_cn52xx cn56xx;
8600	struct cvmx_pko_reg_engine_inflight_cn52xx cn56xxp1;
8601	struct cvmx_pko_reg_engine_inflight_cn61xx {
8602		u64 reserved_56_63 : 8;
8603		u64 engine13 : 4;
8604		u64 engine12 : 4;
8605		u64 engine11 : 4;
8606		u64 engine10 : 4;
8607		u64 engine9 : 4;
8608		u64 engine8 : 4;
8609		u64 engine7 : 4;
8610		u64 engine6 : 4;
8611		u64 engine5 : 4;
8612		u64 engine4 : 4;
8613		u64 engine3 : 4;
8614		u64 engine2 : 4;
8615		u64 engine1 : 4;
8616		u64 engine0 : 4;
8617	} cn61xx;
8618	struct cvmx_pko_reg_engine_inflight_cn63xx {
8619		u64 reserved_48_63 : 16;
8620		u64 engine11 : 4;
8621		u64 engine10 : 4;
8622		u64 engine9 : 4;
8623		u64 engine8 : 4;
8624		u64 engine7 : 4;
8625		u64 engine6 : 4;
8626		u64 engine5 : 4;
8627		u64 engine4 : 4;
8628		u64 engine3 : 4;
8629		u64 engine2 : 4;
8630		u64 engine1 : 4;
8631		u64 engine0 : 4;
8632	} cn63xx;
8633	struct cvmx_pko_reg_engine_inflight_cn63xx cn63xxp1;
8634	struct cvmx_pko_reg_engine_inflight_cn61xx cn66xx;
8635	struct cvmx_pko_reg_engine_inflight_s cn68xx;
8636	struct cvmx_pko_reg_engine_inflight_s cn68xxp1;
8637	struct cvmx_pko_reg_engine_inflight_cn61xx cn70xx;
8638	struct cvmx_pko_reg_engine_inflight_cn61xx cn70xxp1;
8639	struct cvmx_pko_reg_engine_inflight_cn61xx cnf71xx;
8640};
8641
8642typedef union cvmx_pko_reg_engine_inflight cvmx_pko_reg_engine_inflight_t;
8643
8644/**
8645 * cvmx_pko_reg_engine_inflight1
8646 *
8647 * Notes:
8648 * Sets the maximum number of inflight packets, per engine.  Values greater than 8 are illegal.
8649 * Setting an engine's value to 0 effectively stops the engine.
8650 */
8651union cvmx_pko_reg_engine_inflight1 {
8652	u64 u64;
8653	struct cvmx_pko_reg_engine_inflight1_s {
8654		u64 reserved_16_63 : 48;
8655		u64 engine19 : 4;
8656		u64 engine18 : 4;
8657		u64 engine17 : 4;
8658		u64 engine16 : 4;
8659	} s;
8660	struct cvmx_pko_reg_engine_inflight1_s cn68xx;
8661	struct cvmx_pko_reg_engine_inflight1_s cn68xxp1;
8662};
8663
8664typedef union cvmx_pko_reg_engine_inflight1 cvmx_pko_reg_engine_inflight1_t;
8665
8666/**
8667 * cvmx_pko_reg_engine_storage#
8668 *
8669 * Notes:
8670 * The PKO has 40KB of local storage, consisting of 20, 2KB chunks.  Up to 15 contiguous chunks may be mapped per engine.
8671 * The total of all mapped storage must not exceed 40KB.
8672 */
8673union cvmx_pko_reg_engine_storagex {
8674	u64 u64;
8675	struct cvmx_pko_reg_engine_storagex_s {
8676		u64 engine15 : 4;
8677		u64 engine14 : 4;
8678		u64 engine13 : 4;
8679		u64 engine12 : 4;
8680		u64 engine11 : 4;
8681		u64 engine10 : 4;
8682		u64 engine9 : 4;
8683		u64 engine8 : 4;
8684		u64 engine7 : 4;
8685		u64 engine6 : 4;
8686		u64 engine5 : 4;
8687		u64 engine4 : 4;
8688		u64 engine3 : 4;
8689		u64 engine2 : 4;
8690		u64 engine1 : 4;
8691		u64 engine0 : 4;
8692	} s;
8693	struct cvmx_pko_reg_engine_storagex_s cn68xx;
8694	struct cvmx_pko_reg_engine_storagex_s cn68xxp1;
8695};
8696
8697typedef union cvmx_pko_reg_engine_storagex cvmx_pko_reg_engine_storagex_t;
8698
8699/**
8700 * cvmx_pko_reg_engine_thresh
8701 *
8702 * Notes:
8703 * When not enabled, packet data may be sent as soon as it is written into PKO's internal buffers.
8704 * When enabled and the packet fits entirely in the PKO's internal buffer, none of the packet data will
8705 * be sent until all of it has been written into the PKO's internal buffer.  Note that a packet is
8706 * considered to fit entirely only if the packet's size is <= BUFFER_SIZE-8.  When enabled and the
8707 * packet does not fit entirely in the PKO's internal buffer, none of the packet data will be sent until
8708 * at least BUFFER_SIZE-256 bytes of the packet have been written into the PKO's internal buffer
8709 * (note that BUFFER_SIZE is a function of PKO_REG_GMX_PORT_MODE above)
8710 */
8711union cvmx_pko_reg_engine_thresh {
8712	u64 u64;
8713	struct cvmx_pko_reg_engine_thresh_s {
8714		u64 reserved_20_63 : 44;
8715		u64 mask : 20;
8716	} s;
8717	struct cvmx_pko_reg_engine_thresh_cn52xx {
8718		u64 reserved_10_63 : 54;
8719		u64 mask : 10;
8720	} cn52xx;
8721	struct cvmx_pko_reg_engine_thresh_cn52xx cn52xxp1;
8722	struct cvmx_pko_reg_engine_thresh_cn52xx cn56xx;
8723	struct cvmx_pko_reg_engine_thresh_cn52xx cn56xxp1;
8724	struct cvmx_pko_reg_engine_thresh_cn61xx {
8725		u64 reserved_14_63 : 50;
8726		u64 mask : 14;
8727	} cn61xx;
8728	struct cvmx_pko_reg_engine_thresh_cn63xx {
8729		u64 reserved_12_63 : 52;
8730		u64 mask : 12;
8731	} cn63xx;
8732	struct cvmx_pko_reg_engine_thresh_cn63xx cn63xxp1;
8733	struct cvmx_pko_reg_engine_thresh_cn61xx cn66xx;
8734	struct cvmx_pko_reg_engine_thresh_s cn68xx;
8735	struct cvmx_pko_reg_engine_thresh_s cn68xxp1;
8736	struct cvmx_pko_reg_engine_thresh_cn61xx cn70xx;
8737	struct cvmx_pko_reg_engine_thresh_cn61xx cn70xxp1;
8738	struct cvmx_pko_reg_engine_thresh_cn61xx cnf71xx;
8739};
8740
8741typedef union cvmx_pko_reg_engine_thresh cvmx_pko_reg_engine_thresh_t;
8742
8743/**
8744 * cvmx_pko_reg_error
8745 *
8746 * Notes:
8747 * Note that this CSR is present only in chip revisions beginning with pass2.
8748 *
8749 */
8750union cvmx_pko_reg_error {
8751	u64 u64;
8752	struct cvmx_pko_reg_error_s {
8753		u64 reserved_4_63 : 60;
8754		u64 loopback : 1;
8755		u64 currzero : 1;
8756		u64 doorbell : 1;
8757		u64 parity : 1;
8758	} s;
8759	struct cvmx_pko_reg_error_cn30xx {
8760		u64 reserved_2_63 : 62;
8761		u64 doorbell : 1;
8762		u64 parity : 1;
8763	} cn30xx;
8764	struct cvmx_pko_reg_error_cn30xx cn31xx;
8765	struct cvmx_pko_reg_error_cn30xx cn38xx;
8766	struct cvmx_pko_reg_error_cn30xx cn38xxp2;
8767	struct cvmx_pko_reg_error_cn50xx {
8768		u64 reserved_3_63 : 61;
8769		u64 currzero : 1;
8770		u64 doorbell : 1;
8771		u64 parity : 1;
8772	} cn50xx;
8773	struct cvmx_pko_reg_error_cn50xx cn52xx;
8774	struct cvmx_pko_reg_error_cn50xx cn52xxp1;
8775	struct cvmx_pko_reg_error_cn50xx cn56xx;
8776	struct cvmx_pko_reg_error_cn50xx cn56xxp1;
8777	struct cvmx_pko_reg_error_cn50xx cn58xx;
8778	struct cvmx_pko_reg_error_cn50xx cn58xxp1;
8779	struct cvmx_pko_reg_error_cn50xx cn61xx;
8780	struct cvmx_pko_reg_error_cn50xx cn63xx;
8781	struct cvmx_pko_reg_error_cn50xx cn63xxp1;
8782	struct cvmx_pko_reg_error_cn50xx cn66xx;
8783	struct cvmx_pko_reg_error_s cn68xx;
8784	struct cvmx_pko_reg_error_s cn68xxp1;
8785	struct cvmx_pko_reg_error_cn50xx cn70xx;
8786	struct cvmx_pko_reg_error_cn50xx cn70xxp1;
8787	struct cvmx_pko_reg_error_cn50xx cnf71xx;
8788};
8789
8790typedef union cvmx_pko_reg_error cvmx_pko_reg_error_t;
8791
8792/**
8793 * cvmx_pko_reg_flags
8794 *
8795 * Notes:
8796 * When set, ENA_PKO enables the PKO picker and places the PKO in normal operation.  When set, ENA_DWB
8797 * enables the use of DontWriteBacks during the buffer freeing operations.  When not set, STORE_BE inverts
8798 * bits[2:0] of the STORE0 byte write address.  When set, RESET causes a 4-cycle reset pulse to the
8799 * entire box.
8800 */
8801union cvmx_pko_reg_flags {
8802	u64 u64;
8803	struct cvmx_pko_reg_flags_s {
8804		u64 reserved_9_63 : 55;
8805		u64 dis_perf3 : 1;
8806		u64 dis_perf2 : 1;
8807		u64 dis_perf1 : 1;
8808		u64 dis_perf0 : 1;
8809		u64 ena_throttle : 1;
8810		u64 reset : 1;
8811		u64 store_be : 1;
8812		u64 ena_dwb : 1;
8813		u64 ena_pko : 1;
8814	} s;
8815	struct cvmx_pko_reg_flags_cn30xx {
8816		u64 reserved_4_63 : 60;
8817		u64 reset : 1;
8818		u64 store_be : 1;
8819		u64 ena_dwb : 1;
8820		u64 ena_pko : 1;
8821	} cn30xx;
8822	struct cvmx_pko_reg_flags_cn30xx cn31xx;
8823	struct cvmx_pko_reg_flags_cn30xx cn38xx;
8824	struct cvmx_pko_reg_flags_cn30xx cn38xxp2;
8825	struct cvmx_pko_reg_flags_cn30xx cn50xx;
8826	struct cvmx_pko_reg_flags_cn30xx cn52xx;
8827	struct cvmx_pko_reg_flags_cn30xx cn52xxp1;
8828	struct cvmx_pko_reg_flags_cn30xx cn56xx;
8829	struct cvmx_pko_reg_flags_cn30xx cn56xxp1;
8830	struct cvmx_pko_reg_flags_cn30xx cn58xx;
8831	struct cvmx_pko_reg_flags_cn30xx cn58xxp1;
8832	struct cvmx_pko_reg_flags_cn61xx {
8833		u64 reserved_9_63 : 55;
8834		u64 dis_perf3 : 1;
8835		u64 dis_perf2 : 1;
8836		u64 reserved_4_6 : 3;
8837		u64 reset : 1;
8838		u64 store_be : 1;
8839		u64 ena_dwb : 1;
8840		u64 ena_pko : 1;
8841	} cn61xx;
8842	struct cvmx_pko_reg_flags_cn30xx cn63xx;
8843	struct cvmx_pko_reg_flags_cn30xx cn63xxp1;
8844	struct cvmx_pko_reg_flags_cn61xx cn66xx;
8845	struct cvmx_pko_reg_flags_s cn68xx;
8846	struct cvmx_pko_reg_flags_cn68xxp1 {
8847		u64 reserved_7_63 : 57;
8848		u64 dis_perf1 : 1;
8849		u64 dis_perf0 : 1;
8850		u64 ena_throttle : 1;
8851		u64 reset : 1;
8852		u64 store_be : 1;
8853		u64 ena_dwb : 1;
8854		u64 ena_pko : 1;
8855	} cn68xxp1;
8856	struct cvmx_pko_reg_flags_cn61xx cn70xx;
8857	struct cvmx_pko_reg_flags_cn61xx cn70xxp1;
8858	struct cvmx_pko_reg_flags_cn61xx cnf71xx;
8859};
8860
8861typedef union cvmx_pko_reg_flags cvmx_pko_reg_flags_t;
8862
8863/**
8864 * cvmx_pko_reg_gmx_port_mode
8865 *
8866 * Notes:
8867 * The system has a total of 2 + 4 + 4 ports and 2 + 1 + 1 engines (GM0 + PCI + LOOP).
8868 * This CSR sets the number of GMX0 ports and amount of local storage per engine.
8869 * It has no effect on the number of ports or amount of local storage per engine for PCI and LOOP.
8870 * When both GMX ports are used (MODE0=3), each GMX engine has 10kB of local
8871 * storage.  Increasing MODE0 to 4 decreases the number of GMX ports to 1 and
8872 * increases the local storage for the one remaining PKO GMX engine to 20kB.
8873 * MODE0 value 0, 1, and 2, or greater than 4 are illegal.
8874 *
8875 * MODE0   GMX0  PCI   LOOP  GMX0                       PCI            LOOP
8876 *         ports ports ports storage/engine             storage/engine storage/engine
8877 * 3       2     4     4      10.0kB                    2.5kB          2.5kB
8878 * 4       1     4     4      20.0kB                    2.5kB          2.5kB
8879 */
8880union cvmx_pko_reg_gmx_port_mode {
8881	u64 u64;
8882	struct cvmx_pko_reg_gmx_port_mode_s {
8883		u64 reserved_6_63 : 58;
8884		u64 mode1 : 3;
8885		u64 mode0 : 3;
8886	} s;
8887	struct cvmx_pko_reg_gmx_port_mode_s cn30xx;
8888	struct cvmx_pko_reg_gmx_port_mode_s cn31xx;
8889	struct cvmx_pko_reg_gmx_port_mode_s cn38xx;
8890	struct cvmx_pko_reg_gmx_port_mode_s cn38xxp2;
8891	struct cvmx_pko_reg_gmx_port_mode_s cn50xx;
8892	struct cvmx_pko_reg_gmx_port_mode_s cn52xx;
8893	struct cvmx_pko_reg_gmx_port_mode_s cn52xxp1;
8894	struct cvmx_pko_reg_gmx_port_mode_s cn56xx;
8895	struct cvmx_pko_reg_gmx_port_mode_s cn56xxp1;
8896	struct cvmx_pko_reg_gmx_port_mode_s cn58xx;
8897	struct cvmx_pko_reg_gmx_port_mode_s cn58xxp1;
8898	struct cvmx_pko_reg_gmx_port_mode_s cn61xx;
8899	struct cvmx_pko_reg_gmx_port_mode_s cn63xx;
8900	struct cvmx_pko_reg_gmx_port_mode_s cn63xxp1;
8901	struct cvmx_pko_reg_gmx_port_mode_s cn66xx;
8902	struct cvmx_pko_reg_gmx_port_mode_s cn70xx;
8903	struct cvmx_pko_reg_gmx_port_mode_s cn70xxp1;
8904	struct cvmx_pko_reg_gmx_port_mode_s cnf71xx;
8905};
8906
8907typedef union cvmx_pko_reg_gmx_port_mode cvmx_pko_reg_gmx_port_mode_t;
8908
8909/**
8910 * cvmx_pko_reg_int_mask
8911 *
8912 * Notes:
8913 * When a mask bit is set, the corresponding interrupt is enabled.
8914 *
8915 */
8916union cvmx_pko_reg_int_mask {
8917	u64 u64;
8918	struct cvmx_pko_reg_int_mask_s {
8919		u64 reserved_4_63 : 60;
8920		u64 loopback : 1;
8921		u64 currzero : 1;
8922		u64 doorbell : 1;
8923		u64 parity : 1;
8924	} s;
8925	struct cvmx_pko_reg_int_mask_cn30xx {
8926		u64 reserved_2_63 : 62;
8927		u64 doorbell : 1;
8928		u64 parity : 1;
8929	} cn30xx;
8930	struct cvmx_pko_reg_int_mask_cn30xx cn31xx;
8931	struct cvmx_pko_reg_int_mask_cn30xx cn38xx;
8932	struct cvmx_pko_reg_int_mask_cn30xx cn38xxp2;
8933	struct cvmx_pko_reg_int_mask_cn50xx {
8934		u64 reserved_3_63 : 61;
8935		u64 currzero : 1;
8936		u64 doorbell : 1;
8937		u64 parity : 1;
8938	} cn50xx;
8939	struct cvmx_pko_reg_int_mask_cn50xx cn52xx;
8940	struct cvmx_pko_reg_int_mask_cn50xx cn52xxp1;
8941	struct cvmx_pko_reg_int_mask_cn50xx cn56xx;
8942	struct cvmx_pko_reg_int_mask_cn50xx cn56xxp1;
8943	struct cvmx_pko_reg_int_mask_cn50xx cn58xx;
8944	struct cvmx_pko_reg_int_mask_cn50xx cn58xxp1;
8945	struct cvmx_pko_reg_int_mask_cn50xx cn61xx;
8946	struct cvmx_pko_reg_int_mask_cn50xx cn63xx;
8947	struct cvmx_pko_reg_int_mask_cn50xx cn63xxp1;
8948	struct cvmx_pko_reg_int_mask_cn50xx cn66xx;
8949	struct cvmx_pko_reg_int_mask_s cn68xx;
8950	struct cvmx_pko_reg_int_mask_s cn68xxp1;
8951	struct cvmx_pko_reg_int_mask_cn50xx cn70xx;
8952	struct cvmx_pko_reg_int_mask_cn50xx cn70xxp1;
8953	struct cvmx_pko_reg_int_mask_cn50xx cnf71xx;
8954};
8955
8956typedef union cvmx_pko_reg_int_mask cvmx_pko_reg_int_mask_t;
8957
8958/**
8959 * cvmx_pko_reg_loopback_bpid
8960 *
8961 * Notes:
8962 * None.
8963 *
8964 */
8965union cvmx_pko_reg_loopback_bpid {
8966	u64 u64;
8967	struct cvmx_pko_reg_loopback_bpid_s {
8968		u64 reserved_59_63 : 5;
8969		u64 bpid7 : 6;
8970		u64 reserved_52_52 : 1;
8971		u64 bpid6 : 6;
8972		u64 reserved_45_45 : 1;
8973		u64 bpid5 : 6;
8974		u64 reserved_38_38 : 1;
8975		u64 bpid4 : 6;
8976		u64 reserved_31_31 : 1;
8977		u64 bpid3 : 6;
8978		u64 reserved_24_24 : 1;
8979		u64 bpid2 : 6;
8980		u64 reserved_17_17 : 1;
8981		u64 bpid1 : 6;
8982		u64 reserved_10_10 : 1;
8983		u64 bpid0 : 6;
8984		u64 reserved_0_3 : 4;
8985	} s;
8986	struct cvmx_pko_reg_loopback_bpid_s cn68xx;
8987	struct cvmx_pko_reg_loopback_bpid_s cn68xxp1;
8988};
8989
8990typedef union cvmx_pko_reg_loopback_bpid cvmx_pko_reg_loopback_bpid_t;
8991
8992/**
8993 * cvmx_pko_reg_loopback_pkind
8994 *
8995 * Notes:
8996 * None.
8997 *
8998 */
8999union cvmx_pko_reg_loopback_pkind {
9000	u64 u64;
9001	struct cvmx_pko_reg_loopback_pkind_s {
9002		u64 reserved_59_63 : 5;
9003		u64 pkind7 : 6;
9004		u64 reserved_52_52 : 1;
9005		u64 pkind6 : 6;
9006		u64 reserved_45_45 : 1;
9007		u64 pkind5 : 6;
9008		u64 reserved_38_38 : 1;
9009		u64 pkind4 : 6;
9010		u64 reserved_31_31 : 1;
9011		u64 pkind3 : 6;
9012		u64 reserved_24_24 : 1;
9013		u64 pkind2 : 6;
9014		u64 reserved_17_17 : 1;
9015		u64 pkind1 : 6;
9016		u64 reserved_10_10 : 1;
9017		u64 pkind0 : 6;
9018		u64 num_ports : 4;
9019	} s;
9020	struct cvmx_pko_reg_loopback_pkind_s cn68xx;
9021	struct cvmx_pko_reg_loopback_pkind_s cn68xxp1;
9022};
9023
9024typedef union cvmx_pko_reg_loopback_pkind cvmx_pko_reg_loopback_pkind_t;
9025
9026/**
9027 * cvmx_pko_reg_min_pkt
9028 *
9029 * Notes:
9030 * This CSR is used with PKO_MEM_IPORT_PTRS[MIN_PKT] to select the minimum packet size.  Packets whose
9031 * size in bytes < (SIZEn+1) are zero-padded to (SIZEn+1) bytes.  Note that this does not include CRC bytes.
9032 * SIZE0=0 is read-only and is used when no padding is desired.
9033 */
9034union cvmx_pko_reg_min_pkt {
9035	u64 u64;
9036	struct cvmx_pko_reg_min_pkt_s {
9037		u64 size7 : 8;
9038		u64 size6 : 8;
9039		u64 size5 : 8;
9040		u64 size4 : 8;
9041		u64 size3 : 8;
9042		u64 size2 : 8;
9043		u64 size1 : 8;
9044		u64 size0 : 8;
9045	} s;
9046	struct cvmx_pko_reg_min_pkt_s cn68xx;
9047	struct cvmx_pko_reg_min_pkt_s cn68xxp1;
9048};
9049
9050typedef union cvmx_pko_reg_min_pkt cvmx_pko_reg_min_pkt_t;
9051
9052/**
9053 * cvmx_pko_reg_preempt
9054 */
9055union cvmx_pko_reg_preempt {
9056	u64 u64;
9057	struct cvmx_pko_reg_preempt_s {
9058		u64 reserved_16_63 : 48;
9059		u64 min_size : 16;
9060	} s;
9061	struct cvmx_pko_reg_preempt_s cn52xx;
9062	struct cvmx_pko_reg_preempt_s cn52xxp1;
9063	struct cvmx_pko_reg_preempt_s cn56xx;
9064	struct cvmx_pko_reg_preempt_s cn56xxp1;
9065	struct cvmx_pko_reg_preempt_s cn61xx;
9066	struct cvmx_pko_reg_preempt_s cn63xx;
9067	struct cvmx_pko_reg_preempt_s cn63xxp1;
9068	struct cvmx_pko_reg_preempt_s cn66xx;
9069	struct cvmx_pko_reg_preempt_s cn68xx;
9070	struct cvmx_pko_reg_preempt_s cn68xxp1;
9071	struct cvmx_pko_reg_preempt_s cn70xx;
9072	struct cvmx_pko_reg_preempt_s cn70xxp1;
9073	struct cvmx_pko_reg_preempt_s cnf71xx;
9074};
9075
9076typedef union cvmx_pko_reg_preempt cvmx_pko_reg_preempt_t;
9077
9078/**
9079 * cvmx_pko_reg_queue_mode
9080 *
9081 * Notes:
9082 * Sets the number of queues and amount of local storage per queue
9083 * The system has a total of 256 queues and (256*8) words of local command storage.  This CSR sets the
9084 * number of queues that are used.  Increasing the value of MODE by 1 decreases the number of queues
9085 * by a power of 2 and increases the local storage per queue by a power of 2.
9086 * MODEn queues storage/queue
9087 * 0     256     64B ( 8 words)
9088 * 1     128    128B (16 words)
9089 * 2      64    256B (32 words)
9090 */
9091union cvmx_pko_reg_queue_mode {
9092	u64 u64;
9093	struct cvmx_pko_reg_queue_mode_s {
9094		u64 reserved_2_63 : 62;
9095		u64 mode : 2;
9096	} s;
9097	struct cvmx_pko_reg_queue_mode_s cn30xx;
9098	struct cvmx_pko_reg_queue_mode_s cn31xx;
9099	struct cvmx_pko_reg_queue_mode_s cn38xx;
9100	struct cvmx_pko_reg_queue_mode_s cn38xxp2;
9101	struct cvmx_pko_reg_queue_mode_s cn50xx;
9102	struct cvmx_pko_reg_queue_mode_s cn52xx;
9103	struct cvmx_pko_reg_queue_mode_s cn52xxp1;
9104	struct cvmx_pko_reg_queue_mode_s cn56xx;
9105	struct cvmx_pko_reg_queue_mode_s cn56xxp1;
9106	struct cvmx_pko_reg_queue_mode_s cn58xx;
9107	struct cvmx_pko_reg_queue_mode_s cn58xxp1;
9108	struct cvmx_pko_reg_queue_mode_s cn61xx;
9109	struct cvmx_pko_reg_queue_mode_s cn63xx;
9110	struct cvmx_pko_reg_queue_mode_s cn63xxp1;
9111	struct cvmx_pko_reg_queue_mode_s cn66xx;
9112	struct cvmx_pko_reg_queue_mode_s cn68xx;
9113	struct cvmx_pko_reg_queue_mode_s cn68xxp1;
9114	struct cvmx_pko_reg_queue_mode_s cn70xx;
9115	struct cvmx_pko_reg_queue_mode_s cn70xxp1;
9116	struct cvmx_pko_reg_queue_mode_s cnf71xx;
9117};
9118
9119typedef union cvmx_pko_reg_queue_mode cvmx_pko_reg_queue_mode_t;
9120
9121/**
9122 * cvmx_pko_reg_queue_preempt
9123 *
9124 * Notes:
9125 * Per QID, setting both PREEMPTER=1 and PREEMPTEE=1 is illegal and sets only PREEMPTER=1.
9126 * This CSR is used with PKO_MEM_QUEUE_PTRS and PKO_REG_QUEUE_PTRS1.  When programming queues, the
9127 * programming sequence must first write PKO_REG_QUEUE_PREEMPT, then PKO_REG_QUEUE_PTRS1 and then
9128 * PKO_MEM_QUEUE_PTRS for each queue.  Preemption is supported only on queues that are ultimately
9129 * mapped to engines 0-7.  It is illegal to set preemptee or preempter for a queue that is ultimately
9130 * mapped to engines 8-11.
9131 *
9132 * Also, PKO_REG_ENGINE_INFLIGHT must be at least 2 for any engine on which preemption is enabled.
9133 *
9134 * See the descriptions of PKO_MEM_QUEUE_PTRS for further explanation of queue programming.
9135 */
9136union cvmx_pko_reg_queue_preempt {
9137	u64 u64;
9138	struct cvmx_pko_reg_queue_preempt_s {
9139		u64 reserved_2_63 : 62;
9140		u64 preemptee : 1;
9141		u64 preempter : 1;
9142	} s;
9143	struct cvmx_pko_reg_queue_preempt_s cn52xx;
9144	struct cvmx_pko_reg_queue_preempt_s cn52xxp1;
9145	struct cvmx_pko_reg_queue_preempt_s cn56xx;
9146	struct cvmx_pko_reg_queue_preempt_s cn56xxp1;
9147	struct cvmx_pko_reg_queue_preempt_s cn61xx;
9148	struct cvmx_pko_reg_queue_preempt_s cn63xx;
9149	struct cvmx_pko_reg_queue_preempt_s cn63xxp1;
9150	struct cvmx_pko_reg_queue_preempt_s cn66xx;
9151	struct cvmx_pko_reg_queue_preempt_s cn68xx;
9152	struct cvmx_pko_reg_queue_preempt_s cn68xxp1;
9153	struct cvmx_pko_reg_queue_preempt_s cn70xx;
9154	struct cvmx_pko_reg_queue_preempt_s cn70xxp1;
9155	struct cvmx_pko_reg_queue_preempt_s cnf71xx;
9156};
9157
9158typedef union cvmx_pko_reg_queue_preempt cvmx_pko_reg_queue_preempt_t;
9159
9160/**
9161 * cvmx_pko_reg_queue_ptrs1
9162 *
9163 * Notes:
9164 * This CSR is used with PKO_MEM_QUEUE_PTRS and PKO_MEM_QUEUE_QOS to allow access to queues 128-255
9165 * and to allow up mapping of up to 16 queues per port.  When programming queues 128-255, the
9166 * programming sequence must first write PKO_REG_QUEUE_PTRS1 and then write PKO_MEM_QUEUE_PTRS or
9167 * PKO_MEM_QUEUE_QOS for each queue.
9168 * See the descriptions of PKO_MEM_QUEUE_PTRS and PKO_MEM_QUEUE_QOS for further explanation of queue
9169 * programming.
9170 */
9171union cvmx_pko_reg_queue_ptrs1 {
9172	u64 u64;
9173	struct cvmx_pko_reg_queue_ptrs1_s {
9174		u64 reserved_2_63 : 62;
9175		u64 idx3 : 1;
9176		u64 qid7 : 1;
9177	} s;
9178	struct cvmx_pko_reg_queue_ptrs1_s cn50xx;
9179	struct cvmx_pko_reg_queue_ptrs1_s cn52xx;
9180	struct cvmx_pko_reg_queue_ptrs1_s cn52xxp1;
9181	struct cvmx_pko_reg_queue_ptrs1_s cn56xx;
9182	struct cvmx_pko_reg_queue_ptrs1_s cn56xxp1;
9183	struct cvmx_pko_reg_queue_ptrs1_s cn58xx;
9184	struct cvmx_pko_reg_queue_ptrs1_s cn58xxp1;
9185	struct cvmx_pko_reg_queue_ptrs1_s cn61xx;
9186	struct cvmx_pko_reg_queue_ptrs1_s cn63xx;
9187	struct cvmx_pko_reg_queue_ptrs1_s cn63xxp1;
9188	struct cvmx_pko_reg_queue_ptrs1_s cn66xx;
9189	struct cvmx_pko_reg_queue_ptrs1_s cn70xx;
9190	struct cvmx_pko_reg_queue_ptrs1_s cn70xxp1;
9191	struct cvmx_pko_reg_queue_ptrs1_s cnf71xx;
9192};
9193
9194typedef union cvmx_pko_reg_queue_ptrs1 cvmx_pko_reg_queue_ptrs1_t;
9195
9196/**
9197 * cvmx_pko_reg_read_idx
9198 *
9199 * Notes:
9200 * Provides the read index during a CSR read operation to any of the CSRs that are physically stored
9201 * as memories.  The names of these CSRs begin with the prefix "PKO_MEM_".
9202 * IDX[7:0] is the read index.  INC[7:0] is an increment that is added to IDX[7:0] after any CSR read.
9203 * The intended use is to initially write this CSR such that IDX=0 and INC=1.  Then, the entire
9204 * contents of a CSR memory can be read with consecutive CSR read commands.
9205 */
9206union cvmx_pko_reg_read_idx {
9207	u64 u64;
9208	struct cvmx_pko_reg_read_idx_s {
9209		u64 reserved_16_63 : 48;
9210		u64 inc : 8;
9211		u64 index : 8;
9212	} s;
9213	struct cvmx_pko_reg_read_idx_s cn30xx;
9214	struct cvmx_pko_reg_read_idx_s cn31xx;
9215	struct cvmx_pko_reg_read_idx_s cn38xx;
9216	struct cvmx_pko_reg_read_idx_s cn38xxp2;
9217	struct cvmx_pko_reg_read_idx_s cn50xx;
9218	struct cvmx_pko_reg_read_idx_s cn52xx;
9219	struct cvmx_pko_reg_read_idx_s cn52xxp1;
9220	struct cvmx_pko_reg_read_idx_s cn56xx;
9221	struct cvmx_pko_reg_read_idx_s cn56xxp1;
9222	struct cvmx_pko_reg_read_idx_s cn58xx;
9223	struct cvmx_pko_reg_read_idx_s cn58xxp1;
9224	struct cvmx_pko_reg_read_idx_s cn61xx;
9225	struct cvmx_pko_reg_read_idx_s cn63xx;
9226	struct cvmx_pko_reg_read_idx_s cn63xxp1;
9227	struct cvmx_pko_reg_read_idx_s cn66xx;
9228	struct cvmx_pko_reg_read_idx_s cn68xx;
9229	struct cvmx_pko_reg_read_idx_s cn68xxp1;
9230	struct cvmx_pko_reg_read_idx_s cn70xx;
9231	struct cvmx_pko_reg_read_idx_s cn70xxp1;
9232	struct cvmx_pko_reg_read_idx_s cnf71xx;
9233};
9234
9235typedef union cvmx_pko_reg_read_idx cvmx_pko_reg_read_idx_t;
9236
9237/**
9238 * cvmx_pko_reg_throttle
9239 *
9240 * Notes:
9241 * This CSR is used with PKO_MEM_THROTTLE_PIPE and PKO_MEM_THROTTLE_INT.  INT_MASK corresponds to the
9242 * interfaces listed in the description for PKO_MEM_IPORT_PTRS[INT].  Set INT_MASK[N] to enable the
9243 * updating of PKO_MEM_THROTTLE_PIPE and PKO_MEM_THROTTLE_INT counts for packets destined for
9244 * interface N.  INT_MASK has no effect on the updates caused by CSR writes to PKO_MEM_THROTTLE_PIPE
9245 * and PKO_MEM_THROTTLE_INT.  Note that this does not disable the throttle logic, just the updating of
9246 * the interface counts.
9247 */
9248union cvmx_pko_reg_throttle {
9249	u64 u64;
9250	struct cvmx_pko_reg_throttle_s {
9251		u64 reserved_32_63 : 32;
9252		u64 int_mask : 32;
9253	} s;
9254	struct cvmx_pko_reg_throttle_s cn68xx;
9255	struct cvmx_pko_reg_throttle_s cn68xxp1;
9256};
9257
9258typedef union cvmx_pko_reg_throttle cvmx_pko_reg_throttle_t;
9259
9260/**
9261 * cvmx_pko_reg_timestamp
9262 *
9263 * Notes:
9264 * None.
9265 *
9266 */
9267union cvmx_pko_reg_timestamp {
9268	u64 u64;
9269	struct cvmx_pko_reg_timestamp_s {
9270		u64 reserved_4_63 : 60;
9271		u64 wqe_word : 4;
9272	} s;
9273	struct cvmx_pko_reg_timestamp_s cn61xx;
9274	struct cvmx_pko_reg_timestamp_s cn63xx;
9275	struct cvmx_pko_reg_timestamp_s cn63xxp1;
9276	struct cvmx_pko_reg_timestamp_s cn66xx;
9277	struct cvmx_pko_reg_timestamp_s cn68xx;
9278	struct cvmx_pko_reg_timestamp_s cn68xxp1;
9279	struct cvmx_pko_reg_timestamp_s cn70xx;
9280	struct cvmx_pko_reg_timestamp_s cn70xxp1;
9281	struct cvmx_pko_reg_timestamp_s cnf71xx;
9282};
9283
9284typedef union cvmx_pko_reg_timestamp cvmx_pko_reg_timestamp_t;
9285
9286/**
9287 * cvmx_pko_shaper_cfg
9288 */
9289union cvmx_pko_shaper_cfg {
9290	u64 u64;
9291	struct cvmx_pko_shaper_cfg_s {
9292		u64 reserved_2_63 : 62;
9293		u64 color_aware : 1;
9294		u64 red_send_as_yellow : 1;
9295	} s;
9296	struct cvmx_pko_shaper_cfg_s cn73xx;
9297	struct cvmx_pko_shaper_cfg_s cn78xx;
9298	struct cvmx_pko_shaper_cfg_s cn78xxp1;
9299	struct cvmx_pko_shaper_cfg_s cnf75xx;
9300};
9301
9302typedef union cvmx_pko_shaper_cfg cvmx_pko_shaper_cfg_t;
9303
9304/**
9305 * cvmx_pko_state_uid_in_use#_rd
9306 *
9307 * For diagnostic use only.
9308 *
9309 */
9310union cvmx_pko_state_uid_in_usex_rd {
9311	u64 u64;
9312	struct cvmx_pko_state_uid_in_usex_rd_s {
9313		u64 in_use : 64;
9314	} s;
9315	struct cvmx_pko_state_uid_in_usex_rd_s cn73xx;
9316	struct cvmx_pko_state_uid_in_usex_rd_s cn78xx;
9317	struct cvmx_pko_state_uid_in_usex_rd_s cn78xxp1;
9318	struct cvmx_pko_state_uid_in_usex_rd_s cnf75xx;
9319};
9320
9321typedef union cvmx_pko_state_uid_in_usex_rd cvmx_pko_state_uid_in_usex_rd_t;
9322
9323/**
9324 * cvmx_pko_status
9325 */
9326union cvmx_pko_status {
9327	u64 u64;
9328	struct cvmx_pko_status_s {
9329		u64 pko_rdy : 1;
9330		u64 reserved_24_62 : 39;
9331		u64 c2qlut_rdy : 1;
9332		u64 ppfi_rdy : 1;
9333		u64 iobp1_rdy : 1;
9334		u64 ncb_rdy : 1;
9335		u64 pse_rdy : 1;
9336		u64 pdm_rdy : 1;
9337		u64 peb_rdy : 1;
9338		u64 csi_rdy : 1;
9339		u64 reserved_5_15 : 11;
9340		u64 ncb_bist_status : 1;
9341		u64 c2qlut_bist_status : 1;
9342		u64 pdm_bist_status : 1;
9343		u64 peb_bist_status : 1;
9344		u64 pse_bist_status : 1;
9345	} s;
9346	struct cvmx_pko_status_cn73xx {
9347		u64 pko_rdy : 1;
9348		u64 reserved_62_24 : 39;
9349		u64 c2qlut_rdy : 1;
9350		u64 ppfi_rdy : 1;
9351		u64 iobp1_rdy : 1;
9352		u64 ncb_rdy : 1;
9353		u64 pse_rdy : 1;
9354		u64 pdm_rdy : 1;
9355		u64 peb_rdy : 1;
9356		u64 csi_rdy : 1;
9357		u64 reserved_15_5 : 11;
9358		u64 ncb_bist_status : 1;
9359		u64 c2qlut_bist_status : 1;
9360		u64 pdm_bist_status : 1;
9361		u64 peb_bist_status : 1;
9362		u64 pse_bist_status : 1;
9363	} cn73xx;
9364	struct cvmx_pko_status_cn73xx cn78xx;
9365	struct cvmx_pko_status_cn73xx cn78xxp1;
9366	struct cvmx_pko_status_cn73xx cnf75xx;
9367};
9368
9369typedef union cvmx_pko_status cvmx_pko_status_t;
9370
9371/**
9372 * cvmx_pko_txf#_pkt_cnt_rd
9373 */
9374union cvmx_pko_txfx_pkt_cnt_rd {
9375	u64 u64;
9376	struct cvmx_pko_txfx_pkt_cnt_rd_s {
9377		u64 reserved_8_63 : 56;
9378		u64 cnt : 8;
9379	} s;
9380	struct cvmx_pko_txfx_pkt_cnt_rd_s cn73xx;
9381	struct cvmx_pko_txfx_pkt_cnt_rd_s cn78xx;
9382	struct cvmx_pko_txfx_pkt_cnt_rd_s cn78xxp1;
9383	struct cvmx_pko_txfx_pkt_cnt_rd_s cnf75xx;
9384};
9385
9386typedef union cvmx_pko_txfx_pkt_cnt_rd cvmx_pko_txfx_pkt_cnt_rd_t;
9387
9388#endif
9389