cvmx-iob-defs.h revision 215976
1/***********************license start*************** 2 * Copyright (c) 2003-2010 Cavium Networks (support@cavium.com). All rights 3 * reserved. 4 * 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions are 8 * met: 9 * 10 * * Redistributions of source code must retain the above copyright 11 * notice, this list of conditions and the following disclaimer. 12 * 13 * * Redistributions in binary form must reproduce the above 14 * copyright notice, this list of conditions and the following 15 * disclaimer in the documentation and/or other materials provided 16 * with the distribution. 17 18 * * Neither the name of Cavium Networks nor the names of 19 * its contributors may be used to endorse or promote products 20 * derived from this software without specific prior written 21 * permission. 22 23 * This Software, including technical data, may be subject to U.S. export control 24 * laws, including the U.S. Export Administration Act and its associated 25 * regulations, and may be subject to export or import regulations in other 26 * countries. 27 28 * TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE SOFTWARE IS PROVIDED "AS IS" 29 * AND WITH ALL FAULTS AND CAVIUM NETWORKS MAKES NO PROMISES, REPRESENTATIONS OR 30 * WARRANTIES, EITHER EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE, WITH RESPECT TO 31 * THE SOFTWARE, INCLUDING ITS CONDITION, ITS CONFORMITY TO ANY REPRESENTATION OR 32 * DESCRIPTION, OR THE EXISTENCE OF ANY LATENT OR PATENT DEFECTS, AND CAVIUM 33 * SPECIFICALLY DISCLAIMS ALL IMPLIED (IF ANY) WARRANTIES OF TITLE, 34 * MERCHANTABILITY, NONINFRINGEMENT, FITNESS FOR A PARTICULAR PURPOSE, LACK OF 35 * VIRUSES, ACCURACY OR COMPLETENESS, QUIET ENJOYMENT, QUIET POSSESSION OR 36 * CORRESPONDENCE TO DESCRIPTION. THE ENTIRE RISK ARISING OUT OF USE OR 37 * PERFORMANCE OF THE SOFTWARE LIES WITH YOU. 38 ***********************license end**************************************/ 39 40 41/** 42 * cvmx-iob-defs.h 43 * 44 * Configuration and status register (CSR) type definitions for 45 * Octeon iob. 46 * 47 * This file is auto generated. Do not edit. 48 * 49 * <hr>$Revision$<hr> 50 * 51 */ 52#ifndef __CVMX_IOB_TYPEDEFS_H__ 53#define __CVMX_IOB_TYPEDEFS_H__ 54 55#define CVMX_IOB_BIST_STATUS (CVMX_ADD_IO_SEG(0x00011800F00007F8ull)) 56#define CVMX_IOB_CTL_STATUS (CVMX_ADD_IO_SEG(0x00011800F0000050ull)) 57#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 58#define CVMX_IOB_DWB_PRI_CNT CVMX_IOB_DWB_PRI_CNT_FUNC() 59static inline uint64_t CVMX_IOB_DWB_PRI_CNT_FUNC(void) 60{ 61 if (!(OCTEON_IS_MODEL(OCTEON_CN38XX) || OCTEON_IS_MODEL(OCTEON_CN52XX) || OCTEON_IS_MODEL(OCTEON_CN56XX) || OCTEON_IS_MODEL(OCTEON_CN58XX) || OCTEON_IS_MODEL(OCTEON_CN63XX))) 62 cvmx_warn("CVMX_IOB_DWB_PRI_CNT not supported on this chip\n"); 63 return CVMX_ADD_IO_SEG(0x00011800F0000028ull); 64} 65#else 66#define CVMX_IOB_DWB_PRI_CNT (CVMX_ADD_IO_SEG(0x00011800F0000028ull)) 67#endif 68#define CVMX_IOB_FAU_TIMEOUT (CVMX_ADD_IO_SEG(0x00011800F0000000ull)) 69#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 70#define CVMX_IOB_I2C_PRI_CNT CVMX_IOB_I2C_PRI_CNT_FUNC() 71static inline uint64_t CVMX_IOB_I2C_PRI_CNT_FUNC(void) 72{ 73 if (!(OCTEON_IS_MODEL(OCTEON_CN38XX) || OCTEON_IS_MODEL(OCTEON_CN52XX) || OCTEON_IS_MODEL(OCTEON_CN56XX) || OCTEON_IS_MODEL(OCTEON_CN58XX) || OCTEON_IS_MODEL(OCTEON_CN63XX))) 74 cvmx_warn("CVMX_IOB_I2C_PRI_CNT not supported on this chip\n"); 75 return CVMX_ADD_IO_SEG(0x00011800F0000010ull); 76} 77#else 78#define CVMX_IOB_I2C_PRI_CNT (CVMX_ADD_IO_SEG(0x00011800F0000010ull)) 79#endif 80#define CVMX_IOB_INB_CONTROL_MATCH (CVMX_ADD_IO_SEG(0x00011800F0000078ull)) 81#define CVMX_IOB_INB_CONTROL_MATCH_ENB (CVMX_ADD_IO_SEG(0x00011800F0000088ull)) 82#define CVMX_IOB_INB_DATA_MATCH (CVMX_ADD_IO_SEG(0x00011800F0000070ull)) 83#define CVMX_IOB_INB_DATA_MATCH_ENB (CVMX_ADD_IO_SEG(0x00011800F0000080ull)) 84#define CVMX_IOB_INT_ENB (CVMX_ADD_IO_SEG(0x00011800F0000060ull)) 85#define CVMX_IOB_INT_SUM (CVMX_ADD_IO_SEG(0x00011800F0000058ull)) 86#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 87#define CVMX_IOB_N2C_L2C_PRI_CNT CVMX_IOB_N2C_L2C_PRI_CNT_FUNC() 88static inline uint64_t CVMX_IOB_N2C_L2C_PRI_CNT_FUNC(void) 89{ 90 if (!(OCTEON_IS_MODEL(OCTEON_CN38XX) || OCTEON_IS_MODEL(OCTEON_CN52XX) || OCTEON_IS_MODEL(OCTEON_CN56XX) || OCTEON_IS_MODEL(OCTEON_CN58XX) || OCTEON_IS_MODEL(OCTEON_CN63XX))) 91 cvmx_warn("CVMX_IOB_N2C_L2C_PRI_CNT not supported on this chip\n"); 92 return CVMX_ADD_IO_SEG(0x00011800F0000020ull); 93} 94#else 95#define CVMX_IOB_N2C_L2C_PRI_CNT (CVMX_ADD_IO_SEG(0x00011800F0000020ull)) 96#endif 97#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 98#define CVMX_IOB_N2C_RSP_PRI_CNT CVMX_IOB_N2C_RSP_PRI_CNT_FUNC() 99static inline uint64_t CVMX_IOB_N2C_RSP_PRI_CNT_FUNC(void) 100{ 101 if (!(OCTEON_IS_MODEL(OCTEON_CN38XX) || OCTEON_IS_MODEL(OCTEON_CN52XX) || OCTEON_IS_MODEL(OCTEON_CN56XX) || OCTEON_IS_MODEL(OCTEON_CN58XX) || OCTEON_IS_MODEL(OCTEON_CN63XX))) 102 cvmx_warn("CVMX_IOB_N2C_RSP_PRI_CNT not supported on this chip\n"); 103 return CVMX_ADD_IO_SEG(0x00011800F0000008ull); 104} 105#else 106#define CVMX_IOB_N2C_RSP_PRI_CNT (CVMX_ADD_IO_SEG(0x00011800F0000008ull)) 107#endif 108#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 109#define CVMX_IOB_OUTB_COM_PRI_CNT CVMX_IOB_OUTB_COM_PRI_CNT_FUNC() 110static inline uint64_t CVMX_IOB_OUTB_COM_PRI_CNT_FUNC(void) 111{ 112 if (!(OCTEON_IS_MODEL(OCTEON_CN38XX) || OCTEON_IS_MODEL(OCTEON_CN52XX) || OCTEON_IS_MODEL(OCTEON_CN56XX) || OCTEON_IS_MODEL(OCTEON_CN58XX) || OCTEON_IS_MODEL(OCTEON_CN63XX))) 113 cvmx_warn("CVMX_IOB_OUTB_COM_PRI_CNT not supported on this chip\n"); 114 return CVMX_ADD_IO_SEG(0x00011800F0000040ull); 115} 116#else 117#define CVMX_IOB_OUTB_COM_PRI_CNT (CVMX_ADD_IO_SEG(0x00011800F0000040ull)) 118#endif 119#define CVMX_IOB_OUTB_CONTROL_MATCH (CVMX_ADD_IO_SEG(0x00011800F0000098ull)) 120#define CVMX_IOB_OUTB_CONTROL_MATCH_ENB (CVMX_ADD_IO_SEG(0x00011800F00000A8ull)) 121#define CVMX_IOB_OUTB_DATA_MATCH (CVMX_ADD_IO_SEG(0x00011800F0000090ull)) 122#define CVMX_IOB_OUTB_DATA_MATCH_ENB (CVMX_ADD_IO_SEG(0x00011800F00000A0ull)) 123#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 124#define CVMX_IOB_OUTB_FPA_PRI_CNT CVMX_IOB_OUTB_FPA_PRI_CNT_FUNC() 125static inline uint64_t CVMX_IOB_OUTB_FPA_PRI_CNT_FUNC(void) 126{ 127 if (!(OCTEON_IS_MODEL(OCTEON_CN38XX) || OCTEON_IS_MODEL(OCTEON_CN52XX) || OCTEON_IS_MODEL(OCTEON_CN56XX) || OCTEON_IS_MODEL(OCTEON_CN58XX) || OCTEON_IS_MODEL(OCTEON_CN63XX))) 128 cvmx_warn("CVMX_IOB_OUTB_FPA_PRI_CNT not supported on this chip\n"); 129 return CVMX_ADD_IO_SEG(0x00011800F0000048ull); 130} 131#else 132#define CVMX_IOB_OUTB_FPA_PRI_CNT (CVMX_ADD_IO_SEG(0x00011800F0000048ull)) 133#endif 134#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 135#define CVMX_IOB_OUTB_REQ_PRI_CNT CVMX_IOB_OUTB_REQ_PRI_CNT_FUNC() 136static inline uint64_t CVMX_IOB_OUTB_REQ_PRI_CNT_FUNC(void) 137{ 138 if (!(OCTEON_IS_MODEL(OCTEON_CN38XX) || OCTEON_IS_MODEL(OCTEON_CN52XX) || OCTEON_IS_MODEL(OCTEON_CN56XX) || OCTEON_IS_MODEL(OCTEON_CN58XX) || OCTEON_IS_MODEL(OCTEON_CN63XX))) 139 cvmx_warn("CVMX_IOB_OUTB_REQ_PRI_CNT not supported on this chip\n"); 140 return CVMX_ADD_IO_SEG(0x00011800F0000038ull); 141} 142#else 143#define CVMX_IOB_OUTB_REQ_PRI_CNT (CVMX_ADD_IO_SEG(0x00011800F0000038ull)) 144#endif 145#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 146#define CVMX_IOB_P2C_REQ_PRI_CNT CVMX_IOB_P2C_REQ_PRI_CNT_FUNC() 147static inline uint64_t CVMX_IOB_P2C_REQ_PRI_CNT_FUNC(void) 148{ 149 if (!(OCTEON_IS_MODEL(OCTEON_CN38XX) || OCTEON_IS_MODEL(OCTEON_CN52XX) || OCTEON_IS_MODEL(OCTEON_CN56XX) || OCTEON_IS_MODEL(OCTEON_CN58XX) || OCTEON_IS_MODEL(OCTEON_CN63XX))) 150 cvmx_warn("CVMX_IOB_P2C_REQ_PRI_CNT not supported on this chip\n"); 151 return CVMX_ADD_IO_SEG(0x00011800F0000018ull); 152} 153#else 154#define CVMX_IOB_P2C_REQ_PRI_CNT (CVMX_ADD_IO_SEG(0x00011800F0000018ull)) 155#endif 156#define CVMX_IOB_PKT_ERR (CVMX_ADD_IO_SEG(0x00011800F0000068ull)) 157#if CVMX_ENABLE_CSR_ADDRESS_CHECKING 158#define CVMX_IOB_TO_CMB_CREDITS CVMX_IOB_TO_CMB_CREDITS_FUNC() 159static inline uint64_t CVMX_IOB_TO_CMB_CREDITS_FUNC(void) 160{ 161 if (!(OCTEON_IS_MODEL(OCTEON_CN52XX) || OCTEON_IS_MODEL(OCTEON_CN63XX))) 162 cvmx_warn("CVMX_IOB_TO_CMB_CREDITS not supported on this chip\n"); 163 return CVMX_ADD_IO_SEG(0x00011800F00000B0ull); 164} 165#else 166#define CVMX_IOB_TO_CMB_CREDITS (CVMX_ADD_IO_SEG(0x00011800F00000B0ull)) 167#endif 168 169/** 170 * cvmx_iob_bist_status 171 * 172 * IOB_BIST_STATUS = BIST Status of IOB Memories 173 * 174 * The result of the BIST run on the IOB memories. 175 */ 176union cvmx_iob_bist_status 177{ 178 uint64_t u64; 179 struct cvmx_iob_bist_status_s 180 { 181#if __BYTE_ORDER == __BIG_ENDIAN 182 uint64_t reserved_23_63 : 41; 183 uint64_t xmdfif : 1; /**< xmdfif_bist_status */ 184 uint64_t xmcfif : 1; /**< xmcfif_bist_status */ 185 uint64_t iorfif : 1; /**< iorfif_bist_status */ 186 uint64_t rsdfif : 1; /**< rsdfif_bist_status */ 187 uint64_t iocfif : 1; /**< iocfif_bist_status */ 188 uint64_t icnrcb : 1; /**< icnr_cb_reg_fifo_bist_status */ 189 uint64_t icr0 : 1; /**< icr_bist_req_fifo0_status */ 190 uint64_t icr1 : 1; /**< icr_bist_req_fifo1_status */ 191 uint64_t icnr1 : 1; /**< Reserved */ 192 uint64_t icnr0 : 1; /**< icnr_reg_mem0_bist_status */ 193 uint64_t ibdr0 : 1; /**< ibdr_bist_req_fifo0_status */ 194 uint64_t ibdr1 : 1; /**< ibdr_bist_req_fifo1_status */ 195 uint64_t ibr0 : 1; /**< ibr_bist_rsp_fifo0_status */ 196 uint64_t ibr1 : 1; /**< ibr_bist_rsp_fifo1_status */ 197 uint64_t icnrt : 1; /**< icnr_tag_cb_reg_fifo_bist_status */ 198 uint64_t ibrq0 : 1; /**< ibrq_bist_req_fifo0_status */ 199 uint64_t ibrq1 : 1; /**< ibrq_bist_req_fifo1_status */ 200 uint64_t icrn0 : 1; /**< icr_ncb_bist_mem0_status */ 201 uint64_t icrn1 : 1; /**< icr_ncb_bist_mem1_status */ 202 uint64_t icrp0 : 1; /**< icr_pko_bist_mem0_status */ 203 uint64_t icrp1 : 1; /**< icr_pko_bist_mem1_status */ 204 uint64_t ibd : 1; /**< ibd_bist_mem0_status */ 205 uint64_t icd : 1; /**< icd_ncb_fifo_bist_status */ 206#else 207 uint64_t icd : 1; 208 uint64_t ibd : 1; 209 uint64_t icrp1 : 1; 210 uint64_t icrp0 : 1; 211 uint64_t icrn1 : 1; 212 uint64_t icrn0 : 1; 213 uint64_t ibrq1 : 1; 214 uint64_t ibrq0 : 1; 215 uint64_t icnrt : 1; 216 uint64_t ibr1 : 1; 217 uint64_t ibr0 : 1; 218 uint64_t ibdr1 : 1; 219 uint64_t ibdr0 : 1; 220 uint64_t icnr0 : 1; 221 uint64_t icnr1 : 1; 222 uint64_t icr1 : 1; 223 uint64_t icr0 : 1; 224 uint64_t icnrcb : 1; 225 uint64_t iocfif : 1; 226 uint64_t rsdfif : 1; 227 uint64_t iorfif : 1; 228 uint64_t xmcfif : 1; 229 uint64_t xmdfif : 1; 230 uint64_t reserved_23_63 : 41; 231#endif 232 } s; 233 struct cvmx_iob_bist_status_cn30xx 234 { 235#if __BYTE_ORDER == __BIG_ENDIAN 236 uint64_t reserved_18_63 : 46; 237 uint64_t icnrcb : 1; /**< Reserved */ 238 uint64_t icr0 : 1; /**< Reserved */ 239 uint64_t icr1 : 1; /**< Reserved */ 240 uint64_t icnr1 : 1; /**< Reserved */ 241 uint64_t icnr0 : 1; /**< icnr_reg_mem0_bist_status */ 242 uint64_t ibdr0 : 1; /**< ibdr_bist_req_fifo0_status */ 243 uint64_t ibdr1 : 1; /**< ibdr_bist_req_fifo1_status */ 244 uint64_t ibr0 : 1; /**< ibr_bist_rsp_fifo0_status */ 245 uint64_t ibr1 : 1; /**< ibr_bist_rsp_fifo1_status */ 246 uint64_t icnrt : 1; /**< Reserved */ 247 uint64_t ibrq0 : 1; /**< ibrq_bist_req_fifo0_status */ 248 uint64_t ibrq1 : 1; /**< ibrq_bist_req_fifo1_status */ 249 uint64_t icrn0 : 1; /**< icr_ncb_bist_mem0_status */ 250 uint64_t icrn1 : 1; /**< icr_ncb_bist_mem1_status */ 251 uint64_t icrp0 : 1; /**< icr_pko_bist_mem0_status */ 252 uint64_t icrp1 : 1; /**< icr_pko_bist_mem1_status */ 253 uint64_t ibd : 1; /**< ibd_bist_mem0_status */ 254 uint64_t icd : 1; /**< icd_ncb_fifo_bist_status */ 255#else 256 uint64_t icd : 1; 257 uint64_t ibd : 1; 258 uint64_t icrp1 : 1; 259 uint64_t icrp0 : 1; 260 uint64_t icrn1 : 1; 261 uint64_t icrn0 : 1; 262 uint64_t ibrq1 : 1; 263 uint64_t ibrq0 : 1; 264 uint64_t icnrt : 1; 265 uint64_t ibr1 : 1; 266 uint64_t ibr0 : 1; 267 uint64_t ibdr1 : 1; 268 uint64_t ibdr0 : 1; 269 uint64_t icnr0 : 1; 270 uint64_t icnr1 : 1; 271 uint64_t icr1 : 1; 272 uint64_t icr0 : 1; 273 uint64_t icnrcb : 1; 274 uint64_t reserved_18_63 : 46; 275#endif 276 } cn30xx; 277 struct cvmx_iob_bist_status_cn30xx cn31xx; 278 struct cvmx_iob_bist_status_cn30xx cn38xx; 279 struct cvmx_iob_bist_status_cn30xx cn38xxp2; 280 struct cvmx_iob_bist_status_cn30xx cn50xx; 281 struct cvmx_iob_bist_status_cn30xx cn52xx; 282 struct cvmx_iob_bist_status_cn30xx cn52xxp1; 283 struct cvmx_iob_bist_status_cn30xx cn56xx; 284 struct cvmx_iob_bist_status_cn30xx cn56xxp1; 285 struct cvmx_iob_bist_status_cn30xx cn58xx; 286 struct cvmx_iob_bist_status_cn30xx cn58xxp1; 287 struct cvmx_iob_bist_status_s cn63xx; 288 struct cvmx_iob_bist_status_s cn63xxp1; 289}; 290typedef union cvmx_iob_bist_status cvmx_iob_bist_status_t; 291 292/** 293 * cvmx_iob_ctl_status 294 * 295 * IOB Control Status = IOB Control and Status Register 296 * 297 * Provides control for IOB functions. 298 */ 299union cvmx_iob_ctl_status 300{ 301 uint64_t u64; 302 struct cvmx_iob_ctl_status_s 303 { 304#if __BYTE_ORDER == __BIG_ENDIAN 305 uint64_t reserved_10_63 : 54; 306 uint64_t xmc_per : 4; /**< IBC XMC PUSH EARLY */ 307 uint64_t rr_mode : 1; /**< When set to '1' will enable Round-Robin mode of next 308 transaction that could arbitrate for the XMB. */ 309 uint64_t outb_mat : 1; /**< Was a match on the outbound bus to the inb pattern 310 matchers. PASS2 FIELD. */ 311 uint64_t inb_mat : 1; /**< Was a match on the inbound bus to the inb pattern 312 matchers. PASS2 FIELD. */ 313 uint64_t pko_enb : 1; /**< Toggles the endian style of the FAU for the PKO. 314 '0' is for big-endian and '1' is for little-endian. */ 315 uint64_t dwb_enb : 1; /**< Enables the DWB function of the IOB. */ 316 uint64_t fau_end : 1; /**< Toggles the endian style of the FAU. '0' is for 317 big-endian and '1' is for little-endian. */ 318#else 319 uint64_t fau_end : 1; 320 uint64_t dwb_enb : 1; 321 uint64_t pko_enb : 1; 322 uint64_t inb_mat : 1; 323 uint64_t outb_mat : 1; 324 uint64_t rr_mode : 1; 325 uint64_t xmc_per : 4; 326 uint64_t reserved_10_63 : 54; 327#endif 328 } s; 329 struct cvmx_iob_ctl_status_cn30xx 330 { 331#if __BYTE_ORDER == __BIG_ENDIAN 332 uint64_t reserved_5_63 : 59; 333 uint64_t outb_mat : 1; /**< Was a match on the outbound bus to the inb pattern 334 matchers. */ 335 uint64_t inb_mat : 1; /**< Was a match on the inbound bus to the inb pattern 336 matchers. */ 337 uint64_t pko_enb : 1; /**< Toggles the endian style of the FAU for the PKO. 338 '0' is for big-endian and '1' is for little-endian. */ 339 uint64_t dwb_enb : 1; /**< Enables the DWB function of the IOB. */ 340 uint64_t fau_end : 1; /**< Toggles the endian style of the FAU. '0' is for 341 big-endian and '1' is for little-endian. */ 342#else 343 uint64_t fau_end : 1; 344 uint64_t dwb_enb : 1; 345 uint64_t pko_enb : 1; 346 uint64_t inb_mat : 1; 347 uint64_t outb_mat : 1; 348 uint64_t reserved_5_63 : 59; 349#endif 350 } cn30xx; 351 struct cvmx_iob_ctl_status_cn30xx cn31xx; 352 struct cvmx_iob_ctl_status_cn30xx cn38xx; 353 struct cvmx_iob_ctl_status_cn30xx cn38xxp2; 354 struct cvmx_iob_ctl_status_cn30xx cn50xx; 355 struct cvmx_iob_ctl_status_cn52xx 356 { 357#if __BYTE_ORDER == __BIG_ENDIAN 358 uint64_t reserved_6_63 : 58; 359 uint64_t rr_mode : 1; /**< When set to '1' will enable Round-Robin mode of next 360 transaction that could arbitrate for the XMB. */ 361 uint64_t outb_mat : 1; /**< Was a match on the outbound bus to the inb pattern 362 matchers. PASS2 FIELD. */ 363 uint64_t inb_mat : 1; /**< Was a match on the inbound bus to the inb pattern 364 matchers. PASS2 FIELD. */ 365 uint64_t pko_enb : 1; /**< Toggles the endian style of the FAU for the PKO. 366 '0' is for big-endian and '1' is for little-endian. */ 367 uint64_t dwb_enb : 1; /**< Enables the DWB function of the IOB. */ 368 uint64_t fau_end : 1; /**< Toggles the endian style of the FAU. '0' is for 369 big-endian and '1' is for little-endian. */ 370#else 371 uint64_t fau_end : 1; 372 uint64_t dwb_enb : 1; 373 uint64_t pko_enb : 1; 374 uint64_t inb_mat : 1; 375 uint64_t outb_mat : 1; 376 uint64_t rr_mode : 1; 377 uint64_t reserved_6_63 : 58; 378#endif 379 } cn52xx; 380 struct cvmx_iob_ctl_status_cn30xx cn52xxp1; 381 struct cvmx_iob_ctl_status_cn30xx cn56xx; 382 struct cvmx_iob_ctl_status_cn30xx cn56xxp1; 383 struct cvmx_iob_ctl_status_cn30xx cn58xx; 384 struct cvmx_iob_ctl_status_cn30xx cn58xxp1; 385 struct cvmx_iob_ctl_status_s cn63xx; 386 struct cvmx_iob_ctl_status_s cn63xxp1; 387}; 388typedef union cvmx_iob_ctl_status cvmx_iob_ctl_status_t; 389 390/** 391 * cvmx_iob_dwb_pri_cnt 392 * 393 * DWB To CMB Priority Counter = Don't Write Back to CMB Priority Counter Enable and Timer Value 394 * 395 * Enables and supplies the timeout count for raising the priority of Don't Write Back request to the L2C. 396 */ 397union cvmx_iob_dwb_pri_cnt 398{ 399 uint64_t u64; 400 struct cvmx_iob_dwb_pri_cnt_s 401 { 402#if __BYTE_ORDER == __BIG_ENDIAN 403 uint64_t reserved_16_63 : 48; 404 uint64_t cnt_enb : 1; /**< Enables the raising of CMB access priority 405 when CNT_VAL is reached. */ 406 uint64_t cnt_val : 15; /**< Number of core clocks to wait before raising 407 the priority for access to CMB. */ 408#else 409 uint64_t cnt_val : 15; 410 uint64_t cnt_enb : 1; 411 uint64_t reserved_16_63 : 48; 412#endif 413 } s; 414 struct cvmx_iob_dwb_pri_cnt_s cn38xx; 415 struct cvmx_iob_dwb_pri_cnt_s cn38xxp2; 416 struct cvmx_iob_dwb_pri_cnt_s cn52xx; 417 struct cvmx_iob_dwb_pri_cnt_s cn52xxp1; 418 struct cvmx_iob_dwb_pri_cnt_s cn56xx; 419 struct cvmx_iob_dwb_pri_cnt_s cn56xxp1; 420 struct cvmx_iob_dwb_pri_cnt_s cn58xx; 421 struct cvmx_iob_dwb_pri_cnt_s cn58xxp1; 422 struct cvmx_iob_dwb_pri_cnt_s cn63xx; 423 struct cvmx_iob_dwb_pri_cnt_s cn63xxp1; 424}; 425typedef union cvmx_iob_dwb_pri_cnt cvmx_iob_dwb_pri_cnt_t; 426 427/** 428 * cvmx_iob_fau_timeout 429 * 430 * FAU Timeout = Fetch and Add Unit Tag-Switch Timeout 431 * 432 * How many clokc ticks the FAU unit will wait for a tag-switch before timeing out. 433 * for Queue 0. 434 */ 435union cvmx_iob_fau_timeout 436{ 437 uint64_t u64; 438 struct cvmx_iob_fau_timeout_s 439 { 440#if __BYTE_ORDER == __BIG_ENDIAN 441 uint64_t reserved_13_63 : 51; 442 uint64_t tout_enb : 1; /**< The enable for the FAU timeout feature. 443 '1' will enable the timeout, '0' will disable. */ 444 uint64_t tout_val : 12; /**< When a tag request arrives from the PP a timer is 445 started associate with that PP. The timer which 446 increments every 256 eclks is compared to TOUT_VAL. 447 When the two are equal the IOB will flag the tag 448 request to complete as a time-out tag operation. 449 The 256 count timer used to increment the PP 450 associated timer is always running so the first 451 increment of the PP associated timer may occur any 452 where within the first 256 eclks. Note that '0' 453 is an illegal value. */ 454#else 455 uint64_t tout_val : 12; 456 uint64_t tout_enb : 1; 457 uint64_t reserved_13_63 : 51; 458#endif 459 } s; 460 struct cvmx_iob_fau_timeout_s cn30xx; 461 struct cvmx_iob_fau_timeout_s cn31xx; 462 struct cvmx_iob_fau_timeout_s cn38xx; 463 struct cvmx_iob_fau_timeout_s cn38xxp2; 464 struct cvmx_iob_fau_timeout_s cn50xx; 465 struct cvmx_iob_fau_timeout_s cn52xx; 466 struct cvmx_iob_fau_timeout_s cn52xxp1; 467 struct cvmx_iob_fau_timeout_s cn56xx; 468 struct cvmx_iob_fau_timeout_s cn56xxp1; 469 struct cvmx_iob_fau_timeout_s cn58xx; 470 struct cvmx_iob_fau_timeout_s cn58xxp1; 471 struct cvmx_iob_fau_timeout_s cn63xx; 472 struct cvmx_iob_fau_timeout_s cn63xxp1; 473}; 474typedef union cvmx_iob_fau_timeout cvmx_iob_fau_timeout_t; 475 476/** 477 * cvmx_iob_i2c_pri_cnt 478 * 479 * IPD To CMB Store Priority Counter = IPD to CMB Store Priority Counter Enable and Timer Value 480 * 481 * Enables and supplies the timeout count for raising the priority of IPD Store access to the CMB. 482 */ 483union cvmx_iob_i2c_pri_cnt 484{ 485 uint64_t u64; 486 struct cvmx_iob_i2c_pri_cnt_s 487 { 488#if __BYTE_ORDER == __BIG_ENDIAN 489 uint64_t reserved_16_63 : 48; 490 uint64_t cnt_enb : 1; /**< Enables the raising of CMB access priority 491 when CNT_VAL is reached. */ 492 uint64_t cnt_val : 15; /**< Number of core clocks to wait before raising 493 the priority for access to CMB. */ 494#else 495 uint64_t cnt_val : 15; 496 uint64_t cnt_enb : 1; 497 uint64_t reserved_16_63 : 48; 498#endif 499 } s; 500 struct cvmx_iob_i2c_pri_cnt_s cn38xx; 501 struct cvmx_iob_i2c_pri_cnt_s cn38xxp2; 502 struct cvmx_iob_i2c_pri_cnt_s cn52xx; 503 struct cvmx_iob_i2c_pri_cnt_s cn52xxp1; 504 struct cvmx_iob_i2c_pri_cnt_s cn56xx; 505 struct cvmx_iob_i2c_pri_cnt_s cn56xxp1; 506 struct cvmx_iob_i2c_pri_cnt_s cn58xx; 507 struct cvmx_iob_i2c_pri_cnt_s cn58xxp1; 508 struct cvmx_iob_i2c_pri_cnt_s cn63xx; 509 struct cvmx_iob_i2c_pri_cnt_s cn63xxp1; 510}; 511typedef union cvmx_iob_i2c_pri_cnt cvmx_iob_i2c_pri_cnt_t; 512 513/** 514 * cvmx_iob_inb_control_match 515 * 516 * IOB_INB_CONTROL_MATCH = IOB Inbound Control Match 517 * 518 * Match pattern for the inbound control to set the INB_MATCH_BIT. PASS-2 Register 519 */ 520union cvmx_iob_inb_control_match 521{ 522 uint64_t u64; 523 struct cvmx_iob_inb_control_match_s 524 { 525#if __BYTE_ORDER == __BIG_ENDIAN 526 uint64_t reserved_29_63 : 35; 527 uint64_t mask : 8; /**< Pattern to match on the inbound NCB. */ 528 uint64_t opc : 4; /**< Pattern to match on the inbound NCB. */ 529 uint64_t dst : 9; /**< Pattern to match on the inbound NCB. */ 530 uint64_t src : 8; /**< Pattern to match on the inbound NCB. */ 531#else 532 uint64_t src : 8; 533 uint64_t dst : 9; 534 uint64_t opc : 4; 535 uint64_t mask : 8; 536 uint64_t reserved_29_63 : 35; 537#endif 538 } s; 539 struct cvmx_iob_inb_control_match_s cn30xx; 540 struct cvmx_iob_inb_control_match_s cn31xx; 541 struct cvmx_iob_inb_control_match_s cn38xx; 542 struct cvmx_iob_inb_control_match_s cn38xxp2; 543 struct cvmx_iob_inb_control_match_s cn50xx; 544 struct cvmx_iob_inb_control_match_s cn52xx; 545 struct cvmx_iob_inb_control_match_s cn52xxp1; 546 struct cvmx_iob_inb_control_match_s cn56xx; 547 struct cvmx_iob_inb_control_match_s cn56xxp1; 548 struct cvmx_iob_inb_control_match_s cn58xx; 549 struct cvmx_iob_inb_control_match_s cn58xxp1; 550 struct cvmx_iob_inb_control_match_s cn63xx; 551 struct cvmx_iob_inb_control_match_s cn63xxp1; 552}; 553typedef union cvmx_iob_inb_control_match cvmx_iob_inb_control_match_t; 554 555/** 556 * cvmx_iob_inb_control_match_enb 557 * 558 * IOB_INB_CONTROL_MATCH_ENB = IOB Inbound Control Match Enable 559 * 560 * Enables the match of the corresponding bit in the IOB_INB_CONTROL_MATCH reister. PASS-2 Register 561 */ 562union cvmx_iob_inb_control_match_enb 563{ 564 uint64_t u64; 565 struct cvmx_iob_inb_control_match_enb_s 566 { 567#if __BYTE_ORDER == __BIG_ENDIAN 568 uint64_t reserved_29_63 : 35; 569 uint64_t mask : 8; /**< Pattern to match on the inbound NCB. */ 570 uint64_t opc : 4; /**< Pattern to match on the inbound NCB. */ 571 uint64_t dst : 9; /**< Pattern to match on the inbound NCB. */ 572 uint64_t src : 8; /**< Pattern to match on the inbound NCB. */ 573#else 574 uint64_t src : 8; 575 uint64_t dst : 9; 576 uint64_t opc : 4; 577 uint64_t mask : 8; 578 uint64_t reserved_29_63 : 35; 579#endif 580 } s; 581 struct cvmx_iob_inb_control_match_enb_s cn30xx; 582 struct cvmx_iob_inb_control_match_enb_s cn31xx; 583 struct cvmx_iob_inb_control_match_enb_s cn38xx; 584 struct cvmx_iob_inb_control_match_enb_s cn38xxp2; 585 struct cvmx_iob_inb_control_match_enb_s cn50xx; 586 struct cvmx_iob_inb_control_match_enb_s cn52xx; 587 struct cvmx_iob_inb_control_match_enb_s cn52xxp1; 588 struct cvmx_iob_inb_control_match_enb_s cn56xx; 589 struct cvmx_iob_inb_control_match_enb_s cn56xxp1; 590 struct cvmx_iob_inb_control_match_enb_s cn58xx; 591 struct cvmx_iob_inb_control_match_enb_s cn58xxp1; 592 struct cvmx_iob_inb_control_match_enb_s cn63xx; 593 struct cvmx_iob_inb_control_match_enb_s cn63xxp1; 594}; 595typedef union cvmx_iob_inb_control_match_enb cvmx_iob_inb_control_match_enb_t; 596 597/** 598 * cvmx_iob_inb_data_match 599 * 600 * IOB_INB_DATA_MATCH = IOB Inbound Data Match 601 * 602 * Match pattern for the inbound data to set the INB_MATCH_BIT. PASS-2 Register 603 */ 604union cvmx_iob_inb_data_match 605{ 606 uint64_t u64; 607 struct cvmx_iob_inb_data_match_s 608 { 609#if __BYTE_ORDER == __BIG_ENDIAN 610 uint64_t data : 64; /**< Pattern to match on the inbound NCB. */ 611#else 612 uint64_t data : 64; 613#endif 614 } s; 615 struct cvmx_iob_inb_data_match_s cn30xx; 616 struct cvmx_iob_inb_data_match_s cn31xx; 617 struct cvmx_iob_inb_data_match_s cn38xx; 618 struct cvmx_iob_inb_data_match_s cn38xxp2; 619 struct cvmx_iob_inb_data_match_s cn50xx; 620 struct cvmx_iob_inb_data_match_s cn52xx; 621 struct cvmx_iob_inb_data_match_s cn52xxp1; 622 struct cvmx_iob_inb_data_match_s cn56xx; 623 struct cvmx_iob_inb_data_match_s cn56xxp1; 624 struct cvmx_iob_inb_data_match_s cn58xx; 625 struct cvmx_iob_inb_data_match_s cn58xxp1; 626 struct cvmx_iob_inb_data_match_s cn63xx; 627 struct cvmx_iob_inb_data_match_s cn63xxp1; 628}; 629typedef union cvmx_iob_inb_data_match cvmx_iob_inb_data_match_t; 630 631/** 632 * cvmx_iob_inb_data_match_enb 633 * 634 * IOB_INB_DATA_MATCH_ENB = IOB Inbound Data Match Enable 635 * 636 * Enables the match of the corresponding bit in the IOB_INB_DATA_MATCH reister. PASS-2 Register 637 */ 638union cvmx_iob_inb_data_match_enb 639{ 640 uint64_t u64; 641 struct cvmx_iob_inb_data_match_enb_s 642 { 643#if __BYTE_ORDER == __BIG_ENDIAN 644 uint64_t data : 64; /**< Bit to enable match of. */ 645#else 646 uint64_t data : 64; 647#endif 648 } s; 649 struct cvmx_iob_inb_data_match_enb_s cn30xx; 650 struct cvmx_iob_inb_data_match_enb_s cn31xx; 651 struct cvmx_iob_inb_data_match_enb_s cn38xx; 652 struct cvmx_iob_inb_data_match_enb_s cn38xxp2; 653 struct cvmx_iob_inb_data_match_enb_s cn50xx; 654 struct cvmx_iob_inb_data_match_enb_s cn52xx; 655 struct cvmx_iob_inb_data_match_enb_s cn52xxp1; 656 struct cvmx_iob_inb_data_match_enb_s cn56xx; 657 struct cvmx_iob_inb_data_match_enb_s cn56xxp1; 658 struct cvmx_iob_inb_data_match_enb_s cn58xx; 659 struct cvmx_iob_inb_data_match_enb_s cn58xxp1; 660 struct cvmx_iob_inb_data_match_enb_s cn63xx; 661 struct cvmx_iob_inb_data_match_enb_s cn63xxp1; 662}; 663typedef union cvmx_iob_inb_data_match_enb cvmx_iob_inb_data_match_enb_t; 664 665/** 666 * cvmx_iob_int_enb 667 * 668 * IOB_INT_ENB = IOB's Interrupt Enable 669 * 670 * The IOB's interrupt enable register. This is a PASS-2 register. 671 */ 672union cvmx_iob_int_enb 673{ 674 uint64_t u64; 675 struct cvmx_iob_int_enb_s 676 { 677#if __BYTE_ORDER == __BIG_ENDIAN 678 uint64_t reserved_6_63 : 58; 679 uint64_t p_dat : 1; /**< When set (1) and bit 5 of the IOB_INT_SUM 680 register is asserted the IOB will assert an 681 interrupt. */ 682 uint64_t np_dat : 1; /**< When set (1) and bit 4 of the IOB_INT_SUM 683 register is asserted the IOB will assert an 684 interrupt. */ 685 uint64_t p_eop : 1; /**< When set (1) and bit 3 of the IOB_INT_SUM 686 register is asserted the IOB will assert an 687 interrupt. */ 688 uint64_t p_sop : 1; /**< When set (1) and bit 2 of the IOB_INT_SUM 689 register is asserted the IOB will assert an 690 interrupt. */ 691 uint64_t np_eop : 1; /**< When set (1) and bit 1 of the IOB_INT_SUM 692 register is asserted the IOB will assert an 693 interrupt. */ 694 uint64_t np_sop : 1; /**< When set (1) and bit 0 of the IOB_INT_SUM 695 register is asserted the IOB will assert an 696 interrupt. */ 697#else 698 uint64_t np_sop : 1; 699 uint64_t np_eop : 1; 700 uint64_t p_sop : 1; 701 uint64_t p_eop : 1; 702 uint64_t np_dat : 1; 703 uint64_t p_dat : 1; 704 uint64_t reserved_6_63 : 58; 705#endif 706 } s; 707 struct cvmx_iob_int_enb_cn30xx 708 { 709#if __BYTE_ORDER == __BIG_ENDIAN 710 uint64_t reserved_4_63 : 60; 711 uint64_t p_eop : 1; /**< When set (1) and bit 3 of the IOB_INT_SUM 712 register is asserted the IOB will assert an 713 interrupt. */ 714 uint64_t p_sop : 1; /**< When set (1) and bit 2 of the IOB_INT_SUM 715 register is asserted the IOB will assert an 716 interrupt. */ 717 uint64_t np_eop : 1; /**< When set (1) and bit 1 of the IOB_INT_SUM 718 register is asserted the IOB will assert an 719 interrupt. */ 720 uint64_t np_sop : 1; /**< When set (1) and bit 0 of the IOB_INT_SUM 721 register is asserted the IOB will assert an 722 interrupt. */ 723#else 724 uint64_t np_sop : 1; 725 uint64_t np_eop : 1; 726 uint64_t p_sop : 1; 727 uint64_t p_eop : 1; 728 uint64_t reserved_4_63 : 60; 729#endif 730 } cn30xx; 731 struct cvmx_iob_int_enb_cn30xx cn31xx; 732 struct cvmx_iob_int_enb_cn30xx cn38xx; 733 struct cvmx_iob_int_enb_cn30xx cn38xxp2; 734 struct cvmx_iob_int_enb_s cn50xx; 735 struct cvmx_iob_int_enb_s cn52xx; 736 struct cvmx_iob_int_enb_s cn52xxp1; 737 struct cvmx_iob_int_enb_s cn56xx; 738 struct cvmx_iob_int_enb_s cn56xxp1; 739 struct cvmx_iob_int_enb_s cn58xx; 740 struct cvmx_iob_int_enb_s cn58xxp1; 741 struct cvmx_iob_int_enb_s cn63xx; 742 struct cvmx_iob_int_enb_s cn63xxp1; 743}; 744typedef union cvmx_iob_int_enb cvmx_iob_int_enb_t; 745 746/** 747 * cvmx_iob_int_sum 748 * 749 * IOB_INT_SUM = IOB's Interrupt Summary Register 750 * 751 * Contains the diffrent interrupt summary bits of the IOB. This is a PASS-2 register. 752 */ 753union cvmx_iob_int_sum 754{ 755 uint64_t u64; 756 struct cvmx_iob_int_sum_s 757 { 758#if __BYTE_ORDER == __BIG_ENDIAN 759 uint64_t reserved_6_63 : 58; 760 uint64_t p_dat : 1; /**< Set when a data arrives before a SOP for the same 761 port for a passthrough packet. 762 The first detected error associated with bits [5:0] 763 of this register will only be set here. A new bit 764 can be set when the previous reported bit is cleared. */ 765 uint64_t np_dat : 1; /**< Set when a data arrives before a SOP for the same 766 port for a non-passthrough packet. 767 The first detected error associated with bits [5:0] 768 of this register will only be set here. A new bit 769 can be set when the previous reported bit is cleared. */ 770 uint64_t p_eop : 1; /**< Set when a EOP is followed by an EOP for the same 771 port for a passthrough packet. 772 The first detected error associated with bits [5:0] 773 of this register will only be set here. A new bit 774 can be set when the previous reported bit is cleared. */ 775 uint64_t p_sop : 1; /**< Set when a SOP is followed by an SOP for the same 776 port for a passthrough packet. 777 The first detected error associated with bits [5:0] 778 of this register will only be set here. A new bit 779 can be set when the previous reported bit is cleared. */ 780 uint64_t np_eop : 1; /**< Set when a EOP is followed by an EOP for the same 781 port for a non-passthrough packet. 782 The first detected error associated with bits [5:0] 783 of this register will only be set here. A new bit 784 can be set when the previous reported bit is cleared. */ 785 uint64_t np_sop : 1; /**< Set when a SOP is followed by an SOP for the same 786 port for a non-passthrough packet. 787 The first detected error associated with bits [5:0] 788 of this register will only be set here. A new bit 789 can be set when the previous reported bit is cleared. */ 790#else 791 uint64_t np_sop : 1; 792 uint64_t np_eop : 1; 793 uint64_t p_sop : 1; 794 uint64_t p_eop : 1; 795 uint64_t np_dat : 1; 796 uint64_t p_dat : 1; 797 uint64_t reserved_6_63 : 58; 798#endif 799 } s; 800 struct cvmx_iob_int_sum_cn30xx 801 { 802#if __BYTE_ORDER == __BIG_ENDIAN 803 uint64_t reserved_4_63 : 60; 804 uint64_t p_eop : 1; /**< Set when a EOP is followed by an EOP for the same 805 port for a passthrough packet. 806 The first detected error associated with bits [3:0] 807 of this register will only be set here. A new bit 808 can be set when the previous reported bit is cleared. */ 809 uint64_t p_sop : 1; /**< Set when a SOP is followed by an SOP for the same 810 port for a passthrough packet. 811 The first detected error associated with bits [3:0] 812 of this register will only be set here. A new bit 813 can be set when the previous reported bit is cleared. */ 814 uint64_t np_eop : 1; /**< Set when a EOP is followed by an EOP for the same 815 port for a non-passthrough packet. 816 The first detected error associated with bits [3:0] 817 of this register will only be set here. A new bit 818 can be set when the previous reported bit is cleared. */ 819 uint64_t np_sop : 1; /**< Set when a SOP is followed by an SOP for the same 820 port for a non-passthrough packet. 821 The first detected error associated with bits [3:0] 822 of this register will only be set here. A new bit 823 can be set when the previous reported bit is cleared. */ 824#else 825 uint64_t np_sop : 1; 826 uint64_t np_eop : 1; 827 uint64_t p_sop : 1; 828 uint64_t p_eop : 1; 829 uint64_t reserved_4_63 : 60; 830#endif 831 } cn30xx; 832 struct cvmx_iob_int_sum_cn30xx cn31xx; 833 struct cvmx_iob_int_sum_cn30xx cn38xx; 834 struct cvmx_iob_int_sum_cn30xx cn38xxp2; 835 struct cvmx_iob_int_sum_s cn50xx; 836 struct cvmx_iob_int_sum_s cn52xx; 837 struct cvmx_iob_int_sum_s cn52xxp1; 838 struct cvmx_iob_int_sum_s cn56xx; 839 struct cvmx_iob_int_sum_s cn56xxp1; 840 struct cvmx_iob_int_sum_s cn58xx; 841 struct cvmx_iob_int_sum_s cn58xxp1; 842 struct cvmx_iob_int_sum_s cn63xx; 843 struct cvmx_iob_int_sum_s cn63xxp1; 844}; 845typedef union cvmx_iob_int_sum cvmx_iob_int_sum_t; 846 847/** 848 * cvmx_iob_n2c_l2c_pri_cnt 849 * 850 * NCB To CMB L2C Priority Counter = NCB to CMB L2C Priority Counter Enable and Timer Value 851 * 852 * Enables and supplies the timeout count for raising the priority of NCB Store/Load access to the CMB. 853 */ 854union cvmx_iob_n2c_l2c_pri_cnt 855{ 856 uint64_t u64; 857 struct cvmx_iob_n2c_l2c_pri_cnt_s 858 { 859#if __BYTE_ORDER == __BIG_ENDIAN 860 uint64_t reserved_16_63 : 48; 861 uint64_t cnt_enb : 1; /**< Enables the raising of CMB access priority 862 when CNT_VAL is reached. */ 863 uint64_t cnt_val : 15; /**< Number of core clocks to wait before raising 864 the priority for access to CMB. */ 865#else 866 uint64_t cnt_val : 15; 867 uint64_t cnt_enb : 1; 868 uint64_t reserved_16_63 : 48; 869#endif 870 } s; 871 struct cvmx_iob_n2c_l2c_pri_cnt_s cn38xx; 872 struct cvmx_iob_n2c_l2c_pri_cnt_s cn38xxp2; 873 struct cvmx_iob_n2c_l2c_pri_cnt_s cn52xx; 874 struct cvmx_iob_n2c_l2c_pri_cnt_s cn52xxp1; 875 struct cvmx_iob_n2c_l2c_pri_cnt_s cn56xx; 876 struct cvmx_iob_n2c_l2c_pri_cnt_s cn56xxp1; 877 struct cvmx_iob_n2c_l2c_pri_cnt_s cn58xx; 878 struct cvmx_iob_n2c_l2c_pri_cnt_s cn58xxp1; 879 struct cvmx_iob_n2c_l2c_pri_cnt_s cn63xx; 880 struct cvmx_iob_n2c_l2c_pri_cnt_s cn63xxp1; 881}; 882typedef union cvmx_iob_n2c_l2c_pri_cnt cvmx_iob_n2c_l2c_pri_cnt_t; 883 884/** 885 * cvmx_iob_n2c_rsp_pri_cnt 886 * 887 * NCB To CMB Response Priority Counter = NCB to CMB Response Priority Counter Enable and Timer Value 888 * 889 * Enables and supplies the timeout count for raising the priority of NCB Responses access to the CMB. 890 */ 891union cvmx_iob_n2c_rsp_pri_cnt 892{ 893 uint64_t u64; 894 struct cvmx_iob_n2c_rsp_pri_cnt_s 895 { 896#if __BYTE_ORDER == __BIG_ENDIAN 897 uint64_t reserved_16_63 : 48; 898 uint64_t cnt_enb : 1; /**< Enables the raising of CMB access priority 899 when CNT_VAL is reached. */ 900 uint64_t cnt_val : 15; /**< Number of core clocks to wait before raising 901 the priority for access to CMB. */ 902#else 903 uint64_t cnt_val : 15; 904 uint64_t cnt_enb : 1; 905 uint64_t reserved_16_63 : 48; 906#endif 907 } s; 908 struct cvmx_iob_n2c_rsp_pri_cnt_s cn38xx; 909 struct cvmx_iob_n2c_rsp_pri_cnt_s cn38xxp2; 910 struct cvmx_iob_n2c_rsp_pri_cnt_s cn52xx; 911 struct cvmx_iob_n2c_rsp_pri_cnt_s cn52xxp1; 912 struct cvmx_iob_n2c_rsp_pri_cnt_s cn56xx; 913 struct cvmx_iob_n2c_rsp_pri_cnt_s cn56xxp1; 914 struct cvmx_iob_n2c_rsp_pri_cnt_s cn58xx; 915 struct cvmx_iob_n2c_rsp_pri_cnt_s cn58xxp1; 916 struct cvmx_iob_n2c_rsp_pri_cnt_s cn63xx; 917 struct cvmx_iob_n2c_rsp_pri_cnt_s cn63xxp1; 918}; 919typedef union cvmx_iob_n2c_rsp_pri_cnt cvmx_iob_n2c_rsp_pri_cnt_t; 920 921/** 922 * cvmx_iob_outb_com_pri_cnt 923 * 924 * Commit To NCB Priority Counter = Commit to NCB Priority Counter Enable and Timer Value 925 * 926 * Enables and supplies the timeout count for raising the priority of Commit request to the Outbound NCB. 927 */ 928union cvmx_iob_outb_com_pri_cnt 929{ 930 uint64_t u64; 931 struct cvmx_iob_outb_com_pri_cnt_s 932 { 933#if __BYTE_ORDER == __BIG_ENDIAN 934 uint64_t reserved_16_63 : 48; 935 uint64_t cnt_enb : 1; /**< Enables the raising of NCB access priority 936 when CNT_VAL is reached. */ 937 uint64_t cnt_val : 15; /**< Number of core clocks to wait before raising 938 the priority for access to NCB. */ 939#else 940 uint64_t cnt_val : 15; 941 uint64_t cnt_enb : 1; 942 uint64_t reserved_16_63 : 48; 943#endif 944 } s; 945 struct cvmx_iob_outb_com_pri_cnt_s cn38xx; 946 struct cvmx_iob_outb_com_pri_cnt_s cn38xxp2; 947 struct cvmx_iob_outb_com_pri_cnt_s cn52xx; 948 struct cvmx_iob_outb_com_pri_cnt_s cn52xxp1; 949 struct cvmx_iob_outb_com_pri_cnt_s cn56xx; 950 struct cvmx_iob_outb_com_pri_cnt_s cn56xxp1; 951 struct cvmx_iob_outb_com_pri_cnt_s cn58xx; 952 struct cvmx_iob_outb_com_pri_cnt_s cn58xxp1; 953 struct cvmx_iob_outb_com_pri_cnt_s cn63xx; 954 struct cvmx_iob_outb_com_pri_cnt_s cn63xxp1; 955}; 956typedef union cvmx_iob_outb_com_pri_cnt cvmx_iob_outb_com_pri_cnt_t; 957 958/** 959 * cvmx_iob_outb_control_match 960 * 961 * IOB_OUTB_CONTROL_MATCH = IOB Outbound Control Match 962 * 963 * Match pattern for the outbound control to set the OUTB_MATCH_BIT. PASS-2 Register 964 */ 965union cvmx_iob_outb_control_match 966{ 967 uint64_t u64; 968 struct cvmx_iob_outb_control_match_s 969 { 970#if __BYTE_ORDER == __BIG_ENDIAN 971 uint64_t reserved_26_63 : 38; 972 uint64_t mask : 8; /**< Pattern to match on the outbound NCB. */ 973 uint64_t eot : 1; /**< Pattern to match on the outbound NCB. */ 974 uint64_t dst : 8; /**< Pattern to match on the outbound NCB. */ 975 uint64_t src : 9; /**< Pattern to match on the outbound NCB. */ 976#else 977 uint64_t src : 9; 978 uint64_t dst : 8; 979 uint64_t eot : 1; 980 uint64_t mask : 8; 981 uint64_t reserved_26_63 : 38; 982#endif 983 } s; 984 struct cvmx_iob_outb_control_match_s cn30xx; 985 struct cvmx_iob_outb_control_match_s cn31xx; 986 struct cvmx_iob_outb_control_match_s cn38xx; 987 struct cvmx_iob_outb_control_match_s cn38xxp2; 988 struct cvmx_iob_outb_control_match_s cn50xx; 989 struct cvmx_iob_outb_control_match_s cn52xx; 990 struct cvmx_iob_outb_control_match_s cn52xxp1; 991 struct cvmx_iob_outb_control_match_s cn56xx; 992 struct cvmx_iob_outb_control_match_s cn56xxp1; 993 struct cvmx_iob_outb_control_match_s cn58xx; 994 struct cvmx_iob_outb_control_match_s cn58xxp1; 995 struct cvmx_iob_outb_control_match_s cn63xx; 996 struct cvmx_iob_outb_control_match_s cn63xxp1; 997}; 998typedef union cvmx_iob_outb_control_match cvmx_iob_outb_control_match_t; 999 1000/** 1001 * cvmx_iob_outb_control_match_enb 1002 * 1003 * IOB_OUTB_CONTROL_MATCH_ENB = IOB Outbound Control Match Enable 1004 * 1005 * Enables the match of the corresponding bit in the IOB_OUTB_CONTROL_MATCH reister. PASS-2 Register 1006 */ 1007union cvmx_iob_outb_control_match_enb 1008{ 1009 uint64_t u64; 1010 struct cvmx_iob_outb_control_match_enb_s 1011 { 1012#if __BYTE_ORDER == __BIG_ENDIAN 1013 uint64_t reserved_26_63 : 38; 1014 uint64_t mask : 8; /**< Pattern to match on the outbound NCB. */ 1015 uint64_t eot : 1; /**< Pattern to match on the outbound NCB. */ 1016 uint64_t dst : 8; /**< Pattern to match on the outbound NCB. */ 1017 uint64_t src : 9; /**< Pattern to match on the outbound NCB. */ 1018#else 1019 uint64_t src : 9; 1020 uint64_t dst : 8; 1021 uint64_t eot : 1; 1022 uint64_t mask : 8; 1023 uint64_t reserved_26_63 : 38; 1024#endif 1025 } s; 1026 struct cvmx_iob_outb_control_match_enb_s cn30xx; 1027 struct cvmx_iob_outb_control_match_enb_s cn31xx; 1028 struct cvmx_iob_outb_control_match_enb_s cn38xx; 1029 struct cvmx_iob_outb_control_match_enb_s cn38xxp2; 1030 struct cvmx_iob_outb_control_match_enb_s cn50xx; 1031 struct cvmx_iob_outb_control_match_enb_s cn52xx; 1032 struct cvmx_iob_outb_control_match_enb_s cn52xxp1; 1033 struct cvmx_iob_outb_control_match_enb_s cn56xx; 1034 struct cvmx_iob_outb_control_match_enb_s cn56xxp1; 1035 struct cvmx_iob_outb_control_match_enb_s cn58xx; 1036 struct cvmx_iob_outb_control_match_enb_s cn58xxp1; 1037 struct cvmx_iob_outb_control_match_enb_s cn63xx; 1038 struct cvmx_iob_outb_control_match_enb_s cn63xxp1; 1039}; 1040typedef union cvmx_iob_outb_control_match_enb cvmx_iob_outb_control_match_enb_t; 1041 1042/** 1043 * cvmx_iob_outb_data_match 1044 * 1045 * IOB_OUTB_DATA_MATCH = IOB Outbound Data Match 1046 * 1047 * Match pattern for the outbound data to set the OUTB_MATCH_BIT. PASS-2 Register 1048 */ 1049union cvmx_iob_outb_data_match 1050{ 1051 uint64_t u64; 1052 struct cvmx_iob_outb_data_match_s 1053 { 1054#if __BYTE_ORDER == __BIG_ENDIAN 1055 uint64_t data : 64; /**< Pattern to match on the outbound NCB. */ 1056#else 1057 uint64_t data : 64; 1058#endif 1059 } s; 1060 struct cvmx_iob_outb_data_match_s cn30xx; 1061 struct cvmx_iob_outb_data_match_s cn31xx; 1062 struct cvmx_iob_outb_data_match_s cn38xx; 1063 struct cvmx_iob_outb_data_match_s cn38xxp2; 1064 struct cvmx_iob_outb_data_match_s cn50xx; 1065 struct cvmx_iob_outb_data_match_s cn52xx; 1066 struct cvmx_iob_outb_data_match_s cn52xxp1; 1067 struct cvmx_iob_outb_data_match_s cn56xx; 1068 struct cvmx_iob_outb_data_match_s cn56xxp1; 1069 struct cvmx_iob_outb_data_match_s cn58xx; 1070 struct cvmx_iob_outb_data_match_s cn58xxp1; 1071 struct cvmx_iob_outb_data_match_s cn63xx; 1072 struct cvmx_iob_outb_data_match_s cn63xxp1; 1073}; 1074typedef union cvmx_iob_outb_data_match cvmx_iob_outb_data_match_t; 1075 1076/** 1077 * cvmx_iob_outb_data_match_enb 1078 * 1079 * IOB_OUTB_DATA_MATCH_ENB = IOB Outbound Data Match Enable 1080 * 1081 * Enables the match of the corresponding bit in the IOB_OUTB_DATA_MATCH reister. PASS-2 Register 1082 */ 1083union cvmx_iob_outb_data_match_enb 1084{ 1085 uint64_t u64; 1086 struct cvmx_iob_outb_data_match_enb_s 1087 { 1088#if __BYTE_ORDER == __BIG_ENDIAN 1089 uint64_t data : 64; /**< Bit to enable match of. */ 1090#else 1091 uint64_t data : 64; 1092#endif 1093 } s; 1094 struct cvmx_iob_outb_data_match_enb_s cn30xx; 1095 struct cvmx_iob_outb_data_match_enb_s cn31xx; 1096 struct cvmx_iob_outb_data_match_enb_s cn38xx; 1097 struct cvmx_iob_outb_data_match_enb_s cn38xxp2; 1098 struct cvmx_iob_outb_data_match_enb_s cn50xx; 1099 struct cvmx_iob_outb_data_match_enb_s cn52xx; 1100 struct cvmx_iob_outb_data_match_enb_s cn52xxp1; 1101 struct cvmx_iob_outb_data_match_enb_s cn56xx; 1102 struct cvmx_iob_outb_data_match_enb_s cn56xxp1; 1103 struct cvmx_iob_outb_data_match_enb_s cn58xx; 1104 struct cvmx_iob_outb_data_match_enb_s cn58xxp1; 1105 struct cvmx_iob_outb_data_match_enb_s cn63xx; 1106 struct cvmx_iob_outb_data_match_enb_s cn63xxp1; 1107}; 1108typedef union cvmx_iob_outb_data_match_enb cvmx_iob_outb_data_match_enb_t; 1109 1110/** 1111 * cvmx_iob_outb_fpa_pri_cnt 1112 * 1113 * FPA To NCB Priority Counter = FPA Returns to NCB Priority Counter Enable and Timer Value 1114 * 1115 * Enables and supplies the timeout count for raising the priority of FPA Rreturn Page request to the Outbound NCB. 1116 */ 1117union cvmx_iob_outb_fpa_pri_cnt 1118{ 1119 uint64_t u64; 1120 struct cvmx_iob_outb_fpa_pri_cnt_s 1121 { 1122#if __BYTE_ORDER == __BIG_ENDIAN 1123 uint64_t reserved_16_63 : 48; 1124 uint64_t cnt_enb : 1; /**< Enables the raising of NCB access priority 1125 when CNT_VAL is reached. */ 1126 uint64_t cnt_val : 15; /**< Number of core clocks to wait before raising 1127 the priority for access to NCB. */ 1128#else 1129 uint64_t cnt_val : 15; 1130 uint64_t cnt_enb : 1; 1131 uint64_t reserved_16_63 : 48; 1132#endif 1133 } s; 1134 struct cvmx_iob_outb_fpa_pri_cnt_s cn38xx; 1135 struct cvmx_iob_outb_fpa_pri_cnt_s cn38xxp2; 1136 struct cvmx_iob_outb_fpa_pri_cnt_s cn52xx; 1137 struct cvmx_iob_outb_fpa_pri_cnt_s cn52xxp1; 1138 struct cvmx_iob_outb_fpa_pri_cnt_s cn56xx; 1139 struct cvmx_iob_outb_fpa_pri_cnt_s cn56xxp1; 1140 struct cvmx_iob_outb_fpa_pri_cnt_s cn58xx; 1141 struct cvmx_iob_outb_fpa_pri_cnt_s cn58xxp1; 1142 struct cvmx_iob_outb_fpa_pri_cnt_s cn63xx; 1143 struct cvmx_iob_outb_fpa_pri_cnt_s cn63xxp1; 1144}; 1145typedef union cvmx_iob_outb_fpa_pri_cnt cvmx_iob_outb_fpa_pri_cnt_t; 1146 1147/** 1148 * cvmx_iob_outb_req_pri_cnt 1149 * 1150 * Request To NCB Priority Counter = Request to NCB Priority Counter Enable and Timer Value 1151 * 1152 * Enables and supplies the timeout count for raising the priority of Request transfers to the Outbound NCB. 1153 */ 1154union cvmx_iob_outb_req_pri_cnt 1155{ 1156 uint64_t u64; 1157 struct cvmx_iob_outb_req_pri_cnt_s 1158 { 1159#if __BYTE_ORDER == __BIG_ENDIAN 1160 uint64_t reserved_16_63 : 48; 1161 uint64_t cnt_enb : 1; /**< Enables the raising of NCB access priority 1162 when CNT_VAL is reached. */ 1163 uint64_t cnt_val : 15; /**< Number of core clocks to wait before raising 1164 the priority for access to NCB. */ 1165#else 1166 uint64_t cnt_val : 15; 1167 uint64_t cnt_enb : 1; 1168 uint64_t reserved_16_63 : 48; 1169#endif 1170 } s; 1171 struct cvmx_iob_outb_req_pri_cnt_s cn38xx; 1172 struct cvmx_iob_outb_req_pri_cnt_s cn38xxp2; 1173 struct cvmx_iob_outb_req_pri_cnt_s cn52xx; 1174 struct cvmx_iob_outb_req_pri_cnt_s cn52xxp1; 1175 struct cvmx_iob_outb_req_pri_cnt_s cn56xx; 1176 struct cvmx_iob_outb_req_pri_cnt_s cn56xxp1; 1177 struct cvmx_iob_outb_req_pri_cnt_s cn58xx; 1178 struct cvmx_iob_outb_req_pri_cnt_s cn58xxp1; 1179 struct cvmx_iob_outb_req_pri_cnt_s cn63xx; 1180 struct cvmx_iob_outb_req_pri_cnt_s cn63xxp1; 1181}; 1182typedef union cvmx_iob_outb_req_pri_cnt cvmx_iob_outb_req_pri_cnt_t; 1183 1184/** 1185 * cvmx_iob_p2c_req_pri_cnt 1186 * 1187 * PKO To CMB Response Priority Counter = PKO to CMB Response Priority Counter Enable and Timer Value 1188 * 1189 * Enables and supplies the timeout count for raising the priority of PKO Load access to the CMB. 1190 */ 1191union cvmx_iob_p2c_req_pri_cnt 1192{ 1193 uint64_t u64; 1194 struct cvmx_iob_p2c_req_pri_cnt_s 1195 { 1196#if __BYTE_ORDER == __BIG_ENDIAN 1197 uint64_t reserved_16_63 : 48; 1198 uint64_t cnt_enb : 1; /**< Enables the raising of CMB access priority 1199 when CNT_VAL is reached. */ 1200 uint64_t cnt_val : 15; /**< Number of core clocks to wait before raising 1201 the priority for access to CMB. */ 1202#else 1203 uint64_t cnt_val : 15; 1204 uint64_t cnt_enb : 1; 1205 uint64_t reserved_16_63 : 48; 1206#endif 1207 } s; 1208 struct cvmx_iob_p2c_req_pri_cnt_s cn38xx; 1209 struct cvmx_iob_p2c_req_pri_cnt_s cn38xxp2; 1210 struct cvmx_iob_p2c_req_pri_cnt_s cn52xx; 1211 struct cvmx_iob_p2c_req_pri_cnt_s cn52xxp1; 1212 struct cvmx_iob_p2c_req_pri_cnt_s cn56xx; 1213 struct cvmx_iob_p2c_req_pri_cnt_s cn56xxp1; 1214 struct cvmx_iob_p2c_req_pri_cnt_s cn58xx; 1215 struct cvmx_iob_p2c_req_pri_cnt_s cn58xxp1; 1216 struct cvmx_iob_p2c_req_pri_cnt_s cn63xx; 1217 struct cvmx_iob_p2c_req_pri_cnt_s cn63xxp1; 1218}; 1219typedef union cvmx_iob_p2c_req_pri_cnt cvmx_iob_p2c_req_pri_cnt_t; 1220 1221/** 1222 * cvmx_iob_pkt_err 1223 * 1224 * IOB_PKT_ERR = IOB Packet Error Register 1225 * 1226 * Provides status about the failing packet recevie error. This is a PASS-2 register. 1227 */ 1228union cvmx_iob_pkt_err 1229{ 1230 uint64_t u64; 1231 struct cvmx_iob_pkt_err_s 1232 { 1233#if __BYTE_ORDER == __BIG_ENDIAN 1234 uint64_t reserved_12_63 : 52; 1235 uint64_t vport : 6; /**< When IOB_INT_SUM[3:0] bit is set, this field 1236 latches the failing vport associate with the 1237 IOB_INT_SUM[3:0] bit set. */ 1238 uint64_t port : 6; /**< When IOB_INT_SUM[3:0] bit is set, this field 1239 latches the failing port associate with the 1240 IOB_INT_SUM[3:0] bit set. */ 1241#else 1242 uint64_t port : 6; 1243 uint64_t vport : 6; 1244 uint64_t reserved_12_63 : 52; 1245#endif 1246 } s; 1247 struct cvmx_iob_pkt_err_cn30xx 1248 { 1249#if __BYTE_ORDER == __BIG_ENDIAN 1250 uint64_t reserved_6_63 : 58; 1251 uint64_t port : 6; /**< When IOB_INT_SUM[3:0] bit is set, this field 1252 latches the failing port associate with the 1253 IOB_INT_SUM[3:0] bit set. */ 1254#else 1255 uint64_t port : 6; 1256 uint64_t reserved_6_63 : 58; 1257#endif 1258 } cn30xx; 1259 struct cvmx_iob_pkt_err_cn30xx cn31xx; 1260 struct cvmx_iob_pkt_err_cn30xx cn38xx; 1261 struct cvmx_iob_pkt_err_cn30xx cn38xxp2; 1262 struct cvmx_iob_pkt_err_cn30xx cn50xx; 1263 struct cvmx_iob_pkt_err_cn30xx cn52xx; 1264 struct cvmx_iob_pkt_err_cn30xx cn52xxp1; 1265 struct cvmx_iob_pkt_err_cn30xx cn56xx; 1266 struct cvmx_iob_pkt_err_cn30xx cn56xxp1; 1267 struct cvmx_iob_pkt_err_cn30xx cn58xx; 1268 struct cvmx_iob_pkt_err_cn30xx cn58xxp1; 1269 struct cvmx_iob_pkt_err_s cn63xx; 1270 struct cvmx_iob_pkt_err_s cn63xxp1; 1271}; 1272typedef union cvmx_iob_pkt_err cvmx_iob_pkt_err_t; 1273 1274/** 1275 * cvmx_iob_to_cmb_credits 1276 * 1277 * IOB_TO_CMB_CREDITS = IOB To CMB Credits 1278 * 1279 * Controls the number of reads and writes that may be outstanding to the L2C (via the CMB). 1280 */ 1281union cvmx_iob_to_cmb_credits 1282{ 1283 uint64_t u64; 1284 struct cvmx_iob_to_cmb_credits_s 1285 { 1286#if __BYTE_ORDER == __BIG_ENDIAN 1287 uint64_t reserved_9_63 : 55; 1288 uint64_t pko_rd : 3; /**< Number of PKO reads that can be out to L2C where 1289 0 == 8-credits. */ 1290 uint64_t ncb_rd : 3; /**< Number of NCB reads that can be out to L2C where 1291 0 == 8-credits. */ 1292 uint64_t ncb_wr : 3; /**< Number of NCB/PKI writes that can be out to L2C 1293 where 0 == 8-credits. */ 1294#else 1295 uint64_t ncb_wr : 3; 1296 uint64_t ncb_rd : 3; 1297 uint64_t pko_rd : 3; 1298 uint64_t reserved_9_63 : 55; 1299#endif 1300 } s; 1301 struct cvmx_iob_to_cmb_credits_s cn52xx; 1302 struct cvmx_iob_to_cmb_credits_s cn63xx; 1303 struct cvmx_iob_to_cmb_credits_s cn63xxp1; 1304}; 1305typedef union cvmx_iob_to_cmb_credits cvmx_iob_to_cmb_credits_t; 1306 1307#endif 1308