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-2010 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_IPD_DEFS_H__ 29 #define __CVMX_IPD_DEFS_H__ 30 31 #define CVMX_IPD_1ST_MBUFF_SKIP (CVMX_ADD_IO_SEG(0x00014F0000000000ull)) 32 #define CVMX_IPD_1st_NEXT_PTR_BACK (CVMX_ADD_IO_SEG(0x00014F0000000150ull)) 33 #define CVMX_IPD_2nd_NEXT_PTR_BACK (CVMX_ADD_IO_SEG(0x00014F0000000158ull)) 34 #define CVMX_IPD_BIST_STATUS (CVMX_ADD_IO_SEG(0x00014F00000007F8ull)) 35 #define CVMX_IPD_BP_PRT_RED_END (CVMX_ADD_IO_SEG(0x00014F0000000328ull)) 36 #define CVMX_IPD_CLK_COUNT (CVMX_ADD_IO_SEG(0x00014F0000000338ull)) 37 #define CVMX_IPD_CTL_STATUS (CVMX_ADD_IO_SEG(0x00014F0000000018ull)) 38 #define CVMX_IPD_INT_ENB (CVMX_ADD_IO_SEG(0x00014F0000000160ull)) 39 #define CVMX_IPD_INT_SUM (CVMX_ADD_IO_SEG(0x00014F0000000168ull)) 40 #define CVMX_IPD_NOT_1ST_MBUFF_SKIP (CVMX_ADD_IO_SEG(0x00014F0000000008ull)) 41 #define CVMX_IPD_PACKET_MBUFF_SIZE (CVMX_ADD_IO_SEG(0x00014F0000000010ull)) 42 #define CVMX_IPD_PKT_PTR_VALID (CVMX_ADD_IO_SEG(0x00014F0000000358ull)) 43 #define CVMX_IPD_PORTX_BP_PAGE_CNT(offset) (CVMX_ADD_IO_SEG(0x00014F0000000028ull) + ((offset) & 63) * 8) 44 #define CVMX_IPD_PORTX_BP_PAGE_CNT2(offset) (CVMX_ADD_IO_SEG(0x00014F0000000368ull) + ((offset) & 63) * 8 - 8*36) 45 #define CVMX_IPD_PORTX_BP_PAGE_CNT3(offset) (CVMX_ADD_IO_SEG(0x00014F00000003D0ull) + ((offset) & 63) * 8 - 8*40) 46 #define CVMX_IPD_PORT_BP_COUNTERS2_PAIRX(offset) (CVMX_ADD_IO_SEG(0x00014F0000000388ull) + ((offset) & 63) * 8 - 8*36) 47 #define CVMX_IPD_PORT_BP_COUNTERS3_PAIRX(offset) (CVMX_ADD_IO_SEG(0x00014F00000003B0ull) + ((offset) & 63) * 8 - 8*40) 48 #define CVMX_IPD_PORT_BP_COUNTERS_PAIRX(offset) (CVMX_ADD_IO_SEG(0x00014F00000001B8ull) + ((offset) & 63) * 8) 49 #define CVMX_IPD_PORT_QOS_INTX(offset) (CVMX_ADD_IO_SEG(0x00014F0000000808ull) + ((offset) & 7) * 8) 50 #define CVMX_IPD_PORT_QOS_INT_ENBX(offset) (CVMX_ADD_IO_SEG(0x00014F0000000848ull) + ((offset) & 7) * 8) 51 #define CVMX_IPD_PORT_QOS_X_CNT(offset) (CVMX_ADD_IO_SEG(0x00014F0000000888ull) + ((offset) & 511) * 8) 52 #define CVMX_IPD_PRC_HOLD_PTR_FIFO_CTL (CVMX_ADD_IO_SEG(0x00014F0000000348ull)) 53 #define CVMX_IPD_PRC_PORT_PTR_FIFO_CTL (CVMX_ADD_IO_SEG(0x00014F0000000350ull)) 54 #define CVMX_IPD_PTR_COUNT (CVMX_ADD_IO_SEG(0x00014F0000000320ull)) 55 #define CVMX_IPD_PWP_PTR_FIFO_CTL (CVMX_ADD_IO_SEG(0x00014F0000000340ull)) 56 #define CVMX_IPD_QOS0_RED_MARKS CVMX_IPD_QOSX_RED_MARKS(0) 57 #define CVMX_IPD_QOS1_RED_MARKS CVMX_IPD_QOSX_RED_MARKS(1) 58 #define CVMX_IPD_QOS2_RED_MARKS CVMX_IPD_QOSX_RED_MARKS(2) 59 #define CVMX_IPD_QOS3_RED_MARKS CVMX_IPD_QOSX_RED_MARKS(3) 60 #define CVMX_IPD_QOS4_RED_MARKS CVMX_IPD_QOSX_RED_MARKS(4) 61 #define CVMX_IPD_QOS5_RED_MARKS CVMX_IPD_QOSX_RED_MARKS(5) 62 #define CVMX_IPD_QOS6_RED_MARKS CVMX_IPD_QOSX_RED_MARKS(6) 63 #define CVMX_IPD_QOS7_RED_MARKS CVMX_IPD_QOSX_RED_MARKS(7) 64 #define CVMX_IPD_QOSX_RED_MARKS(offset) (CVMX_ADD_IO_SEG(0x00014F0000000178ull) + ((offset) & 7) * 8) 65 #define CVMX_IPD_QUE0_FREE_PAGE_CNT (CVMX_ADD_IO_SEG(0x00014F0000000330ull)) 66 #define CVMX_IPD_RED_PORT_ENABLE (CVMX_ADD_IO_SEG(0x00014F00000002D8ull)) 67 #define CVMX_IPD_RED_PORT_ENABLE2 (CVMX_ADD_IO_SEG(0x00014F00000003A8ull)) 68 #define CVMX_IPD_RED_QUE0_PARAM CVMX_IPD_RED_QUEX_PARAM(0) 69 #define CVMX_IPD_RED_QUE1_PARAM CVMX_IPD_RED_QUEX_PARAM(1) 70 #define CVMX_IPD_RED_QUE2_PARAM CVMX_IPD_RED_QUEX_PARAM(2) 71 #define CVMX_IPD_RED_QUE3_PARAM CVMX_IPD_RED_QUEX_PARAM(3) 72 #define CVMX_IPD_RED_QUE4_PARAM CVMX_IPD_RED_QUEX_PARAM(4) 73 #define CVMX_IPD_RED_QUE5_PARAM CVMX_IPD_RED_QUEX_PARAM(5) 74 #define CVMX_IPD_RED_QUE6_PARAM CVMX_IPD_RED_QUEX_PARAM(6) 75 #define CVMX_IPD_RED_QUE7_PARAM CVMX_IPD_RED_QUEX_PARAM(7) 76 #define CVMX_IPD_RED_QUEX_PARAM(offset) (CVMX_ADD_IO_SEG(0x00014F00000002E0ull) + ((offset) & 7) * 8) 77 #define CVMX_IPD_SUB_PORT_BP_PAGE_CNT (CVMX_ADD_IO_SEG(0x00014F0000000148ull)) 78 #define CVMX_IPD_SUB_PORT_FCS (CVMX_ADD_IO_SEG(0x00014F0000000170ull)) 79 #define CVMX_IPD_SUB_PORT_QOS_CNT (CVMX_ADD_IO_SEG(0x00014F0000000800ull)) 80 #define CVMX_IPD_WQE_FPA_QUEUE (CVMX_ADD_IO_SEG(0x00014F0000000020ull)) 81 #define CVMX_IPD_WQE_PTR_VALID (CVMX_ADD_IO_SEG(0x00014F0000000360ull)) 82 83 union cvmx_ipd_1st_mbuff_skip { 84 uint64_t u64; 85 struct cvmx_ipd_1st_mbuff_skip_s { 86 uint64_t reserved_6_63:58; 87 uint64_t skip_sz:6; 88 } s; 89 struct cvmx_ipd_1st_mbuff_skip_s cn30xx; 90 struct cvmx_ipd_1st_mbuff_skip_s cn31xx; 91 struct cvmx_ipd_1st_mbuff_skip_s cn38xx; 92 struct cvmx_ipd_1st_mbuff_skip_s cn38xxp2; 93 struct cvmx_ipd_1st_mbuff_skip_s cn50xx; 94 struct cvmx_ipd_1st_mbuff_skip_s cn52xx; 95 struct cvmx_ipd_1st_mbuff_skip_s cn52xxp1; 96 struct cvmx_ipd_1st_mbuff_skip_s cn56xx; 97 struct cvmx_ipd_1st_mbuff_skip_s cn56xxp1; 98 struct cvmx_ipd_1st_mbuff_skip_s cn58xx; 99 struct cvmx_ipd_1st_mbuff_skip_s cn58xxp1; 100 struct cvmx_ipd_1st_mbuff_skip_s cn63xx; 101 struct cvmx_ipd_1st_mbuff_skip_s cn63xxp1; 102 }; 103 104 union cvmx_ipd_1st_next_ptr_back { 105 uint64_t u64; 106 struct cvmx_ipd_1st_next_ptr_back_s { 107 uint64_t reserved_4_63:60; 108 uint64_t back:4; 109 } s; 110 struct cvmx_ipd_1st_next_ptr_back_s cn30xx; 111 struct cvmx_ipd_1st_next_ptr_back_s cn31xx; 112 struct cvmx_ipd_1st_next_ptr_back_s cn38xx; 113 struct cvmx_ipd_1st_next_ptr_back_s cn38xxp2; 114 struct cvmx_ipd_1st_next_ptr_back_s cn50xx; 115 struct cvmx_ipd_1st_next_ptr_back_s cn52xx; 116 struct cvmx_ipd_1st_next_ptr_back_s cn52xxp1; 117 struct cvmx_ipd_1st_next_ptr_back_s cn56xx; 118 struct cvmx_ipd_1st_next_ptr_back_s cn56xxp1; 119 struct cvmx_ipd_1st_next_ptr_back_s cn58xx; 120 struct cvmx_ipd_1st_next_ptr_back_s cn58xxp1; 121 struct cvmx_ipd_1st_next_ptr_back_s cn63xx; 122 struct cvmx_ipd_1st_next_ptr_back_s cn63xxp1; 123 }; 124 125 union cvmx_ipd_2nd_next_ptr_back { 126 uint64_t u64; 127 struct cvmx_ipd_2nd_next_ptr_back_s { 128 uint64_t reserved_4_63:60; 129 uint64_t back:4; 130 } s; 131 struct cvmx_ipd_2nd_next_ptr_back_s cn30xx; 132 struct cvmx_ipd_2nd_next_ptr_back_s cn31xx; 133 struct cvmx_ipd_2nd_next_ptr_back_s cn38xx; 134 struct cvmx_ipd_2nd_next_ptr_back_s cn38xxp2; 135 struct cvmx_ipd_2nd_next_ptr_back_s cn50xx; 136 struct cvmx_ipd_2nd_next_ptr_back_s cn52xx; 137 struct cvmx_ipd_2nd_next_ptr_back_s cn52xxp1; 138 struct cvmx_ipd_2nd_next_ptr_back_s cn56xx; 139 struct cvmx_ipd_2nd_next_ptr_back_s cn56xxp1; 140 struct cvmx_ipd_2nd_next_ptr_back_s cn58xx; 141 struct cvmx_ipd_2nd_next_ptr_back_s cn58xxp1; 142 struct cvmx_ipd_2nd_next_ptr_back_s cn63xx; 143 struct cvmx_ipd_2nd_next_ptr_back_s cn63xxp1; 144 }; 145 146 union cvmx_ipd_bist_status { 147 uint64_t u64; 148 struct cvmx_ipd_bist_status_s { 149 uint64_t reserved_18_63:46; 150 uint64_t csr_mem:1; 151 uint64_t csr_ncmd:1; 152 uint64_t pwq_wqed:1; 153 uint64_t pwq_wp1:1; 154 uint64_t pwq_pow:1; 155 uint64_t ipq_pbe1:1; 156 uint64_t ipq_pbe0:1; 157 uint64_t pbm3:1; 158 uint64_t pbm2:1; 159 uint64_t pbm1:1; 160 uint64_t pbm0:1; 161 uint64_t pbm_word:1; 162 uint64_t pwq1:1; 163 uint64_t pwq0:1; 164 uint64_t prc_off:1; 165 uint64_t ipd_old:1; 166 uint64_t ipd_new:1; 167 uint64_t pwp:1; 168 } s; 169 struct cvmx_ipd_bist_status_cn30xx { 170 uint64_t reserved_16_63:48; 171 uint64_t pwq_wqed:1; 172 uint64_t pwq_wp1:1; 173 uint64_t pwq_pow:1; 174 uint64_t ipq_pbe1:1; 175 uint64_t ipq_pbe0:1; 176 uint64_t pbm3:1; 177 uint64_t pbm2:1; 178 uint64_t pbm1:1; 179 uint64_t pbm0:1; 180 uint64_t pbm_word:1; 181 uint64_t pwq1:1; 182 uint64_t pwq0:1; 183 uint64_t prc_off:1; 184 uint64_t ipd_old:1; 185 uint64_t ipd_new:1; 186 uint64_t pwp:1; 187 } cn30xx; 188 struct cvmx_ipd_bist_status_cn30xx cn31xx; 189 struct cvmx_ipd_bist_status_cn30xx cn38xx; 190 struct cvmx_ipd_bist_status_cn30xx cn38xxp2; 191 struct cvmx_ipd_bist_status_cn30xx cn50xx; 192 struct cvmx_ipd_bist_status_s cn52xx; 193 struct cvmx_ipd_bist_status_s cn52xxp1; 194 struct cvmx_ipd_bist_status_s cn56xx; 195 struct cvmx_ipd_bist_status_s cn56xxp1; 196 struct cvmx_ipd_bist_status_cn30xx cn58xx; 197 struct cvmx_ipd_bist_status_cn30xx cn58xxp1; 198 struct cvmx_ipd_bist_status_s cn63xx; 199 struct cvmx_ipd_bist_status_s cn63xxp1; 200 }; 201 202 union cvmx_ipd_bp_prt_red_end { 203 uint64_t u64; 204 struct cvmx_ipd_bp_prt_red_end_s { 205 uint64_t reserved_44_63:20; 206 uint64_t prt_enb:44; 207 } s; 208 struct cvmx_ipd_bp_prt_red_end_cn30xx { 209 uint64_t reserved_36_63:28; 210 uint64_t prt_enb:36; 211 } cn30xx; 212 struct cvmx_ipd_bp_prt_red_end_cn30xx cn31xx; 213 struct cvmx_ipd_bp_prt_red_end_cn30xx cn38xx; 214 struct cvmx_ipd_bp_prt_red_end_cn30xx cn38xxp2; 215 struct cvmx_ipd_bp_prt_red_end_cn30xx cn50xx; 216 struct cvmx_ipd_bp_prt_red_end_cn52xx { 217 uint64_t reserved_40_63:24; 218 uint64_t prt_enb:40; 219 } cn52xx; 220 struct cvmx_ipd_bp_prt_red_end_cn52xx cn52xxp1; 221 struct cvmx_ipd_bp_prt_red_end_cn52xx cn56xx; 222 struct cvmx_ipd_bp_prt_red_end_cn52xx cn56xxp1; 223 struct cvmx_ipd_bp_prt_red_end_cn30xx cn58xx; 224 struct cvmx_ipd_bp_prt_red_end_cn30xx cn58xxp1; 225 struct cvmx_ipd_bp_prt_red_end_s cn63xx; 226 struct cvmx_ipd_bp_prt_red_end_s cn63xxp1; 227 }; 228 229 union cvmx_ipd_clk_count { 230 uint64_t u64; 231 struct cvmx_ipd_clk_count_s { 232 uint64_t clk_cnt:64; 233 } s; 234 struct cvmx_ipd_clk_count_s cn30xx; 235 struct cvmx_ipd_clk_count_s cn31xx; 236 struct cvmx_ipd_clk_count_s cn38xx; 237 struct cvmx_ipd_clk_count_s cn38xxp2; 238 struct cvmx_ipd_clk_count_s cn50xx; 239 struct cvmx_ipd_clk_count_s cn52xx; 240 struct cvmx_ipd_clk_count_s cn52xxp1; 241 struct cvmx_ipd_clk_count_s cn56xx; 242 struct cvmx_ipd_clk_count_s cn56xxp1; 243 struct cvmx_ipd_clk_count_s cn58xx; 244 struct cvmx_ipd_clk_count_s cn58xxp1; 245 struct cvmx_ipd_clk_count_s cn63xx; 246 struct cvmx_ipd_clk_count_s cn63xxp1; 247 }; 248 249 union cvmx_ipd_ctl_status { 250 uint64_t u64; 251 struct cvmx_ipd_ctl_status_s { 252 uint64_t reserved_18_63:46; 253 uint64_t use_sop:1; 254 uint64_t rst_done:1; 255 uint64_t clken:1; 256 uint64_t no_wptr:1; 257 uint64_t pq_apkt:1; 258 uint64_t pq_nabuf:1; 259 uint64_t ipd_full:1; 260 uint64_t pkt_off:1; 261 uint64_t len_m8:1; 262 uint64_t reset:1; 263 uint64_t addpkt:1; 264 uint64_t naddbuf:1; 265 uint64_t pkt_lend:1; 266 uint64_t wqe_lend:1; 267 uint64_t pbp_en:1; 268 uint64_t opc_mode:2; 269 uint64_t ipd_en:1; 270 } s; 271 struct cvmx_ipd_ctl_status_cn30xx { 272 uint64_t reserved_10_63:54; 273 uint64_t len_m8:1; 274 uint64_t reset:1; 275 uint64_t addpkt:1; 276 uint64_t naddbuf:1; 277 uint64_t pkt_lend:1; 278 uint64_t wqe_lend:1; 279 uint64_t pbp_en:1; 280 uint64_t opc_mode:2; 281 uint64_t ipd_en:1; 282 } cn30xx; 283 struct cvmx_ipd_ctl_status_cn30xx cn31xx; 284 struct cvmx_ipd_ctl_status_cn30xx cn38xx; 285 struct cvmx_ipd_ctl_status_cn38xxp2 { 286 uint64_t reserved_9_63:55; 287 uint64_t reset:1; 288 uint64_t addpkt:1; 289 uint64_t naddbuf:1; 290 uint64_t pkt_lend:1; 291 uint64_t wqe_lend:1; 292 uint64_t pbp_en:1; 293 uint64_t opc_mode:2; 294 uint64_t ipd_en:1; 295 } cn38xxp2; 296 struct cvmx_ipd_ctl_status_cn50xx { 297 uint64_t reserved_15_63:49; 298 uint64_t no_wptr:1; 299 uint64_t pq_apkt:1; 300 uint64_t pq_nabuf:1; 301 uint64_t ipd_full:1; 302 uint64_t pkt_off:1; 303 uint64_t len_m8:1; 304 uint64_t reset:1; 305 uint64_t addpkt:1; 306 uint64_t naddbuf:1; 307 uint64_t pkt_lend:1; 308 uint64_t wqe_lend:1; 309 uint64_t pbp_en:1; 310 uint64_t opc_mode:2; 311 uint64_t ipd_en:1; 312 } cn50xx; 313 struct cvmx_ipd_ctl_status_cn50xx cn52xx; 314 struct cvmx_ipd_ctl_status_cn50xx cn52xxp1; 315 struct cvmx_ipd_ctl_status_cn50xx cn56xx; 316 struct cvmx_ipd_ctl_status_cn50xx cn56xxp1; 317 struct cvmx_ipd_ctl_status_cn58xx { 318 uint64_t reserved_12_63:52; 319 uint64_t ipd_full:1; 320 uint64_t pkt_off:1; 321 uint64_t len_m8:1; 322 uint64_t reset:1; 323 uint64_t addpkt:1; 324 uint64_t naddbuf:1; 325 uint64_t pkt_lend:1; 326 uint64_t wqe_lend:1; 327 uint64_t pbp_en:1; 328 uint64_t opc_mode:2; 329 uint64_t ipd_en:1; 330 } cn58xx; 331 struct cvmx_ipd_ctl_status_cn58xx cn58xxp1; 332 struct cvmx_ipd_ctl_status_s cn63xx; 333 struct cvmx_ipd_ctl_status_cn63xxp1 { 334 uint64_t reserved_16_63:48; 335 uint64_t clken:1; 336 uint64_t no_wptr:1; 337 uint64_t pq_apkt:1; 338 uint64_t pq_nabuf:1; 339 uint64_t ipd_full:1; 340 uint64_t pkt_off:1; 341 uint64_t len_m8:1; 342 uint64_t reset:1; 343 uint64_t addpkt:1; 344 uint64_t naddbuf:1; 345 uint64_t pkt_lend:1; 346 uint64_t wqe_lend:1; 347 uint64_t pbp_en:1; 348 uint64_t opc_mode:2; 349 uint64_t ipd_en:1; 350 } cn63xxp1; 351 }; 352 353 union cvmx_ipd_int_enb { 354 uint64_t u64; 355 struct cvmx_ipd_int_enb_s { 356 uint64_t reserved_12_63:52; 357 uint64_t pq_sub:1; 358 uint64_t pq_add:1; 359 uint64_t bc_ovr:1; 360 uint64_t d_coll:1; 361 uint64_t c_coll:1; 362 uint64_t cc_ovr:1; 363 uint64_t dc_ovr:1; 364 uint64_t bp_sub:1; 365 uint64_t prc_par3:1; 366 uint64_t prc_par2:1; 367 uint64_t prc_par1:1; 368 uint64_t prc_par0:1; 369 } s; 370 struct cvmx_ipd_int_enb_cn30xx { 371 uint64_t reserved_5_63:59; 372 uint64_t bp_sub:1; 373 uint64_t prc_par3:1; 374 uint64_t prc_par2:1; 375 uint64_t prc_par1:1; 376 uint64_t prc_par0:1; 377 } cn30xx; 378 struct cvmx_ipd_int_enb_cn30xx cn31xx; 379 struct cvmx_ipd_int_enb_cn38xx { 380 uint64_t reserved_10_63:54; 381 uint64_t bc_ovr:1; 382 uint64_t d_coll:1; 383 uint64_t c_coll:1; 384 uint64_t cc_ovr:1; 385 uint64_t dc_ovr:1; 386 uint64_t bp_sub:1; 387 uint64_t prc_par3:1; 388 uint64_t prc_par2:1; 389 uint64_t prc_par1:1; 390 uint64_t prc_par0:1; 391 } cn38xx; 392 struct cvmx_ipd_int_enb_cn30xx cn38xxp2; 393 struct cvmx_ipd_int_enb_cn38xx cn50xx; 394 struct cvmx_ipd_int_enb_s cn52xx; 395 struct cvmx_ipd_int_enb_s cn52xxp1; 396 struct cvmx_ipd_int_enb_s cn56xx; 397 struct cvmx_ipd_int_enb_s cn56xxp1; 398 struct cvmx_ipd_int_enb_cn38xx cn58xx; 399 struct cvmx_ipd_int_enb_cn38xx cn58xxp1; 400 struct cvmx_ipd_int_enb_s cn63xx; 401 struct cvmx_ipd_int_enb_s cn63xxp1; 402 }; 403 404 union cvmx_ipd_int_sum { 405 uint64_t u64; 406 struct cvmx_ipd_int_sum_s { 407 uint64_t reserved_12_63:52; 408 uint64_t pq_sub:1; 409 uint64_t pq_add:1; 410 uint64_t bc_ovr:1; 411 uint64_t d_coll:1; 412 uint64_t c_coll:1; 413 uint64_t cc_ovr:1; 414 uint64_t dc_ovr:1; 415 uint64_t bp_sub:1; 416 uint64_t prc_par3:1; 417 uint64_t prc_par2:1; 418 uint64_t prc_par1:1; 419 uint64_t prc_par0:1; 420 } s; 421 struct cvmx_ipd_int_sum_cn30xx { 422 uint64_t reserved_5_63:59; 423 uint64_t bp_sub:1; 424 uint64_t prc_par3:1; 425 uint64_t prc_par2:1; 426 uint64_t prc_par1:1; 427 uint64_t prc_par0:1; 428 } cn30xx; 429 struct cvmx_ipd_int_sum_cn30xx cn31xx; 430 struct cvmx_ipd_int_sum_cn38xx { 431 uint64_t reserved_10_63:54; 432 uint64_t bc_ovr:1; 433 uint64_t d_coll:1; 434 uint64_t c_coll:1; 435 uint64_t cc_ovr:1; 436 uint64_t dc_ovr:1; 437 uint64_t bp_sub:1; 438 uint64_t prc_par3:1; 439 uint64_t prc_par2:1; 440 uint64_t prc_par1:1; 441 uint64_t prc_par0:1; 442 } cn38xx; 443 struct cvmx_ipd_int_sum_cn30xx cn38xxp2; 444 struct cvmx_ipd_int_sum_cn38xx cn50xx; 445 struct cvmx_ipd_int_sum_s cn52xx; 446 struct cvmx_ipd_int_sum_s cn52xxp1; 447 struct cvmx_ipd_int_sum_s cn56xx; 448 struct cvmx_ipd_int_sum_s cn56xxp1; 449 struct cvmx_ipd_int_sum_cn38xx cn58xx; 450 struct cvmx_ipd_int_sum_cn38xx cn58xxp1; 451 struct cvmx_ipd_int_sum_s cn63xx; 452 struct cvmx_ipd_int_sum_s cn63xxp1; 453 }; 454 455 union cvmx_ipd_not_1st_mbuff_skip { 456 uint64_t u64; 457 struct cvmx_ipd_not_1st_mbuff_skip_s { 458 uint64_t reserved_6_63:58; 459 uint64_t skip_sz:6; 460 } s; 461 struct cvmx_ipd_not_1st_mbuff_skip_s cn30xx; 462 struct cvmx_ipd_not_1st_mbuff_skip_s cn31xx; 463 struct cvmx_ipd_not_1st_mbuff_skip_s cn38xx; 464 struct cvmx_ipd_not_1st_mbuff_skip_s cn38xxp2; 465 struct cvmx_ipd_not_1st_mbuff_skip_s cn50xx; 466 struct cvmx_ipd_not_1st_mbuff_skip_s cn52xx; 467 struct cvmx_ipd_not_1st_mbuff_skip_s cn52xxp1; 468 struct cvmx_ipd_not_1st_mbuff_skip_s cn56xx; 469 struct cvmx_ipd_not_1st_mbuff_skip_s cn56xxp1; 470 struct cvmx_ipd_not_1st_mbuff_skip_s cn58xx; 471 struct cvmx_ipd_not_1st_mbuff_skip_s cn58xxp1; 472 struct cvmx_ipd_not_1st_mbuff_skip_s cn63xx; 473 struct cvmx_ipd_not_1st_mbuff_skip_s cn63xxp1; 474 }; 475 476 union cvmx_ipd_packet_mbuff_size { 477 uint64_t u64; 478 struct cvmx_ipd_packet_mbuff_size_s { 479 uint64_t reserved_12_63:52; 480 uint64_t mb_size:12; 481 } s; 482 struct cvmx_ipd_packet_mbuff_size_s cn30xx; 483 struct cvmx_ipd_packet_mbuff_size_s cn31xx; 484 struct cvmx_ipd_packet_mbuff_size_s cn38xx; 485 struct cvmx_ipd_packet_mbuff_size_s cn38xxp2; 486 struct cvmx_ipd_packet_mbuff_size_s cn50xx; 487 struct cvmx_ipd_packet_mbuff_size_s cn52xx; 488 struct cvmx_ipd_packet_mbuff_size_s cn52xxp1; 489 struct cvmx_ipd_packet_mbuff_size_s cn56xx; 490 struct cvmx_ipd_packet_mbuff_size_s cn56xxp1; 491 struct cvmx_ipd_packet_mbuff_size_s cn58xx; 492 struct cvmx_ipd_packet_mbuff_size_s cn58xxp1; 493 struct cvmx_ipd_packet_mbuff_size_s cn63xx; 494 struct cvmx_ipd_packet_mbuff_size_s cn63xxp1; 495 }; 496 497 union cvmx_ipd_pkt_ptr_valid { 498 uint64_t u64; 499 struct cvmx_ipd_pkt_ptr_valid_s { 500 uint64_t reserved_29_63:35; 501 uint64_t ptr:29; 502 } s; 503 struct cvmx_ipd_pkt_ptr_valid_s cn30xx; 504 struct cvmx_ipd_pkt_ptr_valid_s cn31xx; 505 struct cvmx_ipd_pkt_ptr_valid_s cn38xx; 506 struct cvmx_ipd_pkt_ptr_valid_s cn50xx; 507 struct cvmx_ipd_pkt_ptr_valid_s cn52xx; 508 struct cvmx_ipd_pkt_ptr_valid_s cn52xxp1; 509 struct cvmx_ipd_pkt_ptr_valid_s cn56xx; 510 struct cvmx_ipd_pkt_ptr_valid_s cn56xxp1; 511 struct cvmx_ipd_pkt_ptr_valid_s cn58xx; 512 struct cvmx_ipd_pkt_ptr_valid_s cn58xxp1; 513 struct cvmx_ipd_pkt_ptr_valid_s cn63xx; 514 struct cvmx_ipd_pkt_ptr_valid_s cn63xxp1; 515 }; 516 517 union cvmx_ipd_portx_bp_page_cnt { 518 uint64_t u64; 519 struct cvmx_ipd_portx_bp_page_cnt_s { 520 uint64_t reserved_18_63:46; 521 uint64_t bp_enb:1; 522 uint64_t page_cnt:17; 523 } s; 524 struct cvmx_ipd_portx_bp_page_cnt_s cn30xx; 525 struct cvmx_ipd_portx_bp_page_cnt_s cn31xx; 526 struct cvmx_ipd_portx_bp_page_cnt_s cn38xx; 527 struct cvmx_ipd_portx_bp_page_cnt_s cn38xxp2; 528 struct cvmx_ipd_portx_bp_page_cnt_s cn50xx; 529 struct cvmx_ipd_portx_bp_page_cnt_s cn52xx; 530 struct cvmx_ipd_portx_bp_page_cnt_s cn52xxp1; 531 struct cvmx_ipd_portx_bp_page_cnt_s cn56xx; 532 struct cvmx_ipd_portx_bp_page_cnt_s cn56xxp1; 533 struct cvmx_ipd_portx_bp_page_cnt_s cn58xx; 534 struct cvmx_ipd_portx_bp_page_cnt_s cn58xxp1; 535 struct cvmx_ipd_portx_bp_page_cnt_s cn63xx; 536 struct cvmx_ipd_portx_bp_page_cnt_s cn63xxp1; 537 }; 538 539 union cvmx_ipd_portx_bp_page_cnt2 { 540 uint64_t u64; 541 struct cvmx_ipd_portx_bp_page_cnt2_s { 542 uint64_t reserved_18_63:46; 543 uint64_t bp_enb:1; 544 uint64_t page_cnt:17; 545 } s; 546 struct cvmx_ipd_portx_bp_page_cnt2_s cn52xx; 547 struct cvmx_ipd_portx_bp_page_cnt2_s cn52xxp1; 548 struct cvmx_ipd_portx_bp_page_cnt2_s cn56xx; 549 struct cvmx_ipd_portx_bp_page_cnt2_s cn56xxp1; 550 struct cvmx_ipd_portx_bp_page_cnt2_s cn63xx; 551 struct cvmx_ipd_portx_bp_page_cnt2_s cn63xxp1; 552 }; 553 554 union cvmx_ipd_portx_bp_page_cnt3 { 555 uint64_t u64; 556 struct cvmx_ipd_portx_bp_page_cnt3_s { 557 uint64_t reserved_18_63:46; 558 uint64_t bp_enb:1; 559 uint64_t page_cnt:17; 560 } s; 561 struct cvmx_ipd_portx_bp_page_cnt3_s cn63xx; 562 struct cvmx_ipd_portx_bp_page_cnt3_s cn63xxp1; 563 }; 564 565 union cvmx_ipd_port_bp_counters2_pairx { 566 uint64_t u64; 567 struct cvmx_ipd_port_bp_counters2_pairx_s { 568 uint64_t reserved_25_63:39; 569 uint64_t cnt_val:25; 570 } s; 571 struct cvmx_ipd_port_bp_counters2_pairx_s cn52xx; 572 struct cvmx_ipd_port_bp_counters2_pairx_s cn52xxp1; 573 struct cvmx_ipd_port_bp_counters2_pairx_s cn56xx; 574 struct cvmx_ipd_port_bp_counters2_pairx_s cn56xxp1; 575 struct cvmx_ipd_port_bp_counters2_pairx_s cn63xx; 576 struct cvmx_ipd_port_bp_counters2_pairx_s cn63xxp1; 577 }; 578 579 union cvmx_ipd_port_bp_counters3_pairx { 580 uint64_t u64; 581 struct cvmx_ipd_port_bp_counters3_pairx_s { 582 uint64_t reserved_25_63:39; 583 uint64_t cnt_val:25; 584 } s; 585 struct cvmx_ipd_port_bp_counters3_pairx_s cn63xx; 586 struct cvmx_ipd_port_bp_counters3_pairx_s cn63xxp1; 587 }; 588 589 union cvmx_ipd_port_bp_counters_pairx { 590 uint64_t u64; 591 struct cvmx_ipd_port_bp_counters_pairx_s { 592 uint64_t reserved_25_63:39; 593 uint64_t cnt_val:25; 594 } s; 595 struct cvmx_ipd_port_bp_counters_pairx_s cn30xx; 596 struct cvmx_ipd_port_bp_counters_pairx_s cn31xx; 597 struct cvmx_ipd_port_bp_counters_pairx_s cn38xx; 598 struct cvmx_ipd_port_bp_counters_pairx_s cn38xxp2; 599 struct cvmx_ipd_port_bp_counters_pairx_s cn50xx; 600 struct cvmx_ipd_port_bp_counters_pairx_s cn52xx; 601 struct cvmx_ipd_port_bp_counters_pairx_s cn52xxp1; 602 struct cvmx_ipd_port_bp_counters_pairx_s cn56xx; 603 struct cvmx_ipd_port_bp_counters_pairx_s cn56xxp1; 604 struct cvmx_ipd_port_bp_counters_pairx_s cn58xx; 605 struct cvmx_ipd_port_bp_counters_pairx_s cn58xxp1; 606 struct cvmx_ipd_port_bp_counters_pairx_s cn63xx; 607 struct cvmx_ipd_port_bp_counters_pairx_s cn63xxp1; 608 }; 609 610 union cvmx_ipd_port_qos_x_cnt { 611 uint64_t u64; 612 struct cvmx_ipd_port_qos_x_cnt_s { 613 uint64_t wmark:32; 614 uint64_t cnt:32; 615 } s; 616 struct cvmx_ipd_port_qos_x_cnt_s cn52xx; 617 struct cvmx_ipd_port_qos_x_cnt_s cn52xxp1; 618 struct cvmx_ipd_port_qos_x_cnt_s cn56xx; 619 struct cvmx_ipd_port_qos_x_cnt_s cn56xxp1; 620 struct cvmx_ipd_port_qos_x_cnt_s cn63xx; 621 struct cvmx_ipd_port_qos_x_cnt_s cn63xxp1; 622 }; 623 624 union cvmx_ipd_port_qos_intx { 625 uint64_t u64; 626 struct cvmx_ipd_port_qos_intx_s { 627 uint64_t intr:64; 628 } s; 629 struct cvmx_ipd_port_qos_intx_s cn52xx; 630 struct cvmx_ipd_port_qos_intx_s cn52xxp1; 631 struct cvmx_ipd_port_qos_intx_s cn56xx; 632 struct cvmx_ipd_port_qos_intx_s cn56xxp1; 633 struct cvmx_ipd_port_qos_intx_s cn63xx; 634 struct cvmx_ipd_port_qos_intx_s cn63xxp1; 635 }; 636 637 union cvmx_ipd_port_qos_int_enbx { 638 uint64_t u64; 639 struct cvmx_ipd_port_qos_int_enbx_s { 640 uint64_t enb:64; 641 } s; 642 struct cvmx_ipd_port_qos_int_enbx_s cn52xx; 643 struct cvmx_ipd_port_qos_int_enbx_s cn52xxp1; 644 struct cvmx_ipd_port_qos_int_enbx_s cn56xx; 645 struct cvmx_ipd_port_qos_int_enbx_s cn56xxp1; 646 struct cvmx_ipd_port_qos_int_enbx_s cn63xx; 647 struct cvmx_ipd_port_qos_int_enbx_s cn63xxp1; 648 }; 649 650 union cvmx_ipd_prc_hold_ptr_fifo_ctl { 651 uint64_t u64; 652 struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s { 653 uint64_t reserved_39_63:25; 654 uint64_t max_pkt:3; 655 uint64_t praddr:3; 656 uint64_t ptr:29; 657 uint64_t cena:1; 658 uint64_t raddr:3; 659 } s; 660 struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s cn30xx; 661 struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s cn31xx; 662 struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s cn38xx; 663 struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s cn50xx; 664 struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s cn52xx; 665 struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s cn52xxp1; 666 struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s cn56xx; 667 struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s cn56xxp1; 668 struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s cn58xx; 669 struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s cn58xxp1; 670 struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s cn63xx; 671 struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s cn63xxp1; 672 }; 673 674 union cvmx_ipd_prc_port_ptr_fifo_ctl { 675 uint64_t u64; 676 struct cvmx_ipd_prc_port_ptr_fifo_ctl_s { 677 uint64_t reserved_44_63:20; 678 uint64_t max_pkt:7; 679 uint64_t ptr:29; 680 uint64_t cena:1; 681 uint64_t raddr:7; 682 } s; 683 struct cvmx_ipd_prc_port_ptr_fifo_ctl_s cn30xx; 684 struct cvmx_ipd_prc_port_ptr_fifo_ctl_s cn31xx; 685 struct cvmx_ipd_prc_port_ptr_fifo_ctl_s cn38xx; 686 struct cvmx_ipd_prc_port_ptr_fifo_ctl_s cn50xx; 687 struct cvmx_ipd_prc_port_ptr_fifo_ctl_s cn52xx; 688 struct cvmx_ipd_prc_port_ptr_fifo_ctl_s cn52xxp1; 689 struct cvmx_ipd_prc_port_ptr_fifo_ctl_s cn56xx; 690 struct cvmx_ipd_prc_port_ptr_fifo_ctl_s cn56xxp1; 691 struct cvmx_ipd_prc_port_ptr_fifo_ctl_s cn58xx; 692 struct cvmx_ipd_prc_port_ptr_fifo_ctl_s cn58xxp1; 693 struct cvmx_ipd_prc_port_ptr_fifo_ctl_s cn63xx; 694 struct cvmx_ipd_prc_port_ptr_fifo_ctl_s cn63xxp1; 695 }; 696 697 union cvmx_ipd_ptr_count { 698 uint64_t u64; 699 struct cvmx_ipd_ptr_count_s { 700 uint64_t reserved_19_63:45; 701 uint64_t pktv_cnt:1; 702 uint64_t wqev_cnt:1; 703 uint64_t pfif_cnt:3; 704 uint64_t pkt_pcnt:7; 705 uint64_t wqe_pcnt:7; 706 } s; 707 struct cvmx_ipd_ptr_count_s cn30xx; 708 struct cvmx_ipd_ptr_count_s cn31xx; 709 struct cvmx_ipd_ptr_count_s cn38xx; 710 struct cvmx_ipd_ptr_count_s cn38xxp2; 711 struct cvmx_ipd_ptr_count_s cn50xx; 712 struct cvmx_ipd_ptr_count_s cn52xx; 713 struct cvmx_ipd_ptr_count_s cn52xxp1; 714 struct cvmx_ipd_ptr_count_s cn56xx; 715 struct cvmx_ipd_ptr_count_s cn56xxp1; 716 struct cvmx_ipd_ptr_count_s cn58xx; 717 struct cvmx_ipd_ptr_count_s cn58xxp1; 718 struct cvmx_ipd_ptr_count_s cn63xx; 719 struct cvmx_ipd_ptr_count_s cn63xxp1; 720 }; 721 722 union cvmx_ipd_pwp_ptr_fifo_ctl { 723 uint64_t u64; 724 struct cvmx_ipd_pwp_ptr_fifo_ctl_s { 725 uint64_t reserved_61_63:3; 726 uint64_t max_cnts:7; 727 uint64_t wraddr:8; 728 uint64_t praddr:8; 729 uint64_t ptr:29; 730 uint64_t cena:1; 731 uint64_t raddr:8; 732 } s; 733 struct cvmx_ipd_pwp_ptr_fifo_ctl_s cn30xx; 734 struct cvmx_ipd_pwp_ptr_fifo_ctl_s cn31xx; 735 struct cvmx_ipd_pwp_ptr_fifo_ctl_s cn38xx; 736 struct cvmx_ipd_pwp_ptr_fifo_ctl_s cn50xx; 737 struct cvmx_ipd_pwp_ptr_fifo_ctl_s cn52xx; 738 struct cvmx_ipd_pwp_ptr_fifo_ctl_s cn52xxp1; 739 struct cvmx_ipd_pwp_ptr_fifo_ctl_s cn56xx; 740 struct cvmx_ipd_pwp_ptr_fifo_ctl_s cn56xxp1; 741 struct cvmx_ipd_pwp_ptr_fifo_ctl_s cn58xx; 742 struct cvmx_ipd_pwp_ptr_fifo_ctl_s cn58xxp1; 743 struct cvmx_ipd_pwp_ptr_fifo_ctl_s cn63xx; 744 struct cvmx_ipd_pwp_ptr_fifo_ctl_s cn63xxp1; 745 }; 746 747 union cvmx_ipd_qosx_red_marks { 748 uint64_t u64; 749 struct cvmx_ipd_qosx_red_marks_s { 750 uint64_t drop:32; 751 uint64_t pass:32; 752 } s; 753 struct cvmx_ipd_qosx_red_marks_s cn30xx; 754 struct cvmx_ipd_qosx_red_marks_s cn31xx; 755 struct cvmx_ipd_qosx_red_marks_s cn38xx; 756 struct cvmx_ipd_qosx_red_marks_s cn38xxp2; 757 struct cvmx_ipd_qosx_red_marks_s cn50xx; 758 struct cvmx_ipd_qosx_red_marks_s cn52xx; 759 struct cvmx_ipd_qosx_red_marks_s cn52xxp1; 760 struct cvmx_ipd_qosx_red_marks_s cn56xx; 761 struct cvmx_ipd_qosx_red_marks_s cn56xxp1; 762 struct cvmx_ipd_qosx_red_marks_s cn58xx; 763 struct cvmx_ipd_qosx_red_marks_s cn58xxp1; 764 struct cvmx_ipd_qosx_red_marks_s cn63xx; 765 struct cvmx_ipd_qosx_red_marks_s cn63xxp1; 766 }; 767 768 union cvmx_ipd_que0_free_page_cnt { 769 uint64_t u64; 770 struct cvmx_ipd_que0_free_page_cnt_s { 771 uint64_t reserved_32_63:32; 772 uint64_t q0_pcnt:32; 773 } s; 774 struct cvmx_ipd_que0_free_page_cnt_s cn30xx; 775 struct cvmx_ipd_que0_free_page_cnt_s cn31xx; 776 struct cvmx_ipd_que0_free_page_cnt_s cn38xx; 777 struct cvmx_ipd_que0_free_page_cnt_s cn38xxp2; 778 struct cvmx_ipd_que0_free_page_cnt_s cn50xx; 779 struct cvmx_ipd_que0_free_page_cnt_s cn52xx; 780 struct cvmx_ipd_que0_free_page_cnt_s cn52xxp1; 781 struct cvmx_ipd_que0_free_page_cnt_s cn56xx; 782 struct cvmx_ipd_que0_free_page_cnt_s cn56xxp1; 783 struct cvmx_ipd_que0_free_page_cnt_s cn58xx; 784 struct cvmx_ipd_que0_free_page_cnt_s cn58xxp1; 785 struct cvmx_ipd_que0_free_page_cnt_s cn63xx; 786 struct cvmx_ipd_que0_free_page_cnt_s cn63xxp1; 787 }; 788 789 union cvmx_ipd_red_port_enable { 790 uint64_t u64; 791 struct cvmx_ipd_red_port_enable_s { 792 uint64_t prb_dly:14; 793 uint64_t avg_dly:14; 794 uint64_t prt_enb:36; 795 } s; 796 struct cvmx_ipd_red_port_enable_s cn30xx; 797 struct cvmx_ipd_red_port_enable_s cn31xx; 798 struct cvmx_ipd_red_port_enable_s cn38xx; 799 struct cvmx_ipd_red_port_enable_s cn38xxp2; 800 struct cvmx_ipd_red_port_enable_s cn50xx; 801 struct cvmx_ipd_red_port_enable_s cn52xx; 802 struct cvmx_ipd_red_port_enable_s cn52xxp1; 803 struct cvmx_ipd_red_port_enable_s cn56xx; 804 struct cvmx_ipd_red_port_enable_s cn56xxp1; 805 struct cvmx_ipd_red_port_enable_s cn58xx; 806 struct cvmx_ipd_red_port_enable_s cn58xxp1; 807 struct cvmx_ipd_red_port_enable_s cn63xx; 808 struct cvmx_ipd_red_port_enable_s cn63xxp1; 809 }; 810 811 union cvmx_ipd_red_port_enable2 { 812 uint64_t u64; 813 struct cvmx_ipd_red_port_enable2_s { 814 uint64_t reserved_8_63:56; 815 uint64_t prt_enb:8; 816 } s; 817 struct cvmx_ipd_red_port_enable2_cn52xx { 818 uint64_t reserved_4_63:60; 819 uint64_t prt_enb:4; 820 } cn52xx; 821 struct cvmx_ipd_red_port_enable2_cn52xx cn52xxp1; 822 struct cvmx_ipd_red_port_enable2_cn52xx cn56xx; 823 struct cvmx_ipd_red_port_enable2_cn52xx cn56xxp1; 824 struct cvmx_ipd_red_port_enable2_s cn63xx; 825 struct cvmx_ipd_red_port_enable2_s cn63xxp1; 826 }; 827 828 union cvmx_ipd_red_quex_param { 829 uint64_t u64; 830 struct cvmx_ipd_red_quex_param_s { 831 uint64_t reserved_49_63:15; 832 uint64_t use_pcnt:1; 833 uint64_t new_con:8; 834 uint64_t avg_con:8; 835 uint64_t prb_con:32; 836 } s; 837 struct cvmx_ipd_red_quex_param_s cn30xx; 838 struct cvmx_ipd_red_quex_param_s cn31xx; 839 struct cvmx_ipd_red_quex_param_s cn38xx; 840 struct cvmx_ipd_red_quex_param_s cn38xxp2; 841 struct cvmx_ipd_red_quex_param_s cn50xx; 842 struct cvmx_ipd_red_quex_param_s cn52xx; 843 struct cvmx_ipd_red_quex_param_s cn52xxp1; 844 struct cvmx_ipd_red_quex_param_s cn56xx; 845 struct cvmx_ipd_red_quex_param_s cn56xxp1; 846 struct cvmx_ipd_red_quex_param_s cn58xx; 847 struct cvmx_ipd_red_quex_param_s cn58xxp1; 848 struct cvmx_ipd_red_quex_param_s cn63xx; 849 struct cvmx_ipd_red_quex_param_s cn63xxp1; 850 }; 851 852 union cvmx_ipd_sub_port_bp_page_cnt { 853 uint64_t u64; 854 struct cvmx_ipd_sub_port_bp_page_cnt_s { 855 uint64_t reserved_31_63:33; 856 uint64_t port:6; 857 uint64_t page_cnt:25; 858 } s; 859 struct cvmx_ipd_sub_port_bp_page_cnt_s cn30xx; 860 struct cvmx_ipd_sub_port_bp_page_cnt_s cn31xx; 861 struct cvmx_ipd_sub_port_bp_page_cnt_s cn38xx; 862 struct cvmx_ipd_sub_port_bp_page_cnt_s cn38xxp2; 863 struct cvmx_ipd_sub_port_bp_page_cnt_s cn50xx; 864 struct cvmx_ipd_sub_port_bp_page_cnt_s cn52xx; 865 struct cvmx_ipd_sub_port_bp_page_cnt_s cn52xxp1; 866 struct cvmx_ipd_sub_port_bp_page_cnt_s cn56xx; 867 struct cvmx_ipd_sub_port_bp_page_cnt_s cn56xxp1; 868 struct cvmx_ipd_sub_port_bp_page_cnt_s cn58xx; 869 struct cvmx_ipd_sub_port_bp_page_cnt_s cn58xxp1; 870 struct cvmx_ipd_sub_port_bp_page_cnt_s cn63xx; 871 struct cvmx_ipd_sub_port_bp_page_cnt_s cn63xxp1; 872 }; 873 874 union cvmx_ipd_sub_port_fcs { 875 uint64_t u64; 876 struct cvmx_ipd_sub_port_fcs_s { 877 uint64_t reserved_40_63:24; 878 uint64_t port_bit2:4; 879 uint64_t reserved_32_35:4; 880 uint64_t port_bit:32; 881 } s; 882 struct cvmx_ipd_sub_port_fcs_cn30xx { 883 uint64_t reserved_3_63:61; 884 uint64_t port_bit:3; 885 } cn30xx; 886 struct cvmx_ipd_sub_port_fcs_cn30xx cn31xx; 887 struct cvmx_ipd_sub_port_fcs_cn38xx { 888 uint64_t reserved_32_63:32; 889 uint64_t port_bit:32; 890 } cn38xx; 891 struct cvmx_ipd_sub_port_fcs_cn38xx cn38xxp2; 892 struct cvmx_ipd_sub_port_fcs_cn30xx cn50xx; 893 struct cvmx_ipd_sub_port_fcs_s cn52xx; 894 struct cvmx_ipd_sub_port_fcs_s cn52xxp1; 895 struct cvmx_ipd_sub_port_fcs_s cn56xx; 896 struct cvmx_ipd_sub_port_fcs_s cn56xxp1; 897 struct cvmx_ipd_sub_port_fcs_cn38xx cn58xx; 898 struct cvmx_ipd_sub_port_fcs_cn38xx cn58xxp1; 899 struct cvmx_ipd_sub_port_fcs_s cn63xx; 900 struct cvmx_ipd_sub_port_fcs_s cn63xxp1; 901 }; 902 903 union cvmx_ipd_sub_port_qos_cnt { 904 uint64_t u64; 905 struct cvmx_ipd_sub_port_qos_cnt_s { 906 uint64_t reserved_41_63:23; 907 uint64_t port_qos:9; 908 uint64_t cnt:32; 909 } s; 910 struct cvmx_ipd_sub_port_qos_cnt_s cn52xx; 911 struct cvmx_ipd_sub_port_qos_cnt_s cn52xxp1; 912 struct cvmx_ipd_sub_port_qos_cnt_s cn56xx; 913 struct cvmx_ipd_sub_port_qos_cnt_s cn56xxp1; 914 struct cvmx_ipd_sub_port_qos_cnt_s cn63xx; 915 struct cvmx_ipd_sub_port_qos_cnt_s cn63xxp1; 916 }; 917 918 union cvmx_ipd_wqe_fpa_queue { 919 uint64_t u64; 920 struct cvmx_ipd_wqe_fpa_queue_s { 921 uint64_t reserved_3_63:61; 922 uint64_t wqe_pool:3; 923 } s; 924 struct cvmx_ipd_wqe_fpa_queue_s cn30xx; 925 struct cvmx_ipd_wqe_fpa_queue_s cn31xx; 926 struct cvmx_ipd_wqe_fpa_queue_s cn38xx; 927 struct cvmx_ipd_wqe_fpa_queue_s cn38xxp2; 928 struct cvmx_ipd_wqe_fpa_queue_s cn50xx; 929 struct cvmx_ipd_wqe_fpa_queue_s cn52xx; 930 struct cvmx_ipd_wqe_fpa_queue_s cn52xxp1; 931 struct cvmx_ipd_wqe_fpa_queue_s cn56xx; 932 struct cvmx_ipd_wqe_fpa_queue_s cn56xxp1; 933 struct cvmx_ipd_wqe_fpa_queue_s cn58xx; 934 struct cvmx_ipd_wqe_fpa_queue_s cn58xxp1; 935 struct cvmx_ipd_wqe_fpa_queue_s cn63xx; 936 struct cvmx_ipd_wqe_fpa_queue_s cn63xxp1; 937 }; 938 939 union cvmx_ipd_wqe_ptr_valid { 940 uint64_t u64; 941 struct cvmx_ipd_wqe_ptr_valid_s { 942 uint64_t reserved_29_63:35; 943 uint64_t ptr:29; 944 } s; 945 struct cvmx_ipd_wqe_ptr_valid_s cn30xx; 946 struct cvmx_ipd_wqe_ptr_valid_s cn31xx; 947 struct cvmx_ipd_wqe_ptr_valid_s cn38xx; 948 struct cvmx_ipd_wqe_ptr_valid_s cn50xx; 949 struct cvmx_ipd_wqe_ptr_valid_s cn52xx; 950 struct cvmx_ipd_wqe_ptr_valid_s cn52xxp1; 951 struct cvmx_ipd_wqe_ptr_valid_s cn56xx; 952 struct cvmx_ipd_wqe_ptr_valid_s cn56xxp1; 953 struct cvmx_ipd_wqe_ptr_valid_s cn58xx; 954 struct cvmx_ipd_wqe_ptr_valid_s cn58xxp1; 955 struct cvmx_ipd_wqe_ptr_valid_s cn63xx; 956 struct cvmx_ipd_wqe_ptr_valid_s cn63xxp1; 957 }; 958 959 #endif 960