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