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_POW_DEFS_H__ 29 #define __CVMX_POW_DEFS_H__ 30 31 #define CVMX_POW_BIST_STAT (CVMX_ADD_IO_SEG(0x00016700000003F8ull)) 32 #define CVMX_POW_DS_PC (CVMX_ADD_IO_SEG(0x0001670000000398ull)) 33 #define CVMX_POW_ECC_ERR (CVMX_ADD_IO_SEG(0x0001670000000218ull)) 34 #define CVMX_POW_INT_CTL (CVMX_ADD_IO_SEG(0x0001670000000220ull)) 35 #define CVMX_POW_IQ_CNTX(offset) (CVMX_ADD_IO_SEG(0x0001670000000340ull) + ((offset) & 7) * 8) 36 #define CVMX_POW_IQ_COM_CNT (CVMX_ADD_IO_SEG(0x0001670000000388ull)) 37 #define CVMX_POW_IQ_INT (CVMX_ADD_IO_SEG(0x0001670000000238ull)) 38 #define CVMX_POW_IQ_INT_EN (CVMX_ADD_IO_SEG(0x0001670000000240ull)) 39 #define CVMX_POW_IQ_THRX(offset) (CVMX_ADD_IO_SEG(0x00016700000003A0ull) + ((offset) & 7) * 8) 40 #define CVMX_POW_NOS_CNT (CVMX_ADD_IO_SEG(0x0001670000000228ull)) 41 #define CVMX_POW_NW_TIM (CVMX_ADD_IO_SEG(0x0001670000000210ull)) 42 #define CVMX_POW_PF_RST_MSK (CVMX_ADD_IO_SEG(0x0001670000000230ull)) 43 #define CVMX_POW_PP_GRP_MSKX(offset) (CVMX_ADD_IO_SEG(0x0001670000000000ull) + ((offset) & 15) * 8) 44 #define CVMX_POW_QOS_RNDX(offset) (CVMX_ADD_IO_SEG(0x00016700000001C0ull) + ((offset) & 7) * 8) 45 #define CVMX_POW_QOS_THRX(offset) (CVMX_ADD_IO_SEG(0x0001670000000180ull) + ((offset) & 7) * 8) 46 #define CVMX_POW_TS_PC (CVMX_ADD_IO_SEG(0x0001670000000390ull)) 47 #define CVMX_POW_WA_COM_PC (CVMX_ADD_IO_SEG(0x0001670000000380ull)) 48 #define CVMX_POW_WA_PCX(offset) (CVMX_ADD_IO_SEG(0x0001670000000300ull) + ((offset) & 7) * 8) 49 #define CVMX_POW_WQ_INT (CVMX_ADD_IO_SEG(0x0001670000000200ull)) 50 #define CVMX_POW_WQ_INT_CNTX(offset) (CVMX_ADD_IO_SEG(0x0001670000000100ull) + ((offset) & 15) * 8) 51 #define CVMX_POW_WQ_INT_PC (CVMX_ADD_IO_SEG(0x0001670000000208ull)) 52 #define CVMX_POW_WQ_INT_THRX(offset) (CVMX_ADD_IO_SEG(0x0001670000000080ull) + ((offset) & 15) * 8) 53 #define CVMX_POW_WS_PCX(offset) (CVMX_ADD_IO_SEG(0x0001670000000280ull) + ((offset) & 15) * 8) 54 55 union cvmx_pow_bist_stat { 56 uint64_t u64; 57 struct cvmx_pow_bist_stat_s { 58 uint64_t reserved_32_63:32; 59 uint64_t pp:16; 60 uint64_t reserved_0_15:16; 61 } s; 62 struct cvmx_pow_bist_stat_cn30xx { 63 uint64_t reserved_17_63:47; 64 uint64_t pp:1; 65 uint64_t reserved_9_15:7; 66 uint64_t cam:1; 67 uint64_t nbt1:1; 68 uint64_t nbt0:1; 69 uint64_t index:1; 70 uint64_t fidx:1; 71 uint64_t nbr1:1; 72 uint64_t nbr0:1; 73 uint64_t pend:1; 74 uint64_t adr:1; 75 } cn30xx; 76 struct cvmx_pow_bist_stat_cn31xx { 77 uint64_t reserved_18_63:46; 78 uint64_t pp:2; 79 uint64_t reserved_9_15:7; 80 uint64_t cam:1; 81 uint64_t nbt1:1; 82 uint64_t nbt0:1; 83 uint64_t index:1; 84 uint64_t fidx:1; 85 uint64_t nbr1:1; 86 uint64_t nbr0:1; 87 uint64_t pend:1; 88 uint64_t adr:1; 89 } cn31xx; 90 struct cvmx_pow_bist_stat_cn38xx { 91 uint64_t reserved_32_63:32; 92 uint64_t pp:16; 93 uint64_t reserved_10_15:6; 94 uint64_t cam:1; 95 uint64_t nbt:1; 96 uint64_t index:1; 97 uint64_t fidx:1; 98 uint64_t nbr1:1; 99 uint64_t nbr0:1; 100 uint64_t pend1:1; 101 uint64_t pend0:1; 102 uint64_t adr1:1; 103 uint64_t adr0:1; 104 } cn38xx; 105 struct cvmx_pow_bist_stat_cn38xx cn38xxp2; 106 struct cvmx_pow_bist_stat_cn31xx cn50xx; 107 struct cvmx_pow_bist_stat_cn52xx { 108 uint64_t reserved_20_63:44; 109 uint64_t pp:4; 110 uint64_t reserved_9_15:7; 111 uint64_t cam:1; 112 uint64_t nbt1:1; 113 uint64_t nbt0:1; 114 uint64_t index:1; 115 uint64_t fidx:1; 116 uint64_t nbr1:1; 117 uint64_t nbr0:1; 118 uint64_t pend:1; 119 uint64_t adr:1; 120 } cn52xx; 121 struct cvmx_pow_bist_stat_cn52xx cn52xxp1; 122 struct cvmx_pow_bist_stat_cn56xx { 123 uint64_t reserved_28_63:36; 124 uint64_t pp:12; 125 uint64_t reserved_10_15:6; 126 uint64_t cam:1; 127 uint64_t nbt:1; 128 uint64_t index:1; 129 uint64_t fidx:1; 130 uint64_t nbr1:1; 131 uint64_t nbr0:1; 132 uint64_t pend1:1; 133 uint64_t pend0:1; 134 uint64_t adr1:1; 135 uint64_t adr0:1; 136 } cn56xx; 137 struct cvmx_pow_bist_stat_cn56xx cn56xxp1; 138 struct cvmx_pow_bist_stat_cn38xx cn58xx; 139 struct cvmx_pow_bist_stat_cn38xx cn58xxp1; 140 struct cvmx_pow_bist_stat_cn63xx { 141 uint64_t reserved_22_63:42; 142 uint64_t pp:6; 143 uint64_t reserved_12_15:4; 144 uint64_t cam:1; 145 uint64_t nbr:3; 146 uint64_t nbt:4; 147 uint64_t index:1; 148 uint64_t fidx:1; 149 uint64_t pend:1; 150 uint64_t adr:1; 151 } cn63xx; 152 struct cvmx_pow_bist_stat_cn63xx cn63xxp1; 153 }; 154 155 union cvmx_pow_ds_pc { 156 uint64_t u64; 157 struct cvmx_pow_ds_pc_s { 158 uint64_t reserved_32_63:32; 159 uint64_t ds_pc:32; 160 } s; 161 struct cvmx_pow_ds_pc_s cn30xx; 162 struct cvmx_pow_ds_pc_s cn31xx; 163 struct cvmx_pow_ds_pc_s cn38xx; 164 struct cvmx_pow_ds_pc_s cn38xxp2; 165 struct cvmx_pow_ds_pc_s cn50xx; 166 struct cvmx_pow_ds_pc_s cn52xx; 167 struct cvmx_pow_ds_pc_s cn52xxp1; 168 struct cvmx_pow_ds_pc_s cn56xx; 169 struct cvmx_pow_ds_pc_s cn56xxp1; 170 struct cvmx_pow_ds_pc_s cn58xx; 171 struct cvmx_pow_ds_pc_s cn58xxp1; 172 struct cvmx_pow_ds_pc_s cn63xx; 173 struct cvmx_pow_ds_pc_s cn63xxp1; 174 }; 175 176 union cvmx_pow_ecc_err { 177 uint64_t u64; 178 struct cvmx_pow_ecc_err_s { 179 uint64_t reserved_45_63:19; 180 uint64_t iop_ie:13; 181 uint64_t reserved_29_31:3; 182 uint64_t iop:13; 183 uint64_t reserved_14_15:2; 184 uint64_t rpe_ie:1; 185 uint64_t rpe:1; 186 uint64_t reserved_9_11:3; 187 uint64_t syn:5; 188 uint64_t dbe_ie:1; 189 uint64_t sbe_ie:1; 190 uint64_t dbe:1; 191 uint64_t sbe:1; 192 } s; 193 struct cvmx_pow_ecc_err_s cn30xx; 194 struct cvmx_pow_ecc_err_cn31xx { 195 uint64_t reserved_14_63:50; 196 uint64_t rpe_ie:1; 197 uint64_t rpe:1; 198 uint64_t reserved_9_11:3; 199 uint64_t syn:5; 200 uint64_t dbe_ie:1; 201 uint64_t sbe_ie:1; 202 uint64_t dbe:1; 203 uint64_t sbe:1; 204 } cn31xx; 205 struct cvmx_pow_ecc_err_s cn38xx; 206 struct cvmx_pow_ecc_err_cn31xx cn38xxp2; 207 struct cvmx_pow_ecc_err_s cn50xx; 208 struct cvmx_pow_ecc_err_s cn52xx; 209 struct cvmx_pow_ecc_err_s cn52xxp1; 210 struct cvmx_pow_ecc_err_s cn56xx; 211 struct cvmx_pow_ecc_err_s cn56xxp1; 212 struct cvmx_pow_ecc_err_s cn58xx; 213 struct cvmx_pow_ecc_err_s cn58xxp1; 214 struct cvmx_pow_ecc_err_s cn63xx; 215 struct cvmx_pow_ecc_err_s cn63xxp1; 216 }; 217 218 union cvmx_pow_int_ctl { 219 uint64_t u64; 220 struct cvmx_pow_int_ctl_s { 221 uint64_t reserved_6_63:58; 222 uint64_t pfr_dis:1; 223 uint64_t nbr_thr:5; 224 } s; 225 struct cvmx_pow_int_ctl_s cn30xx; 226 struct cvmx_pow_int_ctl_s cn31xx; 227 struct cvmx_pow_int_ctl_s cn38xx; 228 struct cvmx_pow_int_ctl_s cn38xxp2; 229 struct cvmx_pow_int_ctl_s cn50xx; 230 struct cvmx_pow_int_ctl_s cn52xx; 231 struct cvmx_pow_int_ctl_s cn52xxp1; 232 struct cvmx_pow_int_ctl_s cn56xx; 233 struct cvmx_pow_int_ctl_s cn56xxp1; 234 struct cvmx_pow_int_ctl_s cn58xx; 235 struct cvmx_pow_int_ctl_s cn58xxp1; 236 struct cvmx_pow_int_ctl_s cn63xx; 237 struct cvmx_pow_int_ctl_s cn63xxp1; 238 }; 239 240 union cvmx_pow_iq_cntx { 241 uint64_t u64; 242 struct cvmx_pow_iq_cntx_s { 243 uint64_t reserved_32_63:32; 244 uint64_t iq_cnt:32; 245 } s; 246 struct cvmx_pow_iq_cntx_s cn30xx; 247 struct cvmx_pow_iq_cntx_s cn31xx; 248 struct cvmx_pow_iq_cntx_s cn38xx; 249 struct cvmx_pow_iq_cntx_s cn38xxp2; 250 struct cvmx_pow_iq_cntx_s cn50xx; 251 struct cvmx_pow_iq_cntx_s cn52xx; 252 struct cvmx_pow_iq_cntx_s cn52xxp1; 253 struct cvmx_pow_iq_cntx_s cn56xx; 254 struct cvmx_pow_iq_cntx_s cn56xxp1; 255 struct cvmx_pow_iq_cntx_s cn58xx; 256 struct cvmx_pow_iq_cntx_s cn58xxp1; 257 struct cvmx_pow_iq_cntx_s cn63xx; 258 struct cvmx_pow_iq_cntx_s cn63xxp1; 259 }; 260 261 union cvmx_pow_iq_com_cnt { 262 uint64_t u64; 263 struct cvmx_pow_iq_com_cnt_s { 264 uint64_t reserved_32_63:32; 265 uint64_t iq_cnt:32; 266 } s; 267 struct cvmx_pow_iq_com_cnt_s cn30xx; 268 struct cvmx_pow_iq_com_cnt_s cn31xx; 269 struct cvmx_pow_iq_com_cnt_s cn38xx; 270 struct cvmx_pow_iq_com_cnt_s cn38xxp2; 271 struct cvmx_pow_iq_com_cnt_s cn50xx; 272 struct cvmx_pow_iq_com_cnt_s cn52xx; 273 struct cvmx_pow_iq_com_cnt_s cn52xxp1; 274 struct cvmx_pow_iq_com_cnt_s cn56xx; 275 struct cvmx_pow_iq_com_cnt_s cn56xxp1; 276 struct cvmx_pow_iq_com_cnt_s cn58xx; 277 struct cvmx_pow_iq_com_cnt_s cn58xxp1; 278 struct cvmx_pow_iq_com_cnt_s cn63xx; 279 struct cvmx_pow_iq_com_cnt_s cn63xxp1; 280 }; 281 282 union cvmx_pow_iq_int { 283 uint64_t u64; 284 struct cvmx_pow_iq_int_s { 285 uint64_t reserved_8_63:56; 286 uint64_t iq_int:8; 287 } s; 288 struct cvmx_pow_iq_int_s cn52xx; 289 struct cvmx_pow_iq_int_s cn52xxp1; 290 struct cvmx_pow_iq_int_s cn56xx; 291 struct cvmx_pow_iq_int_s cn56xxp1; 292 struct cvmx_pow_iq_int_s cn63xx; 293 struct cvmx_pow_iq_int_s cn63xxp1; 294 }; 295 296 union cvmx_pow_iq_int_en { 297 uint64_t u64; 298 struct cvmx_pow_iq_int_en_s { 299 uint64_t reserved_8_63:56; 300 uint64_t int_en:8; 301 } s; 302 struct cvmx_pow_iq_int_en_s cn52xx; 303 struct cvmx_pow_iq_int_en_s cn52xxp1; 304 struct cvmx_pow_iq_int_en_s cn56xx; 305 struct cvmx_pow_iq_int_en_s cn56xxp1; 306 struct cvmx_pow_iq_int_en_s cn63xx; 307 struct cvmx_pow_iq_int_en_s cn63xxp1; 308 }; 309 310 union cvmx_pow_iq_thrx { 311 uint64_t u64; 312 struct cvmx_pow_iq_thrx_s { 313 uint64_t reserved_32_63:32; 314 uint64_t iq_thr:32; 315 } s; 316 struct cvmx_pow_iq_thrx_s cn52xx; 317 struct cvmx_pow_iq_thrx_s cn52xxp1; 318 struct cvmx_pow_iq_thrx_s cn56xx; 319 struct cvmx_pow_iq_thrx_s cn56xxp1; 320 struct cvmx_pow_iq_thrx_s cn63xx; 321 struct cvmx_pow_iq_thrx_s cn63xxp1; 322 }; 323 324 union cvmx_pow_nos_cnt { 325 uint64_t u64; 326 struct cvmx_pow_nos_cnt_s { 327 uint64_t reserved_12_63:52; 328 uint64_t nos_cnt:12; 329 } s; 330 struct cvmx_pow_nos_cnt_cn30xx { 331 uint64_t reserved_7_63:57; 332 uint64_t nos_cnt:7; 333 } cn30xx; 334 struct cvmx_pow_nos_cnt_cn31xx { 335 uint64_t reserved_9_63:55; 336 uint64_t nos_cnt:9; 337 } cn31xx; 338 struct cvmx_pow_nos_cnt_s cn38xx; 339 struct cvmx_pow_nos_cnt_s cn38xxp2; 340 struct cvmx_pow_nos_cnt_cn31xx cn50xx; 341 struct cvmx_pow_nos_cnt_cn52xx { 342 uint64_t reserved_10_63:54; 343 uint64_t nos_cnt:10; 344 } cn52xx; 345 struct cvmx_pow_nos_cnt_cn52xx cn52xxp1; 346 struct cvmx_pow_nos_cnt_s cn56xx; 347 struct cvmx_pow_nos_cnt_s cn56xxp1; 348 struct cvmx_pow_nos_cnt_s cn58xx; 349 struct cvmx_pow_nos_cnt_s cn58xxp1; 350 struct cvmx_pow_nos_cnt_cn63xx { 351 uint64_t reserved_11_63:53; 352 uint64_t nos_cnt:11; 353 } cn63xx; 354 struct cvmx_pow_nos_cnt_cn63xx cn63xxp1; 355 }; 356 357 union cvmx_pow_nw_tim { 358 uint64_t u64; 359 struct cvmx_pow_nw_tim_s { 360 uint64_t reserved_10_63:54; 361 uint64_t nw_tim:10; 362 } s; 363 struct cvmx_pow_nw_tim_s cn30xx; 364 struct cvmx_pow_nw_tim_s cn31xx; 365 struct cvmx_pow_nw_tim_s cn38xx; 366 struct cvmx_pow_nw_tim_s cn38xxp2; 367 struct cvmx_pow_nw_tim_s cn50xx; 368 struct cvmx_pow_nw_tim_s cn52xx; 369 struct cvmx_pow_nw_tim_s cn52xxp1; 370 struct cvmx_pow_nw_tim_s cn56xx; 371 struct cvmx_pow_nw_tim_s cn56xxp1; 372 struct cvmx_pow_nw_tim_s cn58xx; 373 struct cvmx_pow_nw_tim_s cn58xxp1; 374 struct cvmx_pow_nw_tim_s cn63xx; 375 struct cvmx_pow_nw_tim_s cn63xxp1; 376 }; 377 378 union cvmx_pow_pf_rst_msk { 379 uint64_t u64; 380 struct cvmx_pow_pf_rst_msk_s { 381 uint64_t reserved_8_63:56; 382 uint64_t rst_msk:8; 383 } s; 384 struct cvmx_pow_pf_rst_msk_s cn50xx; 385 struct cvmx_pow_pf_rst_msk_s cn52xx; 386 struct cvmx_pow_pf_rst_msk_s cn52xxp1; 387 struct cvmx_pow_pf_rst_msk_s cn56xx; 388 struct cvmx_pow_pf_rst_msk_s cn56xxp1; 389 struct cvmx_pow_pf_rst_msk_s cn58xx; 390 struct cvmx_pow_pf_rst_msk_s cn58xxp1; 391 struct cvmx_pow_pf_rst_msk_s cn63xx; 392 struct cvmx_pow_pf_rst_msk_s cn63xxp1; 393 }; 394 395 union cvmx_pow_pp_grp_mskx { 396 uint64_t u64; 397 struct cvmx_pow_pp_grp_mskx_s { 398 uint64_t reserved_48_63:16; 399 uint64_t qos7_pri:4; 400 uint64_t qos6_pri:4; 401 uint64_t qos5_pri:4; 402 uint64_t qos4_pri:4; 403 uint64_t qos3_pri:4; 404 uint64_t qos2_pri:4; 405 uint64_t qos1_pri:4; 406 uint64_t qos0_pri:4; 407 uint64_t grp_msk:16; 408 } s; 409 struct cvmx_pow_pp_grp_mskx_cn30xx { 410 uint64_t reserved_16_63:48; 411 uint64_t grp_msk:16; 412 } cn30xx; 413 struct cvmx_pow_pp_grp_mskx_cn30xx cn31xx; 414 struct cvmx_pow_pp_grp_mskx_cn30xx cn38xx; 415 struct cvmx_pow_pp_grp_mskx_cn30xx cn38xxp2; 416 struct cvmx_pow_pp_grp_mskx_s cn50xx; 417 struct cvmx_pow_pp_grp_mskx_s cn52xx; 418 struct cvmx_pow_pp_grp_mskx_s cn52xxp1; 419 struct cvmx_pow_pp_grp_mskx_s cn56xx; 420 struct cvmx_pow_pp_grp_mskx_s cn56xxp1; 421 struct cvmx_pow_pp_grp_mskx_s cn58xx; 422 struct cvmx_pow_pp_grp_mskx_s cn58xxp1; 423 struct cvmx_pow_pp_grp_mskx_s cn63xx; 424 struct cvmx_pow_pp_grp_mskx_s cn63xxp1; 425 }; 426 427 union cvmx_pow_qos_rndx { 428 uint64_t u64; 429 struct cvmx_pow_qos_rndx_s { 430 uint64_t reserved_32_63:32; 431 uint64_t rnd_p3:8; 432 uint64_t rnd_p2:8; 433 uint64_t rnd_p1:8; 434 uint64_t rnd:8; 435 } s; 436 struct cvmx_pow_qos_rndx_s cn30xx; 437 struct cvmx_pow_qos_rndx_s cn31xx; 438 struct cvmx_pow_qos_rndx_s cn38xx; 439 struct cvmx_pow_qos_rndx_s cn38xxp2; 440 struct cvmx_pow_qos_rndx_s cn50xx; 441 struct cvmx_pow_qos_rndx_s cn52xx; 442 struct cvmx_pow_qos_rndx_s cn52xxp1; 443 struct cvmx_pow_qos_rndx_s cn56xx; 444 struct cvmx_pow_qos_rndx_s cn56xxp1; 445 struct cvmx_pow_qos_rndx_s cn58xx; 446 struct cvmx_pow_qos_rndx_s cn58xxp1; 447 struct cvmx_pow_qos_rndx_s cn63xx; 448 struct cvmx_pow_qos_rndx_s cn63xxp1; 449 }; 450 451 union cvmx_pow_qos_thrx { 452 uint64_t u64; 453 struct cvmx_pow_qos_thrx_s { 454 uint64_t reserved_60_63:4; 455 uint64_t des_cnt:12; 456 uint64_t buf_cnt:12; 457 uint64_t free_cnt:12; 458 uint64_t reserved_23_23:1; 459 uint64_t max_thr:11; 460 uint64_t reserved_11_11:1; 461 uint64_t min_thr:11; 462 } s; 463 struct cvmx_pow_qos_thrx_cn30xx { 464 uint64_t reserved_55_63:9; 465 uint64_t des_cnt:7; 466 uint64_t reserved_43_47:5; 467 uint64_t buf_cnt:7; 468 uint64_t reserved_31_35:5; 469 uint64_t free_cnt:7; 470 uint64_t reserved_18_23:6; 471 uint64_t max_thr:6; 472 uint64_t reserved_6_11:6; 473 uint64_t min_thr:6; 474 } cn30xx; 475 struct cvmx_pow_qos_thrx_cn31xx { 476 uint64_t reserved_57_63:7; 477 uint64_t des_cnt:9; 478 uint64_t reserved_45_47:3; 479 uint64_t buf_cnt:9; 480 uint64_t reserved_33_35:3; 481 uint64_t free_cnt:9; 482 uint64_t reserved_20_23:4; 483 uint64_t max_thr:8; 484 uint64_t reserved_8_11:4; 485 uint64_t min_thr:8; 486 } cn31xx; 487 struct cvmx_pow_qos_thrx_s cn38xx; 488 struct cvmx_pow_qos_thrx_s cn38xxp2; 489 struct cvmx_pow_qos_thrx_cn31xx cn50xx; 490 struct cvmx_pow_qos_thrx_cn52xx { 491 uint64_t reserved_58_63:6; 492 uint64_t des_cnt:10; 493 uint64_t reserved_46_47:2; 494 uint64_t buf_cnt:10; 495 uint64_t reserved_34_35:2; 496 uint64_t free_cnt:10; 497 uint64_t reserved_21_23:3; 498 uint64_t max_thr:9; 499 uint64_t reserved_9_11:3; 500 uint64_t min_thr:9; 501 } cn52xx; 502 struct cvmx_pow_qos_thrx_cn52xx cn52xxp1; 503 struct cvmx_pow_qos_thrx_s cn56xx; 504 struct cvmx_pow_qos_thrx_s cn56xxp1; 505 struct cvmx_pow_qos_thrx_s cn58xx; 506 struct cvmx_pow_qos_thrx_s cn58xxp1; 507 struct cvmx_pow_qos_thrx_cn63xx { 508 uint64_t reserved_59_63:5; 509 uint64_t des_cnt:11; 510 uint64_t reserved_47_47:1; 511 uint64_t buf_cnt:11; 512 uint64_t reserved_35_35:1; 513 uint64_t free_cnt:11; 514 uint64_t reserved_22_23:2; 515 uint64_t max_thr:10; 516 uint64_t reserved_10_11:2; 517 uint64_t min_thr:10; 518 } cn63xx; 519 struct cvmx_pow_qos_thrx_cn63xx cn63xxp1; 520 }; 521 522 union cvmx_pow_ts_pc { 523 uint64_t u64; 524 struct cvmx_pow_ts_pc_s { 525 uint64_t reserved_32_63:32; 526 uint64_t ts_pc:32; 527 } s; 528 struct cvmx_pow_ts_pc_s cn30xx; 529 struct cvmx_pow_ts_pc_s cn31xx; 530 struct cvmx_pow_ts_pc_s cn38xx; 531 struct cvmx_pow_ts_pc_s cn38xxp2; 532 struct cvmx_pow_ts_pc_s cn50xx; 533 struct cvmx_pow_ts_pc_s cn52xx; 534 struct cvmx_pow_ts_pc_s cn52xxp1; 535 struct cvmx_pow_ts_pc_s cn56xx; 536 struct cvmx_pow_ts_pc_s cn56xxp1; 537 struct cvmx_pow_ts_pc_s cn58xx; 538 struct cvmx_pow_ts_pc_s cn58xxp1; 539 struct cvmx_pow_ts_pc_s cn63xx; 540 struct cvmx_pow_ts_pc_s cn63xxp1; 541 }; 542 543 union cvmx_pow_wa_com_pc { 544 uint64_t u64; 545 struct cvmx_pow_wa_com_pc_s { 546 uint64_t reserved_32_63:32; 547 uint64_t wa_pc:32; 548 } s; 549 struct cvmx_pow_wa_com_pc_s cn30xx; 550 struct cvmx_pow_wa_com_pc_s cn31xx; 551 struct cvmx_pow_wa_com_pc_s cn38xx; 552 struct cvmx_pow_wa_com_pc_s cn38xxp2; 553 struct cvmx_pow_wa_com_pc_s cn50xx; 554 struct cvmx_pow_wa_com_pc_s cn52xx; 555 struct cvmx_pow_wa_com_pc_s cn52xxp1; 556 struct cvmx_pow_wa_com_pc_s cn56xx; 557 struct cvmx_pow_wa_com_pc_s cn56xxp1; 558 struct cvmx_pow_wa_com_pc_s cn58xx; 559 struct cvmx_pow_wa_com_pc_s cn58xxp1; 560 struct cvmx_pow_wa_com_pc_s cn63xx; 561 struct cvmx_pow_wa_com_pc_s cn63xxp1; 562 }; 563 564 union cvmx_pow_wa_pcx { 565 uint64_t u64; 566 struct cvmx_pow_wa_pcx_s { 567 uint64_t reserved_32_63:32; 568 uint64_t wa_pc:32; 569 } s; 570 struct cvmx_pow_wa_pcx_s cn30xx; 571 struct cvmx_pow_wa_pcx_s cn31xx; 572 struct cvmx_pow_wa_pcx_s cn38xx; 573 struct cvmx_pow_wa_pcx_s cn38xxp2; 574 struct cvmx_pow_wa_pcx_s cn50xx; 575 struct cvmx_pow_wa_pcx_s cn52xx; 576 struct cvmx_pow_wa_pcx_s cn52xxp1; 577 struct cvmx_pow_wa_pcx_s cn56xx; 578 struct cvmx_pow_wa_pcx_s cn56xxp1; 579 struct cvmx_pow_wa_pcx_s cn58xx; 580 struct cvmx_pow_wa_pcx_s cn58xxp1; 581 struct cvmx_pow_wa_pcx_s cn63xx; 582 struct cvmx_pow_wa_pcx_s cn63xxp1; 583 }; 584 585 union cvmx_pow_wq_int { 586 uint64_t u64; 587 struct cvmx_pow_wq_int_s { 588 uint64_t reserved_32_63:32; 589 uint64_t iq_dis:16; 590 uint64_t wq_int:16; 591 } s; 592 struct cvmx_pow_wq_int_s cn30xx; 593 struct cvmx_pow_wq_int_s cn31xx; 594 struct cvmx_pow_wq_int_s cn38xx; 595 struct cvmx_pow_wq_int_s cn38xxp2; 596 struct cvmx_pow_wq_int_s cn50xx; 597 struct cvmx_pow_wq_int_s cn52xx; 598 struct cvmx_pow_wq_int_s cn52xxp1; 599 struct cvmx_pow_wq_int_s cn56xx; 600 struct cvmx_pow_wq_int_s cn56xxp1; 601 struct cvmx_pow_wq_int_s cn58xx; 602 struct cvmx_pow_wq_int_s cn58xxp1; 603 struct cvmx_pow_wq_int_s cn63xx; 604 struct cvmx_pow_wq_int_s cn63xxp1; 605 }; 606 607 union cvmx_pow_wq_int_cntx { 608 uint64_t u64; 609 struct cvmx_pow_wq_int_cntx_s { 610 uint64_t reserved_28_63:36; 611 uint64_t tc_cnt:4; 612 uint64_t ds_cnt:12; 613 uint64_t iq_cnt:12; 614 } s; 615 struct cvmx_pow_wq_int_cntx_cn30xx { 616 uint64_t reserved_28_63:36; 617 uint64_t tc_cnt:4; 618 uint64_t reserved_19_23:5; 619 uint64_t ds_cnt:7; 620 uint64_t reserved_7_11:5; 621 uint64_t iq_cnt:7; 622 } cn30xx; 623 struct cvmx_pow_wq_int_cntx_cn31xx { 624 uint64_t reserved_28_63:36; 625 uint64_t tc_cnt:4; 626 uint64_t reserved_21_23:3; 627 uint64_t ds_cnt:9; 628 uint64_t reserved_9_11:3; 629 uint64_t iq_cnt:9; 630 } cn31xx; 631 struct cvmx_pow_wq_int_cntx_s cn38xx; 632 struct cvmx_pow_wq_int_cntx_s cn38xxp2; 633 struct cvmx_pow_wq_int_cntx_cn31xx cn50xx; 634 struct cvmx_pow_wq_int_cntx_cn52xx { 635 uint64_t reserved_28_63:36; 636 uint64_t tc_cnt:4; 637 uint64_t reserved_22_23:2; 638 uint64_t ds_cnt:10; 639 uint64_t reserved_10_11:2; 640 uint64_t iq_cnt:10; 641 } cn52xx; 642 struct cvmx_pow_wq_int_cntx_cn52xx cn52xxp1; 643 struct cvmx_pow_wq_int_cntx_s cn56xx; 644 struct cvmx_pow_wq_int_cntx_s cn56xxp1; 645 struct cvmx_pow_wq_int_cntx_s cn58xx; 646 struct cvmx_pow_wq_int_cntx_s cn58xxp1; 647 struct cvmx_pow_wq_int_cntx_cn63xx { 648 uint64_t reserved_28_63:36; 649 uint64_t tc_cnt:4; 650 uint64_t reserved_23_23:1; 651 uint64_t ds_cnt:11; 652 uint64_t reserved_11_11:1; 653 uint64_t iq_cnt:11; 654 } cn63xx; 655 struct cvmx_pow_wq_int_cntx_cn63xx cn63xxp1; 656 }; 657 658 union cvmx_pow_wq_int_pc { 659 uint64_t u64; 660 struct cvmx_pow_wq_int_pc_s { 661 uint64_t reserved_60_63:4; 662 uint64_t pc:28; 663 uint64_t reserved_28_31:4; 664 uint64_t pc_thr:20; 665 uint64_t reserved_0_7:8; 666 } s; 667 struct cvmx_pow_wq_int_pc_s cn30xx; 668 struct cvmx_pow_wq_int_pc_s cn31xx; 669 struct cvmx_pow_wq_int_pc_s cn38xx; 670 struct cvmx_pow_wq_int_pc_s cn38xxp2; 671 struct cvmx_pow_wq_int_pc_s cn50xx; 672 struct cvmx_pow_wq_int_pc_s cn52xx; 673 struct cvmx_pow_wq_int_pc_s cn52xxp1; 674 struct cvmx_pow_wq_int_pc_s cn56xx; 675 struct cvmx_pow_wq_int_pc_s cn56xxp1; 676 struct cvmx_pow_wq_int_pc_s cn58xx; 677 struct cvmx_pow_wq_int_pc_s cn58xxp1; 678 struct cvmx_pow_wq_int_pc_s cn63xx; 679 struct cvmx_pow_wq_int_pc_s cn63xxp1; 680 }; 681 682 union cvmx_pow_wq_int_thrx { 683 uint64_t u64; 684 struct cvmx_pow_wq_int_thrx_s { 685 uint64_t reserved_29_63:35; 686 uint64_t tc_en:1; 687 uint64_t tc_thr:4; 688 uint64_t reserved_23_23:1; 689 uint64_t ds_thr:11; 690 uint64_t reserved_11_11:1; 691 uint64_t iq_thr:11; 692 } s; 693 struct cvmx_pow_wq_int_thrx_cn30xx { 694 uint64_t reserved_29_63:35; 695 uint64_t tc_en:1; 696 uint64_t tc_thr:4; 697 uint64_t reserved_18_23:6; 698 uint64_t ds_thr:6; 699 uint64_t reserved_6_11:6; 700 uint64_t iq_thr:6; 701 } cn30xx; 702 struct cvmx_pow_wq_int_thrx_cn31xx { 703 uint64_t reserved_29_63:35; 704 uint64_t tc_en:1; 705 uint64_t tc_thr:4; 706 uint64_t reserved_20_23:4; 707 uint64_t ds_thr:8; 708 uint64_t reserved_8_11:4; 709 uint64_t iq_thr:8; 710 } cn31xx; 711 struct cvmx_pow_wq_int_thrx_s cn38xx; 712 struct cvmx_pow_wq_int_thrx_s cn38xxp2; 713 struct cvmx_pow_wq_int_thrx_cn31xx cn50xx; 714 struct cvmx_pow_wq_int_thrx_cn52xx { 715 uint64_t reserved_29_63:35; 716 uint64_t tc_en:1; 717 uint64_t tc_thr:4; 718 uint64_t reserved_21_23:3; 719 uint64_t ds_thr:9; 720 uint64_t reserved_9_11:3; 721 uint64_t iq_thr:9; 722 } cn52xx; 723 struct cvmx_pow_wq_int_thrx_cn52xx cn52xxp1; 724 struct cvmx_pow_wq_int_thrx_s cn56xx; 725 struct cvmx_pow_wq_int_thrx_s cn56xxp1; 726 struct cvmx_pow_wq_int_thrx_s cn58xx; 727 struct cvmx_pow_wq_int_thrx_s cn58xxp1; 728 struct cvmx_pow_wq_int_thrx_cn63xx { 729 uint64_t reserved_29_63:35; 730 uint64_t tc_en:1; 731 uint64_t tc_thr:4; 732 uint64_t reserved_22_23:2; 733 uint64_t ds_thr:10; 734 uint64_t reserved_10_11:2; 735 uint64_t iq_thr:10; 736 } cn63xx; 737 struct cvmx_pow_wq_int_thrx_cn63xx cn63xxp1; 738 }; 739 740 union cvmx_pow_ws_pcx { 741 uint64_t u64; 742 struct cvmx_pow_ws_pcx_s { 743 uint64_t reserved_32_63:32; 744 uint64_t ws_pc:32; 745 } s; 746 struct cvmx_pow_ws_pcx_s cn30xx; 747 struct cvmx_pow_ws_pcx_s cn31xx; 748 struct cvmx_pow_ws_pcx_s cn38xx; 749 struct cvmx_pow_ws_pcx_s cn38xxp2; 750 struct cvmx_pow_ws_pcx_s cn50xx; 751 struct cvmx_pow_ws_pcx_s cn52xx; 752 struct cvmx_pow_ws_pcx_s cn52xxp1; 753 struct cvmx_pow_ws_pcx_s cn56xx; 754 struct cvmx_pow_ws_pcx_s cn56xxp1; 755 struct cvmx_pow_ws_pcx_s cn58xx; 756 struct cvmx_pow_ws_pcx_s cn58xxp1; 757 struct cvmx_pow_ws_pcx_s cn63xx; 758 struct cvmx_pow_ws_pcx_s cn63xxp1; 759 }; 760 761 #endif 762