blob: 4465872e870c8b7825e6f99ee2b48f0c6142b406 [file] [log] [blame]
Aaron Williams0702b3e2020-12-11 17:05:45 +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 pki.
7 */
8
9#ifndef __CVMX_PKI_DEFS_H__
10#define __CVMX_PKI_DEFS_H__
11
12#define CVMX_PKI_ACTIVE0 (0x0001180044000220ull)
13#define CVMX_PKI_ACTIVE1 (0x0001180044000230ull)
14#define CVMX_PKI_ACTIVE2 (0x0001180044000240ull)
15#define CVMX_PKI_AURAX_CFG(offset) (0x0001180044900000ull + ((offset) & 1023) * 8)
16#define CVMX_PKI_BIST_STATUS0 (0x0001180044000080ull)
17#define CVMX_PKI_BIST_STATUS1 (0x0001180044000088ull)
18#define CVMX_PKI_BIST_STATUS2 (0x0001180044000090ull)
19#define CVMX_PKI_BPIDX_STATE(offset) (0x0001180044B00000ull + ((offset) & 1023) * 8)
20#define CVMX_PKI_BUF_CTL (0x0001180044000100ull)
21#define CVMX_PKI_CHANX_CFG(offset) (0x0001180044A00000ull + ((offset) & 4095) * 8)
22#define CVMX_PKI_CLKEN (0x0001180044000410ull)
23#define CVMX_PKI_CLX_ECC_CTL(offset) (0x000118004400C020ull + ((offset) & 3) * 0x10000ull)
24#define CVMX_PKI_CLX_ECC_INT(offset) (0x000118004400C010ull + ((offset) & 3) * 0x10000ull)
25#define CVMX_PKI_CLX_INT(offset) (0x000118004400C000ull + ((offset) & 3) * 0x10000ull)
26#define CVMX_PKI_CLX_PCAMX_ACTIONX(a, b, c) \
27 (0x0001180044708000ull + ((a) << 16) + ((b) << 12) + ((c) << 3))
28#define CVMX_PKI_CLX_PCAMX_MATCHX(a, b, c) \
29 (0x0001180044704000ull + ((a) << 16) + ((b) << 12) + ((c) << 3))
30#define CVMX_PKI_CLX_PCAMX_TERMX(a, b, c) \
31 (0x0001180044700000ull + ((a) << 16) + ((b) << 12) + ((c) << 3))
32#define CVMX_PKI_CLX_PKINDX_CFG(offset, block_id) \
33 (0x0001180044300040ull + (((offset) & 63) + ((block_id) & 3) * 0x100ull) * 256)
34#define CVMX_PKI_CLX_PKINDX_KMEMX(a, b, c) \
35 (0x0001180044200000ull + ((a) << 16) + ((b) << 8) + ((c) << 3))
36#define CVMX_PKI_CLX_PKINDX_L2_CUSTOM(offset, block_id) \
37 (0x0001180044300058ull + (((offset) & 63) + ((block_id) & 3) * 0x100ull) * 256)
38#define CVMX_PKI_CLX_PKINDX_LG_CUSTOM(offset, block_id) \
39 (0x0001180044300060ull + (((offset) & 63) + ((block_id) & 3) * 0x100ull) * 256)
40#define CVMX_PKI_CLX_PKINDX_SKIP(offset, block_id) \
41 (0x0001180044300050ull + (((offset) & 63) + ((block_id) & 3) * 0x100ull) * 256)
42#define CVMX_PKI_CLX_PKINDX_STYLE(offset, block_id) \
43 (0x0001180044300048ull + (((offset) & 63) + ((block_id) & 3) * 0x100ull) * 256)
44#define CVMX_PKI_CLX_SMEMX(offset, block_id) \
45 (0x0001180044400000ull + (((offset) & 2047) + ((block_id) & 3) * 0x2000ull) * 8)
46#define CVMX_PKI_CLX_START(offset) (0x000118004400C030ull + ((offset) & 3) * 0x10000ull)
47#define CVMX_PKI_CLX_STYLEX_ALG(offset, block_id) \
48 (0x0001180044501000ull + (((offset) & 63) + ((block_id) & 3) * 0x2000ull) * 8)
49#define CVMX_PKI_CLX_STYLEX_CFG(offset, block_id) \
50 (0x0001180044500000ull + (((offset) & 63) + ((block_id) & 3) * 0x2000ull) * 8)
51#define CVMX_PKI_CLX_STYLEX_CFG2(offset, block_id) \
52 (0x0001180044500800ull + (((offset) & 63) + ((block_id) & 3) * 0x2000ull) * 8)
53#define CVMX_PKI_DSTATX_STAT0(offset) (0x0001180044C00000ull + ((offset) & 1023) * 64)
54#define CVMX_PKI_DSTATX_STAT1(offset) (0x0001180044C00008ull + ((offset) & 1023) * 64)
55#define CVMX_PKI_DSTATX_STAT2(offset) (0x0001180044C00010ull + ((offset) & 1023) * 64)
56#define CVMX_PKI_DSTATX_STAT3(offset) (0x0001180044C00018ull + ((offset) & 1023) * 64)
57#define CVMX_PKI_DSTATX_STAT4(offset) (0x0001180044C00020ull + ((offset) & 1023) * 64)
58#define CVMX_PKI_ECC_CTL0 (0x0001180044000060ull)
59#define CVMX_PKI_ECC_CTL1 (0x0001180044000068ull)
60#define CVMX_PKI_ECC_CTL2 (0x0001180044000070ull)
61#define CVMX_PKI_ECC_INT0 (0x0001180044000040ull)
62#define CVMX_PKI_ECC_INT1 (0x0001180044000048ull)
63#define CVMX_PKI_ECC_INT2 (0x0001180044000050ull)
64#define CVMX_PKI_FRM_LEN_CHKX(offset) (0x0001180044004000ull + ((offset) & 1) * 8)
65#define CVMX_PKI_GBL_PEN (0x0001180044000200ull)
66#define CVMX_PKI_GEN_INT (0x0001180044000020ull)
67#define CVMX_PKI_ICGX_CFG(offset) (0x000118004400A000ull)
68#define CVMX_PKI_IMEMX(offset) (0x0001180044100000ull + ((offset) & 2047) * 8)
69#define CVMX_PKI_LTYPEX_MAP(offset) (0x0001180044005000ull + ((offset) & 31) * 8)
70#define CVMX_PKI_PBE_ECO (0x0001180044000710ull)
71#define CVMX_PKI_PCAM_LOOKUP (0x0001180044000500ull)
72#define CVMX_PKI_PCAM_RESULT (0x0001180044000510ull)
73#define CVMX_PKI_PFE_DIAG (0x0001180044000560ull)
74#define CVMX_PKI_PFE_ECO (0x0001180044000720ull)
75#define CVMX_PKI_PIX_CLKEN (0x0001180044000600ull)
76#define CVMX_PKI_PIX_DIAG (0x0001180044000580ull)
77#define CVMX_PKI_PIX_ECO (0x0001180044000700ull)
78#define CVMX_PKI_PKINDX_ICGSEL(offset) (0x0001180044010000ull + ((offset) & 63) * 8)
79#define CVMX_PKI_PKNDX_INB_STAT0(offset) (0x0001180044F00000ull + ((offset) & 63) * 256)
80#define CVMX_PKI_PKNDX_INB_STAT1(offset) (0x0001180044F00008ull + ((offset) & 63) * 256)
81#define CVMX_PKI_PKNDX_INB_STAT2(offset) (0x0001180044F00010ull + ((offset) & 63) * 256)
82#define CVMX_PKI_PKT_ERR (0x0001180044000030ull)
83#define CVMX_PKI_PTAG_AVAIL (0x0001180044000130ull)
84#define CVMX_PKI_QPG_TBLBX(offset) (0x0001180044820000ull + ((offset) & 2047) * 8)
85#define CVMX_PKI_QPG_TBLX(offset) (0x0001180044800000ull + ((offset) & 2047) * 8)
86#define CVMX_PKI_REASM_SOPX(offset) (0x0001180044006000ull + ((offset) & 1) * 8)
87#define CVMX_PKI_REQ_WGT (0x0001180044000120ull)
88#define CVMX_PKI_SFT_RST (0x0001180044000010ull)
89#define CVMX_PKI_STATX_HIST0(offset) (0x0001180044E00000ull + ((offset) & 63) * 256)
90#define CVMX_PKI_STATX_HIST1(offset) (0x0001180044E00008ull + ((offset) & 63) * 256)
91#define CVMX_PKI_STATX_HIST2(offset) (0x0001180044E00010ull + ((offset) & 63) * 256)
92#define CVMX_PKI_STATX_HIST3(offset) (0x0001180044E00018ull + ((offset) & 63) * 256)
93#define CVMX_PKI_STATX_HIST4(offset) (0x0001180044E00020ull + ((offset) & 63) * 256)
94#define CVMX_PKI_STATX_HIST5(offset) (0x0001180044E00028ull + ((offset) & 63) * 256)
95#define CVMX_PKI_STATX_HIST6(offset) (0x0001180044E00030ull + ((offset) & 63) * 256)
96#define CVMX_PKI_STATX_STAT0(offset) (0x0001180044E00038ull + ((offset) & 63) * 256)
97#define CVMX_PKI_STATX_STAT1(offset) (0x0001180044E00040ull + ((offset) & 63) * 256)
98#define CVMX_PKI_STATX_STAT10(offset) (0x0001180044E00088ull + ((offset) & 63) * 256)
99#define CVMX_PKI_STATX_STAT11(offset) (0x0001180044E00090ull + ((offset) & 63) * 256)
100#define CVMX_PKI_STATX_STAT12(offset) (0x0001180044E00098ull + ((offset) & 63) * 256)
101#define CVMX_PKI_STATX_STAT13(offset) (0x0001180044E000A0ull + ((offset) & 63) * 256)
102#define CVMX_PKI_STATX_STAT14(offset) (0x0001180044E000A8ull + ((offset) & 63) * 256)
103#define CVMX_PKI_STATX_STAT15(offset) (0x0001180044E000B0ull + ((offset) & 63) * 256)
104#define CVMX_PKI_STATX_STAT16(offset) (0x0001180044E000B8ull + ((offset) & 63) * 256)
105#define CVMX_PKI_STATX_STAT17(offset) (0x0001180044E000C0ull + ((offset) & 63) * 256)
106#define CVMX_PKI_STATX_STAT18(offset) (0x0001180044E000C8ull + ((offset) & 63) * 256)
107#define CVMX_PKI_STATX_STAT2(offset) (0x0001180044E00048ull + ((offset) & 63) * 256)
108#define CVMX_PKI_STATX_STAT3(offset) (0x0001180044E00050ull + ((offset) & 63) * 256)
109#define CVMX_PKI_STATX_STAT4(offset) (0x0001180044E00058ull + ((offset) & 63) * 256)
110#define CVMX_PKI_STATX_STAT5(offset) (0x0001180044E00060ull + ((offset) & 63) * 256)
111#define CVMX_PKI_STATX_STAT6(offset) (0x0001180044E00068ull + ((offset) & 63) * 256)
112#define CVMX_PKI_STATX_STAT7(offset) (0x0001180044E00070ull + ((offset) & 63) * 256)
113#define CVMX_PKI_STATX_STAT8(offset) (0x0001180044E00078ull + ((offset) & 63) * 256)
114#define CVMX_PKI_STATX_STAT9(offset) (0x0001180044E00080ull + ((offset) & 63) * 256)
115#define CVMX_PKI_STAT_CTL (0x0001180044000110ull)
116#define CVMX_PKI_STYLEX_BUF(offset) (0x0001180044024000ull + ((offset) & 63) * 8)
117#define CVMX_PKI_STYLEX_TAG_MASK(offset) (0x0001180044021000ull + ((offset) & 63) * 8)
118#define CVMX_PKI_STYLEX_TAG_SEL(offset) (0x0001180044020000ull + ((offset) & 63) * 8)
119#define CVMX_PKI_STYLEX_WQ2(offset) (0x0001180044022000ull + ((offset) & 63) * 8)
120#define CVMX_PKI_STYLEX_WQ4(offset) (0x0001180044023000ull + ((offset) & 63) * 8)
121#define CVMX_PKI_TAG_INCX_CTL(offset) (0x0001180044007000ull + ((offset) & 31) * 8)
122#define CVMX_PKI_TAG_INCX_MASK(offset) (0x0001180044008000ull + ((offset) & 31) * 8)
123#define CVMX_PKI_TAG_SECRET (0x0001180044000430ull)
124#define CVMX_PKI_X2P_REQ_OFL (0x0001180044000038ull)
125
126/**
127 * cvmx_pki_active0
128 */
129union cvmx_pki_active0 {
130 u64 u64;
131 struct cvmx_pki_active0_s {
132 u64 reserved_1_63 : 63;
133 u64 pfe_active : 1;
134 } s;
135 struct cvmx_pki_active0_s cn73xx;
136 struct cvmx_pki_active0_s cn78xx;
137 struct cvmx_pki_active0_s cn78xxp1;
138 struct cvmx_pki_active0_s cnf75xx;
139};
140
141typedef union cvmx_pki_active0 cvmx_pki_active0_t;
142
143/**
144 * cvmx_pki_active1
145 */
146union cvmx_pki_active1 {
147 u64 u64;
148 struct cvmx_pki_active1_s {
149 u64 reserved_4_63 : 60;
150 u64 fpc_active : 1;
151 u64 iobp_active : 1;
152 u64 sws_active : 1;
153 u64 pbtag_active : 1;
154 } s;
155 struct cvmx_pki_active1_s cn73xx;
156 struct cvmx_pki_active1_s cn78xx;
157 struct cvmx_pki_active1_s cn78xxp1;
158 struct cvmx_pki_active1_s cnf75xx;
159};
160
161typedef union cvmx_pki_active1 cvmx_pki_active1_t;
162
163/**
164 * cvmx_pki_active2
165 */
166union cvmx_pki_active2 {
167 u64 u64;
168 struct cvmx_pki_active2_s {
169 u64 reserved_5_63 : 59;
170 u64 pix_active : 5;
171 } s;
172 struct cvmx_pki_active2_s cn73xx;
173 struct cvmx_pki_active2_s cn78xx;
174 struct cvmx_pki_active2_s cn78xxp1;
175 struct cvmx_pki_active2_s cnf75xx;
176};
177
178typedef union cvmx_pki_active2 cvmx_pki_active2_t;
179
180/**
181 * cvmx_pki_aura#_cfg
182 *
183 * This register configures aura backpressure, etc.
184 *
185 */
186union cvmx_pki_aurax_cfg {
187 u64 u64;
188 struct cvmx_pki_aurax_cfg_s {
189 u64 reserved_32_63 : 32;
190 u64 pkt_add : 2;
191 u64 reserved_19_29 : 11;
192 u64 ena_red : 1;
193 u64 ena_drop : 1;
194 u64 ena_bp : 1;
195 u64 reserved_10_15 : 6;
196 u64 bpid : 10;
197 } s;
198 struct cvmx_pki_aurax_cfg_s cn73xx;
199 struct cvmx_pki_aurax_cfg_s cn78xx;
200 struct cvmx_pki_aurax_cfg_s cn78xxp1;
201 struct cvmx_pki_aurax_cfg_s cnf75xx;
202};
203
204typedef union cvmx_pki_aurax_cfg cvmx_pki_aurax_cfg_t;
205
206/**
207 * cvmx_pki_bist_status0
208 *
209 * This register indicates BIST status.
210 *
211 */
212union cvmx_pki_bist_status0 {
213 u64 u64;
214 struct cvmx_pki_bist_status0_s {
215 u64 reserved_31_63 : 33;
216 u64 bist : 31;
217 } s;
218 struct cvmx_pki_bist_status0_s cn73xx;
219 struct cvmx_pki_bist_status0_s cn78xx;
220 struct cvmx_pki_bist_status0_s cn78xxp1;
221 struct cvmx_pki_bist_status0_s cnf75xx;
222};
223
224typedef union cvmx_pki_bist_status0 cvmx_pki_bist_status0_t;
225
226/**
227 * cvmx_pki_bist_status1
228 *
229 * This register indicates BIST status.
230 *
231 */
232union cvmx_pki_bist_status1 {
233 u64 u64;
234 struct cvmx_pki_bist_status1_s {
235 u64 reserved_26_63 : 38;
236 u64 bist : 26;
237 } s;
238 struct cvmx_pki_bist_status1_s cn73xx;
239 struct cvmx_pki_bist_status1_s cn78xx;
240 struct cvmx_pki_bist_status1_cn78xxp1 {
241 u64 reserved_21_63 : 43;
242 u64 bist : 21;
243 } cn78xxp1;
244 struct cvmx_pki_bist_status1_s cnf75xx;
245};
246
247typedef union cvmx_pki_bist_status1 cvmx_pki_bist_status1_t;
248
249/**
250 * cvmx_pki_bist_status2
251 *
252 * This register indicates BIST status.
253 *
254 */
255union cvmx_pki_bist_status2 {
256 u64 u64;
257 struct cvmx_pki_bist_status2_s {
258 u64 reserved_25_63 : 39;
259 u64 bist : 25;
260 } s;
261 struct cvmx_pki_bist_status2_s cn73xx;
262 struct cvmx_pki_bist_status2_s cn78xx;
263 struct cvmx_pki_bist_status2_s cn78xxp1;
264 struct cvmx_pki_bist_status2_s cnf75xx;
265};
266
267typedef union cvmx_pki_bist_status2 cvmx_pki_bist_status2_t;
268
269/**
270 * cvmx_pki_bpid#_state
271 *
272 * This register shows the current bpid state for diagnostics.
273 *
274 */
275union cvmx_pki_bpidx_state {
276 u64 u64;
277 struct cvmx_pki_bpidx_state_s {
278 u64 reserved_1_63 : 63;
279 u64 xoff : 1;
280 } s;
281 struct cvmx_pki_bpidx_state_s cn73xx;
282 struct cvmx_pki_bpidx_state_s cn78xx;
283 struct cvmx_pki_bpidx_state_s cn78xxp1;
284 struct cvmx_pki_bpidx_state_s cnf75xx;
285};
286
287typedef union cvmx_pki_bpidx_state cvmx_pki_bpidx_state_t;
288
289/**
290 * cvmx_pki_buf_ctl
291 */
292union cvmx_pki_buf_ctl {
293 u64 u64;
294 struct cvmx_pki_buf_ctl_s {
295 u64 reserved_11_63 : 53;
296 u64 fpa_wait : 1;
297 u64 fpa_cac_dis : 1;
298 u64 reserved_6_8 : 3;
299 u64 pkt_off : 1;
300 u64 reserved_3_4 : 2;
301 u64 pbp_en : 1;
302 u64 reserved_1_1 : 1;
303 u64 pki_en : 1;
304 } s;
305 struct cvmx_pki_buf_ctl_s cn73xx;
306 struct cvmx_pki_buf_ctl_s cn78xx;
307 struct cvmx_pki_buf_ctl_s cn78xxp1;
308 struct cvmx_pki_buf_ctl_s cnf75xx;
309};
310
311typedef union cvmx_pki_buf_ctl cvmx_pki_buf_ctl_t;
312
313/**
314 * cvmx_pki_chan#_cfg
315 *
316 * This register configures each channel.
317 *
318 */
319union cvmx_pki_chanx_cfg {
320 u64 u64;
321 struct cvmx_pki_chanx_cfg_s {
322 u64 reserved_17_63 : 47;
323 u64 imp : 1;
324 u64 reserved_10_15 : 6;
325 u64 bpid : 10;
326 } s;
327 struct cvmx_pki_chanx_cfg_s cn73xx;
328 struct cvmx_pki_chanx_cfg_s cn78xx;
329 struct cvmx_pki_chanx_cfg_s cn78xxp1;
330 struct cvmx_pki_chanx_cfg_s cnf75xx;
331};
332
333typedef union cvmx_pki_chanx_cfg cvmx_pki_chanx_cfg_t;
334
335/**
336 * cvmx_pki_cl#_ecc_ctl
337 *
338 * This register configures ECC. All of PKI_CL()_ECC_CTL must be configured identically.
339 *
340 */
341union cvmx_pki_clx_ecc_ctl {
342 u64 u64;
343 struct cvmx_pki_clx_ecc_ctl_s {
344 u64 pcam_en : 1;
345 u64 reserved_24_62 : 39;
346 u64 pcam1_flip : 2;
347 u64 pcam0_flip : 2;
348 u64 smem_flip : 2;
349 u64 dmem_flip : 1;
350 u64 rf_flip : 1;
351 u64 reserved_5_15 : 11;
352 u64 pcam1_cdis : 1;
353 u64 pcam0_cdis : 1;
354 u64 smem_cdis : 1;
355 u64 dmem_cdis : 1;
356 u64 rf_cdis : 1;
357 } s;
358 struct cvmx_pki_clx_ecc_ctl_s cn73xx;
359 struct cvmx_pki_clx_ecc_ctl_s cn78xx;
360 struct cvmx_pki_clx_ecc_ctl_s cn78xxp1;
361 struct cvmx_pki_clx_ecc_ctl_s cnf75xx;
362};
363
364typedef union cvmx_pki_clx_ecc_ctl cvmx_pki_clx_ecc_ctl_t;
365
366/**
367 * cvmx_pki_cl#_ecc_int
368 */
369union cvmx_pki_clx_ecc_int {
370 u64 u64;
371 struct cvmx_pki_clx_ecc_int_s {
372 u64 reserved_8_63 : 56;
373 u64 pcam1_dbe : 1;
374 u64 pcam1_sbe : 1;
375 u64 pcam0_dbe : 1;
376 u64 pcam0_sbe : 1;
377 u64 smem_dbe : 1;
378 u64 smem_sbe : 1;
379 u64 dmem_perr : 1;
380 u64 rf_perr : 1;
381 } s;
382 struct cvmx_pki_clx_ecc_int_s cn73xx;
383 struct cvmx_pki_clx_ecc_int_s cn78xx;
384 struct cvmx_pki_clx_ecc_int_s cn78xxp1;
385 struct cvmx_pki_clx_ecc_int_s cnf75xx;
386};
387
388typedef union cvmx_pki_clx_ecc_int cvmx_pki_clx_ecc_int_t;
389
390/**
391 * cvmx_pki_cl#_int
392 */
393union cvmx_pki_clx_int {
394 u64 u64;
395 struct cvmx_pki_clx_int_s {
396 u64 reserved_4_63 : 60;
397 u64 iptint : 1;
398 u64 sched_conf : 1;
399 u64 pcam_conf : 2;
400 } s;
401 struct cvmx_pki_clx_int_s cn73xx;
402 struct cvmx_pki_clx_int_s cn78xx;
403 struct cvmx_pki_clx_int_s cn78xxp1;
404 struct cvmx_pki_clx_int_s cnf75xx;
405};
406
407typedef union cvmx_pki_clx_int cvmx_pki_clx_int_t;
408
409/**
410 * cvmx_pki_cl#_pcam#_action#
411 *
412 * This register configures the result side of the PCAM. PKI hardware is opaque as to the use
413 * of the 32 bits of CAM result.
414 *
415 * For each legal j and k, PKI_CL(i)_PCAM(j)_ACTION(k) must be configured identically for i=0..1.
416 *
417 * With the current parse engine code:
418 *
419 * Action performed based on PCAM lookup using the PKI_CL()_PCAM()_TERM() and
420 * PKI_CL()_PCAM()_MATCH() registers.
421 *
422 * If lookup data matches no PCAM entries, then no action takes place. No matches indicates
423 * normal parsing will continue.
424 *
425 * If data matches multiple PCAM entries, PKI_WQE_S[ERRLEV,OPCODE] of the processed packet may
426 * be set to PKI_ERRLEV_E::RE,PKI_OPCODE_E::RE_PKIPCAM and the PKI_CL()_INT[PCAM_CONF] error
427 * interrupt is signaled. Once a conflict is detected, the PCAM state is unpredictable and is
428 * required to be fully reconfigured before further valid processing can take place.
429 */
430union cvmx_pki_clx_pcamx_actionx {
431 u64 u64;
432 struct cvmx_pki_clx_pcamx_actionx_s {
433 u64 reserved_31_63 : 33;
434 u64 pmc : 7;
435 u64 style_add : 8;
436 u64 pf : 3;
437 u64 setty : 5;
438 u64 advance : 8;
439 } s;
440 struct cvmx_pki_clx_pcamx_actionx_s cn73xx;
441 struct cvmx_pki_clx_pcamx_actionx_s cn78xx;
442 struct cvmx_pki_clx_pcamx_actionx_s cn78xxp1;
443 struct cvmx_pki_clx_pcamx_actionx_s cnf75xx;
444};
445
446typedef union cvmx_pki_clx_pcamx_actionx cvmx_pki_clx_pcamx_actionx_t;
447
448/**
449 * cvmx_pki_cl#_pcam#_match#
450 *
451 * This register configures the match side of the PCAM. PKI hardware is opaque as to the use
452 * of the 32 bits of CAM data.
453 *
454 * For each legal j and k, PKI_CL(i)_PCAM(j)_MATCH(k) must be configured identically for i=0..1.
455 */
456union cvmx_pki_clx_pcamx_matchx {
457 u64 u64;
458 struct cvmx_pki_clx_pcamx_matchx_s {
459 u64 data1 : 32;
460 u64 data0 : 32;
461 } s;
462 struct cvmx_pki_clx_pcamx_matchx_s cn73xx;
463 struct cvmx_pki_clx_pcamx_matchx_s cn78xx;
464 struct cvmx_pki_clx_pcamx_matchx_s cn78xxp1;
465 struct cvmx_pki_clx_pcamx_matchx_s cnf75xx;
466};
467
468typedef union cvmx_pki_clx_pcamx_matchx cvmx_pki_clx_pcamx_matchx_t;
469
470/**
471 * cvmx_pki_cl#_pcam#_term#
472 *
473 * This register configures the match side of the PCAM. PKI hardware is opaque as to the use
474 * of the 16 bits of CAM data; the split between TERM and STYLE is defined by the
475 * parse engine.
476 *
477 * For each legal j and k, PKI_CL(i)_PCAM(j)_TERM(k) must be configured identically for i=0..1.
478 */
479union cvmx_pki_clx_pcamx_termx {
480 u64 u64;
481 struct cvmx_pki_clx_pcamx_termx_s {
482 u64 valid : 1;
483 u64 reserved_48_62 : 15;
484 u64 term1 : 8;
485 u64 style1 : 8;
486 u64 reserved_16_31 : 16;
487 u64 term0 : 8;
488 u64 style0 : 8;
489 } s;
490 struct cvmx_pki_clx_pcamx_termx_s cn73xx;
491 struct cvmx_pki_clx_pcamx_termx_s cn78xx;
492 struct cvmx_pki_clx_pcamx_termx_s cn78xxp1;
493 struct cvmx_pki_clx_pcamx_termx_s cnf75xx;
494};
495
496typedef union cvmx_pki_clx_pcamx_termx cvmx_pki_clx_pcamx_termx_t;
497
498/**
499 * cvmx_pki_cl#_pkind#_cfg
500 *
501 * This register is inside PKI_CL()_PKIND()_KMEM(). These CSRs are used only by
502 * the PKI parse engine.
503 *
504 * For each legal j, PKI_CL(i)_PKIND(j)_CFG must be configured identically for i=0..1.
505 */
506union cvmx_pki_clx_pkindx_cfg {
507 u64 u64;
508 struct cvmx_pki_clx_pkindx_cfg_s {
509 u64 reserved_11_63 : 53;
510 u64 lg_custom_layer : 3;
511 u64 fcs_pres : 1;
512 u64 mpls_en : 1;
513 u64 inst_hdr : 1;
514 u64 lg_custom : 1;
515 u64 fulc_en : 1;
516 u64 dsa_en : 1;
517 u64 hg2_en : 1;
518 u64 hg_en : 1;
519 } s;
520 struct cvmx_pki_clx_pkindx_cfg_s cn73xx;
521 struct cvmx_pki_clx_pkindx_cfg_s cn78xx;
522 struct cvmx_pki_clx_pkindx_cfg_s cn78xxp1;
523 struct cvmx_pki_clx_pkindx_cfg_s cnf75xx;
524};
525
526typedef union cvmx_pki_clx_pkindx_cfg cvmx_pki_clx_pkindx_cfg_t;
527
528/**
529 * cvmx_pki_cl#_pkind#_kmem#
530 *
531 * This register initializes the KMEM, which initializes the parse engine state for each
532 * pkind. These CSRs are used only by the PKI parse engine.
533 *
534 * Inside the KMEM are the following parse engine registers. These registers are the
535 * preferred access method for software:
536 * * PKI_CL()_PKIND()_CFG.
537 * * PKI_CL()_PKIND()_STYLE.
538 * * PKI_CL()_PKIND()_SKIP.
539 * * PKI_CL()_PKIND()_L2_CUSTOM.
540 * * PKI_CL()_PKIND()_LG_CUSTOM.
541 *
542 * To avoid overlapping addresses, these aliases have address bit 20 set in contrast to
543 * this register; the PKI address decoder ignores bit 20 when accessing
544 * PKI_CL()_PKIND()_KMEM().
545 *
546 * Software must reload the PKI_CL()_PKIND()_KMEM() registers upon the detection of
547 * PKI_ECC_INT0[KMEM_SBE] or PKI_ECC_INT0[KMEM_DBE].
548 *
549 * For each legal j and k value, PKI_CL(i)_PKIND(j)_KMEM(k) must be configured
550 * identically for i=0..1.
551 */
552union cvmx_pki_clx_pkindx_kmemx {
553 u64 u64;
554 struct cvmx_pki_clx_pkindx_kmemx_s {
555 u64 reserved_16_63 : 48;
556 u64 data : 16;
557 } s;
558 struct cvmx_pki_clx_pkindx_kmemx_s cn73xx;
559 struct cvmx_pki_clx_pkindx_kmemx_s cn78xx;
560 struct cvmx_pki_clx_pkindx_kmemx_s cn78xxp1;
561 struct cvmx_pki_clx_pkindx_kmemx_s cnf75xx;
562};
563
564typedef union cvmx_pki_clx_pkindx_kmemx cvmx_pki_clx_pkindx_kmemx_t;
565
566/**
567 * cvmx_pki_cl#_pkind#_l2_custom
568 *
569 * This register is inside PKI_CL()_PKIND()_KMEM(). These CSRs are used only by
570 * the PKI parse engine.
571 *
572 * For each legal j, PKI_CL(i)_PKIND(j)_L2_CUSTOM must be configured identically for i=0..1.
573 */
574union cvmx_pki_clx_pkindx_l2_custom {
575 u64 u64;
576 struct cvmx_pki_clx_pkindx_l2_custom_s {
577 u64 reserved_16_63 : 48;
578 u64 valid : 1;
579 u64 reserved_8_14 : 7;
580 u64 offset : 8;
581 } s;
582 struct cvmx_pki_clx_pkindx_l2_custom_s cn73xx;
583 struct cvmx_pki_clx_pkindx_l2_custom_s cn78xx;
584 struct cvmx_pki_clx_pkindx_l2_custom_s cn78xxp1;
585 struct cvmx_pki_clx_pkindx_l2_custom_s cnf75xx;
586};
587
588typedef union cvmx_pki_clx_pkindx_l2_custom cvmx_pki_clx_pkindx_l2_custom_t;
589
590/**
591 * cvmx_pki_cl#_pkind#_lg_custom
592 *
593 * This register is inside PKI_CL()_PKIND()_KMEM(). These CSRs are used only by
594 * the PKI parse engine.
595 *
596 * For each legal j, PKI_CL(i)_PKIND(j)_LG_CUSTOM must be configured identically for i=0..1.
597 */
598union cvmx_pki_clx_pkindx_lg_custom {
599 u64 u64;
600 struct cvmx_pki_clx_pkindx_lg_custom_s {
601 u64 reserved_8_63 : 56;
602 u64 offset : 8;
603 } s;
604 struct cvmx_pki_clx_pkindx_lg_custom_s cn73xx;
605 struct cvmx_pki_clx_pkindx_lg_custom_s cn78xx;
606 struct cvmx_pki_clx_pkindx_lg_custom_s cn78xxp1;
607 struct cvmx_pki_clx_pkindx_lg_custom_s cnf75xx;
608};
609
610typedef union cvmx_pki_clx_pkindx_lg_custom cvmx_pki_clx_pkindx_lg_custom_t;
611
612/**
613 * cvmx_pki_cl#_pkind#_skip
614 *
615 * This register is inside PKI_CL()_PKIND()_KMEM(). These CSRs are used only by
616 * the PKI parse engine.
617 *
618 * For each legal j, PKI_CL(i)_PKIND(j)_SKIP must be configured identically for i=0..1.
619 */
620union cvmx_pki_clx_pkindx_skip {
621 u64 u64;
622 struct cvmx_pki_clx_pkindx_skip_s {
623 u64 reserved_16_63 : 48;
624 u64 fcs_skip : 8;
625 u64 inst_skip : 8;
626 } s;
627 struct cvmx_pki_clx_pkindx_skip_s cn73xx;
628 struct cvmx_pki_clx_pkindx_skip_s cn78xx;
629 struct cvmx_pki_clx_pkindx_skip_s cn78xxp1;
630 struct cvmx_pki_clx_pkindx_skip_s cnf75xx;
631};
632
633typedef union cvmx_pki_clx_pkindx_skip cvmx_pki_clx_pkindx_skip_t;
634
635/**
636 * cvmx_pki_cl#_pkind#_style
637 *
638 * This register is inside PKI_CL()_PKIND()_KMEM(). These CSRs are used only by
639 * the PKI parse engine.
640 *
641 * For each legal j, PKI_CL(i)_PKIND(j)_STYLE must be configured identically for i=0..1.
642 */
643union cvmx_pki_clx_pkindx_style {
644 u64 u64;
645 struct cvmx_pki_clx_pkindx_style_s {
646 u64 reserved_15_63 : 49;
647 u64 pm : 7;
648 u64 style : 8;
649 } s;
650 struct cvmx_pki_clx_pkindx_style_s cn73xx;
651 struct cvmx_pki_clx_pkindx_style_s cn78xx;
652 struct cvmx_pki_clx_pkindx_style_s cn78xxp1;
653 struct cvmx_pki_clx_pkindx_style_s cnf75xx;
654};
655
656typedef union cvmx_pki_clx_pkindx_style cvmx_pki_clx_pkindx_style_t;
657
658/**
659 * cvmx_pki_cl#_smem#
660 *
661 * This register initializes the SMEM, which configures the parse engine. These CSRs
662 * are used by the PKI parse engine and other PKI hardware.
663 *
664 * Inside the SMEM are the following parse engine registers. These registers are the
665 * preferred access method for software:
666 * * PKI_CL()_STYLE()_CFG
667 * * PKI_CL()_STYLE()_CFG2
668 * * PKI_CL()_STYLE()_ALG
669 *
670 * To avoid overlapping addresses, these aliases have address bit 20 set in contrast to
671 * this register; the PKI address decoder ignores bit 20 when accessing
672 * PKI_CL()_SMEM().
673 *
674 * Software must reload the PKI_CL()_SMEM() registers upon the detection of
675 * PKI_CL()_ECC_INT[SMEM_SBE] or PKI_CL()_ECC_INT[SMEM_DBE].
676 *
677 * For each legal j, PKI_CL(i)_SMEM(j) must be configured identically for i=0..1.
678 */
679union cvmx_pki_clx_smemx {
680 u64 u64;
681 struct cvmx_pki_clx_smemx_s {
682 u64 reserved_32_63 : 32;
683 u64 data : 32;
684 } s;
685 struct cvmx_pki_clx_smemx_s cn73xx;
686 struct cvmx_pki_clx_smemx_s cn78xx;
687 struct cvmx_pki_clx_smemx_s cn78xxp1;
688 struct cvmx_pki_clx_smemx_s cnf75xx;
689};
690
691typedef union cvmx_pki_clx_smemx cvmx_pki_clx_smemx_t;
692
693/**
694 * cvmx_pki_cl#_start
695 *
696 * This register configures a cluster. All of PKI_CL()_START must be programmed identically.
697 *
698 */
699union cvmx_pki_clx_start {
700 u64 u64;
701 struct cvmx_pki_clx_start_s {
702 u64 reserved_11_63 : 53;
703 u64 start : 11;
704 } s;
705 struct cvmx_pki_clx_start_s cn73xx;
706 struct cvmx_pki_clx_start_s cn78xx;
707 struct cvmx_pki_clx_start_s cn78xxp1;
708 struct cvmx_pki_clx_start_s cnf75xx;
709};
710
711typedef union cvmx_pki_clx_start cvmx_pki_clx_start_t;
712
713/**
714 * cvmx_pki_cl#_style#_alg
715 *
716 * This register is inside PKI_CL()_SMEM(). These CSRs are used only by
717 * the PKI parse engine.
718 *
719 * For each legal j, PKI_CL(i)_STYLE(j)_ALG must be configured identically for i=0..1.
720 */
721union cvmx_pki_clx_stylex_alg {
722 u64 u64;
723 struct cvmx_pki_clx_stylex_alg_s {
724 u64 reserved_32_63 : 32;
725 u64 tt : 2;
726 u64 apad_nip : 3;
727 u64 qpg_qos : 3;
728 u64 qpg_port_sh : 3;
729 u64 qpg_port_msb : 4;
730 u64 reserved_11_16 : 6;
731 u64 tag_vni : 1;
732 u64 tag_gtp : 1;
733 u64 tag_spi : 1;
734 u64 tag_syn : 1;
735 u64 tag_pctl : 1;
736 u64 tag_vs1 : 1;
737 u64 tag_vs0 : 1;
738 u64 tag_vlan : 1;
739 u64 tag_mpls0 : 1;
740 u64 tag_prt : 1;
741 u64 wqe_vs : 1;
742 } s;
743 struct cvmx_pki_clx_stylex_alg_s cn73xx;
744 struct cvmx_pki_clx_stylex_alg_s cn78xx;
745 struct cvmx_pki_clx_stylex_alg_s cn78xxp1;
746 struct cvmx_pki_clx_stylex_alg_s cnf75xx;
747};
748
749typedef union cvmx_pki_clx_stylex_alg cvmx_pki_clx_stylex_alg_t;
750
751/**
752 * cvmx_pki_cl#_style#_cfg
753 *
754 * This register is inside PKI_CL()_SMEM(). These CSRs are used by
755 * the PKI parse engine and other PKI hardware.
756 *
757 * For each legal j, PKI_CL(i)_STYLE(j)_CFG must be configured identically for i=0..1.
758 */
759union cvmx_pki_clx_stylex_cfg {
760 u64 u64;
761 struct cvmx_pki_clx_stylex_cfg_s {
762 u64 reserved_31_63 : 33;
763 u64 ip6_udp_opt : 1;
764 u64 lenerr_en : 1;
765 u64 lenerr_eqpad : 1;
766 u64 minmax_sel : 1;
767 u64 maxerr_en : 1;
768 u64 minerr_en : 1;
769 u64 qpg_dis_grptag : 1;
770 u64 fcs_strip : 1;
771 u64 fcs_chk : 1;
772 u64 rawdrp : 1;
773 u64 drop : 1;
774 u64 nodrop : 1;
775 u64 qpg_dis_padd : 1;
776 u64 qpg_dis_grp : 1;
777 u64 qpg_dis_aura : 1;
778 u64 reserved_11_15 : 5;
779 u64 qpg_base : 11;
780 } s;
781 struct cvmx_pki_clx_stylex_cfg_s cn73xx;
782 struct cvmx_pki_clx_stylex_cfg_s cn78xx;
783 struct cvmx_pki_clx_stylex_cfg_s cn78xxp1;
784 struct cvmx_pki_clx_stylex_cfg_s cnf75xx;
785};
786
787typedef union cvmx_pki_clx_stylex_cfg cvmx_pki_clx_stylex_cfg_t;
788
789/**
790 * cvmx_pki_cl#_style#_cfg2
791 *
792 * This register is inside PKI_CL()_SMEM(). These CSRs are used by
793 * the PKI parse engine and other PKI hardware.
794 *
795 * For each legal j, PKI_CL(i)_STYLE(j)_CFG2 must be configured identically for i=0..1.
796 */
797union cvmx_pki_clx_stylex_cfg2 {
798 u64 u64;
799 struct cvmx_pki_clx_stylex_cfg2_s {
800 u64 reserved_32_63 : 32;
801 u64 tag_inc : 4;
802 u64 reserved_25_27 : 3;
803 u64 tag_masken : 1;
804 u64 tag_src_lg : 1;
805 u64 tag_src_lf : 1;
806 u64 tag_src_le : 1;
807 u64 tag_src_ld : 1;
808 u64 tag_src_lc : 1;
809 u64 tag_src_lb : 1;
810 u64 tag_dst_lg : 1;
811 u64 tag_dst_lf : 1;
812 u64 tag_dst_le : 1;
813 u64 tag_dst_ld : 1;
814 u64 tag_dst_lc : 1;
815 u64 tag_dst_lb : 1;
816 u64 len_lg : 1;
817 u64 len_lf : 1;
818 u64 len_le : 1;
819 u64 len_ld : 1;
820 u64 len_lc : 1;
821 u64 len_lb : 1;
822 u64 csum_lg : 1;
823 u64 csum_lf : 1;
824 u64 csum_le : 1;
825 u64 csum_ld : 1;
826 u64 csum_lc : 1;
827 u64 csum_lb : 1;
828 } s;
829 struct cvmx_pki_clx_stylex_cfg2_s cn73xx;
830 struct cvmx_pki_clx_stylex_cfg2_s cn78xx;
831 struct cvmx_pki_clx_stylex_cfg2_s cn78xxp1;
832 struct cvmx_pki_clx_stylex_cfg2_s cnf75xx;
833};
834
835typedef union cvmx_pki_clx_stylex_cfg2 cvmx_pki_clx_stylex_cfg2_t;
836
837/**
838 * cvmx_pki_clken
839 */
840union cvmx_pki_clken {
841 u64 u64;
842 struct cvmx_pki_clken_s {
843 u64 reserved_1_63 : 63;
844 u64 clken : 1;
845 } s;
846 struct cvmx_pki_clken_s cn73xx;
847 struct cvmx_pki_clken_s cn78xx;
848 struct cvmx_pki_clken_s cn78xxp1;
849 struct cvmx_pki_clken_s cnf75xx;
850};
851
852typedef union cvmx_pki_clken cvmx_pki_clken_t;
853
854/**
855 * cvmx_pki_dstat#_stat0
856 *
857 * This register contains statistics indexed by PKI_QPG_TBLB()[DSTAT_ID].
858 *
859 */
860union cvmx_pki_dstatx_stat0 {
861 u64 u64;
862 struct cvmx_pki_dstatx_stat0_s {
863 u64 reserved_32_63 : 32;
864 u64 pkts : 32;
865 } s;
866 struct cvmx_pki_dstatx_stat0_s cn73xx;
867 struct cvmx_pki_dstatx_stat0_s cn78xx;
868 struct cvmx_pki_dstatx_stat0_s cnf75xx;
869};
870
871typedef union cvmx_pki_dstatx_stat0 cvmx_pki_dstatx_stat0_t;
872
873/**
874 * cvmx_pki_dstat#_stat1
875 *
876 * This register contains statistics indexed by PKI_QPG_TBLB()[DSTAT_ID].
877 *
878 */
879union cvmx_pki_dstatx_stat1 {
880 u64 u64;
881 struct cvmx_pki_dstatx_stat1_s {
882 u64 reserved_40_63 : 24;
883 u64 octs : 40;
884 } s;
885 struct cvmx_pki_dstatx_stat1_s cn73xx;
886 struct cvmx_pki_dstatx_stat1_s cn78xx;
887 struct cvmx_pki_dstatx_stat1_s cnf75xx;
888};
889
890typedef union cvmx_pki_dstatx_stat1 cvmx_pki_dstatx_stat1_t;
891
892/**
893 * cvmx_pki_dstat#_stat2
894 *
895 * This register contains statistics indexed by PKI_QPG_TBLB()[DSTAT_ID].
896 *
897 */
898union cvmx_pki_dstatx_stat2 {
899 u64 u64;
900 struct cvmx_pki_dstatx_stat2_s {
901 u64 reserved_32_63 : 32;
902 u64 err_pkts : 32;
903 } s;
904 struct cvmx_pki_dstatx_stat2_s cn73xx;
905 struct cvmx_pki_dstatx_stat2_s cn78xx;
906 struct cvmx_pki_dstatx_stat2_s cnf75xx;
907};
908
909typedef union cvmx_pki_dstatx_stat2 cvmx_pki_dstatx_stat2_t;
910
911/**
912 * cvmx_pki_dstat#_stat3
913 *
914 * This register contains statistics indexed by PKI_QPG_TBLB()[DSTAT_ID].
915 *
916 */
917union cvmx_pki_dstatx_stat3 {
918 u64 u64;
919 struct cvmx_pki_dstatx_stat3_s {
920 u64 reserved_32_63 : 32;
921 u64 drp_pkts : 32;
922 } s;
923 struct cvmx_pki_dstatx_stat3_s cn73xx;
924 struct cvmx_pki_dstatx_stat3_s cn78xx;
925 struct cvmx_pki_dstatx_stat3_s cnf75xx;
926};
927
928typedef union cvmx_pki_dstatx_stat3 cvmx_pki_dstatx_stat3_t;
929
930/**
931 * cvmx_pki_dstat#_stat4
932 *
933 * This register contains statistics indexed by PKI_QPG_TBLB()[DSTAT_ID].
934 *
935 */
936union cvmx_pki_dstatx_stat4 {
937 u64 u64;
938 struct cvmx_pki_dstatx_stat4_s {
939 u64 reserved_40_63 : 24;
940 u64 drp_octs : 40;
941 } s;
942 struct cvmx_pki_dstatx_stat4_s cn73xx;
943 struct cvmx_pki_dstatx_stat4_s cn78xx;
944 struct cvmx_pki_dstatx_stat4_s cnf75xx;
945};
946
947typedef union cvmx_pki_dstatx_stat4 cvmx_pki_dstatx_stat4_t;
948
949/**
950 * cvmx_pki_ecc_ctl0
951 *
952 * This register allows inserting ECC errors for testing.
953 *
954 */
955union cvmx_pki_ecc_ctl0 {
956 u64 u64;
957 struct cvmx_pki_ecc_ctl0_s {
958 u64 reserved_24_63 : 40;
959 u64 ldfif_flip : 2;
960 u64 ldfif_cdis : 1;
961 u64 pbe_flip : 2;
962 u64 pbe_cdis : 1;
963 u64 wadr_flip : 2;
964 u64 wadr_cdis : 1;
965 u64 nxtptag_flip : 2;
966 u64 nxtptag_cdis : 1;
967 u64 curptag_flip : 2;
968 u64 curptag_cdis : 1;
969 u64 nxtblk_flip : 2;
970 u64 nxtblk_cdis : 1;
971 u64 kmem_flip : 2;
972 u64 kmem_cdis : 1;
973 u64 asm_flip : 2;
974 u64 asm_cdis : 1;
975 } s;
976 struct cvmx_pki_ecc_ctl0_s cn73xx;
977 struct cvmx_pki_ecc_ctl0_s cn78xx;
978 struct cvmx_pki_ecc_ctl0_s cn78xxp1;
979 struct cvmx_pki_ecc_ctl0_s cnf75xx;
980};
981
982typedef union cvmx_pki_ecc_ctl0 cvmx_pki_ecc_ctl0_t;
983
984/**
985 * cvmx_pki_ecc_ctl1
986 *
987 * This register allows inserting ECC errors for testing.
988 *
989 */
990union cvmx_pki_ecc_ctl1 {
991 u64 u64;
992 struct cvmx_pki_ecc_ctl1_s {
993 u64 reserved_51_63 : 13;
994 u64 sws_flip : 2;
995 u64 sws_cdis : 1;
996 u64 wqeout_flip : 2;
997 u64 wqeout_cdis : 1;
998 u64 doa_flip : 2;
999 u64 doa_cdis : 1;
1000 u64 bpid_flip : 2;
1001 u64 bpid_cdis : 1;
1002 u64 reserved_30_38 : 9;
1003 u64 plc_flip : 2;
1004 u64 plc_cdis : 1;
1005 u64 pktwq_flip : 2;
1006 u64 pktwq_cdis : 1;
1007 u64 reserved_21_23 : 3;
1008 u64 stylewq2_flip : 2;
1009 u64 stylewq2_cdis : 1;
1010 u64 tag_flip : 2;
1011 u64 tag_cdis : 1;
1012 u64 aura_flip : 2;
1013 u64 aura_cdis : 1;
1014 u64 chan_flip : 2;
1015 u64 chan_cdis : 1;
1016 u64 pbtag_flip : 2;
1017 u64 pbtag_cdis : 1;
1018 u64 stylewq_flip : 2;
1019 u64 stylewq_cdis : 1;
1020 u64 qpg_flip : 2;
1021 u64 qpg_cdis : 1;
1022 } s;
1023 struct cvmx_pki_ecc_ctl1_s cn73xx;
1024 struct cvmx_pki_ecc_ctl1_s cn78xx;
1025 struct cvmx_pki_ecc_ctl1_cn78xxp1 {
1026 u64 reserved_51_63 : 13;
1027 u64 sws_flip : 2;
1028 u64 sws_cdis : 1;
1029 u64 wqeout_flip : 2;
1030 u64 wqeout_cdis : 1;
1031 u64 doa_flip : 2;
1032 u64 doa_cdis : 1;
1033 u64 bpid_flip : 2;
1034 u64 bpid_cdis : 1;
1035 u64 reserved_30_38 : 9;
1036 u64 plc_flip : 2;
1037 u64 plc_cdis : 1;
1038 u64 pktwq_flip : 2;
1039 u64 pktwq_cdis : 1;
1040 u64 reserved_18_23 : 6;
1041 u64 tag_flip : 2;
1042 u64 tag_cdis : 1;
1043 u64 aura_flip : 2;
1044 u64 aura_cdis : 1;
1045 u64 chan_flip : 2;
1046 u64 chan_cdis : 1;
1047 u64 pbtag_flip : 2;
1048 u64 pbtag_cdis : 1;
1049 u64 stylewq_flip : 2;
1050 u64 stylewq_cdis : 1;
1051 u64 qpg_flip : 2;
1052 u64 qpg_cdis : 1;
1053 } cn78xxp1;
1054 struct cvmx_pki_ecc_ctl1_s cnf75xx;
1055};
1056
1057typedef union cvmx_pki_ecc_ctl1 cvmx_pki_ecc_ctl1_t;
1058
1059/**
1060 * cvmx_pki_ecc_ctl2
1061 *
1062 * This register allows inserting ECC errors for testing.
1063 *
1064 */
1065union cvmx_pki_ecc_ctl2 {
1066 u64 u64;
1067 struct cvmx_pki_ecc_ctl2_s {
1068 u64 reserved_3_63 : 61;
1069 u64 imem_flip : 2;
1070 u64 imem_cdis : 1;
1071 } s;
1072 struct cvmx_pki_ecc_ctl2_s cn73xx;
1073 struct cvmx_pki_ecc_ctl2_s cn78xx;
1074 struct cvmx_pki_ecc_ctl2_s cn78xxp1;
1075 struct cvmx_pki_ecc_ctl2_s cnf75xx;
1076};
1077
1078typedef union cvmx_pki_ecc_ctl2 cvmx_pki_ecc_ctl2_t;
1079
1080/**
1081 * cvmx_pki_ecc_int0
1082 */
1083union cvmx_pki_ecc_int0 {
1084 u64 u64;
1085 struct cvmx_pki_ecc_int0_s {
1086 u64 reserved_16_63 : 48;
1087 u64 ldfif_dbe : 1;
1088 u64 ldfif_sbe : 1;
1089 u64 pbe_dbe : 1;
1090 u64 pbe_sbe : 1;
1091 u64 wadr_dbe : 1;
1092 u64 wadr_sbe : 1;
1093 u64 nxtptag_dbe : 1;
1094 u64 nxtptag_sbe : 1;
1095 u64 curptag_dbe : 1;
1096 u64 curptag_sbe : 1;
1097 u64 nxtblk_dbe : 1;
1098 u64 nxtblk_sbe : 1;
1099 u64 kmem_dbe : 1;
1100 u64 kmem_sbe : 1;
1101 u64 asm_dbe : 1;
1102 u64 asm_sbe : 1;
1103 } s;
1104 struct cvmx_pki_ecc_int0_s cn73xx;
1105 struct cvmx_pki_ecc_int0_s cn78xx;
1106 struct cvmx_pki_ecc_int0_s cn78xxp1;
1107 struct cvmx_pki_ecc_int0_s cnf75xx;
1108};
1109
1110typedef union cvmx_pki_ecc_int0 cvmx_pki_ecc_int0_t;
1111
1112/**
1113 * cvmx_pki_ecc_int1
1114 */
1115union cvmx_pki_ecc_int1 {
1116 u64 u64;
1117 struct cvmx_pki_ecc_int1_s {
1118 u64 reserved_34_63 : 30;
1119 u64 sws_dbe : 1;
1120 u64 sws_sbe : 1;
1121 u64 wqeout_dbe : 1;
1122 u64 wqeout_sbe : 1;
1123 u64 doa_dbe : 1;
1124 u64 doa_sbe : 1;
1125 u64 bpid_dbe : 1;
1126 u64 bpid_sbe : 1;
1127 u64 reserved_20_25 : 6;
1128 u64 plc_dbe : 1;
1129 u64 plc_sbe : 1;
1130 u64 pktwq_dbe : 1;
1131 u64 pktwq_sbe : 1;
1132 u64 reserved_12_15 : 4;
1133 u64 tag_dbe : 1;
1134 u64 tag_sbe : 1;
1135 u64 aura_dbe : 1;
1136 u64 aura_sbe : 1;
1137 u64 chan_dbe : 1;
1138 u64 chan_sbe : 1;
1139 u64 pbtag_dbe : 1;
1140 u64 pbtag_sbe : 1;
1141 u64 stylewq_dbe : 1;
1142 u64 stylewq_sbe : 1;
1143 u64 qpg_dbe : 1;
1144 u64 qpg_sbe : 1;
1145 } s;
1146 struct cvmx_pki_ecc_int1_s cn73xx;
1147 struct cvmx_pki_ecc_int1_s cn78xx;
1148 struct cvmx_pki_ecc_int1_s cn78xxp1;
1149 struct cvmx_pki_ecc_int1_s cnf75xx;
1150};
1151
1152typedef union cvmx_pki_ecc_int1 cvmx_pki_ecc_int1_t;
1153
1154/**
1155 * cvmx_pki_ecc_int2
1156 */
1157union cvmx_pki_ecc_int2 {
1158 u64 u64;
1159 struct cvmx_pki_ecc_int2_s {
1160 u64 reserved_2_63 : 62;
1161 u64 imem_dbe : 1;
1162 u64 imem_sbe : 1;
1163 } s;
1164 struct cvmx_pki_ecc_int2_s cn73xx;
1165 struct cvmx_pki_ecc_int2_s cn78xx;
1166 struct cvmx_pki_ecc_int2_s cn78xxp1;
1167 struct cvmx_pki_ecc_int2_s cnf75xx;
1168};
1169
1170typedef union cvmx_pki_ecc_int2 cvmx_pki_ecc_int2_t;
1171
1172/**
1173 * cvmx_pki_frm_len_chk#
1174 */
1175union cvmx_pki_frm_len_chkx {
1176 u64 u64;
1177 struct cvmx_pki_frm_len_chkx_s {
1178 u64 reserved_32_63 : 32;
1179 u64 maxlen : 16;
1180 u64 minlen : 16;
1181 } s;
1182 struct cvmx_pki_frm_len_chkx_s cn73xx;
1183 struct cvmx_pki_frm_len_chkx_s cn78xx;
1184 struct cvmx_pki_frm_len_chkx_s cn78xxp1;
1185 struct cvmx_pki_frm_len_chkx_s cnf75xx;
1186};
1187
1188typedef union cvmx_pki_frm_len_chkx cvmx_pki_frm_len_chkx_t;
1189
1190/**
1191 * cvmx_pki_gbl_pen
1192 *
1193 * This register contains global configuration information that applies to all
1194 * pkinds. The values are opaque to PKI HW.
1195 *
1196 * This is intended for communication between the higher-level software SDK, and the
1197 * SDK code that loads PKI_IMEM() with the parse engine code. This allows the loader to
1198 * appropriately select the parse engine code with only those features required, so that
1199 * performance will be optimized.
1200 */
1201union cvmx_pki_gbl_pen {
1202 u64 u64;
1203 struct cvmx_pki_gbl_pen_s {
1204 u64 reserved_10_63 : 54;
1205 u64 virt_pen : 1;
1206 u64 clg_pen : 1;
1207 u64 cl2_pen : 1;
1208 u64 l4_pen : 1;
1209 u64 il3_pen : 1;
1210 u64 l3_pen : 1;
1211 u64 mpls_pen : 1;
1212 u64 fulc_pen : 1;
1213 u64 dsa_pen : 1;
1214 u64 hg_pen : 1;
1215 } s;
1216 struct cvmx_pki_gbl_pen_s cn73xx;
1217 struct cvmx_pki_gbl_pen_s cn78xx;
1218 struct cvmx_pki_gbl_pen_s cn78xxp1;
1219 struct cvmx_pki_gbl_pen_s cnf75xx;
1220};
1221
1222typedef union cvmx_pki_gbl_pen cvmx_pki_gbl_pen_t;
1223
1224/**
1225 * cvmx_pki_gen_int
1226 */
1227union cvmx_pki_gen_int {
1228 u64 u64;
1229 struct cvmx_pki_gen_int_s {
1230 u64 reserved_10_63 : 54;
1231 u64 bufs_oflow : 1;
1232 u64 pkt_size_oflow : 1;
1233 u64 x2p_req_ofl : 1;
1234 u64 drp_noavail : 1;
1235 u64 dat : 1;
1236 u64 eop : 1;
1237 u64 sop : 1;
1238 u64 bckprs : 1;
1239 u64 crcerr : 1;
1240 u64 pktdrp : 1;
1241 } s;
1242 struct cvmx_pki_gen_int_s cn73xx;
1243 struct cvmx_pki_gen_int_s cn78xx;
1244 struct cvmx_pki_gen_int_cn78xxp1 {
1245 u64 reserved_8_63 : 56;
1246 u64 x2p_req_ofl : 1;
1247 u64 drp_noavail : 1;
1248 u64 dat : 1;
1249 u64 eop : 1;
1250 u64 sop : 1;
1251 u64 bckprs : 1;
1252 u64 crcerr : 1;
1253 u64 pktdrp : 1;
1254 } cn78xxp1;
1255 struct cvmx_pki_gen_int_s cnf75xx;
1256};
1257
1258typedef union cvmx_pki_gen_int cvmx_pki_gen_int_t;
1259
1260/**
1261 * cvmx_pki_icg#_cfg
1262 *
1263 * This register configures the cluster group.
1264 *
1265 */
1266union cvmx_pki_icgx_cfg {
1267 u64 u64;
1268 struct cvmx_pki_icgx_cfg_s {
1269 u64 reserved_53_63 : 11;
1270 u64 maxipe_use : 5;
1271 u64 reserved_36_47 : 12;
1272 u64 clusters : 4;
1273 u64 reserved_27_31 : 5;
1274 u64 release_rqd : 1;
1275 u64 mlo : 1;
1276 u64 pena : 1;
1277 u64 timer : 12;
1278 u64 delay : 12;
1279 } s;
1280 struct cvmx_pki_icgx_cfg_s cn73xx;
1281 struct cvmx_pki_icgx_cfg_s cn78xx;
1282 struct cvmx_pki_icgx_cfg_s cn78xxp1;
1283 struct cvmx_pki_icgx_cfg_s cnf75xx;
1284};
1285
1286typedef union cvmx_pki_icgx_cfg cvmx_pki_icgx_cfg_t;
1287
1288/**
1289 * cvmx_pki_imem#
1290 */
1291union cvmx_pki_imemx {
1292 u64 u64;
1293 struct cvmx_pki_imemx_s {
1294 u64 data : 64;
1295 } s;
1296 struct cvmx_pki_imemx_s cn73xx;
1297 struct cvmx_pki_imemx_s cn78xx;
1298 struct cvmx_pki_imemx_s cn78xxp1;
1299 struct cvmx_pki_imemx_s cnf75xx;
1300};
1301
1302typedef union cvmx_pki_imemx cvmx_pki_imemx_t;
1303
1304/**
1305 * cvmx_pki_ltype#_map
1306 *
1307 * This register is the layer type map, indexed by PKI_LTYPE_E.
1308 *
1309 */
1310union cvmx_pki_ltypex_map {
1311 u64 u64;
1312 struct cvmx_pki_ltypex_map_s {
1313 u64 reserved_3_63 : 61;
1314 u64 beltype : 3;
1315 } s;
1316 struct cvmx_pki_ltypex_map_s cn73xx;
1317 struct cvmx_pki_ltypex_map_s cn78xx;
1318 struct cvmx_pki_ltypex_map_s cn78xxp1;
1319 struct cvmx_pki_ltypex_map_s cnf75xx;
1320};
1321
1322typedef union cvmx_pki_ltypex_map cvmx_pki_ltypex_map_t;
1323
1324/**
1325 * cvmx_pki_pbe_eco
1326 */
1327union cvmx_pki_pbe_eco {
1328 u64 u64;
1329 struct cvmx_pki_pbe_eco_s {
1330 u64 reserved_32_63 : 32;
1331 u64 eco_rw : 32;
1332 } s;
1333 struct cvmx_pki_pbe_eco_s cn73xx;
1334 struct cvmx_pki_pbe_eco_s cn78xx;
1335 struct cvmx_pki_pbe_eco_s cnf75xx;
1336};
1337
1338typedef union cvmx_pki_pbe_eco cvmx_pki_pbe_eco_t;
1339
1340/**
1341 * cvmx_pki_pcam_lookup
1342 *
1343 * For diagnostic use only, this register performs a PCAM lookup against the provided
1344 * cluster and PCAM instance and loads results into PKI_PCAM_RESULT.
1345 */
1346union cvmx_pki_pcam_lookup {
1347 u64 u64;
1348 struct cvmx_pki_pcam_lookup_s {
1349 u64 reserved_54_63 : 10;
1350 u64 cl : 2;
1351 u64 reserved_49_51 : 3;
1352 u64 pcam : 1;
1353 u64 term : 8;
1354 u64 style : 8;
1355 u64 data : 32;
1356 } s;
1357 struct cvmx_pki_pcam_lookup_s cn73xx;
1358 struct cvmx_pki_pcam_lookup_s cn78xx;
1359 struct cvmx_pki_pcam_lookup_s cn78xxp1;
1360 struct cvmx_pki_pcam_lookup_s cnf75xx;
1361};
1362
1363typedef union cvmx_pki_pcam_lookup cvmx_pki_pcam_lookup_t;
1364
1365/**
1366 * cvmx_pki_pcam_result
1367 *
1368 * For diagnostic use only, this register returns PCAM results for the most recent write to
1369 * PKI_PCAM_LOOKUP. The read will stall until the lookup is completed.
1370 * PKI_CL()_ECC_CTL[PCAM_EN] must be clear before accessing this register. Read stall
1371 * is implemented by delaying the PKI_PCAM_LOOKUP write acknowledge until the PCAM is
1372 * free and the lookup can be issued.
1373 */
1374union cvmx_pki_pcam_result {
1375 u64 u64;
1376 struct cvmx_pki_pcam_result_s {
1377 u64 reserved_41_63 : 23;
1378 u64 match : 1;
1379 u64 entry : 8;
1380 u64 result : 32;
1381 } s;
1382 struct cvmx_pki_pcam_result_cn73xx {
1383 u64 conflict : 1;
1384 u64 reserved_41_62 : 22;
1385 u64 match : 1;
1386 u64 entry : 8;
1387 u64 result : 32;
1388 } cn73xx;
1389 struct cvmx_pki_pcam_result_cn73xx cn78xx;
1390 struct cvmx_pki_pcam_result_cn73xx cn78xxp1;
1391 struct cvmx_pki_pcam_result_cn73xx cnf75xx;
1392};
1393
1394typedef union cvmx_pki_pcam_result cvmx_pki_pcam_result_t;
1395
1396/**
1397 * cvmx_pki_pfe_diag
1398 */
1399union cvmx_pki_pfe_diag {
1400 u64 u64;
1401 struct cvmx_pki_pfe_diag_s {
1402 u64 reserved_1_63 : 63;
1403 u64 bad_rid : 1;
1404 } s;
1405 struct cvmx_pki_pfe_diag_s cn73xx;
1406 struct cvmx_pki_pfe_diag_s cn78xx;
1407 struct cvmx_pki_pfe_diag_s cn78xxp1;
1408 struct cvmx_pki_pfe_diag_s cnf75xx;
1409};
1410
1411typedef union cvmx_pki_pfe_diag cvmx_pki_pfe_diag_t;
1412
1413/**
1414 * cvmx_pki_pfe_eco
1415 */
1416union cvmx_pki_pfe_eco {
1417 u64 u64;
1418 struct cvmx_pki_pfe_eco_s {
1419 u64 reserved_32_63 : 32;
1420 u64 eco_rw : 32;
1421 } s;
1422 struct cvmx_pki_pfe_eco_s cn73xx;
1423 struct cvmx_pki_pfe_eco_s cn78xx;
1424 struct cvmx_pki_pfe_eco_s cnf75xx;
1425};
1426
1427typedef union cvmx_pki_pfe_eco cvmx_pki_pfe_eco_t;
1428
1429/**
1430 * cvmx_pki_pix_clken
1431 */
1432union cvmx_pki_pix_clken {
1433 u64 u64;
1434 struct cvmx_pki_pix_clken_s {
1435 u64 reserved_17_63 : 47;
1436 u64 mech : 1;
1437 u64 reserved_4_15 : 12;
1438 u64 cls : 4;
1439 } s;
1440 struct cvmx_pki_pix_clken_s cn73xx;
1441 struct cvmx_pki_pix_clken_s cn78xx;
1442 struct cvmx_pki_pix_clken_s cn78xxp1;
1443 struct cvmx_pki_pix_clken_s cnf75xx;
1444};
1445
1446typedef union cvmx_pki_pix_clken cvmx_pki_pix_clken_t;
1447
1448/**
1449 * cvmx_pki_pix_diag
1450 */
1451union cvmx_pki_pix_diag {
1452 u64 u64;
1453 struct cvmx_pki_pix_diag_s {
1454 u64 reserved_4_63 : 60;
1455 u64 nosched : 4;
1456 } s;
1457 struct cvmx_pki_pix_diag_s cn73xx;
1458 struct cvmx_pki_pix_diag_s cn78xx;
1459 struct cvmx_pki_pix_diag_s cn78xxp1;
1460 struct cvmx_pki_pix_diag_s cnf75xx;
1461};
1462
1463typedef union cvmx_pki_pix_diag cvmx_pki_pix_diag_t;
1464
1465/**
1466 * cvmx_pki_pix_eco
1467 */
1468union cvmx_pki_pix_eco {
1469 u64 u64;
1470 struct cvmx_pki_pix_eco_s {
1471 u64 reserved_32_63 : 32;
1472 u64 eco_rw : 32;
1473 } s;
1474 struct cvmx_pki_pix_eco_s cn73xx;
1475 struct cvmx_pki_pix_eco_s cn78xx;
1476 struct cvmx_pki_pix_eco_s cnf75xx;
1477};
1478
1479typedef union cvmx_pki_pix_eco cvmx_pki_pix_eco_t;
1480
1481/**
1482 * cvmx_pki_pkind#_icgsel
1483 */
1484union cvmx_pki_pkindx_icgsel {
1485 u64 u64;
1486 struct cvmx_pki_pkindx_icgsel_s {
1487 u64 reserved_2_63 : 62;
1488 u64 icg : 2;
1489 } s;
1490 struct cvmx_pki_pkindx_icgsel_s cn73xx;
1491 struct cvmx_pki_pkindx_icgsel_s cn78xx;
1492 struct cvmx_pki_pkindx_icgsel_s cn78xxp1;
1493 struct cvmx_pki_pkindx_icgsel_s cnf75xx;
1494};
1495
1496typedef union cvmx_pki_pkindx_icgsel cvmx_pki_pkindx_icgsel_t;
1497
1498/**
1499 * cvmx_pki_pknd#_inb_stat0
1500 *
1501 * This register counts inbound statistics, indexed by pkind.
1502 *
1503 */
1504union cvmx_pki_pkndx_inb_stat0 {
1505 u64 u64;
1506 struct cvmx_pki_pkndx_inb_stat0_s {
1507 u64 reserved_48_63 : 16;
1508 u64 pkts : 48;
1509 } s;
1510 struct cvmx_pki_pkndx_inb_stat0_s cn73xx;
1511 struct cvmx_pki_pkndx_inb_stat0_s cn78xx;
1512 struct cvmx_pki_pkndx_inb_stat0_s cn78xxp1;
1513 struct cvmx_pki_pkndx_inb_stat0_s cnf75xx;
1514};
1515
1516typedef union cvmx_pki_pkndx_inb_stat0 cvmx_pki_pkndx_inb_stat0_t;
1517
1518/**
1519 * cvmx_pki_pknd#_inb_stat1
1520 *
1521 * This register counts inbound statistics, indexed by pkind.
1522 *
1523 */
1524union cvmx_pki_pkndx_inb_stat1 {
1525 u64 u64;
1526 struct cvmx_pki_pkndx_inb_stat1_s {
1527 u64 reserved_48_63 : 16;
1528 u64 octs : 48;
1529 } s;
1530 struct cvmx_pki_pkndx_inb_stat1_s cn73xx;
1531 struct cvmx_pki_pkndx_inb_stat1_s cn78xx;
1532 struct cvmx_pki_pkndx_inb_stat1_s cn78xxp1;
1533 struct cvmx_pki_pkndx_inb_stat1_s cnf75xx;
1534};
1535
1536typedef union cvmx_pki_pkndx_inb_stat1 cvmx_pki_pkndx_inb_stat1_t;
1537
1538/**
1539 * cvmx_pki_pknd#_inb_stat2
1540 *
1541 * This register counts inbound statistics, indexed by pkind.
1542 *
1543 */
1544union cvmx_pki_pkndx_inb_stat2 {
1545 u64 u64;
1546 struct cvmx_pki_pkndx_inb_stat2_s {
1547 u64 reserved_48_63 : 16;
1548 u64 errs : 48;
1549 } s;
1550 struct cvmx_pki_pkndx_inb_stat2_s cn73xx;
1551 struct cvmx_pki_pkndx_inb_stat2_s cn78xx;
1552 struct cvmx_pki_pkndx_inb_stat2_s cn78xxp1;
1553 struct cvmx_pki_pkndx_inb_stat2_s cnf75xx;
1554};
1555
1556typedef union cvmx_pki_pkndx_inb_stat2 cvmx_pki_pkndx_inb_stat2_t;
1557
1558/**
1559 * cvmx_pki_pkt_err
1560 */
1561union cvmx_pki_pkt_err {
1562 u64 u64;
1563 struct cvmx_pki_pkt_err_s {
1564 u64 reserved_7_63 : 57;
1565 u64 reasm : 7;
1566 } s;
1567 struct cvmx_pki_pkt_err_s cn73xx;
1568 struct cvmx_pki_pkt_err_s cn78xx;
1569 struct cvmx_pki_pkt_err_s cn78xxp1;
1570 struct cvmx_pki_pkt_err_s cnf75xx;
1571};
1572
1573typedef union cvmx_pki_pkt_err cvmx_pki_pkt_err_t;
1574
1575/**
1576 * cvmx_pki_ptag_avail
1577 *
1578 * For diagnostic use only.
1579 *
1580 */
1581union cvmx_pki_ptag_avail {
1582 u64 u64;
1583 struct cvmx_pki_ptag_avail_s {
1584 u64 reserved_8_63 : 56;
1585 u64 avail : 8;
1586 } s;
1587 struct cvmx_pki_ptag_avail_s cn73xx;
1588 struct cvmx_pki_ptag_avail_s cn78xx;
1589 struct cvmx_pki_ptag_avail_s cnf75xx;
1590};
1591
1592typedef union cvmx_pki_ptag_avail cvmx_pki_ptag_avail_t;
1593
1594/**
1595 * cvmx_pki_qpg_tbl#
1596 *
1597 * These registers are used by PKI BE to indirectly calculate the Portadd/Aura/Group
1598 * from the Diffsrv, HiGig or VLAN information as described in QPG. See also
1599 * PKI_QPG_TBLB().
1600 */
1601union cvmx_pki_qpg_tblx {
1602 u64 u64;
1603 struct cvmx_pki_qpg_tblx_s {
1604 u64 reserved_60_63 : 4;
1605 u64 padd : 12;
1606 u64 grptag_ok : 3;
1607 u64 reserved_42_44 : 3;
1608 u64 grp_ok : 10;
1609 u64 grptag_bad : 3;
1610 u64 reserved_26_28 : 3;
1611 u64 grp_bad : 10;
1612 u64 reserved_12_15 : 4;
1613 u64 aura_node : 2;
1614 u64 laura : 10;
1615 } s;
1616 struct cvmx_pki_qpg_tblx_s cn73xx;
1617 struct cvmx_pki_qpg_tblx_s cn78xx;
1618 struct cvmx_pki_qpg_tblx_s cn78xxp1;
1619 struct cvmx_pki_qpg_tblx_s cnf75xx;
1620};
1621
1622typedef union cvmx_pki_qpg_tblx cvmx_pki_qpg_tblx_t;
1623
1624/**
1625 * cvmx_pki_qpg_tblb#
1626 *
1627 * This register configures the QPG table. See also PKI_QPG_TBL().
1628 *
1629 */
1630union cvmx_pki_qpg_tblbx {
1631 u64 u64;
1632 struct cvmx_pki_qpg_tblbx_s {
1633 u64 reserved_10_63 : 54;
1634 u64 dstat_id : 10;
1635 } s;
1636 struct cvmx_pki_qpg_tblbx_s cn73xx;
1637 struct cvmx_pki_qpg_tblbx_s cn78xx;
1638 struct cvmx_pki_qpg_tblbx_s cnf75xx;
1639};
1640
1641typedef union cvmx_pki_qpg_tblbx cvmx_pki_qpg_tblbx_t;
1642
1643/**
1644 * cvmx_pki_reasm_sop#
1645 */
1646union cvmx_pki_reasm_sopx {
1647 u64 u64;
1648 struct cvmx_pki_reasm_sopx_s {
1649 u64 sop : 64;
1650 } s;
1651 struct cvmx_pki_reasm_sopx_s cn73xx;
1652 struct cvmx_pki_reasm_sopx_s cn78xx;
1653 struct cvmx_pki_reasm_sopx_s cn78xxp1;
1654 struct cvmx_pki_reasm_sopx_s cnf75xx;
1655};
1656
1657typedef union cvmx_pki_reasm_sopx cvmx_pki_reasm_sopx_t;
1658
1659/**
1660 * cvmx_pki_req_wgt
1661 *
1662 * This register controls the round-robin weights between each PKI requestor. For diagnostic
1663 * tuning only.
1664 */
1665union cvmx_pki_req_wgt {
1666 u64 u64;
1667 struct cvmx_pki_req_wgt_s {
1668 u64 reserved_36_63 : 28;
1669 u64 wgt8 : 4;
1670 u64 wgt7 : 4;
1671 u64 wgt6 : 4;
1672 u64 wgt5 : 4;
1673 u64 wgt4 : 4;
1674 u64 wgt3 : 4;
1675 u64 wgt2 : 4;
1676 u64 wgt1 : 4;
1677 u64 wgt0 : 4;
1678 } s;
1679 struct cvmx_pki_req_wgt_s cn73xx;
1680 struct cvmx_pki_req_wgt_s cn78xx;
1681 struct cvmx_pki_req_wgt_s cn78xxp1;
1682 struct cvmx_pki_req_wgt_s cnf75xx;
1683};
1684
1685typedef union cvmx_pki_req_wgt cvmx_pki_req_wgt_t;
1686
1687/**
1688 * cvmx_pki_sft_rst
1689 */
1690union cvmx_pki_sft_rst {
1691 u64 u64;
1692 struct cvmx_pki_sft_rst_s {
1693 u64 busy : 1;
1694 u64 reserved_33_62 : 30;
1695 u64 active : 1;
1696 u64 reserved_1_31 : 31;
1697 u64 rst : 1;
1698 } s;
1699 struct cvmx_pki_sft_rst_s cn73xx;
1700 struct cvmx_pki_sft_rst_s cn78xx;
1701 struct cvmx_pki_sft_rst_s cn78xxp1;
1702 struct cvmx_pki_sft_rst_s cnf75xx;
1703};
1704
1705typedef union cvmx_pki_sft_rst cvmx_pki_sft_rst_t;
1706
1707/**
1708 * cvmx_pki_stat#_hist0
1709 */
1710union cvmx_pki_statx_hist0 {
1711 u64 u64;
1712 struct cvmx_pki_statx_hist0_s {
1713 u64 reserved_48_63 : 16;
1714 u64 h1to63 : 48;
1715 } s;
1716 struct cvmx_pki_statx_hist0_s cn73xx;
1717 struct cvmx_pki_statx_hist0_s cn78xx;
1718 struct cvmx_pki_statx_hist0_s cn78xxp1;
1719 struct cvmx_pki_statx_hist0_s cnf75xx;
1720};
1721
1722typedef union cvmx_pki_statx_hist0 cvmx_pki_statx_hist0_t;
1723
1724/**
1725 * cvmx_pki_stat#_hist1
1726 */
1727union cvmx_pki_statx_hist1 {
1728 u64 u64;
1729 struct cvmx_pki_statx_hist1_s {
1730 u64 reserved_48_63 : 16;
1731 u64 h64to127 : 48;
1732 } s;
1733 struct cvmx_pki_statx_hist1_s cn73xx;
1734 struct cvmx_pki_statx_hist1_s cn78xx;
1735 struct cvmx_pki_statx_hist1_s cn78xxp1;
1736 struct cvmx_pki_statx_hist1_s cnf75xx;
1737};
1738
1739typedef union cvmx_pki_statx_hist1 cvmx_pki_statx_hist1_t;
1740
1741/**
1742 * cvmx_pki_stat#_hist2
1743 */
1744union cvmx_pki_statx_hist2 {
1745 u64 u64;
1746 struct cvmx_pki_statx_hist2_s {
1747 u64 reserved_48_63 : 16;
1748 u64 h128to255 : 48;
1749 } s;
1750 struct cvmx_pki_statx_hist2_s cn73xx;
1751 struct cvmx_pki_statx_hist2_s cn78xx;
1752 struct cvmx_pki_statx_hist2_s cn78xxp1;
1753 struct cvmx_pki_statx_hist2_s cnf75xx;
1754};
1755
1756typedef union cvmx_pki_statx_hist2 cvmx_pki_statx_hist2_t;
1757
1758/**
1759 * cvmx_pki_stat#_hist3
1760 */
1761union cvmx_pki_statx_hist3 {
1762 u64 u64;
1763 struct cvmx_pki_statx_hist3_s {
1764 u64 reserved_48_63 : 16;
1765 u64 h256to511 : 48;
1766 } s;
1767 struct cvmx_pki_statx_hist3_s cn73xx;
1768 struct cvmx_pki_statx_hist3_s cn78xx;
1769 struct cvmx_pki_statx_hist3_s cn78xxp1;
1770 struct cvmx_pki_statx_hist3_s cnf75xx;
1771};
1772
1773typedef union cvmx_pki_statx_hist3 cvmx_pki_statx_hist3_t;
1774
1775/**
1776 * cvmx_pki_stat#_hist4
1777 */
1778union cvmx_pki_statx_hist4 {
1779 u64 u64;
1780 struct cvmx_pki_statx_hist4_s {
1781 u64 reserved_48_63 : 16;
1782 u64 h512to1023 : 48;
1783 } s;
1784 struct cvmx_pki_statx_hist4_s cn73xx;
1785 struct cvmx_pki_statx_hist4_s cn78xx;
1786 struct cvmx_pki_statx_hist4_s cn78xxp1;
1787 struct cvmx_pki_statx_hist4_s cnf75xx;
1788};
1789
1790typedef union cvmx_pki_statx_hist4 cvmx_pki_statx_hist4_t;
1791
1792/**
1793 * cvmx_pki_stat#_hist5
1794 */
1795union cvmx_pki_statx_hist5 {
1796 u64 u64;
1797 struct cvmx_pki_statx_hist5_s {
1798 u64 reserved_48_63 : 16;
1799 u64 h1024to1518 : 48;
1800 } s;
1801 struct cvmx_pki_statx_hist5_s cn73xx;
1802 struct cvmx_pki_statx_hist5_s cn78xx;
1803 struct cvmx_pki_statx_hist5_s cn78xxp1;
1804 struct cvmx_pki_statx_hist5_s cnf75xx;
1805};
1806
1807typedef union cvmx_pki_statx_hist5 cvmx_pki_statx_hist5_t;
1808
1809/**
1810 * cvmx_pki_stat#_hist6
1811 */
1812union cvmx_pki_statx_hist6 {
1813 u64 u64;
1814 struct cvmx_pki_statx_hist6_s {
1815 u64 reserved_48_63 : 16;
1816 u64 h1519 : 48;
1817 } s;
1818 struct cvmx_pki_statx_hist6_s cn73xx;
1819 struct cvmx_pki_statx_hist6_s cn78xx;
1820 struct cvmx_pki_statx_hist6_s cn78xxp1;
1821 struct cvmx_pki_statx_hist6_s cnf75xx;
1822};
1823
1824typedef union cvmx_pki_statx_hist6 cvmx_pki_statx_hist6_t;
1825
1826/**
1827 * cvmx_pki_stat#_stat0
1828 */
1829union cvmx_pki_statx_stat0 {
1830 u64 u64;
1831 struct cvmx_pki_statx_stat0_s {
1832 u64 reserved_48_63 : 16;
1833 u64 pkts : 48;
1834 } s;
1835 struct cvmx_pki_statx_stat0_s cn73xx;
1836 struct cvmx_pki_statx_stat0_s cn78xx;
1837 struct cvmx_pki_statx_stat0_s cn78xxp1;
1838 struct cvmx_pki_statx_stat0_s cnf75xx;
1839};
1840
1841typedef union cvmx_pki_statx_stat0 cvmx_pki_statx_stat0_t;
1842
1843/**
1844 * cvmx_pki_stat#_stat1
1845 */
1846union cvmx_pki_statx_stat1 {
1847 u64 u64;
1848 struct cvmx_pki_statx_stat1_s {
1849 u64 reserved_48_63 : 16;
1850 u64 octs : 48;
1851 } s;
1852 struct cvmx_pki_statx_stat1_s cn73xx;
1853 struct cvmx_pki_statx_stat1_s cn78xx;
1854 struct cvmx_pki_statx_stat1_s cn78xxp1;
1855 struct cvmx_pki_statx_stat1_s cnf75xx;
1856};
1857
1858typedef union cvmx_pki_statx_stat1 cvmx_pki_statx_stat1_t;
1859
1860/**
1861 * cvmx_pki_stat#_stat10
1862 */
1863union cvmx_pki_statx_stat10 {
1864 u64 u64;
1865 struct cvmx_pki_statx_stat10_s {
1866 u64 reserved_48_63 : 16;
1867 u64 jabber : 48;
1868 } s;
1869 struct cvmx_pki_statx_stat10_s cn73xx;
1870 struct cvmx_pki_statx_stat10_s cn78xx;
1871 struct cvmx_pki_statx_stat10_s cn78xxp1;
1872 struct cvmx_pki_statx_stat10_s cnf75xx;
1873};
1874
1875typedef union cvmx_pki_statx_stat10 cvmx_pki_statx_stat10_t;
1876
1877/**
1878 * cvmx_pki_stat#_stat11
1879 */
1880union cvmx_pki_statx_stat11 {
1881 u64 u64;
1882 struct cvmx_pki_statx_stat11_s {
1883 u64 reserved_48_63 : 16;
1884 u64 oversz : 48;
1885 } s;
1886 struct cvmx_pki_statx_stat11_s cn73xx;
1887 struct cvmx_pki_statx_stat11_s cn78xx;
1888 struct cvmx_pki_statx_stat11_s cn78xxp1;
1889 struct cvmx_pki_statx_stat11_s cnf75xx;
1890};
1891
1892typedef union cvmx_pki_statx_stat11 cvmx_pki_statx_stat11_t;
1893
1894/**
1895 * cvmx_pki_stat#_stat12
1896 */
1897union cvmx_pki_statx_stat12 {
1898 u64 u64;
1899 struct cvmx_pki_statx_stat12_s {
1900 u64 reserved_48_63 : 16;
1901 u64 l2err : 48;
1902 } s;
1903 struct cvmx_pki_statx_stat12_s cn73xx;
1904 struct cvmx_pki_statx_stat12_s cn78xx;
1905 struct cvmx_pki_statx_stat12_s cn78xxp1;
1906 struct cvmx_pki_statx_stat12_s cnf75xx;
1907};
1908
1909typedef union cvmx_pki_statx_stat12 cvmx_pki_statx_stat12_t;
1910
1911/**
1912 * cvmx_pki_stat#_stat13
1913 */
1914union cvmx_pki_statx_stat13 {
1915 u64 u64;
1916 struct cvmx_pki_statx_stat13_s {
1917 u64 reserved_48_63 : 16;
1918 u64 spec : 48;
1919 } s;
1920 struct cvmx_pki_statx_stat13_s cn73xx;
1921 struct cvmx_pki_statx_stat13_s cn78xx;
1922 struct cvmx_pki_statx_stat13_s cn78xxp1;
1923 struct cvmx_pki_statx_stat13_s cnf75xx;
1924};
1925
1926typedef union cvmx_pki_statx_stat13 cvmx_pki_statx_stat13_t;
1927
1928/**
1929 * cvmx_pki_stat#_stat14
1930 */
1931union cvmx_pki_statx_stat14 {
1932 u64 u64;
1933 struct cvmx_pki_statx_stat14_s {
1934 u64 reserved_48_63 : 16;
1935 u64 drp_bcast : 48;
1936 } s;
1937 struct cvmx_pki_statx_stat14_s cn73xx;
1938 struct cvmx_pki_statx_stat14_s cn78xx;
1939 struct cvmx_pki_statx_stat14_s cn78xxp1;
1940 struct cvmx_pki_statx_stat14_s cnf75xx;
1941};
1942
1943typedef union cvmx_pki_statx_stat14 cvmx_pki_statx_stat14_t;
1944
1945/**
1946 * cvmx_pki_stat#_stat15
1947 */
1948union cvmx_pki_statx_stat15 {
1949 u64 u64;
1950 struct cvmx_pki_statx_stat15_s {
1951 u64 reserved_48_63 : 16;
1952 u64 drp_mcast : 48;
1953 } s;
1954 struct cvmx_pki_statx_stat15_s cn73xx;
1955 struct cvmx_pki_statx_stat15_s cn78xx;
1956 struct cvmx_pki_statx_stat15_s cn78xxp1;
1957 struct cvmx_pki_statx_stat15_s cnf75xx;
1958};
1959
1960typedef union cvmx_pki_statx_stat15 cvmx_pki_statx_stat15_t;
1961
1962/**
1963 * cvmx_pki_stat#_stat16
1964 */
1965union cvmx_pki_statx_stat16 {
1966 u64 u64;
1967 struct cvmx_pki_statx_stat16_s {
1968 u64 reserved_48_63 : 16;
1969 u64 drp_bcast : 48;
1970 } s;
1971 struct cvmx_pki_statx_stat16_s cn73xx;
1972 struct cvmx_pki_statx_stat16_s cn78xx;
1973 struct cvmx_pki_statx_stat16_s cn78xxp1;
1974 struct cvmx_pki_statx_stat16_s cnf75xx;
1975};
1976
1977typedef union cvmx_pki_statx_stat16 cvmx_pki_statx_stat16_t;
1978
1979/**
1980 * cvmx_pki_stat#_stat17
1981 */
1982union cvmx_pki_statx_stat17 {
1983 u64 u64;
1984 struct cvmx_pki_statx_stat17_s {
1985 u64 reserved_48_63 : 16;
1986 u64 drp_mcast : 48;
1987 } s;
1988 struct cvmx_pki_statx_stat17_s cn73xx;
1989 struct cvmx_pki_statx_stat17_s cn78xx;
1990 struct cvmx_pki_statx_stat17_s cn78xxp1;
1991 struct cvmx_pki_statx_stat17_s cnf75xx;
1992};
1993
1994typedef union cvmx_pki_statx_stat17 cvmx_pki_statx_stat17_t;
1995
1996/**
1997 * cvmx_pki_stat#_stat18
1998 */
1999union cvmx_pki_statx_stat18 {
2000 u64 u64;
2001 struct cvmx_pki_statx_stat18_s {
2002 u64 reserved_48_63 : 16;
2003 u64 drp_spec : 48;
2004 } s;
2005 struct cvmx_pki_statx_stat18_s cn73xx;
2006 struct cvmx_pki_statx_stat18_s cn78xx;
2007 struct cvmx_pki_statx_stat18_s cn78xxp1;
2008 struct cvmx_pki_statx_stat18_s cnf75xx;
2009};
2010
2011typedef union cvmx_pki_statx_stat18 cvmx_pki_statx_stat18_t;
2012
2013/**
2014 * cvmx_pki_stat#_stat2
2015 */
2016union cvmx_pki_statx_stat2 {
2017 u64 u64;
2018 struct cvmx_pki_statx_stat2_s {
2019 u64 reserved_48_63 : 16;
2020 u64 raw : 48;
2021 } s;
2022 struct cvmx_pki_statx_stat2_s cn73xx;
2023 struct cvmx_pki_statx_stat2_s cn78xx;
2024 struct cvmx_pki_statx_stat2_s cn78xxp1;
2025 struct cvmx_pki_statx_stat2_s cnf75xx;
2026};
2027
2028typedef union cvmx_pki_statx_stat2 cvmx_pki_statx_stat2_t;
2029
2030/**
2031 * cvmx_pki_stat#_stat3
2032 */
2033union cvmx_pki_statx_stat3 {
2034 u64 u64;
2035 struct cvmx_pki_statx_stat3_s {
2036 u64 reserved_48_63 : 16;
2037 u64 drp_pkts : 48;
2038 } s;
2039 struct cvmx_pki_statx_stat3_s cn73xx;
2040 struct cvmx_pki_statx_stat3_s cn78xx;
2041 struct cvmx_pki_statx_stat3_s cn78xxp1;
2042 struct cvmx_pki_statx_stat3_s cnf75xx;
2043};
2044
2045typedef union cvmx_pki_statx_stat3 cvmx_pki_statx_stat3_t;
2046
2047/**
2048 * cvmx_pki_stat#_stat4
2049 */
2050union cvmx_pki_statx_stat4 {
2051 u64 u64;
2052 struct cvmx_pki_statx_stat4_s {
2053 u64 reserved_48_63 : 16;
2054 u64 drp_octs : 48;
2055 } s;
2056 struct cvmx_pki_statx_stat4_s cn73xx;
2057 struct cvmx_pki_statx_stat4_s cn78xx;
2058 struct cvmx_pki_statx_stat4_s cn78xxp1;
2059 struct cvmx_pki_statx_stat4_s cnf75xx;
2060};
2061
2062typedef union cvmx_pki_statx_stat4 cvmx_pki_statx_stat4_t;
2063
2064/**
2065 * cvmx_pki_stat#_stat5
2066 */
2067union cvmx_pki_statx_stat5 {
2068 u64 u64;
2069 struct cvmx_pki_statx_stat5_s {
2070 u64 reserved_48_63 : 16;
2071 u64 bcast : 48;
2072 } s;
2073 struct cvmx_pki_statx_stat5_s cn73xx;
2074 struct cvmx_pki_statx_stat5_s cn78xx;
2075 struct cvmx_pki_statx_stat5_s cn78xxp1;
2076 struct cvmx_pki_statx_stat5_s cnf75xx;
2077};
2078
2079typedef union cvmx_pki_statx_stat5 cvmx_pki_statx_stat5_t;
2080
2081/**
2082 * cvmx_pki_stat#_stat6
2083 */
2084union cvmx_pki_statx_stat6 {
2085 u64 u64;
2086 struct cvmx_pki_statx_stat6_s {
2087 u64 reserved_48_63 : 16;
2088 u64 mcast : 48;
2089 } s;
2090 struct cvmx_pki_statx_stat6_s cn73xx;
2091 struct cvmx_pki_statx_stat6_s cn78xx;
2092 struct cvmx_pki_statx_stat6_s cn78xxp1;
2093 struct cvmx_pki_statx_stat6_s cnf75xx;
2094};
2095
2096typedef union cvmx_pki_statx_stat6 cvmx_pki_statx_stat6_t;
2097
2098/**
2099 * cvmx_pki_stat#_stat7
2100 */
2101union cvmx_pki_statx_stat7 {
2102 u64 u64;
2103 struct cvmx_pki_statx_stat7_s {
2104 u64 reserved_48_63 : 16;
2105 u64 fcs : 48;
2106 } s;
2107 struct cvmx_pki_statx_stat7_s cn73xx;
2108 struct cvmx_pki_statx_stat7_s cn78xx;
2109 struct cvmx_pki_statx_stat7_s cn78xxp1;
2110 struct cvmx_pki_statx_stat7_s cnf75xx;
2111};
2112
2113typedef union cvmx_pki_statx_stat7 cvmx_pki_statx_stat7_t;
2114
2115/**
2116 * cvmx_pki_stat#_stat8
2117 */
2118union cvmx_pki_statx_stat8 {
2119 u64 u64;
2120 struct cvmx_pki_statx_stat8_s {
2121 u64 reserved_48_63 : 16;
2122 u64 frag : 48;
2123 } s;
2124 struct cvmx_pki_statx_stat8_s cn73xx;
2125 struct cvmx_pki_statx_stat8_s cn78xx;
2126 struct cvmx_pki_statx_stat8_s cn78xxp1;
2127 struct cvmx_pki_statx_stat8_s cnf75xx;
2128};
2129
2130typedef union cvmx_pki_statx_stat8 cvmx_pki_statx_stat8_t;
2131
2132/**
2133 * cvmx_pki_stat#_stat9
2134 */
2135union cvmx_pki_statx_stat9 {
2136 u64 u64;
2137 struct cvmx_pki_statx_stat9_s {
2138 u64 reserved_48_63 : 16;
2139 u64 undersz : 48;
2140 } s;
2141 struct cvmx_pki_statx_stat9_s cn73xx;
2142 struct cvmx_pki_statx_stat9_s cn78xx;
2143 struct cvmx_pki_statx_stat9_s cn78xxp1;
2144 struct cvmx_pki_statx_stat9_s cnf75xx;
2145};
2146
2147typedef union cvmx_pki_statx_stat9 cvmx_pki_statx_stat9_t;
2148
2149/**
2150 * cvmx_pki_stat_ctl
2151 *
2152 * This register controls how the PKI statistics counters are handled.
2153 *
2154 */
2155union cvmx_pki_stat_ctl {
2156 u64 u64;
2157 struct cvmx_pki_stat_ctl_s {
2158 u64 reserved_2_63 : 62;
2159 u64 mode : 2;
2160 } s;
2161 struct cvmx_pki_stat_ctl_s cn73xx;
2162 struct cvmx_pki_stat_ctl_s cn78xx;
2163 struct cvmx_pki_stat_ctl_s cn78xxp1;
2164 struct cvmx_pki_stat_ctl_s cnf75xx;
2165};
2166
2167typedef union cvmx_pki_stat_ctl cvmx_pki_stat_ctl_t;
2168
2169/**
2170 * cvmx_pki_style#_buf
2171 *
2172 * This register configures the PKI BE skip amounts and other information.
2173 * It is indexed by final style, PKI_WQE_S[STYLE]<5:0>.
2174 */
2175union cvmx_pki_stylex_buf {
2176 u64 u64;
2177 struct cvmx_pki_stylex_buf_s {
2178 u64 reserved_33_63 : 31;
2179 u64 pkt_lend : 1;
2180 u64 wqe_hsz : 2;
2181 u64 wqe_skip : 2;
2182 u64 first_skip : 6;
2183 u64 later_skip : 6;
2184 u64 opc_mode : 2;
2185 u64 dis_wq_dat : 1;
2186 u64 mb_size : 13;
2187 } s;
2188 struct cvmx_pki_stylex_buf_s cn73xx;
2189 struct cvmx_pki_stylex_buf_s cn78xx;
2190 struct cvmx_pki_stylex_buf_s cn78xxp1;
2191 struct cvmx_pki_stylex_buf_s cnf75xx;
2192};
2193
2194typedef union cvmx_pki_stylex_buf cvmx_pki_stylex_buf_t;
2195
2196/**
2197 * cvmx_pki_style#_tag_mask
2198 *
2199 * This register configures the PKI BE tag algorithm.
2200 * It is indexed by final style, PKI_WQE_S[STYLE]<5:0>.
2201 */
2202union cvmx_pki_stylex_tag_mask {
2203 u64 u64;
2204 struct cvmx_pki_stylex_tag_mask_s {
2205 u64 reserved_16_63 : 48;
2206 u64 mask : 16;
2207 } s;
2208 struct cvmx_pki_stylex_tag_mask_s cn73xx;
2209 struct cvmx_pki_stylex_tag_mask_s cn78xx;
2210 struct cvmx_pki_stylex_tag_mask_s cn78xxp1;
2211 struct cvmx_pki_stylex_tag_mask_s cnf75xx;
2212};
2213
2214typedef union cvmx_pki_stylex_tag_mask cvmx_pki_stylex_tag_mask_t;
2215
2216/**
2217 * cvmx_pki_style#_tag_sel
2218 *
2219 * This register configures the PKI BE tag algorithm.
2220 * It is indexed by final style, PKI_WQE_S[STYLE]<5:0>.
2221 */
2222union cvmx_pki_stylex_tag_sel {
2223 u64 u64;
2224 struct cvmx_pki_stylex_tag_sel_s {
2225 u64 reserved_27_63 : 37;
2226 u64 tag_idx3 : 3;
2227 u64 reserved_19_23 : 5;
2228 u64 tag_idx2 : 3;
2229 u64 reserved_11_15 : 5;
2230 u64 tag_idx1 : 3;
2231 u64 reserved_3_7 : 5;
2232 u64 tag_idx0 : 3;
2233 } s;
2234 struct cvmx_pki_stylex_tag_sel_s cn73xx;
2235 struct cvmx_pki_stylex_tag_sel_s cn78xx;
2236 struct cvmx_pki_stylex_tag_sel_s cn78xxp1;
2237 struct cvmx_pki_stylex_tag_sel_s cnf75xx;
2238};
2239
2240typedef union cvmx_pki_stylex_tag_sel cvmx_pki_stylex_tag_sel_t;
2241
2242/**
2243 * cvmx_pki_style#_wq2
2244 *
2245 * This register configures the PKI BE WQE generation.
2246 * It is indexed by final style, PKI_WQE_S[STYLE]<5:0>.
2247 */
2248union cvmx_pki_stylex_wq2 {
2249 u64 u64;
2250 struct cvmx_pki_stylex_wq2_s {
2251 u64 data : 64;
2252 } s;
2253 struct cvmx_pki_stylex_wq2_s cn73xx;
2254 struct cvmx_pki_stylex_wq2_s cn78xx;
2255 struct cvmx_pki_stylex_wq2_s cn78xxp1;
2256 struct cvmx_pki_stylex_wq2_s cnf75xx;
2257};
2258
2259typedef union cvmx_pki_stylex_wq2 cvmx_pki_stylex_wq2_t;
2260
2261/**
2262 * cvmx_pki_style#_wq4
2263 *
2264 * This register configures the PKI BE WQE generation.
2265 * It is indexed by final style, PKI_WQE_S[STYLE]<5:0>.
2266 */
2267union cvmx_pki_stylex_wq4 {
2268 u64 u64;
2269 struct cvmx_pki_stylex_wq4_s {
2270 u64 data : 64;
2271 } s;
2272 struct cvmx_pki_stylex_wq4_s cn73xx;
2273 struct cvmx_pki_stylex_wq4_s cn78xx;
2274 struct cvmx_pki_stylex_wq4_s cn78xxp1;
2275 struct cvmx_pki_stylex_wq4_s cnf75xx;
2276};
2277
2278typedef union cvmx_pki_stylex_wq4 cvmx_pki_stylex_wq4_t;
2279
2280/**
2281 * cvmx_pki_tag_inc#_ctl
2282 */
2283union cvmx_pki_tag_incx_ctl {
2284 u64 u64;
2285 struct cvmx_pki_tag_incx_ctl_s {
2286 u64 reserved_12_63 : 52;
2287 u64 ptr_sel : 4;
2288 u64 offset : 8;
2289 } s;
2290 struct cvmx_pki_tag_incx_ctl_s cn73xx;
2291 struct cvmx_pki_tag_incx_ctl_s cn78xx;
2292 struct cvmx_pki_tag_incx_ctl_s cn78xxp1;
2293 struct cvmx_pki_tag_incx_ctl_s cnf75xx;
2294};
2295
2296typedef union cvmx_pki_tag_incx_ctl cvmx_pki_tag_incx_ctl_t;
2297
2298/**
2299 * cvmx_pki_tag_inc#_mask
2300 */
2301union cvmx_pki_tag_incx_mask {
2302 u64 u64;
2303 struct cvmx_pki_tag_incx_mask_s {
2304 u64 en : 64;
2305 } s;
2306 struct cvmx_pki_tag_incx_mask_s cn73xx;
2307 struct cvmx_pki_tag_incx_mask_s cn78xx;
2308 struct cvmx_pki_tag_incx_mask_s cn78xxp1;
2309 struct cvmx_pki_tag_incx_mask_s cnf75xx;
2310};
2311
2312typedef union cvmx_pki_tag_incx_mask cvmx_pki_tag_incx_mask_t;
2313
2314/**
2315 * cvmx_pki_tag_secret
2316 *
2317 * The source and destination initial values (IVs) in tag generation provide a mechanism for
2318 * seeding with a random initialization value to reduce cache collision attacks.
2319 */
2320union cvmx_pki_tag_secret {
2321 u64 u64;
2322 struct cvmx_pki_tag_secret_s {
2323 u64 dst6 : 16;
2324 u64 src6 : 16;
2325 u64 dst : 16;
2326 u64 src : 16;
2327 } s;
2328 struct cvmx_pki_tag_secret_s cn73xx;
2329 struct cvmx_pki_tag_secret_s cn78xx;
2330 struct cvmx_pki_tag_secret_s cn78xxp1;
2331 struct cvmx_pki_tag_secret_s cnf75xx;
2332};
2333
2334typedef union cvmx_pki_tag_secret cvmx_pki_tag_secret_t;
2335
2336/**
2337 * cvmx_pki_x2p_req_ofl
2338 */
2339union cvmx_pki_x2p_req_ofl {
2340 u64 u64;
2341 struct cvmx_pki_x2p_req_ofl_s {
2342 u64 reserved_4_63 : 60;
2343 u64 x2p_did : 4;
2344 } s;
2345 struct cvmx_pki_x2p_req_ofl_s cn73xx;
2346 struct cvmx_pki_x2p_req_ofl_s cn78xx;
2347 struct cvmx_pki_x2p_req_ofl_s cn78xxp1;
2348 struct cvmx_pki_x2p_req_ofl_s cnf75xx;
2349};
2350
2351typedef union cvmx_pki_x2p_req_ofl cvmx_pki_x2p_req_ofl_t;
2352
2353#endif