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-2018 Cavium, Inc. 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_ASXX_DEFS_H__ 29#define __CVMX_ASXX_DEFS_H__ 30 31#define CVMX_ASXX_GMII_RX_CLK_SET(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000180ull)) 32#define CVMX_ASXX_GMII_RX_DAT_SET(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000188ull)) 33#define CVMX_ASXX_INT_EN(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000018ull) + ((block_id) & 1) * 0x8000000ull) 34#define CVMX_ASXX_INT_REG(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000010ull) + ((block_id) & 1) * 0x8000000ull) 35#define CVMX_ASXX_MII_RX_DAT_SET(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000190ull)) 36#define CVMX_ASXX_PRT_LOOP(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000040ull) + ((block_id) & 1) * 0x8000000ull) 37#define CVMX_ASXX_RLD_BYPASS(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000248ull) + ((block_id) & 1) * 0x8000000ull) 38#define CVMX_ASXX_RLD_BYPASS_SETTING(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000250ull) + ((block_id) & 1) * 0x8000000ull) 39#define CVMX_ASXX_RLD_COMP(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000220ull) + ((block_id) & 1) * 0x8000000ull) 40#define CVMX_ASXX_RLD_DATA_DRV(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000218ull) + ((block_id) & 1) * 0x8000000ull) 41#define CVMX_ASXX_RLD_FCRAM_MODE(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000210ull) + ((block_id) & 1) * 0x8000000ull) 42#define CVMX_ASXX_RLD_NCTL_STRONG(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000230ull) + ((block_id) & 1) * 0x8000000ull) 43#define CVMX_ASXX_RLD_NCTL_WEAK(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000240ull) + ((block_id) & 1) * 0x8000000ull) 44#define CVMX_ASXX_RLD_PCTL_STRONG(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000228ull) + ((block_id) & 1) * 0x8000000ull) 45#define CVMX_ASXX_RLD_PCTL_WEAK(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000238ull) + ((block_id) & 1) * 0x8000000ull) 46#define CVMX_ASXX_RLD_SETTING(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000258ull) + ((block_id) & 1) * 0x8000000ull) 47#define CVMX_ASXX_RX_CLK_SETX(offset, block_id) (CVMX_ADD_IO_SEG(0x00011800B0000020ull) + (((offset) & 3) + ((block_id) & 1) * 0x1000000ull) * 8) 48#define CVMX_ASXX_RX_PRT_EN(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000000ull) + ((block_id) & 1) * 0x8000000ull) 49#define CVMX_ASXX_RX_WOL(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000100ull) + ((block_id) & 1) * 0x8000000ull) 50#define CVMX_ASXX_RX_WOL_MSK(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000108ull) + ((block_id) & 1) * 0x8000000ull) 51#define CVMX_ASXX_RX_WOL_POWOK(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000118ull) + ((block_id) & 1) * 0x8000000ull) 52#define CVMX_ASXX_RX_WOL_SIG(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000110ull) + ((block_id) & 1) * 0x8000000ull) 53#define CVMX_ASXX_TX_CLK_SETX(offset, block_id) (CVMX_ADD_IO_SEG(0x00011800B0000048ull) + (((offset) & 3) + ((block_id) & 1) * 0x1000000ull) * 8) 54#define CVMX_ASXX_TX_COMP_BYP(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000068ull) + ((block_id) & 1) * 0x8000000ull) 55#define CVMX_ASXX_TX_HI_WATERX(offset, block_id) (CVMX_ADD_IO_SEG(0x00011800B0000080ull) + (((offset) & 3) + ((block_id) & 1) * 0x1000000ull) * 8) 56#define CVMX_ASXX_TX_PRT_EN(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000008ull) + ((block_id) & 1) * 0x8000000ull) 57 58void __cvmx_interrupt_asxx_enable(int block); 59 60union cvmx_asxx_gmii_rx_clk_set { 61 uint64_t u64; 62 struct cvmx_asxx_gmii_rx_clk_set_s { 63#ifdef __BIG_ENDIAN_BITFIELD 64 uint64_t reserved_5_63:59; 65 uint64_t setting:5; 66#else 67 uint64_t setting:5; 68 uint64_t reserved_5_63:59; 69#endif 70 } s; 71 struct cvmx_asxx_gmii_rx_clk_set_s cn30xx; 72 struct cvmx_asxx_gmii_rx_clk_set_s cn31xx; 73 struct cvmx_asxx_gmii_rx_clk_set_s cn50xx; 74}; 75 76union cvmx_asxx_gmii_rx_dat_set { 77 uint64_t u64; 78 struct cvmx_asxx_gmii_rx_dat_set_s { 79#ifdef __BIG_ENDIAN_BITFIELD 80 uint64_t reserved_5_63:59; 81 uint64_t setting:5; 82#else 83 uint64_t setting:5; 84 uint64_t reserved_5_63:59; 85#endif 86 } s; 87 struct cvmx_asxx_gmii_rx_dat_set_s cn30xx; 88 struct cvmx_asxx_gmii_rx_dat_set_s cn31xx; 89 struct cvmx_asxx_gmii_rx_dat_set_s cn50xx; 90}; 91 92union cvmx_asxx_int_en { 93 uint64_t u64; 94 struct cvmx_asxx_int_en_s { 95#ifdef __BIG_ENDIAN_BITFIELD 96 uint64_t reserved_12_63:52; 97 uint64_t txpsh:4; 98 uint64_t txpop:4; 99 uint64_t ovrflw:4; 100#else 101 uint64_t ovrflw:4; 102 uint64_t txpop:4; 103 uint64_t txpsh:4; 104 uint64_t reserved_12_63:52; 105#endif 106 } s; 107 struct cvmx_asxx_int_en_cn30xx { 108#ifdef __BIG_ENDIAN_BITFIELD 109 uint64_t reserved_11_63:53; 110 uint64_t txpsh:3; 111 uint64_t reserved_7_7:1; 112 uint64_t txpop:3; 113 uint64_t reserved_3_3:1; 114 uint64_t ovrflw:3; 115#else 116 uint64_t ovrflw:3; 117 uint64_t reserved_3_3:1; 118 uint64_t txpop:3; 119 uint64_t reserved_7_7:1; 120 uint64_t txpsh:3; 121 uint64_t reserved_11_63:53; 122#endif 123 } cn30xx; 124 struct cvmx_asxx_int_en_cn30xx cn31xx; 125 struct cvmx_asxx_int_en_s cn38xx; 126 struct cvmx_asxx_int_en_s cn38xxp2; 127 struct cvmx_asxx_int_en_cn30xx cn50xx; 128 struct cvmx_asxx_int_en_s cn58xx; 129 struct cvmx_asxx_int_en_s cn58xxp1; 130}; 131 132union cvmx_asxx_int_reg { 133 uint64_t u64; 134 struct cvmx_asxx_int_reg_s { 135#ifdef __BIG_ENDIAN_BITFIELD 136 uint64_t reserved_12_63:52; 137 uint64_t txpsh:4; 138 uint64_t txpop:4; 139 uint64_t ovrflw:4; 140#else 141 uint64_t ovrflw:4; 142 uint64_t txpop:4; 143 uint64_t txpsh:4; 144 uint64_t reserved_12_63:52; 145#endif 146 } s; 147 struct cvmx_asxx_int_reg_cn30xx { 148#ifdef __BIG_ENDIAN_BITFIELD 149 uint64_t reserved_11_63:53; 150 uint64_t txpsh:3; 151 uint64_t reserved_7_7:1; 152 uint64_t txpop:3; 153 uint64_t reserved_3_3:1; 154 uint64_t ovrflw:3; 155#else 156 uint64_t ovrflw:3; 157 uint64_t reserved_3_3:1; 158 uint64_t txpop:3; 159 uint64_t reserved_7_7:1; 160 uint64_t txpsh:3; 161 uint64_t reserved_11_63:53; 162#endif 163 } cn30xx; 164 struct cvmx_asxx_int_reg_cn30xx cn31xx; 165 struct cvmx_asxx_int_reg_s cn38xx; 166 struct cvmx_asxx_int_reg_s cn38xxp2; 167 struct cvmx_asxx_int_reg_cn30xx cn50xx; 168 struct cvmx_asxx_int_reg_s cn58xx; 169 struct cvmx_asxx_int_reg_s cn58xxp1; 170}; 171 172union cvmx_asxx_mii_rx_dat_set { 173 uint64_t u64; 174 struct cvmx_asxx_mii_rx_dat_set_s { 175#ifdef __BIG_ENDIAN_BITFIELD 176 uint64_t reserved_5_63:59; 177 uint64_t setting:5; 178#else 179 uint64_t setting:5; 180 uint64_t reserved_5_63:59; 181#endif 182 } s; 183 struct cvmx_asxx_mii_rx_dat_set_s cn30xx; 184 struct cvmx_asxx_mii_rx_dat_set_s cn50xx; 185}; 186 187union cvmx_asxx_prt_loop { 188 uint64_t u64; 189 struct cvmx_asxx_prt_loop_s { 190#ifdef __BIG_ENDIAN_BITFIELD 191 uint64_t reserved_8_63:56; 192 uint64_t ext_loop:4; 193 uint64_t int_loop:4; 194#else 195 uint64_t int_loop:4; 196 uint64_t ext_loop:4; 197 uint64_t reserved_8_63:56; 198#endif 199 } s; 200 struct cvmx_asxx_prt_loop_cn30xx { 201#ifdef __BIG_ENDIAN_BITFIELD 202 uint64_t reserved_7_63:57; 203 uint64_t ext_loop:3; 204 uint64_t reserved_3_3:1; 205 uint64_t int_loop:3; 206#else 207 uint64_t int_loop:3; 208 uint64_t reserved_3_3:1; 209 uint64_t ext_loop:3; 210 uint64_t reserved_7_63:57; 211#endif 212 } cn30xx; 213 struct cvmx_asxx_prt_loop_cn30xx cn31xx; 214 struct cvmx_asxx_prt_loop_s cn38xx; 215 struct cvmx_asxx_prt_loop_s cn38xxp2; 216 struct cvmx_asxx_prt_loop_cn30xx cn50xx; 217 struct cvmx_asxx_prt_loop_s cn58xx; 218 struct cvmx_asxx_prt_loop_s cn58xxp1; 219}; 220 221union cvmx_asxx_rld_bypass { 222 uint64_t u64; 223 struct cvmx_asxx_rld_bypass_s { 224#ifdef __BIG_ENDIAN_BITFIELD 225 uint64_t reserved_1_63:63; 226 uint64_t bypass:1; 227#else 228 uint64_t bypass:1; 229 uint64_t reserved_1_63:63; 230#endif 231 } s; 232 struct cvmx_asxx_rld_bypass_s cn38xx; 233 struct cvmx_asxx_rld_bypass_s cn38xxp2; 234 struct cvmx_asxx_rld_bypass_s cn58xx; 235 struct cvmx_asxx_rld_bypass_s cn58xxp1; 236}; 237 238union cvmx_asxx_rld_bypass_setting { 239 uint64_t u64; 240 struct cvmx_asxx_rld_bypass_setting_s { 241#ifdef __BIG_ENDIAN_BITFIELD 242 uint64_t reserved_5_63:59; 243 uint64_t setting:5; 244#else 245 uint64_t setting:5; 246 uint64_t reserved_5_63:59; 247#endif 248 } s; 249 struct cvmx_asxx_rld_bypass_setting_s cn38xx; 250 struct cvmx_asxx_rld_bypass_setting_s cn38xxp2; 251 struct cvmx_asxx_rld_bypass_setting_s cn58xx; 252 struct cvmx_asxx_rld_bypass_setting_s cn58xxp1; 253}; 254 255union cvmx_asxx_rld_comp { 256 uint64_t u64; 257 struct cvmx_asxx_rld_comp_s { 258#ifdef __BIG_ENDIAN_BITFIELD 259 uint64_t reserved_9_63:55; 260 uint64_t pctl:5; 261 uint64_t nctl:4; 262#else 263 uint64_t nctl:4; 264 uint64_t pctl:5; 265 uint64_t reserved_9_63:55; 266#endif 267 } s; 268 struct cvmx_asxx_rld_comp_cn38xx { 269#ifdef __BIG_ENDIAN_BITFIELD 270 uint64_t reserved_8_63:56; 271 uint64_t pctl:4; 272 uint64_t nctl:4; 273#else 274 uint64_t nctl:4; 275 uint64_t pctl:4; 276 uint64_t reserved_8_63:56; 277#endif 278 } cn38xx; 279 struct cvmx_asxx_rld_comp_cn38xx cn38xxp2; 280 struct cvmx_asxx_rld_comp_s cn58xx; 281 struct cvmx_asxx_rld_comp_s cn58xxp1; 282}; 283 284union cvmx_asxx_rld_data_drv { 285 uint64_t u64; 286 struct cvmx_asxx_rld_data_drv_s { 287#ifdef __BIG_ENDIAN_BITFIELD 288 uint64_t reserved_8_63:56; 289 uint64_t pctl:4; 290 uint64_t nctl:4; 291#else 292 uint64_t nctl:4; 293 uint64_t pctl:4; 294 uint64_t reserved_8_63:56; 295#endif 296 } s; 297 struct cvmx_asxx_rld_data_drv_s cn38xx; 298 struct cvmx_asxx_rld_data_drv_s cn38xxp2; 299 struct cvmx_asxx_rld_data_drv_s cn58xx; 300 struct cvmx_asxx_rld_data_drv_s cn58xxp1; 301}; 302 303union cvmx_asxx_rld_fcram_mode { 304 uint64_t u64; 305 struct cvmx_asxx_rld_fcram_mode_s { 306#ifdef __BIG_ENDIAN_BITFIELD 307 uint64_t reserved_1_63:63; 308 uint64_t mode:1; 309#else 310 uint64_t mode:1; 311 uint64_t reserved_1_63:63; 312#endif 313 } s; 314 struct cvmx_asxx_rld_fcram_mode_s cn38xx; 315 struct cvmx_asxx_rld_fcram_mode_s cn38xxp2; 316}; 317 318union cvmx_asxx_rld_nctl_strong { 319 uint64_t u64; 320 struct cvmx_asxx_rld_nctl_strong_s { 321#ifdef __BIG_ENDIAN_BITFIELD 322 uint64_t reserved_5_63:59; 323 uint64_t nctl:5; 324#else 325 uint64_t nctl:5; 326 uint64_t reserved_5_63:59; 327#endif 328 } s; 329 struct cvmx_asxx_rld_nctl_strong_s cn38xx; 330 struct cvmx_asxx_rld_nctl_strong_s cn38xxp2; 331 struct cvmx_asxx_rld_nctl_strong_s cn58xx; 332 struct cvmx_asxx_rld_nctl_strong_s cn58xxp1; 333}; 334 335union cvmx_asxx_rld_nctl_weak { 336 uint64_t u64; 337 struct cvmx_asxx_rld_nctl_weak_s { 338#ifdef __BIG_ENDIAN_BITFIELD 339 uint64_t reserved_5_63:59; 340 uint64_t nctl:5; 341#else 342 uint64_t nctl:5; 343 uint64_t reserved_5_63:59; 344#endif 345 } s; 346 struct cvmx_asxx_rld_nctl_weak_s cn38xx; 347 struct cvmx_asxx_rld_nctl_weak_s cn38xxp2; 348 struct cvmx_asxx_rld_nctl_weak_s cn58xx; 349 struct cvmx_asxx_rld_nctl_weak_s cn58xxp1; 350}; 351 352union cvmx_asxx_rld_pctl_strong { 353 uint64_t u64; 354 struct cvmx_asxx_rld_pctl_strong_s { 355#ifdef __BIG_ENDIAN_BITFIELD 356 uint64_t reserved_5_63:59; 357 uint64_t pctl:5; 358#else 359 uint64_t pctl:5; 360 uint64_t reserved_5_63:59; 361#endif 362 } s; 363 struct cvmx_asxx_rld_pctl_strong_s cn38xx; 364 struct cvmx_asxx_rld_pctl_strong_s cn38xxp2; 365 struct cvmx_asxx_rld_pctl_strong_s cn58xx; 366 struct cvmx_asxx_rld_pctl_strong_s cn58xxp1; 367}; 368 369union cvmx_asxx_rld_pctl_weak { 370 uint64_t u64; 371 struct cvmx_asxx_rld_pctl_weak_s { 372#ifdef __BIG_ENDIAN_BITFIELD 373 uint64_t reserved_5_63:59; 374 uint64_t pctl:5; 375#else 376 uint64_t pctl:5; 377 uint64_t reserved_5_63:59; 378#endif 379 } s; 380 struct cvmx_asxx_rld_pctl_weak_s cn38xx; 381 struct cvmx_asxx_rld_pctl_weak_s cn38xxp2; 382 struct cvmx_asxx_rld_pctl_weak_s cn58xx; 383 struct cvmx_asxx_rld_pctl_weak_s cn58xxp1; 384}; 385 386union cvmx_asxx_rld_setting { 387 uint64_t u64; 388 struct cvmx_asxx_rld_setting_s { 389#ifdef __BIG_ENDIAN_BITFIELD 390 uint64_t reserved_13_63:51; 391 uint64_t dfaset:5; 392 uint64_t dfalag:1; 393 uint64_t dfalead:1; 394 uint64_t dfalock:1; 395 uint64_t setting:5; 396#else 397 uint64_t setting:5; 398 uint64_t dfalock:1; 399 uint64_t dfalead:1; 400 uint64_t dfalag:1; 401 uint64_t dfaset:5; 402 uint64_t reserved_13_63:51; 403#endif 404 } s; 405 struct cvmx_asxx_rld_setting_cn38xx { 406#ifdef __BIG_ENDIAN_BITFIELD 407 uint64_t reserved_5_63:59; 408 uint64_t setting:5; 409#else 410 uint64_t setting:5; 411 uint64_t reserved_5_63:59; 412#endif 413 } cn38xx; 414 struct cvmx_asxx_rld_setting_cn38xx cn38xxp2; 415 struct cvmx_asxx_rld_setting_s cn58xx; 416 struct cvmx_asxx_rld_setting_s cn58xxp1; 417}; 418 419union cvmx_asxx_rx_clk_setx { 420 uint64_t u64; 421 struct cvmx_asxx_rx_clk_setx_s { 422#ifdef __BIG_ENDIAN_BITFIELD 423 uint64_t reserved_5_63:59; 424 uint64_t setting:5; 425#else 426 uint64_t setting:5; 427 uint64_t reserved_5_63:59; 428#endif 429 } s; 430 struct cvmx_asxx_rx_clk_setx_s cn30xx; 431 struct cvmx_asxx_rx_clk_setx_s cn31xx; 432 struct cvmx_asxx_rx_clk_setx_s cn38xx; 433 struct cvmx_asxx_rx_clk_setx_s cn38xxp2; 434 struct cvmx_asxx_rx_clk_setx_s cn50xx; 435 struct cvmx_asxx_rx_clk_setx_s cn58xx; 436 struct cvmx_asxx_rx_clk_setx_s cn58xxp1; 437}; 438 439union cvmx_asxx_rx_prt_en { 440 uint64_t u64; 441 struct cvmx_asxx_rx_prt_en_s { 442#ifdef __BIG_ENDIAN_BITFIELD 443 uint64_t reserved_4_63:60; 444 uint64_t prt_en:4; 445#else 446 uint64_t prt_en:4; 447 uint64_t reserved_4_63:60; 448#endif 449 } s; 450 struct cvmx_asxx_rx_prt_en_cn30xx { 451#ifdef __BIG_ENDIAN_BITFIELD 452 uint64_t reserved_3_63:61; 453 uint64_t prt_en:3; 454#else 455 uint64_t prt_en:3; 456 uint64_t reserved_3_63:61; 457#endif 458 } cn30xx; 459 struct cvmx_asxx_rx_prt_en_cn30xx cn31xx; 460 struct cvmx_asxx_rx_prt_en_s cn38xx; 461 struct cvmx_asxx_rx_prt_en_s cn38xxp2; 462 struct cvmx_asxx_rx_prt_en_cn30xx cn50xx; 463 struct cvmx_asxx_rx_prt_en_s cn58xx; 464 struct cvmx_asxx_rx_prt_en_s cn58xxp1; 465}; 466 467union cvmx_asxx_rx_wol { 468 uint64_t u64; 469 struct cvmx_asxx_rx_wol_s { 470#ifdef __BIG_ENDIAN_BITFIELD 471 uint64_t reserved_2_63:62; 472 uint64_t status:1; 473 uint64_t enable:1; 474#else 475 uint64_t enable:1; 476 uint64_t status:1; 477 uint64_t reserved_2_63:62; 478#endif 479 } s; 480 struct cvmx_asxx_rx_wol_s cn38xx; 481 struct cvmx_asxx_rx_wol_s cn38xxp2; 482}; 483 484union cvmx_asxx_rx_wol_msk { 485 uint64_t u64; 486 struct cvmx_asxx_rx_wol_msk_s { 487#ifdef __BIG_ENDIAN_BITFIELD 488 uint64_t msk:64; 489#else 490 uint64_t msk:64; 491#endif 492 } s; 493 struct cvmx_asxx_rx_wol_msk_s cn38xx; 494 struct cvmx_asxx_rx_wol_msk_s cn38xxp2; 495}; 496 497union cvmx_asxx_rx_wol_powok { 498 uint64_t u64; 499 struct cvmx_asxx_rx_wol_powok_s { 500#ifdef __BIG_ENDIAN_BITFIELD 501 uint64_t reserved_1_63:63; 502 uint64_t powerok:1; 503#else 504 uint64_t powerok:1; 505 uint64_t reserved_1_63:63; 506#endif 507 } s; 508 struct cvmx_asxx_rx_wol_powok_s cn38xx; 509 struct cvmx_asxx_rx_wol_powok_s cn38xxp2; 510}; 511 512union cvmx_asxx_rx_wol_sig { 513 uint64_t u64; 514 struct cvmx_asxx_rx_wol_sig_s { 515#ifdef __BIG_ENDIAN_BITFIELD 516 uint64_t reserved_32_63:32; 517 uint64_t sig:32; 518#else 519 uint64_t sig:32; 520 uint64_t reserved_32_63:32; 521#endif 522 } s; 523 struct cvmx_asxx_rx_wol_sig_s cn38xx; 524 struct cvmx_asxx_rx_wol_sig_s cn38xxp2; 525}; 526 527union cvmx_asxx_tx_clk_setx { 528 uint64_t u64; 529 struct cvmx_asxx_tx_clk_setx_s { 530#ifdef __BIG_ENDIAN_BITFIELD 531 uint64_t reserved_5_63:59; 532 uint64_t setting:5; 533#else 534 uint64_t setting:5; 535 uint64_t reserved_5_63:59; 536#endif 537 } s; 538 struct cvmx_asxx_tx_clk_setx_s cn30xx; 539 struct cvmx_asxx_tx_clk_setx_s cn31xx; 540 struct cvmx_asxx_tx_clk_setx_s cn38xx; 541 struct cvmx_asxx_tx_clk_setx_s cn38xxp2; 542 struct cvmx_asxx_tx_clk_setx_s cn50xx; 543 struct cvmx_asxx_tx_clk_setx_s cn58xx; 544 struct cvmx_asxx_tx_clk_setx_s cn58xxp1; 545}; 546 547union cvmx_asxx_tx_comp_byp { 548 uint64_t u64; 549 struct cvmx_asxx_tx_comp_byp_s { 550#ifdef __BIG_ENDIAN_BITFIELD 551 uint64_t reserved_0_63:64; 552#else 553 uint64_t reserved_0_63:64; 554#endif 555 } s; 556 struct cvmx_asxx_tx_comp_byp_cn30xx { 557#ifdef __BIG_ENDIAN_BITFIELD 558 uint64_t reserved_9_63:55; 559 uint64_t bypass:1; 560 uint64_t pctl:4; 561 uint64_t nctl:4; 562#else 563 uint64_t nctl:4; 564 uint64_t pctl:4; 565 uint64_t bypass:1; 566 uint64_t reserved_9_63:55; 567#endif 568 } cn30xx; 569 struct cvmx_asxx_tx_comp_byp_cn30xx cn31xx; 570 struct cvmx_asxx_tx_comp_byp_cn38xx { 571#ifdef __BIG_ENDIAN_BITFIELD 572 uint64_t reserved_8_63:56; 573 uint64_t pctl:4; 574 uint64_t nctl:4; 575#else 576 uint64_t nctl:4; 577 uint64_t pctl:4; 578 uint64_t reserved_8_63:56; 579#endif 580 } cn38xx; 581 struct cvmx_asxx_tx_comp_byp_cn38xx cn38xxp2; 582 struct cvmx_asxx_tx_comp_byp_cn50xx { 583#ifdef __BIG_ENDIAN_BITFIELD 584 uint64_t reserved_17_63:47; 585 uint64_t bypass:1; 586 uint64_t reserved_13_15:3; 587 uint64_t pctl:5; 588 uint64_t reserved_5_7:3; 589 uint64_t nctl:5; 590#else 591 uint64_t nctl:5; 592 uint64_t reserved_5_7:3; 593 uint64_t pctl:5; 594 uint64_t reserved_13_15:3; 595 uint64_t bypass:1; 596 uint64_t reserved_17_63:47; 597#endif 598 } cn50xx; 599 struct cvmx_asxx_tx_comp_byp_cn58xx { 600#ifdef __BIG_ENDIAN_BITFIELD 601 uint64_t reserved_13_63:51; 602 uint64_t pctl:5; 603 uint64_t reserved_5_7:3; 604 uint64_t nctl:5; 605#else 606 uint64_t nctl:5; 607 uint64_t reserved_5_7:3; 608 uint64_t pctl:5; 609 uint64_t reserved_13_63:51; 610#endif 611 } cn58xx; 612 struct cvmx_asxx_tx_comp_byp_cn58xx cn58xxp1; 613}; 614 615union cvmx_asxx_tx_hi_waterx { 616 uint64_t u64; 617 struct cvmx_asxx_tx_hi_waterx_s { 618#ifdef __BIG_ENDIAN_BITFIELD 619 uint64_t reserved_4_63:60; 620 uint64_t mark:4; 621#else 622 uint64_t mark:4; 623 uint64_t reserved_4_63:60; 624#endif 625 } s; 626 struct cvmx_asxx_tx_hi_waterx_cn30xx { 627#ifdef __BIG_ENDIAN_BITFIELD 628 uint64_t reserved_3_63:61; 629 uint64_t mark:3; 630#else 631 uint64_t mark:3; 632 uint64_t reserved_3_63:61; 633#endif 634 } cn30xx; 635 struct cvmx_asxx_tx_hi_waterx_cn30xx cn31xx; 636 struct cvmx_asxx_tx_hi_waterx_s cn38xx; 637 struct cvmx_asxx_tx_hi_waterx_s cn38xxp2; 638 struct cvmx_asxx_tx_hi_waterx_cn30xx cn50xx; 639 struct cvmx_asxx_tx_hi_waterx_s cn58xx; 640 struct cvmx_asxx_tx_hi_waterx_s cn58xxp1; 641}; 642 643union cvmx_asxx_tx_prt_en { 644 uint64_t u64; 645 struct cvmx_asxx_tx_prt_en_s { 646#ifdef __BIG_ENDIAN_BITFIELD 647 uint64_t reserved_4_63:60; 648 uint64_t prt_en:4; 649#else 650 uint64_t prt_en:4; 651 uint64_t reserved_4_63:60; 652#endif 653 } s; 654 struct cvmx_asxx_tx_prt_en_cn30xx { 655#ifdef __BIG_ENDIAN_BITFIELD 656 uint64_t reserved_3_63:61; 657 uint64_t prt_en:3; 658#else 659 uint64_t prt_en:3; 660 uint64_t reserved_3_63:61; 661#endif 662 } cn30xx; 663 struct cvmx_asxx_tx_prt_en_cn30xx cn31xx; 664 struct cvmx_asxx_tx_prt_en_s cn38xx; 665 struct cvmx_asxx_tx_prt_en_s cn38xxp2; 666 struct cvmx_asxx_tx_prt_en_cn30xx cn50xx; 667 struct cvmx_asxx_tx_prt_en_s cn58xx; 668 struct cvmx_asxx_tx_prt_en_s cn58xxp1; 669}; 670 671#endif 672