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_IOB_DEFS_H__ 29 #define __CVMX_IOB_DEFS_H__ 30 31 #define CVMX_IOB_BIST_STATUS (CVMX_ADD_IO_SEG(0x00011800F00007F8ull)) 32 #define CVMX_IOB_CTL_STATUS (CVMX_ADD_IO_SEG(0x00011800F0000050ull)) 33 #define CVMX_IOB_DWB_PRI_CNT (CVMX_ADD_IO_SEG(0x00011800F0000028ull)) 34 #define CVMX_IOB_FAU_TIMEOUT (CVMX_ADD_IO_SEG(0x00011800F0000000ull)) 35 #define CVMX_IOB_I2C_PRI_CNT (CVMX_ADD_IO_SEG(0x00011800F0000010ull)) 36 #define CVMX_IOB_INB_CONTROL_MATCH (CVMX_ADD_IO_SEG(0x00011800F0000078ull)) 37 #define CVMX_IOB_INB_CONTROL_MATCH_ENB (CVMX_ADD_IO_SEG(0x00011800F0000088ull)) 38 #define CVMX_IOB_INB_DATA_MATCH (CVMX_ADD_IO_SEG(0x00011800F0000070ull)) 39 #define CVMX_IOB_INB_DATA_MATCH_ENB (CVMX_ADD_IO_SEG(0x00011800F0000080ull)) 40 #define CVMX_IOB_INT_ENB (CVMX_ADD_IO_SEG(0x00011800F0000060ull)) 41 #define CVMX_IOB_INT_SUM (CVMX_ADD_IO_SEG(0x00011800F0000058ull)) 42 #define CVMX_IOB_N2C_L2C_PRI_CNT (CVMX_ADD_IO_SEG(0x00011800F0000020ull)) 43 #define CVMX_IOB_N2C_RSP_PRI_CNT (CVMX_ADD_IO_SEG(0x00011800F0000008ull)) 44 #define CVMX_IOB_OUTB_COM_PRI_CNT (CVMX_ADD_IO_SEG(0x00011800F0000040ull)) 45 #define CVMX_IOB_OUTB_CONTROL_MATCH (CVMX_ADD_IO_SEG(0x00011800F0000098ull)) 46 #define CVMX_IOB_OUTB_CONTROL_MATCH_ENB (CVMX_ADD_IO_SEG(0x00011800F00000A8ull)) 47 #define CVMX_IOB_OUTB_DATA_MATCH (CVMX_ADD_IO_SEG(0x00011800F0000090ull)) 48 #define CVMX_IOB_OUTB_DATA_MATCH_ENB (CVMX_ADD_IO_SEG(0x00011800F00000A0ull)) 49 #define CVMX_IOB_OUTB_FPA_PRI_CNT (CVMX_ADD_IO_SEG(0x00011800F0000048ull)) 50 #define CVMX_IOB_OUTB_REQ_PRI_CNT (CVMX_ADD_IO_SEG(0x00011800F0000038ull)) 51 #define CVMX_IOB_P2C_REQ_PRI_CNT (CVMX_ADD_IO_SEG(0x00011800F0000018ull)) 52 #define CVMX_IOB_PKT_ERR (CVMX_ADD_IO_SEG(0x00011800F0000068ull)) 53 #define CVMX_IOB_TO_CMB_CREDITS (CVMX_ADD_IO_SEG(0x00011800F00000B0ull)) 54 55 union cvmx_iob_bist_status { 56 uint64_t u64; 57 struct cvmx_iob_bist_status_s { 58 uint64_t reserved_23_63:41; 59 uint64_t xmdfif:1; 60 uint64_t xmcfif:1; 61 uint64_t iorfif:1; 62 uint64_t rsdfif:1; 63 uint64_t iocfif:1; 64 uint64_t icnrcb:1; 65 uint64_t icr0:1; 66 uint64_t icr1:1; 67 uint64_t icnr1:1; 68 uint64_t icnr0:1; 69 uint64_t ibdr0:1; 70 uint64_t ibdr1:1; 71 uint64_t ibr0:1; 72 uint64_t ibr1:1; 73 uint64_t icnrt:1; 74 uint64_t ibrq0:1; 75 uint64_t ibrq1:1; 76 uint64_t icrn0:1; 77 uint64_t icrn1:1; 78 uint64_t icrp0:1; 79 uint64_t icrp1:1; 80 uint64_t ibd:1; 81 uint64_t icd:1; 82 } s; 83 struct cvmx_iob_bist_status_cn30xx { 84 uint64_t reserved_18_63:46; 85 uint64_t icnrcb:1; 86 uint64_t icr0:1; 87 uint64_t icr1:1; 88 uint64_t icnr1:1; 89 uint64_t icnr0:1; 90 uint64_t ibdr0:1; 91 uint64_t ibdr1:1; 92 uint64_t ibr0:1; 93 uint64_t ibr1:1; 94 uint64_t icnrt:1; 95 uint64_t ibrq0:1; 96 uint64_t ibrq1:1; 97 uint64_t icrn0:1; 98 uint64_t icrn1:1; 99 uint64_t icrp0:1; 100 uint64_t icrp1:1; 101 uint64_t ibd:1; 102 uint64_t icd:1; 103 } cn30xx; 104 struct cvmx_iob_bist_status_cn30xx cn31xx; 105 struct cvmx_iob_bist_status_cn30xx cn38xx; 106 struct cvmx_iob_bist_status_cn30xx cn38xxp2; 107 struct cvmx_iob_bist_status_cn30xx cn50xx; 108 struct cvmx_iob_bist_status_cn30xx cn52xx; 109 struct cvmx_iob_bist_status_cn30xx cn52xxp1; 110 struct cvmx_iob_bist_status_cn30xx cn56xx; 111 struct cvmx_iob_bist_status_cn30xx cn56xxp1; 112 struct cvmx_iob_bist_status_cn30xx cn58xx; 113 struct cvmx_iob_bist_status_cn30xx cn58xxp1; 114 struct cvmx_iob_bist_status_s cn63xx; 115 struct cvmx_iob_bist_status_s cn63xxp1; 116 }; 117 118 union cvmx_iob_ctl_status { 119 uint64_t u64; 120 struct cvmx_iob_ctl_status_s { 121 uint64_t reserved_10_63:54; 122 uint64_t xmc_per:4; 123 uint64_t rr_mode:1; 124 uint64_t outb_mat:1; 125 uint64_t inb_mat:1; 126 uint64_t pko_enb:1; 127 uint64_t dwb_enb:1; 128 uint64_t fau_end:1; 129 } s; 130 struct cvmx_iob_ctl_status_cn30xx { 131 uint64_t reserved_5_63:59; 132 uint64_t outb_mat:1; 133 uint64_t inb_mat:1; 134 uint64_t pko_enb:1; 135 uint64_t dwb_enb:1; 136 uint64_t fau_end:1; 137 } cn30xx; 138 struct cvmx_iob_ctl_status_cn30xx cn31xx; 139 struct cvmx_iob_ctl_status_cn30xx cn38xx; 140 struct cvmx_iob_ctl_status_cn30xx cn38xxp2; 141 struct cvmx_iob_ctl_status_cn30xx cn50xx; 142 struct cvmx_iob_ctl_status_cn52xx { 143 uint64_t reserved_6_63:58; 144 uint64_t rr_mode:1; 145 uint64_t outb_mat:1; 146 uint64_t inb_mat:1; 147 uint64_t pko_enb:1; 148 uint64_t dwb_enb:1; 149 uint64_t fau_end:1; 150 } cn52xx; 151 struct cvmx_iob_ctl_status_cn30xx cn52xxp1; 152 struct cvmx_iob_ctl_status_cn30xx cn56xx; 153 struct cvmx_iob_ctl_status_cn30xx cn56xxp1; 154 struct cvmx_iob_ctl_status_cn30xx cn58xx; 155 struct cvmx_iob_ctl_status_cn30xx cn58xxp1; 156 struct cvmx_iob_ctl_status_s cn63xx; 157 struct cvmx_iob_ctl_status_s cn63xxp1; 158 }; 159 160 union cvmx_iob_dwb_pri_cnt { 161 uint64_t u64; 162 struct cvmx_iob_dwb_pri_cnt_s { 163 uint64_t reserved_16_63:48; 164 uint64_t cnt_enb:1; 165 uint64_t cnt_val:15; 166 } s; 167 struct cvmx_iob_dwb_pri_cnt_s cn38xx; 168 struct cvmx_iob_dwb_pri_cnt_s cn38xxp2; 169 struct cvmx_iob_dwb_pri_cnt_s cn52xx; 170 struct cvmx_iob_dwb_pri_cnt_s cn52xxp1; 171 struct cvmx_iob_dwb_pri_cnt_s cn56xx; 172 struct cvmx_iob_dwb_pri_cnt_s cn56xxp1; 173 struct cvmx_iob_dwb_pri_cnt_s cn58xx; 174 struct cvmx_iob_dwb_pri_cnt_s cn58xxp1; 175 struct cvmx_iob_dwb_pri_cnt_s cn63xx; 176 struct cvmx_iob_dwb_pri_cnt_s cn63xxp1; 177 }; 178 179 union cvmx_iob_fau_timeout { 180 uint64_t u64; 181 struct cvmx_iob_fau_timeout_s { 182 uint64_t reserved_13_63:51; 183 uint64_t tout_enb:1; 184 uint64_t tout_val:12; 185 } s; 186 struct cvmx_iob_fau_timeout_s cn30xx; 187 struct cvmx_iob_fau_timeout_s cn31xx; 188 struct cvmx_iob_fau_timeout_s cn38xx; 189 struct cvmx_iob_fau_timeout_s cn38xxp2; 190 struct cvmx_iob_fau_timeout_s cn50xx; 191 struct cvmx_iob_fau_timeout_s cn52xx; 192 struct cvmx_iob_fau_timeout_s cn52xxp1; 193 struct cvmx_iob_fau_timeout_s cn56xx; 194 struct cvmx_iob_fau_timeout_s cn56xxp1; 195 struct cvmx_iob_fau_timeout_s cn58xx; 196 struct cvmx_iob_fau_timeout_s cn58xxp1; 197 struct cvmx_iob_fau_timeout_s cn63xx; 198 struct cvmx_iob_fau_timeout_s cn63xxp1; 199 }; 200 201 union cvmx_iob_i2c_pri_cnt { 202 uint64_t u64; 203 struct cvmx_iob_i2c_pri_cnt_s { 204 uint64_t reserved_16_63:48; 205 uint64_t cnt_enb:1; 206 uint64_t cnt_val:15; 207 } s; 208 struct cvmx_iob_i2c_pri_cnt_s cn38xx; 209 struct cvmx_iob_i2c_pri_cnt_s cn38xxp2; 210 struct cvmx_iob_i2c_pri_cnt_s cn52xx; 211 struct cvmx_iob_i2c_pri_cnt_s cn52xxp1; 212 struct cvmx_iob_i2c_pri_cnt_s cn56xx; 213 struct cvmx_iob_i2c_pri_cnt_s cn56xxp1; 214 struct cvmx_iob_i2c_pri_cnt_s cn58xx; 215 struct cvmx_iob_i2c_pri_cnt_s cn58xxp1; 216 struct cvmx_iob_i2c_pri_cnt_s cn63xx; 217 struct cvmx_iob_i2c_pri_cnt_s cn63xxp1; 218 }; 219 220 union cvmx_iob_inb_control_match { 221 uint64_t u64; 222 struct cvmx_iob_inb_control_match_s { 223 uint64_t reserved_29_63:35; 224 uint64_t mask:8; 225 uint64_t opc:4; 226 uint64_t dst:9; 227 uint64_t src:8; 228 } s; 229 struct cvmx_iob_inb_control_match_s cn30xx; 230 struct cvmx_iob_inb_control_match_s cn31xx; 231 struct cvmx_iob_inb_control_match_s cn38xx; 232 struct cvmx_iob_inb_control_match_s cn38xxp2; 233 struct cvmx_iob_inb_control_match_s cn50xx; 234 struct cvmx_iob_inb_control_match_s cn52xx; 235 struct cvmx_iob_inb_control_match_s cn52xxp1; 236 struct cvmx_iob_inb_control_match_s cn56xx; 237 struct cvmx_iob_inb_control_match_s cn56xxp1; 238 struct cvmx_iob_inb_control_match_s cn58xx; 239 struct cvmx_iob_inb_control_match_s cn58xxp1; 240 struct cvmx_iob_inb_control_match_s cn63xx; 241 struct cvmx_iob_inb_control_match_s cn63xxp1; 242 }; 243 244 union cvmx_iob_inb_control_match_enb { 245 uint64_t u64; 246 struct cvmx_iob_inb_control_match_enb_s { 247 uint64_t reserved_29_63:35; 248 uint64_t mask:8; 249 uint64_t opc:4; 250 uint64_t dst:9; 251 uint64_t src:8; 252 } s; 253 struct cvmx_iob_inb_control_match_enb_s cn30xx; 254 struct cvmx_iob_inb_control_match_enb_s cn31xx; 255 struct cvmx_iob_inb_control_match_enb_s cn38xx; 256 struct cvmx_iob_inb_control_match_enb_s cn38xxp2; 257 struct cvmx_iob_inb_control_match_enb_s cn50xx; 258 struct cvmx_iob_inb_control_match_enb_s cn52xx; 259 struct cvmx_iob_inb_control_match_enb_s cn52xxp1; 260 struct cvmx_iob_inb_control_match_enb_s cn56xx; 261 struct cvmx_iob_inb_control_match_enb_s cn56xxp1; 262 struct cvmx_iob_inb_control_match_enb_s cn58xx; 263 struct cvmx_iob_inb_control_match_enb_s cn58xxp1; 264 struct cvmx_iob_inb_control_match_enb_s cn63xx; 265 struct cvmx_iob_inb_control_match_enb_s cn63xxp1; 266 }; 267 268 union cvmx_iob_inb_data_match { 269 uint64_t u64; 270 struct cvmx_iob_inb_data_match_s { 271 uint64_t data:64; 272 } s; 273 struct cvmx_iob_inb_data_match_s cn30xx; 274 struct cvmx_iob_inb_data_match_s cn31xx; 275 struct cvmx_iob_inb_data_match_s cn38xx; 276 struct cvmx_iob_inb_data_match_s cn38xxp2; 277 struct cvmx_iob_inb_data_match_s cn50xx; 278 struct cvmx_iob_inb_data_match_s cn52xx; 279 struct cvmx_iob_inb_data_match_s cn52xxp1; 280 struct cvmx_iob_inb_data_match_s cn56xx; 281 struct cvmx_iob_inb_data_match_s cn56xxp1; 282 struct cvmx_iob_inb_data_match_s cn58xx; 283 struct cvmx_iob_inb_data_match_s cn58xxp1; 284 struct cvmx_iob_inb_data_match_s cn63xx; 285 struct cvmx_iob_inb_data_match_s cn63xxp1; 286 }; 287 288 union cvmx_iob_inb_data_match_enb { 289 uint64_t u64; 290 struct cvmx_iob_inb_data_match_enb_s { 291 uint64_t data:64; 292 } s; 293 struct cvmx_iob_inb_data_match_enb_s cn30xx; 294 struct cvmx_iob_inb_data_match_enb_s cn31xx; 295 struct cvmx_iob_inb_data_match_enb_s cn38xx; 296 struct cvmx_iob_inb_data_match_enb_s cn38xxp2; 297 struct cvmx_iob_inb_data_match_enb_s cn50xx; 298 struct cvmx_iob_inb_data_match_enb_s cn52xx; 299 struct cvmx_iob_inb_data_match_enb_s cn52xxp1; 300 struct cvmx_iob_inb_data_match_enb_s cn56xx; 301 struct cvmx_iob_inb_data_match_enb_s cn56xxp1; 302 struct cvmx_iob_inb_data_match_enb_s cn58xx; 303 struct cvmx_iob_inb_data_match_enb_s cn58xxp1; 304 struct cvmx_iob_inb_data_match_enb_s cn63xx; 305 struct cvmx_iob_inb_data_match_enb_s cn63xxp1; 306 }; 307 308 union cvmx_iob_int_enb { 309 uint64_t u64; 310 struct cvmx_iob_int_enb_s { 311 uint64_t reserved_6_63:58; 312 uint64_t p_dat:1; 313 uint64_t np_dat:1; 314 uint64_t p_eop:1; 315 uint64_t p_sop:1; 316 uint64_t np_eop:1; 317 uint64_t np_sop:1; 318 } s; 319 struct cvmx_iob_int_enb_cn30xx { 320 uint64_t reserved_4_63:60; 321 uint64_t p_eop:1; 322 uint64_t p_sop:1; 323 uint64_t np_eop:1; 324 uint64_t np_sop:1; 325 } cn30xx; 326 struct cvmx_iob_int_enb_cn30xx cn31xx; 327 struct cvmx_iob_int_enb_cn30xx cn38xx; 328 struct cvmx_iob_int_enb_cn30xx cn38xxp2; 329 struct cvmx_iob_int_enb_s cn50xx; 330 struct cvmx_iob_int_enb_s cn52xx; 331 struct cvmx_iob_int_enb_s cn52xxp1; 332 struct cvmx_iob_int_enb_s cn56xx; 333 struct cvmx_iob_int_enb_s cn56xxp1; 334 struct cvmx_iob_int_enb_s cn58xx; 335 struct cvmx_iob_int_enb_s cn58xxp1; 336 struct cvmx_iob_int_enb_s cn63xx; 337 struct cvmx_iob_int_enb_s cn63xxp1; 338 }; 339 340 union cvmx_iob_int_sum { 341 uint64_t u64; 342 struct cvmx_iob_int_sum_s { 343 uint64_t reserved_6_63:58; 344 uint64_t p_dat:1; 345 uint64_t np_dat:1; 346 uint64_t p_eop:1; 347 uint64_t p_sop:1; 348 uint64_t np_eop:1; 349 uint64_t np_sop:1; 350 } s; 351 struct cvmx_iob_int_sum_cn30xx { 352 uint64_t reserved_4_63:60; 353 uint64_t p_eop:1; 354 uint64_t p_sop:1; 355 uint64_t np_eop:1; 356 uint64_t np_sop:1; 357 } cn30xx; 358 struct cvmx_iob_int_sum_cn30xx cn31xx; 359 struct cvmx_iob_int_sum_cn30xx cn38xx; 360 struct cvmx_iob_int_sum_cn30xx cn38xxp2; 361 struct cvmx_iob_int_sum_s cn50xx; 362 struct cvmx_iob_int_sum_s cn52xx; 363 struct cvmx_iob_int_sum_s cn52xxp1; 364 struct cvmx_iob_int_sum_s cn56xx; 365 struct cvmx_iob_int_sum_s cn56xxp1; 366 struct cvmx_iob_int_sum_s cn58xx; 367 struct cvmx_iob_int_sum_s cn58xxp1; 368 struct cvmx_iob_int_sum_s cn63xx; 369 struct cvmx_iob_int_sum_s cn63xxp1; 370 }; 371 372 union cvmx_iob_n2c_l2c_pri_cnt { 373 uint64_t u64; 374 struct cvmx_iob_n2c_l2c_pri_cnt_s { 375 uint64_t reserved_16_63:48; 376 uint64_t cnt_enb:1; 377 uint64_t cnt_val:15; 378 } s; 379 struct cvmx_iob_n2c_l2c_pri_cnt_s cn38xx; 380 struct cvmx_iob_n2c_l2c_pri_cnt_s cn38xxp2; 381 struct cvmx_iob_n2c_l2c_pri_cnt_s cn52xx; 382 struct cvmx_iob_n2c_l2c_pri_cnt_s cn52xxp1; 383 struct cvmx_iob_n2c_l2c_pri_cnt_s cn56xx; 384 struct cvmx_iob_n2c_l2c_pri_cnt_s cn56xxp1; 385 struct cvmx_iob_n2c_l2c_pri_cnt_s cn58xx; 386 struct cvmx_iob_n2c_l2c_pri_cnt_s cn58xxp1; 387 struct cvmx_iob_n2c_l2c_pri_cnt_s cn63xx; 388 struct cvmx_iob_n2c_l2c_pri_cnt_s cn63xxp1; 389 }; 390 391 union cvmx_iob_n2c_rsp_pri_cnt { 392 uint64_t u64; 393 struct cvmx_iob_n2c_rsp_pri_cnt_s { 394 uint64_t reserved_16_63:48; 395 uint64_t cnt_enb:1; 396 uint64_t cnt_val:15; 397 } s; 398 struct cvmx_iob_n2c_rsp_pri_cnt_s cn38xx; 399 struct cvmx_iob_n2c_rsp_pri_cnt_s cn38xxp2; 400 struct cvmx_iob_n2c_rsp_pri_cnt_s cn52xx; 401 struct cvmx_iob_n2c_rsp_pri_cnt_s cn52xxp1; 402 struct cvmx_iob_n2c_rsp_pri_cnt_s cn56xx; 403 struct cvmx_iob_n2c_rsp_pri_cnt_s cn56xxp1; 404 struct cvmx_iob_n2c_rsp_pri_cnt_s cn58xx; 405 struct cvmx_iob_n2c_rsp_pri_cnt_s cn58xxp1; 406 struct cvmx_iob_n2c_rsp_pri_cnt_s cn63xx; 407 struct cvmx_iob_n2c_rsp_pri_cnt_s cn63xxp1; 408 }; 409 410 union cvmx_iob_outb_com_pri_cnt { 411 uint64_t u64; 412 struct cvmx_iob_outb_com_pri_cnt_s { 413 uint64_t reserved_16_63:48; 414 uint64_t cnt_enb:1; 415 uint64_t cnt_val:15; 416 } s; 417 struct cvmx_iob_outb_com_pri_cnt_s cn38xx; 418 struct cvmx_iob_outb_com_pri_cnt_s cn38xxp2; 419 struct cvmx_iob_outb_com_pri_cnt_s cn52xx; 420 struct cvmx_iob_outb_com_pri_cnt_s cn52xxp1; 421 struct cvmx_iob_outb_com_pri_cnt_s cn56xx; 422 struct cvmx_iob_outb_com_pri_cnt_s cn56xxp1; 423 struct cvmx_iob_outb_com_pri_cnt_s cn58xx; 424 struct cvmx_iob_outb_com_pri_cnt_s cn58xxp1; 425 struct cvmx_iob_outb_com_pri_cnt_s cn63xx; 426 struct cvmx_iob_outb_com_pri_cnt_s cn63xxp1; 427 }; 428 429 union cvmx_iob_outb_control_match { 430 uint64_t u64; 431 struct cvmx_iob_outb_control_match_s { 432 uint64_t reserved_26_63:38; 433 uint64_t mask:8; 434 uint64_t eot:1; 435 uint64_t dst:8; 436 uint64_t src:9; 437 } s; 438 struct cvmx_iob_outb_control_match_s cn30xx; 439 struct cvmx_iob_outb_control_match_s cn31xx; 440 struct cvmx_iob_outb_control_match_s cn38xx; 441 struct cvmx_iob_outb_control_match_s cn38xxp2; 442 struct cvmx_iob_outb_control_match_s cn50xx; 443 struct cvmx_iob_outb_control_match_s cn52xx; 444 struct cvmx_iob_outb_control_match_s cn52xxp1; 445 struct cvmx_iob_outb_control_match_s cn56xx; 446 struct cvmx_iob_outb_control_match_s cn56xxp1; 447 struct cvmx_iob_outb_control_match_s cn58xx; 448 struct cvmx_iob_outb_control_match_s cn58xxp1; 449 struct cvmx_iob_outb_control_match_s cn63xx; 450 struct cvmx_iob_outb_control_match_s cn63xxp1; 451 }; 452 453 union cvmx_iob_outb_control_match_enb { 454 uint64_t u64; 455 struct cvmx_iob_outb_control_match_enb_s { 456 uint64_t reserved_26_63:38; 457 uint64_t mask:8; 458 uint64_t eot:1; 459 uint64_t dst:8; 460 uint64_t src:9; 461 } s; 462 struct cvmx_iob_outb_control_match_enb_s cn30xx; 463 struct cvmx_iob_outb_control_match_enb_s cn31xx; 464 struct cvmx_iob_outb_control_match_enb_s cn38xx; 465 struct cvmx_iob_outb_control_match_enb_s cn38xxp2; 466 struct cvmx_iob_outb_control_match_enb_s cn50xx; 467 struct cvmx_iob_outb_control_match_enb_s cn52xx; 468 struct cvmx_iob_outb_control_match_enb_s cn52xxp1; 469 struct cvmx_iob_outb_control_match_enb_s cn56xx; 470 struct cvmx_iob_outb_control_match_enb_s cn56xxp1; 471 struct cvmx_iob_outb_control_match_enb_s cn58xx; 472 struct cvmx_iob_outb_control_match_enb_s cn58xxp1; 473 struct cvmx_iob_outb_control_match_enb_s cn63xx; 474 struct cvmx_iob_outb_control_match_enb_s cn63xxp1; 475 }; 476 477 union cvmx_iob_outb_data_match { 478 uint64_t u64; 479 struct cvmx_iob_outb_data_match_s { 480 uint64_t data:64; 481 } s; 482 struct cvmx_iob_outb_data_match_s cn30xx; 483 struct cvmx_iob_outb_data_match_s cn31xx; 484 struct cvmx_iob_outb_data_match_s cn38xx; 485 struct cvmx_iob_outb_data_match_s cn38xxp2; 486 struct cvmx_iob_outb_data_match_s cn50xx; 487 struct cvmx_iob_outb_data_match_s cn52xx; 488 struct cvmx_iob_outb_data_match_s cn52xxp1; 489 struct cvmx_iob_outb_data_match_s cn56xx; 490 struct cvmx_iob_outb_data_match_s cn56xxp1; 491 struct cvmx_iob_outb_data_match_s cn58xx; 492 struct cvmx_iob_outb_data_match_s cn58xxp1; 493 struct cvmx_iob_outb_data_match_s cn63xx; 494 struct cvmx_iob_outb_data_match_s cn63xxp1; 495 }; 496 497 union cvmx_iob_outb_data_match_enb { 498 uint64_t u64; 499 struct cvmx_iob_outb_data_match_enb_s { 500 uint64_t data:64; 501 } s; 502 struct cvmx_iob_outb_data_match_enb_s cn30xx; 503 struct cvmx_iob_outb_data_match_enb_s cn31xx; 504 struct cvmx_iob_outb_data_match_enb_s cn38xx; 505 struct cvmx_iob_outb_data_match_enb_s cn38xxp2; 506 struct cvmx_iob_outb_data_match_enb_s cn50xx; 507 struct cvmx_iob_outb_data_match_enb_s cn52xx; 508 struct cvmx_iob_outb_data_match_enb_s cn52xxp1; 509 struct cvmx_iob_outb_data_match_enb_s cn56xx; 510 struct cvmx_iob_outb_data_match_enb_s cn56xxp1; 511 struct cvmx_iob_outb_data_match_enb_s cn58xx; 512 struct cvmx_iob_outb_data_match_enb_s cn58xxp1; 513 struct cvmx_iob_outb_data_match_enb_s cn63xx; 514 struct cvmx_iob_outb_data_match_enb_s cn63xxp1; 515 }; 516 517 union cvmx_iob_outb_fpa_pri_cnt { 518 uint64_t u64; 519 struct cvmx_iob_outb_fpa_pri_cnt_s { 520 uint64_t reserved_16_63:48; 521 uint64_t cnt_enb:1; 522 uint64_t cnt_val:15; 523 } s; 524 struct cvmx_iob_outb_fpa_pri_cnt_s cn38xx; 525 struct cvmx_iob_outb_fpa_pri_cnt_s cn38xxp2; 526 struct cvmx_iob_outb_fpa_pri_cnt_s cn52xx; 527 struct cvmx_iob_outb_fpa_pri_cnt_s cn52xxp1; 528 struct cvmx_iob_outb_fpa_pri_cnt_s cn56xx; 529 struct cvmx_iob_outb_fpa_pri_cnt_s cn56xxp1; 530 struct cvmx_iob_outb_fpa_pri_cnt_s cn58xx; 531 struct cvmx_iob_outb_fpa_pri_cnt_s cn58xxp1; 532 struct cvmx_iob_outb_fpa_pri_cnt_s cn63xx; 533 struct cvmx_iob_outb_fpa_pri_cnt_s cn63xxp1; 534 }; 535 536 union cvmx_iob_outb_req_pri_cnt { 537 uint64_t u64; 538 struct cvmx_iob_outb_req_pri_cnt_s { 539 uint64_t reserved_16_63:48; 540 uint64_t cnt_enb:1; 541 uint64_t cnt_val:15; 542 } s; 543 struct cvmx_iob_outb_req_pri_cnt_s cn38xx; 544 struct cvmx_iob_outb_req_pri_cnt_s cn38xxp2; 545 struct cvmx_iob_outb_req_pri_cnt_s cn52xx; 546 struct cvmx_iob_outb_req_pri_cnt_s cn52xxp1; 547 struct cvmx_iob_outb_req_pri_cnt_s cn56xx; 548 struct cvmx_iob_outb_req_pri_cnt_s cn56xxp1; 549 struct cvmx_iob_outb_req_pri_cnt_s cn58xx; 550 struct cvmx_iob_outb_req_pri_cnt_s cn58xxp1; 551 struct cvmx_iob_outb_req_pri_cnt_s cn63xx; 552 struct cvmx_iob_outb_req_pri_cnt_s cn63xxp1; 553 }; 554 555 union cvmx_iob_p2c_req_pri_cnt { 556 uint64_t u64; 557 struct cvmx_iob_p2c_req_pri_cnt_s { 558 uint64_t reserved_16_63:48; 559 uint64_t cnt_enb:1; 560 uint64_t cnt_val:15; 561 } s; 562 struct cvmx_iob_p2c_req_pri_cnt_s cn38xx; 563 struct cvmx_iob_p2c_req_pri_cnt_s cn38xxp2; 564 struct cvmx_iob_p2c_req_pri_cnt_s cn52xx; 565 struct cvmx_iob_p2c_req_pri_cnt_s cn52xxp1; 566 struct cvmx_iob_p2c_req_pri_cnt_s cn56xx; 567 struct cvmx_iob_p2c_req_pri_cnt_s cn56xxp1; 568 struct cvmx_iob_p2c_req_pri_cnt_s cn58xx; 569 struct cvmx_iob_p2c_req_pri_cnt_s cn58xxp1; 570 struct cvmx_iob_p2c_req_pri_cnt_s cn63xx; 571 struct cvmx_iob_p2c_req_pri_cnt_s cn63xxp1; 572 }; 573 574 union cvmx_iob_pkt_err { 575 uint64_t u64; 576 struct cvmx_iob_pkt_err_s { 577 uint64_t reserved_12_63:52; 578 uint64_t vport:6; 579 uint64_t port:6; 580 } s; 581 struct cvmx_iob_pkt_err_cn30xx { 582 uint64_t reserved_6_63:58; 583 uint64_t port:6; 584 } cn30xx; 585 struct cvmx_iob_pkt_err_cn30xx cn31xx; 586 struct cvmx_iob_pkt_err_cn30xx cn38xx; 587 struct cvmx_iob_pkt_err_cn30xx cn38xxp2; 588 struct cvmx_iob_pkt_err_cn30xx cn50xx; 589 struct cvmx_iob_pkt_err_cn30xx cn52xx; 590 struct cvmx_iob_pkt_err_cn30xx cn52xxp1; 591 struct cvmx_iob_pkt_err_cn30xx cn56xx; 592 struct cvmx_iob_pkt_err_cn30xx cn56xxp1; 593 struct cvmx_iob_pkt_err_cn30xx cn58xx; 594 struct cvmx_iob_pkt_err_cn30xx cn58xxp1; 595 struct cvmx_iob_pkt_err_s cn63xx; 596 struct cvmx_iob_pkt_err_s cn63xxp1; 597 }; 598 599 union cvmx_iob_to_cmb_credits { 600 uint64_t u64; 601 struct cvmx_iob_to_cmb_credits_s { 602 uint64_t reserved_9_63:55; 603 uint64_t pko_rd:3; 604 uint64_t ncb_rd:3; 605 uint64_t ncb_wr:3; 606 } s; 607 struct cvmx_iob_to_cmb_credits_s cn52xx; 608 struct cvmx_iob_to_cmb_credits_s cn63xx; 609 struct cvmx_iob_to_cmb_credits_s cn63xxp1; 610 }; 611 612 #endif 613