1a7187a2fSDavid Daney /***********************license start*************** 2a7187a2fSDavid Daney * Author: Cavium Networks 3a7187a2fSDavid Daney * 4a7187a2fSDavid Daney * Contact: support@caviumnetworks.com 5a7187a2fSDavid Daney * This file is part of the OCTEON SDK 6a7187a2fSDavid Daney * 7*c5aa59e8SDavid Daney * Copyright (c) 2003-2012 Cavium Networks 8a7187a2fSDavid Daney * 9a7187a2fSDavid Daney * This file is free software; you can redistribute it and/or modify 10a7187a2fSDavid Daney * it under the terms of the GNU General Public License, Version 2, as 11a7187a2fSDavid Daney * published by the Free Software Foundation. 12a7187a2fSDavid Daney * 13a7187a2fSDavid Daney * This file is distributed in the hope that it will be useful, but 14a7187a2fSDavid Daney * AS-IS and WITHOUT ANY WARRANTY; without even the implied warranty 15a7187a2fSDavid Daney * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, TITLE, or 16a7187a2fSDavid Daney * NONINFRINGEMENT. See the GNU General Public License for more 17a7187a2fSDavid Daney * details. 18a7187a2fSDavid Daney * 19a7187a2fSDavid Daney * You should have received a copy of the GNU General Public License 20a7187a2fSDavid Daney * along with this file; if not, write to the Free Software 21a7187a2fSDavid Daney * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 22a7187a2fSDavid Daney * or visit http://www.gnu.org/licenses/. 23a7187a2fSDavid Daney * 24a7187a2fSDavid Daney * This file may also be available under a different license from Cavium. 25a7187a2fSDavid Daney * Contact Cavium Networks for more information 26a7187a2fSDavid Daney ***********************license end**************************************/ 27a7187a2fSDavid Daney 28a7187a2fSDavid Daney #ifndef __CVMX_MIXX_DEFS_H__ 29a7187a2fSDavid Daney #define __CVMX_MIXX_DEFS_H__ 30a7187a2fSDavid Daney 31aa32a955SDavid Daney #define CVMX_MIXX_BIST(offset) (CVMX_ADD_IO_SEG(0x0001070000100078ull) + ((offset) & 1) * 2048) 32aa32a955SDavid Daney #define CVMX_MIXX_CTL(offset) (CVMX_ADD_IO_SEG(0x0001070000100020ull) + ((offset) & 1) * 2048) 33aa32a955SDavid Daney #define CVMX_MIXX_INTENA(offset) (CVMX_ADD_IO_SEG(0x0001070000100050ull) + ((offset) & 1) * 2048) 34aa32a955SDavid Daney #define CVMX_MIXX_IRCNT(offset) (CVMX_ADD_IO_SEG(0x0001070000100030ull) + ((offset) & 1) * 2048) 35aa32a955SDavid Daney #define CVMX_MIXX_IRHWM(offset) (CVMX_ADD_IO_SEG(0x0001070000100028ull) + ((offset) & 1) * 2048) 36aa32a955SDavid Daney #define CVMX_MIXX_IRING1(offset) (CVMX_ADD_IO_SEG(0x0001070000100010ull) + ((offset) & 1) * 2048) 37aa32a955SDavid Daney #define CVMX_MIXX_IRING2(offset) (CVMX_ADD_IO_SEG(0x0001070000100018ull) + ((offset) & 1) * 2048) 38aa32a955SDavid Daney #define CVMX_MIXX_ISR(offset) (CVMX_ADD_IO_SEG(0x0001070000100048ull) + ((offset) & 1) * 2048) 39aa32a955SDavid Daney #define CVMX_MIXX_ORCNT(offset) (CVMX_ADD_IO_SEG(0x0001070000100040ull) + ((offset) & 1) * 2048) 40aa32a955SDavid Daney #define CVMX_MIXX_ORHWM(offset) (CVMX_ADD_IO_SEG(0x0001070000100038ull) + ((offset) & 1) * 2048) 41aa32a955SDavid Daney #define CVMX_MIXX_ORING1(offset) (CVMX_ADD_IO_SEG(0x0001070000100000ull) + ((offset) & 1) * 2048) 42aa32a955SDavid Daney #define CVMX_MIXX_ORING2(offset) (CVMX_ADD_IO_SEG(0x0001070000100008ull) + ((offset) & 1) * 2048) 43aa32a955SDavid Daney #define CVMX_MIXX_REMCNT(offset) (CVMX_ADD_IO_SEG(0x0001070000100058ull) + ((offset) & 1) * 2048) 44aa32a955SDavid Daney #define CVMX_MIXX_TSCTL(offset) (CVMX_ADD_IO_SEG(0x0001070000100068ull) + ((offset) & 1) * 2048) 45aa32a955SDavid Daney #define CVMX_MIXX_TSTAMP(offset) (CVMX_ADD_IO_SEG(0x0001070000100060ull) + ((offset) & 1) * 2048) 46a7187a2fSDavid Daney 47a7187a2fSDavid Daney union cvmx_mixx_bist { 48a7187a2fSDavid Daney uint64_t u64; 49a7187a2fSDavid Daney struct cvmx_mixx_bist_s { 50*c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 51aa32a955SDavid Daney uint64_t reserved_6_63:58; 52aa32a955SDavid Daney uint64_t opfdat:1; 53aa32a955SDavid Daney uint64_t mrgdat:1; 54a7187a2fSDavid Daney uint64_t mrqdat:1; 55a7187a2fSDavid Daney uint64_t ipfdat:1; 56a7187a2fSDavid Daney uint64_t irfdat:1; 57a7187a2fSDavid Daney uint64_t orfdat:1; 58*c5aa59e8SDavid Daney #else 59*c5aa59e8SDavid Daney uint64_t orfdat:1; 60*c5aa59e8SDavid Daney uint64_t irfdat:1; 61*c5aa59e8SDavid Daney uint64_t ipfdat:1; 62*c5aa59e8SDavid Daney uint64_t mrqdat:1; 63*c5aa59e8SDavid Daney uint64_t mrgdat:1; 64*c5aa59e8SDavid Daney uint64_t opfdat:1; 65*c5aa59e8SDavid Daney uint64_t reserved_6_63:58; 66*c5aa59e8SDavid Daney #endif 67a7187a2fSDavid Daney } s; 68aa32a955SDavid Daney struct cvmx_mixx_bist_cn52xx { 69*c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 70aa32a955SDavid Daney uint64_t reserved_4_63:60; 71aa32a955SDavid Daney uint64_t mrqdat:1; 72aa32a955SDavid Daney uint64_t ipfdat:1; 73aa32a955SDavid Daney uint64_t irfdat:1; 74aa32a955SDavid Daney uint64_t orfdat:1; 75*c5aa59e8SDavid Daney #else 76*c5aa59e8SDavid Daney uint64_t orfdat:1; 77*c5aa59e8SDavid Daney uint64_t irfdat:1; 78*c5aa59e8SDavid Daney uint64_t ipfdat:1; 79*c5aa59e8SDavid Daney uint64_t mrqdat:1; 80*c5aa59e8SDavid Daney uint64_t reserved_4_63:60; 81*c5aa59e8SDavid Daney #endif 82aa32a955SDavid Daney } cn52xx; 83a7187a2fSDavid Daney }; 84a7187a2fSDavid Daney 85a7187a2fSDavid Daney union cvmx_mixx_ctl { 86a7187a2fSDavid Daney uint64_t u64; 87a7187a2fSDavid Daney struct cvmx_mixx_ctl_s { 88*c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 89aa32a955SDavid Daney uint64_t reserved_12_63:52; 90aa32a955SDavid Daney uint64_t ts_thresh:4; 91a7187a2fSDavid Daney uint64_t crc_strip:1; 92a7187a2fSDavid Daney uint64_t busy:1; 93a7187a2fSDavid Daney uint64_t en:1; 94a7187a2fSDavid Daney uint64_t reset:1; 95a7187a2fSDavid Daney uint64_t lendian:1; 96a7187a2fSDavid Daney uint64_t nbtarb:1; 97a7187a2fSDavid Daney uint64_t mrq_hwm:2; 98*c5aa59e8SDavid Daney #else 99*c5aa59e8SDavid Daney uint64_t mrq_hwm:2; 100*c5aa59e8SDavid Daney uint64_t nbtarb:1; 101*c5aa59e8SDavid Daney uint64_t lendian:1; 102*c5aa59e8SDavid Daney uint64_t reset:1; 103*c5aa59e8SDavid Daney uint64_t en:1; 104*c5aa59e8SDavid Daney uint64_t busy:1; 105*c5aa59e8SDavid Daney uint64_t crc_strip:1; 106*c5aa59e8SDavid Daney uint64_t ts_thresh:4; 107*c5aa59e8SDavid Daney uint64_t reserved_12_63:52; 108*c5aa59e8SDavid Daney #endif 109a7187a2fSDavid Daney } s; 110aa32a955SDavid Daney struct cvmx_mixx_ctl_cn52xx { 111*c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 112aa32a955SDavid Daney uint64_t reserved_8_63:56; 113aa32a955SDavid Daney uint64_t crc_strip:1; 114aa32a955SDavid Daney uint64_t busy:1; 115aa32a955SDavid Daney uint64_t en:1; 116aa32a955SDavid Daney uint64_t reset:1; 117aa32a955SDavid Daney uint64_t lendian:1; 118aa32a955SDavid Daney uint64_t nbtarb:1; 119aa32a955SDavid Daney uint64_t mrq_hwm:2; 120*c5aa59e8SDavid Daney #else 121*c5aa59e8SDavid Daney uint64_t mrq_hwm:2; 122*c5aa59e8SDavid Daney uint64_t nbtarb:1; 123*c5aa59e8SDavid Daney uint64_t lendian:1; 124*c5aa59e8SDavid Daney uint64_t reset:1; 125*c5aa59e8SDavid Daney uint64_t en:1; 126*c5aa59e8SDavid Daney uint64_t busy:1; 127*c5aa59e8SDavid Daney uint64_t crc_strip:1; 128*c5aa59e8SDavid Daney uint64_t reserved_8_63:56; 129*c5aa59e8SDavid Daney #endif 130aa32a955SDavid Daney } cn52xx; 131a7187a2fSDavid Daney }; 132a7187a2fSDavid Daney 133a7187a2fSDavid Daney union cvmx_mixx_intena { 134a7187a2fSDavid Daney uint64_t u64; 135a7187a2fSDavid Daney struct cvmx_mixx_intena_s { 136*c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 137aa32a955SDavid Daney uint64_t reserved_8_63:56; 138aa32a955SDavid Daney uint64_t tsena:1; 139a7187a2fSDavid Daney uint64_t orunena:1; 140a7187a2fSDavid Daney uint64_t irunena:1; 141a7187a2fSDavid Daney uint64_t data_drpena:1; 142a7187a2fSDavid Daney uint64_t ithena:1; 143a7187a2fSDavid Daney uint64_t othena:1; 144a7187a2fSDavid Daney uint64_t ivfena:1; 145a7187a2fSDavid Daney uint64_t ovfena:1; 146*c5aa59e8SDavid Daney #else 147*c5aa59e8SDavid Daney uint64_t ovfena:1; 148*c5aa59e8SDavid Daney uint64_t ivfena:1; 149*c5aa59e8SDavid Daney uint64_t othena:1; 150*c5aa59e8SDavid Daney uint64_t ithena:1; 151*c5aa59e8SDavid Daney uint64_t data_drpena:1; 152*c5aa59e8SDavid Daney uint64_t irunena:1; 153*c5aa59e8SDavid Daney uint64_t orunena:1; 154*c5aa59e8SDavid Daney uint64_t tsena:1; 155*c5aa59e8SDavid Daney uint64_t reserved_8_63:56; 156*c5aa59e8SDavid Daney #endif 157a7187a2fSDavid Daney } s; 158aa32a955SDavid Daney struct cvmx_mixx_intena_cn52xx { 159*c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 160aa32a955SDavid Daney uint64_t reserved_7_63:57; 161aa32a955SDavid Daney uint64_t orunena:1; 162aa32a955SDavid Daney uint64_t irunena:1; 163aa32a955SDavid Daney uint64_t data_drpena:1; 164aa32a955SDavid Daney uint64_t ithena:1; 165aa32a955SDavid Daney uint64_t othena:1; 166aa32a955SDavid Daney uint64_t ivfena:1; 167aa32a955SDavid Daney uint64_t ovfena:1; 168*c5aa59e8SDavid Daney #else 169*c5aa59e8SDavid Daney uint64_t ovfena:1; 170*c5aa59e8SDavid Daney uint64_t ivfena:1; 171*c5aa59e8SDavid Daney uint64_t othena:1; 172*c5aa59e8SDavid Daney uint64_t ithena:1; 173*c5aa59e8SDavid Daney uint64_t data_drpena:1; 174*c5aa59e8SDavid Daney uint64_t irunena:1; 175*c5aa59e8SDavid Daney uint64_t orunena:1; 176*c5aa59e8SDavid Daney uint64_t reserved_7_63:57; 177*c5aa59e8SDavid Daney #endif 178aa32a955SDavid Daney } cn52xx; 179a7187a2fSDavid Daney }; 180a7187a2fSDavid Daney 181a7187a2fSDavid Daney union cvmx_mixx_ircnt { 182a7187a2fSDavid Daney uint64_t u64; 183a7187a2fSDavid Daney struct cvmx_mixx_ircnt_s { 184*c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 185a7187a2fSDavid Daney uint64_t reserved_20_63:44; 186a7187a2fSDavid Daney uint64_t ircnt:20; 187*c5aa59e8SDavid Daney #else 188*c5aa59e8SDavid Daney uint64_t ircnt:20; 189*c5aa59e8SDavid Daney uint64_t reserved_20_63:44; 190*c5aa59e8SDavid Daney #endif 191a7187a2fSDavid Daney } s; 192a7187a2fSDavid Daney }; 193a7187a2fSDavid Daney 194a7187a2fSDavid Daney union cvmx_mixx_irhwm { 195a7187a2fSDavid Daney uint64_t u64; 196a7187a2fSDavid Daney struct cvmx_mixx_irhwm_s { 197*c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 198a7187a2fSDavid Daney uint64_t reserved_40_63:24; 199a7187a2fSDavid Daney uint64_t ibplwm:20; 200a7187a2fSDavid Daney uint64_t irhwm:20; 201*c5aa59e8SDavid Daney #else 202*c5aa59e8SDavid Daney uint64_t irhwm:20; 203*c5aa59e8SDavid Daney uint64_t ibplwm:20; 204*c5aa59e8SDavid Daney uint64_t reserved_40_63:24; 205*c5aa59e8SDavid Daney #endif 206a7187a2fSDavid Daney } s; 207a7187a2fSDavid Daney }; 208a7187a2fSDavid Daney 209a7187a2fSDavid Daney union cvmx_mixx_iring1 { 210a7187a2fSDavid Daney uint64_t u64; 211a7187a2fSDavid Daney struct cvmx_mixx_iring1_s { 212*c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 213a7187a2fSDavid Daney uint64_t reserved_60_63:4; 214a7187a2fSDavid Daney uint64_t isize:20; 215aa32a955SDavid Daney uint64_t ibase:37; 216aa32a955SDavid Daney uint64_t reserved_0_2:3; 217*c5aa59e8SDavid Daney #else 218*c5aa59e8SDavid Daney uint64_t reserved_0_2:3; 219*c5aa59e8SDavid Daney uint64_t ibase:37; 220*c5aa59e8SDavid Daney uint64_t isize:20; 221*c5aa59e8SDavid Daney uint64_t reserved_60_63:4; 222*c5aa59e8SDavid Daney #endif 223aa32a955SDavid Daney } s; 224aa32a955SDavid Daney struct cvmx_mixx_iring1_cn52xx { 225*c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 226aa32a955SDavid Daney uint64_t reserved_60_63:4; 227aa32a955SDavid Daney uint64_t isize:20; 228a7187a2fSDavid Daney uint64_t reserved_36_39:4; 229a7187a2fSDavid Daney uint64_t ibase:33; 230a7187a2fSDavid Daney uint64_t reserved_0_2:3; 231*c5aa59e8SDavid Daney #else 232*c5aa59e8SDavid Daney uint64_t reserved_0_2:3; 233*c5aa59e8SDavid Daney uint64_t ibase:33; 234*c5aa59e8SDavid Daney uint64_t reserved_36_39:4; 235*c5aa59e8SDavid Daney uint64_t isize:20; 236*c5aa59e8SDavid Daney uint64_t reserved_60_63:4; 237*c5aa59e8SDavid Daney #endif 238aa32a955SDavid Daney } cn52xx; 239a7187a2fSDavid Daney }; 240a7187a2fSDavid Daney 241a7187a2fSDavid Daney union cvmx_mixx_iring2 { 242a7187a2fSDavid Daney uint64_t u64; 243a7187a2fSDavid Daney struct cvmx_mixx_iring2_s { 244*c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 245a7187a2fSDavid Daney uint64_t reserved_52_63:12; 246a7187a2fSDavid Daney uint64_t itlptr:20; 247a7187a2fSDavid Daney uint64_t reserved_20_31:12; 248a7187a2fSDavid Daney uint64_t idbell:20; 249*c5aa59e8SDavid Daney #else 250*c5aa59e8SDavid Daney uint64_t idbell:20; 251*c5aa59e8SDavid Daney uint64_t reserved_20_31:12; 252*c5aa59e8SDavid Daney uint64_t itlptr:20; 253*c5aa59e8SDavid Daney uint64_t reserved_52_63:12; 254*c5aa59e8SDavid Daney #endif 255a7187a2fSDavid Daney } s; 256a7187a2fSDavid Daney }; 257a7187a2fSDavid Daney 258a7187a2fSDavid Daney union cvmx_mixx_isr { 259a7187a2fSDavid Daney uint64_t u64; 260a7187a2fSDavid Daney struct cvmx_mixx_isr_s { 261*c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 262aa32a955SDavid Daney uint64_t reserved_8_63:56; 263aa32a955SDavid Daney uint64_t ts:1; 264a7187a2fSDavid Daney uint64_t orun:1; 265a7187a2fSDavid Daney uint64_t irun:1; 266a7187a2fSDavid Daney uint64_t data_drp:1; 267a7187a2fSDavid Daney uint64_t irthresh:1; 268a7187a2fSDavid Daney uint64_t orthresh:1; 269a7187a2fSDavid Daney uint64_t idblovf:1; 270a7187a2fSDavid Daney uint64_t odblovf:1; 271*c5aa59e8SDavid Daney #else 272*c5aa59e8SDavid Daney uint64_t odblovf:1; 273*c5aa59e8SDavid Daney uint64_t idblovf:1; 274*c5aa59e8SDavid Daney uint64_t orthresh:1; 275*c5aa59e8SDavid Daney uint64_t irthresh:1; 276*c5aa59e8SDavid Daney uint64_t data_drp:1; 277*c5aa59e8SDavid Daney uint64_t irun:1; 278*c5aa59e8SDavid Daney uint64_t orun:1; 279*c5aa59e8SDavid Daney uint64_t ts:1; 280*c5aa59e8SDavid Daney uint64_t reserved_8_63:56; 281*c5aa59e8SDavid Daney #endif 282a7187a2fSDavid Daney } s; 283aa32a955SDavid Daney struct cvmx_mixx_isr_cn52xx { 284*c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 285aa32a955SDavid Daney uint64_t reserved_7_63:57; 286aa32a955SDavid Daney uint64_t orun:1; 287aa32a955SDavid Daney uint64_t irun:1; 288aa32a955SDavid Daney uint64_t data_drp:1; 289aa32a955SDavid Daney uint64_t irthresh:1; 290aa32a955SDavid Daney uint64_t orthresh:1; 291aa32a955SDavid Daney uint64_t idblovf:1; 292aa32a955SDavid Daney uint64_t odblovf:1; 293*c5aa59e8SDavid Daney #else 294*c5aa59e8SDavid Daney uint64_t odblovf:1; 295*c5aa59e8SDavid Daney uint64_t idblovf:1; 296*c5aa59e8SDavid Daney uint64_t orthresh:1; 297*c5aa59e8SDavid Daney uint64_t irthresh:1; 298*c5aa59e8SDavid Daney uint64_t data_drp:1; 299*c5aa59e8SDavid Daney uint64_t irun:1; 300*c5aa59e8SDavid Daney uint64_t orun:1; 301*c5aa59e8SDavid Daney uint64_t reserved_7_63:57; 302*c5aa59e8SDavid Daney #endif 303aa32a955SDavid Daney } cn52xx; 304a7187a2fSDavid Daney }; 305a7187a2fSDavid Daney 306a7187a2fSDavid Daney union cvmx_mixx_orcnt { 307a7187a2fSDavid Daney uint64_t u64; 308a7187a2fSDavid Daney struct cvmx_mixx_orcnt_s { 309*c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 310a7187a2fSDavid Daney uint64_t reserved_20_63:44; 311a7187a2fSDavid Daney uint64_t orcnt:20; 312*c5aa59e8SDavid Daney #else 313*c5aa59e8SDavid Daney uint64_t orcnt:20; 314*c5aa59e8SDavid Daney uint64_t reserved_20_63:44; 315*c5aa59e8SDavid Daney #endif 316a7187a2fSDavid Daney } s; 317a7187a2fSDavid Daney }; 318a7187a2fSDavid Daney 319a7187a2fSDavid Daney union cvmx_mixx_orhwm { 320a7187a2fSDavid Daney uint64_t u64; 321a7187a2fSDavid Daney struct cvmx_mixx_orhwm_s { 322*c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 323a7187a2fSDavid Daney uint64_t reserved_20_63:44; 324a7187a2fSDavid Daney uint64_t orhwm:20; 325*c5aa59e8SDavid Daney #else 326*c5aa59e8SDavid Daney uint64_t orhwm:20; 327*c5aa59e8SDavid Daney uint64_t reserved_20_63:44; 328*c5aa59e8SDavid Daney #endif 329a7187a2fSDavid Daney } s; 330a7187a2fSDavid Daney }; 331a7187a2fSDavid Daney 332a7187a2fSDavid Daney union cvmx_mixx_oring1 { 333a7187a2fSDavid Daney uint64_t u64; 334a7187a2fSDavid Daney struct cvmx_mixx_oring1_s { 335*c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 336a7187a2fSDavid Daney uint64_t reserved_60_63:4; 337a7187a2fSDavid Daney uint64_t osize:20; 338aa32a955SDavid Daney uint64_t obase:37; 339aa32a955SDavid Daney uint64_t reserved_0_2:3; 340*c5aa59e8SDavid Daney #else 341*c5aa59e8SDavid Daney uint64_t reserved_0_2:3; 342*c5aa59e8SDavid Daney uint64_t obase:37; 343*c5aa59e8SDavid Daney uint64_t osize:20; 344*c5aa59e8SDavid Daney uint64_t reserved_60_63:4; 345*c5aa59e8SDavid Daney #endif 346aa32a955SDavid Daney } s; 347aa32a955SDavid Daney struct cvmx_mixx_oring1_cn52xx { 348*c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 349aa32a955SDavid Daney uint64_t reserved_60_63:4; 350aa32a955SDavid Daney uint64_t osize:20; 351a7187a2fSDavid Daney uint64_t reserved_36_39:4; 352a7187a2fSDavid Daney uint64_t obase:33; 353a7187a2fSDavid Daney uint64_t reserved_0_2:3; 354*c5aa59e8SDavid Daney #else 355*c5aa59e8SDavid Daney uint64_t reserved_0_2:3; 356*c5aa59e8SDavid Daney uint64_t obase:33; 357*c5aa59e8SDavid Daney uint64_t reserved_36_39:4; 358*c5aa59e8SDavid Daney uint64_t osize:20; 359*c5aa59e8SDavid Daney uint64_t reserved_60_63:4; 360*c5aa59e8SDavid Daney #endif 361aa32a955SDavid Daney } cn52xx; 362a7187a2fSDavid Daney }; 363a7187a2fSDavid Daney 364a7187a2fSDavid Daney union cvmx_mixx_oring2 { 365a7187a2fSDavid Daney uint64_t u64; 366a7187a2fSDavid Daney struct cvmx_mixx_oring2_s { 367*c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 368a7187a2fSDavid Daney uint64_t reserved_52_63:12; 369a7187a2fSDavid Daney uint64_t otlptr:20; 370a7187a2fSDavid Daney uint64_t reserved_20_31:12; 371a7187a2fSDavid Daney uint64_t odbell:20; 372*c5aa59e8SDavid Daney #else 373*c5aa59e8SDavid Daney uint64_t odbell:20; 374*c5aa59e8SDavid Daney uint64_t reserved_20_31:12; 375*c5aa59e8SDavid Daney uint64_t otlptr:20; 376*c5aa59e8SDavid Daney uint64_t reserved_52_63:12; 377*c5aa59e8SDavid Daney #endif 378a7187a2fSDavid Daney } s; 379a7187a2fSDavid Daney }; 380a7187a2fSDavid Daney 381a7187a2fSDavid Daney union cvmx_mixx_remcnt { 382a7187a2fSDavid Daney uint64_t u64; 383a7187a2fSDavid Daney struct cvmx_mixx_remcnt_s { 384*c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 385a7187a2fSDavid Daney uint64_t reserved_52_63:12; 386a7187a2fSDavid Daney uint64_t iremcnt:20; 387a7187a2fSDavid Daney uint64_t reserved_20_31:12; 388a7187a2fSDavid Daney uint64_t oremcnt:20; 389*c5aa59e8SDavid Daney #else 390*c5aa59e8SDavid Daney uint64_t oremcnt:20; 391*c5aa59e8SDavid Daney uint64_t reserved_20_31:12; 392*c5aa59e8SDavid Daney uint64_t iremcnt:20; 393*c5aa59e8SDavid Daney uint64_t reserved_52_63:12; 394*c5aa59e8SDavid Daney #endif 395a7187a2fSDavid Daney } s; 396aa32a955SDavid Daney }; 397aa32a955SDavid Daney 398aa32a955SDavid Daney union cvmx_mixx_tsctl { 399aa32a955SDavid Daney uint64_t u64; 400aa32a955SDavid Daney struct cvmx_mixx_tsctl_s { 401*c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 402aa32a955SDavid Daney uint64_t reserved_21_63:43; 403aa32a955SDavid Daney uint64_t tsavl:5; 404aa32a955SDavid Daney uint64_t reserved_13_15:3; 405aa32a955SDavid Daney uint64_t tstot:5; 406aa32a955SDavid Daney uint64_t reserved_5_7:3; 407aa32a955SDavid Daney uint64_t tscnt:5; 408*c5aa59e8SDavid Daney #else 409*c5aa59e8SDavid Daney uint64_t tscnt:5; 410*c5aa59e8SDavid Daney uint64_t reserved_5_7:3; 411*c5aa59e8SDavid Daney uint64_t tstot:5; 412*c5aa59e8SDavid Daney uint64_t reserved_13_15:3; 413*c5aa59e8SDavid Daney uint64_t tsavl:5; 414*c5aa59e8SDavid Daney uint64_t reserved_21_63:43; 415*c5aa59e8SDavid Daney #endif 416aa32a955SDavid Daney } s; 417aa32a955SDavid Daney }; 418aa32a955SDavid Daney 419aa32a955SDavid Daney union cvmx_mixx_tstamp { 420aa32a955SDavid Daney uint64_t u64; 421aa32a955SDavid Daney struct cvmx_mixx_tstamp_s { 422*c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 423aa32a955SDavid Daney uint64_t tstamp:64; 424*c5aa59e8SDavid Daney #else 425*c5aa59e8SDavid Daney uint64_t tstamp:64; 426*c5aa59e8SDavid Daney #endif 427aa32a955SDavid Daney } s; 428a7187a2fSDavid Daney }; 429a7187a2fSDavid Daney 430a7187a2fSDavid Daney #endif 431