blob: 6ae01514dc48d37c191d308859ac9b84ed983332 [file] [log] [blame]
Aaron Williamsb7c50602020-12-11 17:05:46 +01001/* 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