1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /* 3 * Copyright (C) 2020 Marvell International Ltd. 4 * 5 * Configuration and status register (CSR) type definitions for 6 * Octeon 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 */ 129 union 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 141 typedef union cvmx_pki_active0 cvmx_pki_active0_t; 142 143 /** 144 * cvmx_pki_active1 145 */ 146 union 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 161 typedef union cvmx_pki_active1 cvmx_pki_active1_t; 162 163 /** 164 * cvmx_pki_active2 165 */ 166 union 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 178 typedef 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 */ 186 union 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 204 typedef 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 */ 212 union 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 224 typedef 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 */ 232 union 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 247 typedef 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 */ 255 union 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 267 typedef 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 */ 275 union 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 287 typedef union cvmx_pki_bpidx_state cvmx_pki_bpidx_state_t; 288 289 /** 290 * cvmx_pki_buf_ctl 291 */ 292 union 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 311 typedef 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 */ 319 union 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 333 typedef 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 */ 341 union 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 364 typedef union cvmx_pki_clx_ecc_ctl cvmx_pki_clx_ecc_ctl_t; 365 366 /** 367 * cvmx_pki_cl#_ecc_int 368 */ 369 union 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 388 typedef union cvmx_pki_clx_ecc_int cvmx_pki_clx_ecc_int_t; 389 390 /** 391 * cvmx_pki_cl#_int 392 */ 393 union 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 407 typedef 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 */ 430 union 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 446 typedef 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 */ 456 union 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 468 typedef 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 */ 479 union 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 496 typedef 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 */ 506 union 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 526 typedef 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 */ 552 union 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 564 typedef 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 */ 574 union 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 588 typedef 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 */ 598 union 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 610 typedef 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 */ 620 union 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 633 typedef 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 */ 643 union 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 656 typedef 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 */ 679 union 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 691 typedef 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 */ 699 union 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 711 typedef 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 */ 721 union 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 749 typedef 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 */ 759 union 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 787 typedef 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 */ 797 union 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 835 typedef union cvmx_pki_clx_stylex_cfg2 cvmx_pki_clx_stylex_cfg2_t; 836 837 /** 838 * cvmx_pki_clken 839 */ 840 union 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 852 typedef 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 */ 860 union 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 871 typedef 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 */ 879 union 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 890 typedef 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 */ 898 union 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 909 typedef 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 */ 917 union 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 928 typedef 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 */ 936 union 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 947 typedef 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 */ 955 union 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 982 typedef 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 */ 990 union 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 1057 typedef 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 */ 1065 union 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 1078 typedef union cvmx_pki_ecc_ctl2 cvmx_pki_ecc_ctl2_t; 1079 1080 /** 1081 * cvmx_pki_ecc_int0 1082 */ 1083 union 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 1110 typedef union cvmx_pki_ecc_int0 cvmx_pki_ecc_int0_t; 1111 1112 /** 1113 * cvmx_pki_ecc_int1 1114 */ 1115 union 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 1152 typedef union cvmx_pki_ecc_int1 cvmx_pki_ecc_int1_t; 1153 1154 /** 1155 * cvmx_pki_ecc_int2 1156 */ 1157 union 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 1170 typedef union cvmx_pki_ecc_int2 cvmx_pki_ecc_int2_t; 1171 1172 /** 1173 * cvmx_pki_frm_len_chk# 1174 */ 1175 union 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 1188 typedef 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 */ 1201 union 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 1222 typedef union cvmx_pki_gbl_pen cvmx_pki_gbl_pen_t; 1223 1224 /** 1225 * cvmx_pki_gen_int 1226 */ 1227 union 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 1258 typedef 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 */ 1266 union 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 1286 typedef union cvmx_pki_icgx_cfg cvmx_pki_icgx_cfg_t; 1287 1288 /** 1289 * cvmx_pki_imem# 1290 */ 1291 union 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 1302 typedef 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 */ 1310 union 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 1322 typedef union cvmx_pki_ltypex_map cvmx_pki_ltypex_map_t; 1323 1324 /** 1325 * cvmx_pki_pbe_eco 1326 */ 1327 union 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 1338 typedef 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 */ 1346 union 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 1363 typedef 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 */ 1374 union 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 1394 typedef union cvmx_pki_pcam_result cvmx_pki_pcam_result_t; 1395 1396 /** 1397 * cvmx_pki_pfe_diag 1398 */ 1399 union 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 1411 typedef union cvmx_pki_pfe_diag cvmx_pki_pfe_diag_t; 1412 1413 /** 1414 * cvmx_pki_pfe_eco 1415 */ 1416 union 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 1427 typedef union cvmx_pki_pfe_eco cvmx_pki_pfe_eco_t; 1428 1429 /** 1430 * cvmx_pki_pix_clken 1431 */ 1432 union 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 1446 typedef union cvmx_pki_pix_clken cvmx_pki_pix_clken_t; 1447 1448 /** 1449 * cvmx_pki_pix_diag 1450 */ 1451 union 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 1463 typedef union cvmx_pki_pix_diag cvmx_pki_pix_diag_t; 1464 1465 /** 1466 * cvmx_pki_pix_eco 1467 */ 1468 union 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 1479 typedef union cvmx_pki_pix_eco cvmx_pki_pix_eco_t; 1480 1481 /** 1482 * cvmx_pki_pkind#_icgsel 1483 */ 1484 union 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 1496 typedef 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 */ 1504 union 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 1516 typedef 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 */ 1524 union 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 1536 typedef 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 */ 1544 union 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 1556 typedef union cvmx_pki_pkndx_inb_stat2 cvmx_pki_pkndx_inb_stat2_t; 1557 1558 /** 1559 * cvmx_pki_pkt_err 1560 */ 1561 union 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 1573 typedef 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 */ 1581 union 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 1592 typedef 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 */ 1601 union 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 1622 typedef 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 */ 1630 union 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 1641 typedef union cvmx_pki_qpg_tblbx cvmx_pki_qpg_tblbx_t; 1642 1643 /** 1644 * cvmx_pki_reasm_sop# 1645 */ 1646 union 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 1657 typedef 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 */ 1665 union 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 1685 typedef union cvmx_pki_req_wgt cvmx_pki_req_wgt_t; 1686 1687 /** 1688 * cvmx_pki_sft_rst 1689 */ 1690 union 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 1705 typedef union cvmx_pki_sft_rst cvmx_pki_sft_rst_t; 1706 1707 /** 1708 * cvmx_pki_stat#_hist0 1709 */ 1710 union 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 1722 typedef union cvmx_pki_statx_hist0 cvmx_pki_statx_hist0_t; 1723 1724 /** 1725 * cvmx_pki_stat#_hist1 1726 */ 1727 union 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 1739 typedef union cvmx_pki_statx_hist1 cvmx_pki_statx_hist1_t; 1740 1741 /** 1742 * cvmx_pki_stat#_hist2 1743 */ 1744 union 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 1756 typedef union cvmx_pki_statx_hist2 cvmx_pki_statx_hist2_t; 1757 1758 /** 1759 * cvmx_pki_stat#_hist3 1760 */ 1761 union 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 1773 typedef union cvmx_pki_statx_hist3 cvmx_pki_statx_hist3_t; 1774 1775 /** 1776 * cvmx_pki_stat#_hist4 1777 */ 1778 union 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 1790 typedef union cvmx_pki_statx_hist4 cvmx_pki_statx_hist4_t; 1791 1792 /** 1793 * cvmx_pki_stat#_hist5 1794 */ 1795 union 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 1807 typedef union cvmx_pki_statx_hist5 cvmx_pki_statx_hist5_t; 1808 1809 /** 1810 * cvmx_pki_stat#_hist6 1811 */ 1812 union 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 1824 typedef union cvmx_pki_statx_hist6 cvmx_pki_statx_hist6_t; 1825 1826 /** 1827 * cvmx_pki_stat#_stat0 1828 */ 1829 union 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 1841 typedef union cvmx_pki_statx_stat0 cvmx_pki_statx_stat0_t; 1842 1843 /** 1844 * cvmx_pki_stat#_stat1 1845 */ 1846 union 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 1858 typedef union cvmx_pki_statx_stat1 cvmx_pki_statx_stat1_t; 1859 1860 /** 1861 * cvmx_pki_stat#_stat10 1862 */ 1863 union 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 1875 typedef union cvmx_pki_statx_stat10 cvmx_pki_statx_stat10_t; 1876 1877 /** 1878 * cvmx_pki_stat#_stat11 1879 */ 1880 union 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 1892 typedef union cvmx_pki_statx_stat11 cvmx_pki_statx_stat11_t; 1893 1894 /** 1895 * cvmx_pki_stat#_stat12 1896 */ 1897 union 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 1909 typedef union cvmx_pki_statx_stat12 cvmx_pki_statx_stat12_t; 1910 1911 /** 1912 * cvmx_pki_stat#_stat13 1913 */ 1914 union 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 1926 typedef union cvmx_pki_statx_stat13 cvmx_pki_statx_stat13_t; 1927 1928 /** 1929 * cvmx_pki_stat#_stat14 1930 */ 1931 union 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 1943 typedef union cvmx_pki_statx_stat14 cvmx_pki_statx_stat14_t; 1944 1945 /** 1946 * cvmx_pki_stat#_stat15 1947 */ 1948 union 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 1960 typedef union cvmx_pki_statx_stat15 cvmx_pki_statx_stat15_t; 1961 1962 /** 1963 * cvmx_pki_stat#_stat16 1964 */ 1965 union 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 1977 typedef union cvmx_pki_statx_stat16 cvmx_pki_statx_stat16_t; 1978 1979 /** 1980 * cvmx_pki_stat#_stat17 1981 */ 1982 union 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 1994 typedef union cvmx_pki_statx_stat17 cvmx_pki_statx_stat17_t; 1995 1996 /** 1997 * cvmx_pki_stat#_stat18 1998 */ 1999 union 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 2011 typedef union cvmx_pki_statx_stat18 cvmx_pki_statx_stat18_t; 2012 2013 /** 2014 * cvmx_pki_stat#_stat2 2015 */ 2016 union 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 2028 typedef union cvmx_pki_statx_stat2 cvmx_pki_statx_stat2_t; 2029 2030 /** 2031 * cvmx_pki_stat#_stat3 2032 */ 2033 union 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 2045 typedef union cvmx_pki_statx_stat3 cvmx_pki_statx_stat3_t; 2046 2047 /** 2048 * cvmx_pki_stat#_stat4 2049 */ 2050 union 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 2062 typedef union cvmx_pki_statx_stat4 cvmx_pki_statx_stat4_t; 2063 2064 /** 2065 * cvmx_pki_stat#_stat5 2066 */ 2067 union 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 2079 typedef union cvmx_pki_statx_stat5 cvmx_pki_statx_stat5_t; 2080 2081 /** 2082 * cvmx_pki_stat#_stat6 2083 */ 2084 union 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 2096 typedef union cvmx_pki_statx_stat6 cvmx_pki_statx_stat6_t; 2097 2098 /** 2099 * cvmx_pki_stat#_stat7 2100 */ 2101 union 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 2113 typedef union cvmx_pki_statx_stat7 cvmx_pki_statx_stat7_t; 2114 2115 /** 2116 * cvmx_pki_stat#_stat8 2117 */ 2118 union 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 2130 typedef union cvmx_pki_statx_stat8 cvmx_pki_statx_stat8_t; 2131 2132 /** 2133 * cvmx_pki_stat#_stat9 2134 */ 2135 union 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 2147 typedef 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 */ 2155 union 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 2167 typedef 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 */ 2175 union 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 2194 typedef 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 */ 2202 union 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 2214 typedef 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 */ 2222 union 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 2240 typedef 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 */ 2248 union 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 2259 typedef 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 */ 2267 union 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 2278 typedef union cvmx_pki_stylex_wq4 cvmx_pki_stylex_wq4_t; 2279 2280 /** 2281 * cvmx_pki_tag_inc#_ctl 2282 */ 2283 union 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 2296 typedef union cvmx_pki_tag_incx_ctl cvmx_pki_tag_incx_ctl_t; 2297 2298 /** 2299 * cvmx_pki_tag_inc#_mask 2300 */ 2301 union 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 2312 typedef 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 */ 2320 union 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 2334 typedef union cvmx_pki_tag_secret cvmx_pki_tag_secret_t; 2335 2336 /** 2337 * cvmx_pki_x2p_req_ofl 2338 */ 2339 union 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 2351 typedef union cvmx_pki_x2p_req_ofl cvmx_pki_x2p_req_ofl_t; 2352 2353 #endif 2354