1 /***********************license start*************** 2 * Author: Cavium Networks 3 * 4 * Contact: support@caviumnetworks.com 5 * This file is part of the OCTEON SDK 6 * 7 * Copyright (c) 2003-2008 Cavium Networks 8 * 9 * This file is free software; you can redistribute it and/or modify 10 * it under the terms of the GNU General Public License, Version 2, as 11 * published by the Free Software Foundation. 12 * 13 * This file is distributed in the hope that it will be useful, but 14 * AS-IS and WITHOUT ANY WARRANTY; without even the implied warranty 15 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, TITLE, or 16 * NONINFRINGEMENT. See the GNU General Public License for more 17 * details. 18 * 19 * You should have received a copy of the GNU General Public License 20 * along with this file; if not, write to the Free Software 21 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 22 * or visit http://www.gnu.org/licenses/. 23 * 24 * This file may also be available under a different license from Cavium. 25 * Contact Cavium Networks for more information 26 ***********************license end**************************************/ 27 28 #ifndef __CVMX_PIP_DEFS_H__ 29 #define __CVMX_PIP_DEFS_H__ 30 31 /* 32 * Enumeration representing the amount of packet processing 33 * and validation performed by the input hardware. 34 */ 35 enum cvmx_pip_port_parse_mode { 36 /* 37 * Packet input doesn't perform any processing of the input 38 * packet. 39 */ 40 CVMX_PIP_PORT_CFG_MODE_NONE = 0ull, 41 /* 42 * Full packet processing is performed with pointer starting 43 * at the L2 (ethernet MAC) header. 44 */ 45 CVMX_PIP_PORT_CFG_MODE_SKIPL2 = 1ull, 46 /* 47 * Input packets are assumed to be IP. Results from non IP 48 * packets is undefined. Pointers reference the beginning of 49 * the IP header. 50 */ 51 CVMX_PIP_PORT_CFG_MODE_SKIPIP = 2ull 52 }; 53 54 #define CVMX_PIP_BCK_PRS \ 55 CVMX_ADD_IO_SEG(0x00011800A0000038ull) 56 #define CVMX_PIP_BIST_STATUS \ 57 CVMX_ADD_IO_SEG(0x00011800A0000000ull) 58 #define CVMX_PIP_CRC_CTLX(offset) \ 59 CVMX_ADD_IO_SEG(0x00011800A0000040ull + (((offset) & 1) * 8)) 60 #define CVMX_PIP_CRC_IVX(offset) \ 61 CVMX_ADD_IO_SEG(0x00011800A0000050ull + (((offset) & 1) * 8)) 62 #define CVMX_PIP_DEC_IPSECX(offset) \ 63 CVMX_ADD_IO_SEG(0x00011800A0000080ull + (((offset) & 3) * 8)) 64 #define CVMX_PIP_DSA_SRC_GRP \ 65 CVMX_ADD_IO_SEG(0x00011800A0000190ull) 66 #define CVMX_PIP_DSA_VID_GRP \ 67 CVMX_ADD_IO_SEG(0x00011800A0000198ull) 68 #define CVMX_PIP_FRM_LEN_CHKX(offset) \ 69 CVMX_ADD_IO_SEG(0x00011800A0000180ull + (((offset) & 1) * 8)) 70 #define CVMX_PIP_GBL_CFG \ 71 CVMX_ADD_IO_SEG(0x00011800A0000028ull) 72 #define CVMX_PIP_GBL_CTL \ 73 CVMX_ADD_IO_SEG(0x00011800A0000020ull) 74 #define CVMX_PIP_HG_PRI_QOS \ 75 CVMX_ADD_IO_SEG(0x00011800A00001A0ull) 76 #define CVMX_PIP_INT_EN \ 77 CVMX_ADD_IO_SEG(0x00011800A0000010ull) 78 #define CVMX_PIP_INT_REG \ 79 CVMX_ADD_IO_SEG(0x00011800A0000008ull) 80 #define CVMX_PIP_IP_OFFSET \ 81 CVMX_ADD_IO_SEG(0x00011800A0000060ull) 82 #define CVMX_PIP_PRT_CFGX(offset) \ 83 CVMX_ADD_IO_SEG(0x00011800A0000200ull + (((offset) & 63) * 8)) 84 #define CVMX_PIP_PRT_TAGX(offset) \ 85 CVMX_ADD_IO_SEG(0x00011800A0000400ull + (((offset) & 63) * 8)) 86 #define CVMX_PIP_QOS_DIFFX(offset) \ 87 CVMX_ADD_IO_SEG(0x00011800A0000600ull + (((offset) & 63) * 8)) 88 #define CVMX_PIP_QOS_VLANX(offset) \ 89 CVMX_ADD_IO_SEG(0x00011800A00000C0ull + (((offset) & 7) * 8)) 90 #define CVMX_PIP_QOS_WATCHX(offset) \ 91 CVMX_ADD_IO_SEG(0x00011800A0000100ull + (((offset) & 7) * 8)) 92 #define CVMX_PIP_RAW_WORD \ 93 CVMX_ADD_IO_SEG(0x00011800A00000B0ull) 94 #define CVMX_PIP_SFT_RST \ 95 CVMX_ADD_IO_SEG(0x00011800A0000030ull) 96 #define CVMX_PIP_STAT0_PRTX(offset) \ 97 CVMX_ADD_IO_SEG(0x00011800A0000800ull + (((offset) & 63) * 80)) 98 #define CVMX_PIP_STAT1_PRTX(offset) \ 99 CVMX_ADD_IO_SEG(0x00011800A0000808ull + (((offset) & 63) * 80)) 100 #define CVMX_PIP_STAT2_PRTX(offset) \ 101 CVMX_ADD_IO_SEG(0x00011800A0000810ull + (((offset) & 63) * 80)) 102 #define CVMX_PIP_STAT3_PRTX(offset) \ 103 CVMX_ADD_IO_SEG(0x00011800A0000818ull + (((offset) & 63) * 80)) 104 #define CVMX_PIP_STAT4_PRTX(offset) \ 105 CVMX_ADD_IO_SEG(0x00011800A0000820ull + (((offset) & 63) * 80)) 106 #define CVMX_PIP_STAT5_PRTX(offset) \ 107 CVMX_ADD_IO_SEG(0x00011800A0000828ull + (((offset) & 63) * 80)) 108 #define CVMX_PIP_STAT6_PRTX(offset) \ 109 CVMX_ADD_IO_SEG(0x00011800A0000830ull + (((offset) & 63) * 80)) 110 #define CVMX_PIP_STAT7_PRTX(offset) \ 111 CVMX_ADD_IO_SEG(0x00011800A0000838ull + (((offset) & 63) * 80)) 112 #define CVMX_PIP_STAT8_PRTX(offset) \ 113 CVMX_ADD_IO_SEG(0x00011800A0000840ull + (((offset) & 63) * 80)) 114 #define CVMX_PIP_STAT9_PRTX(offset) \ 115 CVMX_ADD_IO_SEG(0x00011800A0000848ull + (((offset) & 63) * 80)) 116 #define CVMX_PIP_STAT_CTL \ 117 CVMX_ADD_IO_SEG(0x00011800A0000018ull) 118 #define CVMX_PIP_STAT_INB_ERRSX(offset) \ 119 CVMX_ADD_IO_SEG(0x00011800A0001A10ull + (((offset) & 63) * 32)) 120 #define CVMX_PIP_STAT_INB_OCTSX(offset) \ 121 CVMX_ADD_IO_SEG(0x00011800A0001A08ull + (((offset) & 63) * 32)) 122 #define CVMX_PIP_STAT_INB_PKTSX(offset) \ 123 CVMX_ADD_IO_SEG(0x00011800A0001A00ull + (((offset) & 63) * 32)) 124 #define CVMX_PIP_TAG_INCX(offset) \ 125 CVMX_ADD_IO_SEG(0x00011800A0001800ull + (((offset) & 63) * 8)) 126 #define CVMX_PIP_TAG_MASK \ 127 CVMX_ADD_IO_SEG(0x00011800A0000070ull) 128 #define CVMX_PIP_TAG_SECRET \ 129 CVMX_ADD_IO_SEG(0x00011800A0000068ull) 130 #define CVMX_PIP_TODO_ENTRY \ 131 CVMX_ADD_IO_SEG(0x00011800A0000078ull) 132 133 union cvmx_pip_bck_prs { 134 uint64_t u64; 135 struct cvmx_pip_bck_prs_s { 136 uint64_t bckprs:1; 137 uint64_t reserved_13_62:50; 138 uint64_t hiwater:5; 139 uint64_t reserved_5_7:3; 140 uint64_t lowater:5; 141 } s; 142 struct cvmx_pip_bck_prs_s cn38xx; 143 struct cvmx_pip_bck_prs_s cn38xxp2; 144 struct cvmx_pip_bck_prs_s cn56xx; 145 struct cvmx_pip_bck_prs_s cn56xxp1; 146 struct cvmx_pip_bck_prs_s cn58xx; 147 struct cvmx_pip_bck_prs_s cn58xxp1; 148 }; 149 150 union cvmx_pip_bist_status { 151 uint64_t u64; 152 struct cvmx_pip_bist_status_s { 153 uint64_t reserved_18_63:46; 154 uint64_t bist:18; 155 } s; 156 struct cvmx_pip_bist_status_s cn30xx; 157 struct cvmx_pip_bist_status_s cn31xx; 158 struct cvmx_pip_bist_status_s cn38xx; 159 struct cvmx_pip_bist_status_s cn38xxp2; 160 struct cvmx_pip_bist_status_cn50xx { 161 uint64_t reserved_17_63:47; 162 uint64_t bist:17; 163 } cn50xx; 164 struct cvmx_pip_bist_status_s cn52xx; 165 struct cvmx_pip_bist_status_s cn52xxp1; 166 struct cvmx_pip_bist_status_s cn56xx; 167 struct cvmx_pip_bist_status_s cn56xxp1; 168 struct cvmx_pip_bist_status_s cn58xx; 169 struct cvmx_pip_bist_status_s cn58xxp1; 170 }; 171 172 union cvmx_pip_crc_ctlx { 173 uint64_t u64; 174 struct cvmx_pip_crc_ctlx_s { 175 uint64_t reserved_2_63:62; 176 uint64_t invres:1; 177 uint64_t reflect:1; 178 } s; 179 struct cvmx_pip_crc_ctlx_s cn38xx; 180 struct cvmx_pip_crc_ctlx_s cn38xxp2; 181 struct cvmx_pip_crc_ctlx_s cn58xx; 182 struct cvmx_pip_crc_ctlx_s cn58xxp1; 183 }; 184 185 union cvmx_pip_crc_ivx { 186 uint64_t u64; 187 struct cvmx_pip_crc_ivx_s { 188 uint64_t reserved_32_63:32; 189 uint64_t iv:32; 190 } s; 191 struct cvmx_pip_crc_ivx_s cn38xx; 192 struct cvmx_pip_crc_ivx_s cn38xxp2; 193 struct cvmx_pip_crc_ivx_s cn58xx; 194 struct cvmx_pip_crc_ivx_s cn58xxp1; 195 }; 196 197 union cvmx_pip_dec_ipsecx { 198 uint64_t u64; 199 struct cvmx_pip_dec_ipsecx_s { 200 uint64_t reserved_18_63:46; 201 uint64_t tcp:1; 202 uint64_t udp:1; 203 uint64_t dprt:16; 204 } s; 205 struct cvmx_pip_dec_ipsecx_s cn30xx; 206 struct cvmx_pip_dec_ipsecx_s cn31xx; 207 struct cvmx_pip_dec_ipsecx_s cn38xx; 208 struct cvmx_pip_dec_ipsecx_s cn38xxp2; 209 struct cvmx_pip_dec_ipsecx_s cn50xx; 210 struct cvmx_pip_dec_ipsecx_s cn52xx; 211 struct cvmx_pip_dec_ipsecx_s cn52xxp1; 212 struct cvmx_pip_dec_ipsecx_s cn56xx; 213 struct cvmx_pip_dec_ipsecx_s cn56xxp1; 214 struct cvmx_pip_dec_ipsecx_s cn58xx; 215 struct cvmx_pip_dec_ipsecx_s cn58xxp1; 216 }; 217 218 union cvmx_pip_dsa_src_grp { 219 uint64_t u64; 220 struct cvmx_pip_dsa_src_grp_s { 221 uint64_t map15:4; 222 uint64_t map14:4; 223 uint64_t map13:4; 224 uint64_t map12:4; 225 uint64_t map11:4; 226 uint64_t map10:4; 227 uint64_t map9:4; 228 uint64_t map8:4; 229 uint64_t map7:4; 230 uint64_t map6:4; 231 uint64_t map5:4; 232 uint64_t map4:4; 233 uint64_t map3:4; 234 uint64_t map2:4; 235 uint64_t map1:4; 236 uint64_t map0:4; 237 } s; 238 struct cvmx_pip_dsa_src_grp_s cn52xx; 239 struct cvmx_pip_dsa_src_grp_s cn52xxp1; 240 struct cvmx_pip_dsa_src_grp_s cn56xx; 241 }; 242 243 union cvmx_pip_dsa_vid_grp { 244 uint64_t u64; 245 struct cvmx_pip_dsa_vid_grp_s { 246 uint64_t map15:4; 247 uint64_t map14:4; 248 uint64_t map13:4; 249 uint64_t map12:4; 250 uint64_t map11:4; 251 uint64_t map10:4; 252 uint64_t map9:4; 253 uint64_t map8:4; 254 uint64_t map7:4; 255 uint64_t map6:4; 256 uint64_t map5:4; 257 uint64_t map4:4; 258 uint64_t map3:4; 259 uint64_t map2:4; 260 uint64_t map1:4; 261 uint64_t map0:4; 262 } s; 263 struct cvmx_pip_dsa_vid_grp_s cn52xx; 264 struct cvmx_pip_dsa_vid_grp_s cn52xxp1; 265 struct cvmx_pip_dsa_vid_grp_s cn56xx; 266 }; 267 268 union cvmx_pip_frm_len_chkx { 269 uint64_t u64; 270 struct cvmx_pip_frm_len_chkx_s { 271 uint64_t reserved_32_63:32; 272 uint64_t maxlen:16; 273 uint64_t minlen:16; 274 } s; 275 struct cvmx_pip_frm_len_chkx_s cn50xx; 276 struct cvmx_pip_frm_len_chkx_s cn52xx; 277 struct cvmx_pip_frm_len_chkx_s cn52xxp1; 278 struct cvmx_pip_frm_len_chkx_s cn56xx; 279 struct cvmx_pip_frm_len_chkx_s cn56xxp1; 280 }; 281 282 union cvmx_pip_gbl_cfg { 283 uint64_t u64; 284 struct cvmx_pip_gbl_cfg_s { 285 uint64_t reserved_19_63:45; 286 uint64_t tag_syn:1; 287 uint64_t ip6_udp:1; 288 uint64_t max_l2:1; 289 uint64_t reserved_11_15:5; 290 uint64_t raw_shf:3; 291 uint64_t reserved_3_7:5; 292 uint64_t nip_shf:3; 293 } s; 294 struct cvmx_pip_gbl_cfg_s cn30xx; 295 struct cvmx_pip_gbl_cfg_s cn31xx; 296 struct cvmx_pip_gbl_cfg_s cn38xx; 297 struct cvmx_pip_gbl_cfg_s cn38xxp2; 298 struct cvmx_pip_gbl_cfg_s cn50xx; 299 struct cvmx_pip_gbl_cfg_s cn52xx; 300 struct cvmx_pip_gbl_cfg_s cn52xxp1; 301 struct cvmx_pip_gbl_cfg_s cn56xx; 302 struct cvmx_pip_gbl_cfg_s cn56xxp1; 303 struct cvmx_pip_gbl_cfg_s cn58xx; 304 struct cvmx_pip_gbl_cfg_s cn58xxp1; 305 }; 306 307 union cvmx_pip_gbl_ctl { 308 uint64_t u64; 309 struct cvmx_pip_gbl_ctl_s { 310 uint64_t reserved_27_63:37; 311 uint64_t dsa_grp_tvid:1; 312 uint64_t dsa_grp_scmd:1; 313 uint64_t dsa_grp_sid:1; 314 uint64_t reserved_21_23:3; 315 uint64_t ring_en:1; 316 uint64_t reserved_17_19:3; 317 uint64_t ignrs:1; 318 uint64_t vs_wqe:1; 319 uint64_t vs_qos:1; 320 uint64_t l2_mal:1; 321 uint64_t tcp_flag:1; 322 uint64_t l4_len:1; 323 uint64_t l4_chk:1; 324 uint64_t l4_prt:1; 325 uint64_t l4_mal:1; 326 uint64_t reserved_6_7:2; 327 uint64_t ip6_eext:2; 328 uint64_t ip4_opts:1; 329 uint64_t ip_hop:1; 330 uint64_t ip_mal:1; 331 uint64_t ip_chk:1; 332 } s; 333 struct cvmx_pip_gbl_ctl_cn30xx { 334 uint64_t reserved_17_63:47; 335 uint64_t ignrs:1; 336 uint64_t vs_wqe:1; 337 uint64_t vs_qos:1; 338 uint64_t l2_mal:1; 339 uint64_t tcp_flag:1; 340 uint64_t l4_len:1; 341 uint64_t l4_chk:1; 342 uint64_t l4_prt:1; 343 uint64_t l4_mal:1; 344 uint64_t reserved_6_7:2; 345 uint64_t ip6_eext:2; 346 uint64_t ip4_opts:1; 347 uint64_t ip_hop:1; 348 uint64_t ip_mal:1; 349 uint64_t ip_chk:1; 350 } cn30xx; 351 struct cvmx_pip_gbl_ctl_cn30xx cn31xx; 352 struct cvmx_pip_gbl_ctl_cn30xx cn38xx; 353 struct cvmx_pip_gbl_ctl_cn30xx cn38xxp2; 354 struct cvmx_pip_gbl_ctl_cn30xx cn50xx; 355 struct cvmx_pip_gbl_ctl_s cn52xx; 356 struct cvmx_pip_gbl_ctl_s cn52xxp1; 357 struct cvmx_pip_gbl_ctl_s cn56xx; 358 struct cvmx_pip_gbl_ctl_cn56xxp1 { 359 uint64_t reserved_21_63:43; 360 uint64_t ring_en:1; 361 uint64_t reserved_17_19:3; 362 uint64_t ignrs:1; 363 uint64_t vs_wqe:1; 364 uint64_t vs_qos:1; 365 uint64_t l2_mal:1; 366 uint64_t tcp_flag:1; 367 uint64_t l4_len:1; 368 uint64_t l4_chk:1; 369 uint64_t l4_prt:1; 370 uint64_t l4_mal:1; 371 uint64_t reserved_6_7:2; 372 uint64_t ip6_eext:2; 373 uint64_t ip4_opts:1; 374 uint64_t ip_hop:1; 375 uint64_t ip_mal:1; 376 uint64_t ip_chk:1; 377 } cn56xxp1; 378 struct cvmx_pip_gbl_ctl_cn30xx cn58xx; 379 struct cvmx_pip_gbl_ctl_cn30xx cn58xxp1; 380 }; 381 382 union cvmx_pip_hg_pri_qos { 383 uint64_t u64; 384 struct cvmx_pip_hg_pri_qos_s { 385 uint64_t reserved_11_63:53; 386 uint64_t qos:3; 387 uint64_t reserved_6_7:2; 388 uint64_t pri:6; 389 } s; 390 struct cvmx_pip_hg_pri_qos_s cn52xx; 391 struct cvmx_pip_hg_pri_qos_s cn52xxp1; 392 struct cvmx_pip_hg_pri_qos_s cn56xx; 393 }; 394 395 union cvmx_pip_int_en { 396 uint64_t u64; 397 struct cvmx_pip_int_en_s { 398 uint64_t reserved_13_63:51; 399 uint64_t punyerr:1; 400 uint64_t lenerr:1; 401 uint64_t maxerr:1; 402 uint64_t minerr:1; 403 uint64_t beperr:1; 404 uint64_t feperr:1; 405 uint64_t todoovr:1; 406 uint64_t skprunt:1; 407 uint64_t badtag:1; 408 uint64_t prtnxa:1; 409 uint64_t bckprs:1; 410 uint64_t crcerr:1; 411 uint64_t pktdrp:1; 412 } s; 413 struct cvmx_pip_int_en_cn30xx { 414 uint64_t reserved_9_63:55; 415 uint64_t beperr:1; 416 uint64_t feperr:1; 417 uint64_t todoovr:1; 418 uint64_t skprunt:1; 419 uint64_t badtag:1; 420 uint64_t prtnxa:1; 421 uint64_t bckprs:1; 422 uint64_t crcerr:1; 423 uint64_t pktdrp:1; 424 } cn30xx; 425 struct cvmx_pip_int_en_cn30xx cn31xx; 426 struct cvmx_pip_int_en_cn30xx cn38xx; 427 struct cvmx_pip_int_en_cn30xx cn38xxp2; 428 struct cvmx_pip_int_en_cn50xx { 429 uint64_t reserved_12_63:52; 430 uint64_t lenerr:1; 431 uint64_t maxerr:1; 432 uint64_t minerr:1; 433 uint64_t beperr:1; 434 uint64_t feperr:1; 435 uint64_t todoovr:1; 436 uint64_t skprunt:1; 437 uint64_t badtag:1; 438 uint64_t prtnxa:1; 439 uint64_t bckprs:1; 440 uint64_t reserved_1_1:1; 441 uint64_t pktdrp:1; 442 } cn50xx; 443 struct cvmx_pip_int_en_cn52xx { 444 uint64_t reserved_13_63:51; 445 uint64_t punyerr:1; 446 uint64_t lenerr:1; 447 uint64_t maxerr:1; 448 uint64_t minerr:1; 449 uint64_t beperr:1; 450 uint64_t feperr:1; 451 uint64_t todoovr:1; 452 uint64_t skprunt:1; 453 uint64_t badtag:1; 454 uint64_t prtnxa:1; 455 uint64_t bckprs:1; 456 uint64_t reserved_1_1:1; 457 uint64_t pktdrp:1; 458 } cn52xx; 459 struct cvmx_pip_int_en_cn52xx cn52xxp1; 460 struct cvmx_pip_int_en_s cn56xx; 461 struct cvmx_pip_int_en_cn56xxp1 { 462 uint64_t reserved_12_63:52; 463 uint64_t lenerr:1; 464 uint64_t maxerr:1; 465 uint64_t minerr:1; 466 uint64_t beperr:1; 467 uint64_t feperr:1; 468 uint64_t todoovr:1; 469 uint64_t skprunt:1; 470 uint64_t badtag:1; 471 uint64_t prtnxa:1; 472 uint64_t bckprs:1; 473 uint64_t crcerr:1; 474 uint64_t pktdrp:1; 475 } cn56xxp1; 476 struct cvmx_pip_int_en_cn58xx { 477 uint64_t reserved_13_63:51; 478 uint64_t punyerr:1; 479 uint64_t reserved_9_11:3; 480 uint64_t beperr:1; 481 uint64_t feperr:1; 482 uint64_t todoovr:1; 483 uint64_t skprunt:1; 484 uint64_t badtag:1; 485 uint64_t prtnxa:1; 486 uint64_t bckprs:1; 487 uint64_t crcerr:1; 488 uint64_t pktdrp:1; 489 } cn58xx; 490 struct cvmx_pip_int_en_cn30xx cn58xxp1; 491 }; 492 493 union cvmx_pip_int_reg { 494 uint64_t u64; 495 struct cvmx_pip_int_reg_s { 496 uint64_t reserved_13_63:51; 497 uint64_t punyerr:1; 498 uint64_t lenerr:1; 499 uint64_t maxerr:1; 500 uint64_t minerr:1; 501 uint64_t beperr:1; 502 uint64_t feperr:1; 503 uint64_t todoovr:1; 504 uint64_t skprunt:1; 505 uint64_t badtag:1; 506 uint64_t prtnxa:1; 507 uint64_t bckprs:1; 508 uint64_t crcerr:1; 509 uint64_t pktdrp:1; 510 } s; 511 struct cvmx_pip_int_reg_cn30xx { 512 uint64_t reserved_9_63:55; 513 uint64_t beperr:1; 514 uint64_t feperr:1; 515 uint64_t todoovr:1; 516 uint64_t skprunt:1; 517 uint64_t badtag:1; 518 uint64_t prtnxa:1; 519 uint64_t bckprs:1; 520 uint64_t crcerr:1; 521 uint64_t pktdrp:1; 522 } cn30xx; 523 struct cvmx_pip_int_reg_cn30xx cn31xx; 524 struct cvmx_pip_int_reg_cn30xx cn38xx; 525 struct cvmx_pip_int_reg_cn30xx cn38xxp2; 526 struct cvmx_pip_int_reg_cn50xx { 527 uint64_t reserved_12_63:52; 528 uint64_t lenerr:1; 529 uint64_t maxerr:1; 530 uint64_t minerr:1; 531 uint64_t beperr:1; 532 uint64_t feperr:1; 533 uint64_t todoovr:1; 534 uint64_t skprunt:1; 535 uint64_t badtag:1; 536 uint64_t prtnxa:1; 537 uint64_t bckprs:1; 538 uint64_t reserved_1_1:1; 539 uint64_t pktdrp:1; 540 } cn50xx; 541 struct cvmx_pip_int_reg_cn52xx { 542 uint64_t reserved_13_63:51; 543 uint64_t punyerr:1; 544 uint64_t lenerr:1; 545 uint64_t maxerr:1; 546 uint64_t minerr:1; 547 uint64_t beperr:1; 548 uint64_t feperr:1; 549 uint64_t todoovr:1; 550 uint64_t skprunt:1; 551 uint64_t badtag:1; 552 uint64_t prtnxa:1; 553 uint64_t bckprs:1; 554 uint64_t reserved_1_1:1; 555 uint64_t pktdrp:1; 556 } cn52xx; 557 struct cvmx_pip_int_reg_cn52xx cn52xxp1; 558 struct cvmx_pip_int_reg_s cn56xx; 559 struct cvmx_pip_int_reg_cn56xxp1 { 560 uint64_t reserved_12_63:52; 561 uint64_t lenerr:1; 562 uint64_t maxerr:1; 563 uint64_t minerr:1; 564 uint64_t beperr:1; 565 uint64_t feperr:1; 566 uint64_t todoovr:1; 567 uint64_t skprunt:1; 568 uint64_t badtag:1; 569 uint64_t prtnxa:1; 570 uint64_t bckprs:1; 571 uint64_t crcerr:1; 572 uint64_t pktdrp:1; 573 } cn56xxp1; 574 struct cvmx_pip_int_reg_cn58xx { 575 uint64_t reserved_13_63:51; 576 uint64_t punyerr:1; 577 uint64_t reserved_9_11:3; 578 uint64_t beperr:1; 579 uint64_t feperr:1; 580 uint64_t todoovr:1; 581 uint64_t skprunt:1; 582 uint64_t badtag:1; 583 uint64_t prtnxa:1; 584 uint64_t bckprs:1; 585 uint64_t crcerr:1; 586 uint64_t pktdrp:1; 587 } cn58xx; 588 struct cvmx_pip_int_reg_cn30xx cn58xxp1; 589 }; 590 591 union cvmx_pip_ip_offset { 592 uint64_t u64; 593 struct cvmx_pip_ip_offset_s { 594 uint64_t reserved_3_63:61; 595 uint64_t offset:3; 596 } s; 597 struct cvmx_pip_ip_offset_s cn30xx; 598 struct cvmx_pip_ip_offset_s cn31xx; 599 struct cvmx_pip_ip_offset_s cn38xx; 600 struct cvmx_pip_ip_offset_s cn38xxp2; 601 struct cvmx_pip_ip_offset_s cn50xx; 602 struct cvmx_pip_ip_offset_s cn52xx; 603 struct cvmx_pip_ip_offset_s cn52xxp1; 604 struct cvmx_pip_ip_offset_s cn56xx; 605 struct cvmx_pip_ip_offset_s cn56xxp1; 606 struct cvmx_pip_ip_offset_s cn58xx; 607 struct cvmx_pip_ip_offset_s cn58xxp1; 608 }; 609 610 union cvmx_pip_prt_cfgx { 611 uint64_t u64; 612 struct cvmx_pip_prt_cfgx_s { 613 uint64_t reserved_53_63:11; 614 uint64_t pad_len:1; 615 uint64_t vlan_len:1; 616 uint64_t lenerr_en:1; 617 uint64_t maxerr_en:1; 618 uint64_t minerr_en:1; 619 uint64_t grp_wat_47:4; 620 uint64_t qos_wat_47:4; 621 uint64_t reserved_37_39:3; 622 uint64_t rawdrp:1; 623 uint64_t tag_inc:2; 624 uint64_t dyn_rs:1; 625 uint64_t inst_hdr:1; 626 uint64_t grp_wat:4; 627 uint64_t hg_qos:1; 628 uint64_t qos:3; 629 uint64_t qos_wat:4; 630 uint64_t qos_vsel:1; 631 uint64_t qos_vod:1; 632 uint64_t qos_diff:1; 633 uint64_t qos_vlan:1; 634 uint64_t reserved_13_15:3; 635 uint64_t crc_en:1; 636 uint64_t higig_en:1; 637 uint64_t dsa_en:1; 638 uint64_t mode:2; 639 uint64_t reserved_7_7:1; 640 uint64_t skip:7; 641 } s; 642 struct cvmx_pip_prt_cfgx_cn30xx { 643 uint64_t reserved_37_63:27; 644 uint64_t rawdrp:1; 645 uint64_t tag_inc:2; 646 uint64_t dyn_rs:1; 647 uint64_t inst_hdr:1; 648 uint64_t grp_wat:4; 649 uint64_t reserved_27_27:1; 650 uint64_t qos:3; 651 uint64_t qos_wat:4; 652 uint64_t reserved_18_19:2; 653 uint64_t qos_diff:1; 654 uint64_t qos_vlan:1; 655 uint64_t reserved_10_15:6; 656 uint64_t mode:2; 657 uint64_t reserved_7_7:1; 658 uint64_t skip:7; 659 } cn30xx; 660 struct cvmx_pip_prt_cfgx_cn30xx cn31xx; 661 struct cvmx_pip_prt_cfgx_cn38xx { 662 uint64_t reserved_37_63:27; 663 uint64_t rawdrp:1; 664 uint64_t tag_inc:2; 665 uint64_t dyn_rs:1; 666 uint64_t inst_hdr:1; 667 uint64_t grp_wat:4; 668 uint64_t reserved_27_27:1; 669 uint64_t qos:3; 670 uint64_t qos_wat:4; 671 uint64_t reserved_18_19:2; 672 uint64_t qos_diff:1; 673 uint64_t qos_vlan:1; 674 uint64_t reserved_13_15:3; 675 uint64_t crc_en:1; 676 uint64_t reserved_10_11:2; 677 uint64_t mode:2; 678 uint64_t reserved_7_7:1; 679 uint64_t skip:7; 680 } cn38xx; 681 struct cvmx_pip_prt_cfgx_cn38xx cn38xxp2; 682 struct cvmx_pip_prt_cfgx_cn50xx { 683 uint64_t reserved_53_63:11; 684 uint64_t pad_len:1; 685 uint64_t vlan_len:1; 686 uint64_t lenerr_en:1; 687 uint64_t maxerr_en:1; 688 uint64_t minerr_en:1; 689 uint64_t grp_wat_47:4; 690 uint64_t qos_wat_47:4; 691 uint64_t reserved_37_39:3; 692 uint64_t rawdrp:1; 693 uint64_t tag_inc:2; 694 uint64_t dyn_rs:1; 695 uint64_t inst_hdr:1; 696 uint64_t grp_wat:4; 697 uint64_t reserved_27_27:1; 698 uint64_t qos:3; 699 uint64_t qos_wat:4; 700 uint64_t reserved_19_19:1; 701 uint64_t qos_vod:1; 702 uint64_t qos_diff:1; 703 uint64_t qos_vlan:1; 704 uint64_t reserved_13_15:3; 705 uint64_t crc_en:1; 706 uint64_t reserved_10_11:2; 707 uint64_t mode:2; 708 uint64_t reserved_7_7:1; 709 uint64_t skip:7; 710 } cn50xx; 711 struct cvmx_pip_prt_cfgx_s cn52xx; 712 struct cvmx_pip_prt_cfgx_s cn52xxp1; 713 struct cvmx_pip_prt_cfgx_s cn56xx; 714 struct cvmx_pip_prt_cfgx_cn50xx cn56xxp1; 715 struct cvmx_pip_prt_cfgx_cn58xx { 716 uint64_t reserved_37_63:27; 717 uint64_t rawdrp:1; 718 uint64_t tag_inc:2; 719 uint64_t dyn_rs:1; 720 uint64_t inst_hdr:1; 721 uint64_t grp_wat:4; 722 uint64_t reserved_27_27:1; 723 uint64_t qos:3; 724 uint64_t qos_wat:4; 725 uint64_t reserved_19_19:1; 726 uint64_t qos_vod:1; 727 uint64_t qos_diff:1; 728 uint64_t qos_vlan:1; 729 uint64_t reserved_13_15:3; 730 uint64_t crc_en:1; 731 uint64_t reserved_10_11:2; 732 uint64_t mode:2; 733 uint64_t reserved_7_7:1; 734 uint64_t skip:7; 735 } cn58xx; 736 struct cvmx_pip_prt_cfgx_cn58xx cn58xxp1; 737 }; 738 739 union cvmx_pip_prt_tagx { 740 uint64_t u64; 741 struct cvmx_pip_prt_tagx_s { 742 uint64_t reserved_40_63:24; 743 uint64_t grptagbase:4; 744 uint64_t grptagmask:4; 745 uint64_t grptag:1; 746 uint64_t grptag_mskip:1; 747 uint64_t tag_mode:2; 748 uint64_t inc_vs:2; 749 uint64_t inc_vlan:1; 750 uint64_t inc_prt_flag:1; 751 uint64_t ip6_dprt_flag:1; 752 uint64_t ip4_dprt_flag:1; 753 uint64_t ip6_sprt_flag:1; 754 uint64_t ip4_sprt_flag:1; 755 uint64_t ip6_nxth_flag:1; 756 uint64_t ip4_pctl_flag:1; 757 uint64_t ip6_dst_flag:1; 758 uint64_t ip4_dst_flag:1; 759 uint64_t ip6_src_flag:1; 760 uint64_t ip4_src_flag:1; 761 uint64_t tcp6_tag_type:2; 762 uint64_t tcp4_tag_type:2; 763 uint64_t ip6_tag_type:2; 764 uint64_t ip4_tag_type:2; 765 uint64_t non_tag_type:2; 766 uint64_t grp:4; 767 } s; 768 struct cvmx_pip_prt_tagx_cn30xx { 769 uint64_t reserved_40_63:24; 770 uint64_t grptagbase:4; 771 uint64_t grptagmask:4; 772 uint64_t grptag:1; 773 uint64_t reserved_30_30:1; 774 uint64_t tag_mode:2; 775 uint64_t inc_vs:2; 776 uint64_t inc_vlan:1; 777 uint64_t inc_prt_flag:1; 778 uint64_t ip6_dprt_flag:1; 779 uint64_t ip4_dprt_flag:1; 780 uint64_t ip6_sprt_flag:1; 781 uint64_t ip4_sprt_flag:1; 782 uint64_t ip6_nxth_flag:1; 783 uint64_t ip4_pctl_flag:1; 784 uint64_t ip6_dst_flag:1; 785 uint64_t ip4_dst_flag:1; 786 uint64_t ip6_src_flag:1; 787 uint64_t ip4_src_flag:1; 788 uint64_t tcp6_tag_type:2; 789 uint64_t tcp4_tag_type:2; 790 uint64_t ip6_tag_type:2; 791 uint64_t ip4_tag_type:2; 792 uint64_t non_tag_type:2; 793 uint64_t grp:4; 794 } cn30xx; 795 struct cvmx_pip_prt_tagx_cn30xx cn31xx; 796 struct cvmx_pip_prt_tagx_cn30xx cn38xx; 797 struct cvmx_pip_prt_tagx_cn30xx cn38xxp2; 798 struct cvmx_pip_prt_tagx_s cn50xx; 799 struct cvmx_pip_prt_tagx_s cn52xx; 800 struct cvmx_pip_prt_tagx_s cn52xxp1; 801 struct cvmx_pip_prt_tagx_s cn56xx; 802 struct cvmx_pip_prt_tagx_s cn56xxp1; 803 struct cvmx_pip_prt_tagx_cn30xx cn58xx; 804 struct cvmx_pip_prt_tagx_cn30xx cn58xxp1; 805 }; 806 807 union cvmx_pip_qos_diffx { 808 uint64_t u64; 809 struct cvmx_pip_qos_diffx_s { 810 uint64_t reserved_3_63:61; 811 uint64_t qos:3; 812 } s; 813 struct cvmx_pip_qos_diffx_s cn30xx; 814 struct cvmx_pip_qos_diffx_s cn31xx; 815 struct cvmx_pip_qos_diffx_s cn38xx; 816 struct cvmx_pip_qos_diffx_s cn38xxp2; 817 struct cvmx_pip_qos_diffx_s cn50xx; 818 struct cvmx_pip_qos_diffx_s cn52xx; 819 struct cvmx_pip_qos_diffx_s cn52xxp1; 820 struct cvmx_pip_qos_diffx_s cn56xx; 821 struct cvmx_pip_qos_diffx_s cn56xxp1; 822 struct cvmx_pip_qos_diffx_s cn58xx; 823 struct cvmx_pip_qos_diffx_s cn58xxp1; 824 }; 825 826 union cvmx_pip_qos_vlanx { 827 uint64_t u64; 828 struct cvmx_pip_qos_vlanx_s { 829 uint64_t reserved_7_63:57; 830 uint64_t qos1:3; 831 uint64_t reserved_3_3:1; 832 uint64_t qos:3; 833 } s; 834 struct cvmx_pip_qos_vlanx_cn30xx { 835 uint64_t reserved_3_63:61; 836 uint64_t qos:3; 837 } cn30xx; 838 struct cvmx_pip_qos_vlanx_cn30xx cn31xx; 839 struct cvmx_pip_qos_vlanx_cn30xx cn38xx; 840 struct cvmx_pip_qos_vlanx_cn30xx cn38xxp2; 841 struct cvmx_pip_qos_vlanx_cn30xx cn50xx; 842 struct cvmx_pip_qos_vlanx_s cn52xx; 843 struct cvmx_pip_qos_vlanx_s cn52xxp1; 844 struct cvmx_pip_qos_vlanx_s cn56xx; 845 struct cvmx_pip_qos_vlanx_cn30xx cn56xxp1; 846 struct cvmx_pip_qos_vlanx_cn30xx cn58xx; 847 struct cvmx_pip_qos_vlanx_cn30xx cn58xxp1; 848 }; 849 850 union cvmx_pip_qos_watchx { 851 uint64_t u64; 852 struct cvmx_pip_qos_watchx_s { 853 uint64_t reserved_48_63:16; 854 uint64_t mask:16; 855 uint64_t reserved_28_31:4; 856 uint64_t grp:4; 857 uint64_t reserved_23_23:1; 858 uint64_t qos:3; 859 uint64_t reserved_19_19:1; 860 uint64_t match_type:3; 861 uint64_t match_value:16; 862 } s; 863 struct cvmx_pip_qos_watchx_cn30xx { 864 uint64_t reserved_48_63:16; 865 uint64_t mask:16; 866 uint64_t reserved_28_31:4; 867 uint64_t grp:4; 868 uint64_t reserved_23_23:1; 869 uint64_t qos:3; 870 uint64_t reserved_18_19:2; 871 uint64_t match_type:2; 872 uint64_t match_value:16; 873 } cn30xx; 874 struct cvmx_pip_qos_watchx_cn30xx cn31xx; 875 struct cvmx_pip_qos_watchx_cn30xx cn38xx; 876 struct cvmx_pip_qos_watchx_cn30xx cn38xxp2; 877 struct cvmx_pip_qos_watchx_s cn50xx; 878 struct cvmx_pip_qos_watchx_s cn52xx; 879 struct cvmx_pip_qos_watchx_s cn52xxp1; 880 struct cvmx_pip_qos_watchx_s cn56xx; 881 struct cvmx_pip_qos_watchx_s cn56xxp1; 882 struct cvmx_pip_qos_watchx_cn30xx cn58xx; 883 struct cvmx_pip_qos_watchx_cn30xx cn58xxp1; 884 }; 885 886 union cvmx_pip_raw_word { 887 uint64_t u64; 888 struct cvmx_pip_raw_word_s { 889 uint64_t reserved_56_63:8; 890 uint64_t word:56; 891 } s; 892 struct cvmx_pip_raw_word_s cn30xx; 893 struct cvmx_pip_raw_word_s cn31xx; 894 struct cvmx_pip_raw_word_s cn38xx; 895 struct cvmx_pip_raw_word_s cn38xxp2; 896 struct cvmx_pip_raw_word_s cn50xx; 897 struct cvmx_pip_raw_word_s cn52xx; 898 struct cvmx_pip_raw_word_s cn52xxp1; 899 struct cvmx_pip_raw_word_s cn56xx; 900 struct cvmx_pip_raw_word_s cn56xxp1; 901 struct cvmx_pip_raw_word_s cn58xx; 902 struct cvmx_pip_raw_word_s cn58xxp1; 903 }; 904 905 union cvmx_pip_sft_rst { 906 uint64_t u64; 907 struct cvmx_pip_sft_rst_s { 908 uint64_t reserved_1_63:63; 909 uint64_t rst:1; 910 } s; 911 struct cvmx_pip_sft_rst_s cn30xx; 912 struct cvmx_pip_sft_rst_s cn31xx; 913 struct cvmx_pip_sft_rst_s cn38xx; 914 struct cvmx_pip_sft_rst_s cn50xx; 915 struct cvmx_pip_sft_rst_s cn52xx; 916 struct cvmx_pip_sft_rst_s cn52xxp1; 917 struct cvmx_pip_sft_rst_s cn56xx; 918 struct cvmx_pip_sft_rst_s cn56xxp1; 919 struct cvmx_pip_sft_rst_s cn58xx; 920 struct cvmx_pip_sft_rst_s cn58xxp1; 921 }; 922 923 union cvmx_pip_stat0_prtx { 924 uint64_t u64; 925 struct cvmx_pip_stat0_prtx_s { 926 uint64_t drp_pkts:32; 927 uint64_t drp_octs:32; 928 } s; 929 struct cvmx_pip_stat0_prtx_s cn30xx; 930 struct cvmx_pip_stat0_prtx_s cn31xx; 931 struct cvmx_pip_stat0_prtx_s cn38xx; 932 struct cvmx_pip_stat0_prtx_s cn38xxp2; 933 struct cvmx_pip_stat0_prtx_s cn50xx; 934 struct cvmx_pip_stat0_prtx_s cn52xx; 935 struct cvmx_pip_stat0_prtx_s cn52xxp1; 936 struct cvmx_pip_stat0_prtx_s cn56xx; 937 struct cvmx_pip_stat0_prtx_s cn56xxp1; 938 struct cvmx_pip_stat0_prtx_s cn58xx; 939 struct cvmx_pip_stat0_prtx_s cn58xxp1; 940 }; 941 942 union cvmx_pip_stat1_prtx { 943 uint64_t u64; 944 struct cvmx_pip_stat1_prtx_s { 945 uint64_t reserved_48_63:16; 946 uint64_t octs:48; 947 } s; 948 struct cvmx_pip_stat1_prtx_s cn30xx; 949 struct cvmx_pip_stat1_prtx_s cn31xx; 950 struct cvmx_pip_stat1_prtx_s cn38xx; 951 struct cvmx_pip_stat1_prtx_s cn38xxp2; 952 struct cvmx_pip_stat1_prtx_s cn50xx; 953 struct cvmx_pip_stat1_prtx_s cn52xx; 954 struct cvmx_pip_stat1_prtx_s cn52xxp1; 955 struct cvmx_pip_stat1_prtx_s cn56xx; 956 struct cvmx_pip_stat1_prtx_s cn56xxp1; 957 struct cvmx_pip_stat1_prtx_s cn58xx; 958 struct cvmx_pip_stat1_prtx_s cn58xxp1; 959 }; 960 961 union cvmx_pip_stat2_prtx { 962 uint64_t u64; 963 struct cvmx_pip_stat2_prtx_s { 964 uint64_t pkts:32; 965 uint64_t raw:32; 966 } s; 967 struct cvmx_pip_stat2_prtx_s cn30xx; 968 struct cvmx_pip_stat2_prtx_s cn31xx; 969 struct cvmx_pip_stat2_prtx_s cn38xx; 970 struct cvmx_pip_stat2_prtx_s cn38xxp2; 971 struct cvmx_pip_stat2_prtx_s cn50xx; 972 struct cvmx_pip_stat2_prtx_s cn52xx; 973 struct cvmx_pip_stat2_prtx_s cn52xxp1; 974 struct cvmx_pip_stat2_prtx_s cn56xx; 975 struct cvmx_pip_stat2_prtx_s cn56xxp1; 976 struct cvmx_pip_stat2_prtx_s cn58xx; 977 struct cvmx_pip_stat2_prtx_s cn58xxp1; 978 }; 979 980 union cvmx_pip_stat3_prtx { 981 uint64_t u64; 982 struct cvmx_pip_stat3_prtx_s { 983 uint64_t bcst:32; 984 uint64_t mcst:32; 985 } s; 986 struct cvmx_pip_stat3_prtx_s cn30xx; 987 struct cvmx_pip_stat3_prtx_s cn31xx; 988 struct cvmx_pip_stat3_prtx_s cn38xx; 989 struct cvmx_pip_stat3_prtx_s cn38xxp2; 990 struct cvmx_pip_stat3_prtx_s cn50xx; 991 struct cvmx_pip_stat3_prtx_s cn52xx; 992 struct cvmx_pip_stat3_prtx_s cn52xxp1; 993 struct cvmx_pip_stat3_prtx_s cn56xx; 994 struct cvmx_pip_stat3_prtx_s cn56xxp1; 995 struct cvmx_pip_stat3_prtx_s cn58xx; 996 struct cvmx_pip_stat3_prtx_s cn58xxp1; 997 }; 998 999 union cvmx_pip_stat4_prtx { 1000 uint64_t u64; 1001 struct cvmx_pip_stat4_prtx_s { 1002 uint64_t h65to127:32; 1003 uint64_t h64:32; 1004 } s; 1005 struct cvmx_pip_stat4_prtx_s cn30xx; 1006 struct cvmx_pip_stat4_prtx_s cn31xx; 1007 struct cvmx_pip_stat4_prtx_s cn38xx; 1008 struct cvmx_pip_stat4_prtx_s cn38xxp2; 1009 struct cvmx_pip_stat4_prtx_s cn50xx; 1010 struct cvmx_pip_stat4_prtx_s cn52xx; 1011 struct cvmx_pip_stat4_prtx_s cn52xxp1; 1012 struct cvmx_pip_stat4_prtx_s cn56xx; 1013 struct cvmx_pip_stat4_prtx_s cn56xxp1; 1014 struct cvmx_pip_stat4_prtx_s cn58xx; 1015 struct cvmx_pip_stat4_prtx_s cn58xxp1; 1016 }; 1017 1018 union cvmx_pip_stat5_prtx { 1019 uint64_t u64; 1020 struct cvmx_pip_stat5_prtx_s { 1021 uint64_t h256to511:32; 1022 uint64_t h128to255:32; 1023 } s; 1024 struct cvmx_pip_stat5_prtx_s cn30xx; 1025 struct cvmx_pip_stat5_prtx_s cn31xx; 1026 struct cvmx_pip_stat5_prtx_s cn38xx; 1027 struct cvmx_pip_stat5_prtx_s cn38xxp2; 1028 struct cvmx_pip_stat5_prtx_s cn50xx; 1029 struct cvmx_pip_stat5_prtx_s cn52xx; 1030 struct cvmx_pip_stat5_prtx_s cn52xxp1; 1031 struct cvmx_pip_stat5_prtx_s cn56xx; 1032 struct cvmx_pip_stat5_prtx_s cn56xxp1; 1033 struct cvmx_pip_stat5_prtx_s cn58xx; 1034 struct cvmx_pip_stat5_prtx_s cn58xxp1; 1035 }; 1036 1037 union cvmx_pip_stat6_prtx { 1038 uint64_t u64; 1039 struct cvmx_pip_stat6_prtx_s { 1040 uint64_t h1024to1518:32; 1041 uint64_t h512to1023:32; 1042 } s; 1043 struct cvmx_pip_stat6_prtx_s cn30xx; 1044 struct cvmx_pip_stat6_prtx_s cn31xx; 1045 struct cvmx_pip_stat6_prtx_s cn38xx; 1046 struct cvmx_pip_stat6_prtx_s cn38xxp2; 1047 struct cvmx_pip_stat6_prtx_s cn50xx; 1048 struct cvmx_pip_stat6_prtx_s cn52xx; 1049 struct cvmx_pip_stat6_prtx_s cn52xxp1; 1050 struct cvmx_pip_stat6_prtx_s cn56xx; 1051 struct cvmx_pip_stat6_prtx_s cn56xxp1; 1052 struct cvmx_pip_stat6_prtx_s cn58xx; 1053 struct cvmx_pip_stat6_prtx_s cn58xxp1; 1054 }; 1055 1056 union cvmx_pip_stat7_prtx { 1057 uint64_t u64; 1058 struct cvmx_pip_stat7_prtx_s { 1059 uint64_t fcs:32; 1060 uint64_t h1519:32; 1061 } s; 1062 struct cvmx_pip_stat7_prtx_s cn30xx; 1063 struct cvmx_pip_stat7_prtx_s cn31xx; 1064 struct cvmx_pip_stat7_prtx_s cn38xx; 1065 struct cvmx_pip_stat7_prtx_s cn38xxp2; 1066 struct cvmx_pip_stat7_prtx_s cn50xx; 1067 struct cvmx_pip_stat7_prtx_s cn52xx; 1068 struct cvmx_pip_stat7_prtx_s cn52xxp1; 1069 struct cvmx_pip_stat7_prtx_s cn56xx; 1070 struct cvmx_pip_stat7_prtx_s cn56xxp1; 1071 struct cvmx_pip_stat7_prtx_s cn58xx; 1072 struct cvmx_pip_stat7_prtx_s cn58xxp1; 1073 }; 1074 1075 union cvmx_pip_stat8_prtx { 1076 uint64_t u64; 1077 struct cvmx_pip_stat8_prtx_s { 1078 uint64_t frag:32; 1079 uint64_t undersz:32; 1080 } s; 1081 struct cvmx_pip_stat8_prtx_s cn30xx; 1082 struct cvmx_pip_stat8_prtx_s cn31xx; 1083 struct cvmx_pip_stat8_prtx_s cn38xx; 1084 struct cvmx_pip_stat8_prtx_s cn38xxp2; 1085 struct cvmx_pip_stat8_prtx_s cn50xx; 1086 struct cvmx_pip_stat8_prtx_s cn52xx; 1087 struct cvmx_pip_stat8_prtx_s cn52xxp1; 1088 struct cvmx_pip_stat8_prtx_s cn56xx; 1089 struct cvmx_pip_stat8_prtx_s cn56xxp1; 1090 struct cvmx_pip_stat8_prtx_s cn58xx; 1091 struct cvmx_pip_stat8_prtx_s cn58xxp1; 1092 }; 1093 1094 union cvmx_pip_stat9_prtx { 1095 uint64_t u64; 1096 struct cvmx_pip_stat9_prtx_s { 1097 uint64_t jabber:32; 1098 uint64_t oversz:32; 1099 } s; 1100 struct cvmx_pip_stat9_prtx_s cn30xx; 1101 struct cvmx_pip_stat9_prtx_s cn31xx; 1102 struct cvmx_pip_stat9_prtx_s cn38xx; 1103 struct cvmx_pip_stat9_prtx_s cn38xxp2; 1104 struct cvmx_pip_stat9_prtx_s cn50xx; 1105 struct cvmx_pip_stat9_prtx_s cn52xx; 1106 struct cvmx_pip_stat9_prtx_s cn52xxp1; 1107 struct cvmx_pip_stat9_prtx_s cn56xx; 1108 struct cvmx_pip_stat9_prtx_s cn56xxp1; 1109 struct cvmx_pip_stat9_prtx_s cn58xx; 1110 struct cvmx_pip_stat9_prtx_s cn58xxp1; 1111 }; 1112 1113 union cvmx_pip_stat_ctl { 1114 uint64_t u64; 1115 struct cvmx_pip_stat_ctl_s { 1116 uint64_t reserved_1_63:63; 1117 uint64_t rdclr:1; 1118 } s; 1119 struct cvmx_pip_stat_ctl_s cn30xx; 1120 struct cvmx_pip_stat_ctl_s cn31xx; 1121 struct cvmx_pip_stat_ctl_s cn38xx; 1122 struct cvmx_pip_stat_ctl_s cn38xxp2; 1123 struct cvmx_pip_stat_ctl_s cn50xx; 1124 struct cvmx_pip_stat_ctl_s cn52xx; 1125 struct cvmx_pip_stat_ctl_s cn52xxp1; 1126 struct cvmx_pip_stat_ctl_s cn56xx; 1127 struct cvmx_pip_stat_ctl_s cn56xxp1; 1128 struct cvmx_pip_stat_ctl_s cn58xx; 1129 struct cvmx_pip_stat_ctl_s cn58xxp1; 1130 }; 1131 1132 union cvmx_pip_stat_inb_errsx { 1133 uint64_t u64; 1134 struct cvmx_pip_stat_inb_errsx_s { 1135 uint64_t reserved_16_63:48; 1136 uint64_t errs:16; 1137 } s; 1138 struct cvmx_pip_stat_inb_errsx_s cn30xx; 1139 struct cvmx_pip_stat_inb_errsx_s cn31xx; 1140 struct cvmx_pip_stat_inb_errsx_s cn38xx; 1141 struct cvmx_pip_stat_inb_errsx_s cn38xxp2; 1142 struct cvmx_pip_stat_inb_errsx_s cn50xx; 1143 struct cvmx_pip_stat_inb_errsx_s cn52xx; 1144 struct cvmx_pip_stat_inb_errsx_s cn52xxp1; 1145 struct cvmx_pip_stat_inb_errsx_s cn56xx; 1146 struct cvmx_pip_stat_inb_errsx_s cn56xxp1; 1147 struct cvmx_pip_stat_inb_errsx_s cn58xx; 1148 struct cvmx_pip_stat_inb_errsx_s cn58xxp1; 1149 }; 1150 1151 union cvmx_pip_stat_inb_octsx { 1152 uint64_t u64; 1153 struct cvmx_pip_stat_inb_octsx_s { 1154 uint64_t reserved_48_63:16; 1155 uint64_t octs:48; 1156 } s; 1157 struct cvmx_pip_stat_inb_octsx_s cn30xx; 1158 struct cvmx_pip_stat_inb_octsx_s cn31xx; 1159 struct cvmx_pip_stat_inb_octsx_s cn38xx; 1160 struct cvmx_pip_stat_inb_octsx_s cn38xxp2; 1161 struct cvmx_pip_stat_inb_octsx_s cn50xx; 1162 struct cvmx_pip_stat_inb_octsx_s cn52xx; 1163 struct cvmx_pip_stat_inb_octsx_s cn52xxp1; 1164 struct cvmx_pip_stat_inb_octsx_s cn56xx; 1165 struct cvmx_pip_stat_inb_octsx_s cn56xxp1; 1166 struct cvmx_pip_stat_inb_octsx_s cn58xx; 1167 struct cvmx_pip_stat_inb_octsx_s cn58xxp1; 1168 }; 1169 1170 union cvmx_pip_stat_inb_pktsx { 1171 uint64_t u64; 1172 struct cvmx_pip_stat_inb_pktsx_s { 1173 uint64_t reserved_32_63:32; 1174 uint64_t pkts:32; 1175 } s; 1176 struct cvmx_pip_stat_inb_pktsx_s cn30xx; 1177 struct cvmx_pip_stat_inb_pktsx_s cn31xx; 1178 struct cvmx_pip_stat_inb_pktsx_s cn38xx; 1179 struct cvmx_pip_stat_inb_pktsx_s cn38xxp2; 1180 struct cvmx_pip_stat_inb_pktsx_s cn50xx; 1181 struct cvmx_pip_stat_inb_pktsx_s cn52xx; 1182 struct cvmx_pip_stat_inb_pktsx_s cn52xxp1; 1183 struct cvmx_pip_stat_inb_pktsx_s cn56xx; 1184 struct cvmx_pip_stat_inb_pktsx_s cn56xxp1; 1185 struct cvmx_pip_stat_inb_pktsx_s cn58xx; 1186 struct cvmx_pip_stat_inb_pktsx_s cn58xxp1; 1187 }; 1188 1189 union cvmx_pip_tag_incx { 1190 uint64_t u64; 1191 struct cvmx_pip_tag_incx_s { 1192 uint64_t reserved_8_63:56; 1193 uint64_t en:8; 1194 } s; 1195 struct cvmx_pip_tag_incx_s cn30xx; 1196 struct cvmx_pip_tag_incx_s cn31xx; 1197 struct cvmx_pip_tag_incx_s cn38xx; 1198 struct cvmx_pip_tag_incx_s cn38xxp2; 1199 struct cvmx_pip_tag_incx_s cn50xx; 1200 struct cvmx_pip_tag_incx_s cn52xx; 1201 struct cvmx_pip_tag_incx_s cn52xxp1; 1202 struct cvmx_pip_tag_incx_s cn56xx; 1203 struct cvmx_pip_tag_incx_s cn56xxp1; 1204 struct cvmx_pip_tag_incx_s cn58xx; 1205 struct cvmx_pip_tag_incx_s cn58xxp1; 1206 }; 1207 1208 union cvmx_pip_tag_mask { 1209 uint64_t u64; 1210 struct cvmx_pip_tag_mask_s { 1211 uint64_t reserved_16_63:48; 1212 uint64_t mask:16; 1213 } s; 1214 struct cvmx_pip_tag_mask_s cn30xx; 1215 struct cvmx_pip_tag_mask_s cn31xx; 1216 struct cvmx_pip_tag_mask_s cn38xx; 1217 struct cvmx_pip_tag_mask_s cn38xxp2; 1218 struct cvmx_pip_tag_mask_s cn50xx; 1219 struct cvmx_pip_tag_mask_s cn52xx; 1220 struct cvmx_pip_tag_mask_s cn52xxp1; 1221 struct cvmx_pip_tag_mask_s cn56xx; 1222 struct cvmx_pip_tag_mask_s cn56xxp1; 1223 struct cvmx_pip_tag_mask_s cn58xx; 1224 struct cvmx_pip_tag_mask_s cn58xxp1; 1225 }; 1226 1227 union cvmx_pip_tag_secret { 1228 uint64_t u64; 1229 struct cvmx_pip_tag_secret_s { 1230 uint64_t reserved_32_63:32; 1231 uint64_t dst:16; 1232 uint64_t src:16; 1233 } s; 1234 struct cvmx_pip_tag_secret_s cn30xx; 1235 struct cvmx_pip_tag_secret_s cn31xx; 1236 struct cvmx_pip_tag_secret_s cn38xx; 1237 struct cvmx_pip_tag_secret_s cn38xxp2; 1238 struct cvmx_pip_tag_secret_s cn50xx; 1239 struct cvmx_pip_tag_secret_s cn52xx; 1240 struct cvmx_pip_tag_secret_s cn52xxp1; 1241 struct cvmx_pip_tag_secret_s cn56xx; 1242 struct cvmx_pip_tag_secret_s cn56xxp1; 1243 struct cvmx_pip_tag_secret_s cn58xx; 1244 struct cvmx_pip_tag_secret_s cn58xxp1; 1245 }; 1246 1247 union cvmx_pip_todo_entry { 1248 uint64_t u64; 1249 struct cvmx_pip_todo_entry_s { 1250 uint64_t val:1; 1251 uint64_t reserved_62_62:1; 1252 uint64_t entry:62; 1253 } s; 1254 struct cvmx_pip_todo_entry_s cn30xx; 1255 struct cvmx_pip_todo_entry_s cn31xx; 1256 struct cvmx_pip_todo_entry_s cn38xx; 1257 struct cvmx_pip_todo_entry_s cn38xxp2; 1258 struct cvmx_pip_todo_entry_s cn50xx; 1259 struct cvmx_pip_todo_entry_s cn52xx; 1260 struct cvmx_pip_todo_entry_s cn52xxp1; 1261 struct cvmx_pip_todo_entry_s cn56xx; 1262 struct cvmx_pip_todo_entry_s cn56xxp1; 1263 struct cvmx_pip_todo_entry_s cn58xx; 1264 struct cvmx_pip_todo_entry_s cn58xxp1; 1265 }; 1266 1267 #endif 1268