1af866496SDavid Daney /***********************license start*************** 2af866496SDavid Daney * Author: Cavium Networks 3af866496SDavid Daney * 4af866496SDavid Daney * Contact: support@caviumnetworks.com 5af866496SDavid Daney * This file is part of the OCTEON SDK 6af866496SDavid Daney * 7c5aa59e8SDavid Daney * Copyright (c) 2003-2012 Cavium Networks 8af866496SDavid Daney * 9af866496SDavid Daney * This file is free software; you can redistribute it and/or modify 10af866496SDavid Daney * it under the terms of the GNU General Public License, Version 2, as 11af866496SDavid Daney * published by the Free Software Foundation. 12af866496SDavid Daney * 13af866496SDavid Daney * This file is distributed in the hope that it will be useful, but 14af866496SDavid Daney * AS-IS and WITHOUT ANY WARRANTY; without even the implied warranty 15af866496SDavid Daney * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, TITLE, or 16af866496SDavid Daney * NONINFRINGEMENT. See the GNU General Public License for more 17af866496SDavid Daney * details. 18af866496SDavid Daney * 19af866496SDavid Daney * You should have received a copy of the GNU General Public License 20af866496SDavid Daney * along with this file; if not, write to the Free Software 21af866496SDavid Daney * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 22af866496SDavid Daney * or visit http://www.gnu.org/licenses/. 23af866496SDavid Daney * 24af866496SDavid Daney * This file may also be available under a different license from Cavium. 25af866496SDavid Daney * Contact Cavium Networks for more information 26af866496SDavid Daney ***********************license end**************************************/ 27af866496SDavid Daney 28af866496SDavid Daney #ifndef __CVMX_STXX_DEFS_H__ 29af866496SDavid Daney #define __CVMX_STXX_DEFS_H__ 30af866496SDavid Daney 31c5aa59e8SDavid Daney #define CVMX_STXX_ARB_CTL(block_id) (CVMX_ADD_IO_SEG(0x0001180090000608ull) + ((block_id) & 1) * 0x8000000ull) 32c5aa59e8SDavid Daney #define CVMX_STXX_BCKPRS_CNT(block_id) (CVMX_ADD_IO_SEG(0x0001180090000688ull) + ((block_id) & 1) * 0x8000000ull) 33c5aa59e8SDavid Daney #define CVMX_STXX_COM_CTL(block_id) (CVMX_ADD_IO_SEG(0x0001180090000600ull) + ((block_id) & 1) * 0x8000000ull) 34c5aa59e8SDavid Daney #define CVMX_STXX_DIP_CNT(block_id) (CVMX_ADD_IO_SEG(0x0001180090000690ull) + ((block_id) & 1) * 0x8000000ull) 35c5aa59e8SDavid Daney #define CVMX_STXX_IGN_CAL(block_id) (CVMX_ADD_IO_SEG(0x0001180090000610ull) + ((block_id) & 1) * 0x8000000ull) 36c5aa59e8SDavid Daney #define CVMX_STXX_INT_MSK(block_id) (CVMX_ADD_IO_SEG(0x00011800900006A0ull) + ((block_id) & 1) * 0x8000000ull) 37c5aa59e8SDavid Daney #define CVMX_STXX_INT_REG(block_id) (CVMX_ADD_IO_SEG(0x0001180090000698ull) + ((block_id) & 1) * 0x8000000ull) 38c5aa59e8SDavid Daney #define CVMX_STXX_INT_SYNC(block_id) (CVMX_ADD_IO_SEG(0x00011800900006A8ull) + ((block_id) & 1) * 0x8000000ull) 39c5aa59e8SDavid Daney #define CVMX_STXX_MIN_BST(block_id) (CVMX_ADD_IO_SEG(0x0001180090000618ull) + ((block_id) & 1) * 0x8000000ull) 40c5aa59e8SDavid Daney #define CVMX_STXX_SPI4_CALX(offset, block_id) (CVMX_ADD_IO_SEG(0x0001180090000400ull) + (((offset) & 31) + ((block_id) & 1) * 0x1000000ull) * 8) 41c5aa59e8SDavid Daney #define CVMX_STXX_SPI4_DAT(block_id) (CVMX_ADD_IO_SEG(0x0001180090000628ull) + ((block_id) & 1) * 0x8000000ull) 42c5aa59e8SDavid Daney #define CVMX_STXX_SPI4_STAT(block_id) (CVMX_ADD_IO_SEG(0x0001180090000630ull) + ((block_id) & 1) * 0x8000000ull) 43c5aa59e8SDavid Daney #define CVMX_STXX_STAT_BYTES_HI(block_id) (CVMX_ADD_IO_SEG(0x0001180090000648ull) + ((block_id) & 1) * 0x8000000ull) 44c5aa59e8SDavid Daney #define CVMX_STXX_STAT_BYTES_LO(block_id) (CVMX_ADD_IO_SEG(0x0001180090000680ull) + ((block_id) & 1) * 0x8000000ull) 45c5aa59e8SDavid Daney #define CVMX_STXX_STAT_CTL(block_id) (CVMX_ADD_IO_SEG(0x0001180090000638ull) + ((block_id) & 1) * 0x8000000ull) 46c5aa59e8SDavid Daney #define CVMX_STXX_STAT_PKT_XMT(block_id) (CVMX_ADD_IO_SEG(0x0001180090000640ull) + ((block_id) & 1) * 0x8000000ull) 47af866496SDavid Daney 48af866496SDavid Daney union cvmx_stxx_arb_ctl { 49af866496SDavid Daney uint64_t u64; 50af866496SDavid Daney struct cvmx_stxx_arb_ctl_s { 51c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 52af866496SDavid Daney uint64_t reserved_6_63:58; 53af866496SDavid Daney uint64_t mintrn:1; 54af866496SDavid Daney uint64_t reserved_4_4:1; 55af866496SDavid Daney uint64_t igntpa:1; 56af866496SDavid Daney uint64_t reserved_0_2:3; 57c5aa59e8SDavid Daney #else 58c5aa59e8SDavid Daney uint64_t reserved_0_2:3; 59c5aa59e8SDavid Daney uint64_t igntpa:1; 60c5aa59e8SDavid Daney uint64_t reserved_4_4:1; 61c5aa59e8SDavid Daney uint64_t mintrn:1; 62c5aa59e8SDavid Daney uint64_t reserved_6_63:58; 63c5aa59e8SDavid Daney #endif 64af866496SDavid Daney } s; 65af866496SDavid Daney struct cvmx_stxx_arb_ctl_s cn38xx; 66af866496SDavid Daney struct cvmx_stxx_arb_ctl_s cn38xxp2; 67af866496SDavid Daney struct cvmx_stxx_arb_ctl_s cn58xx; 68af866496SDavid Daney struct cvmx_stxx_arb_ctl_s cn58xxp1; 69af866496SDavid Daney }; 70af866496SDavid Daney 71af866496SDavid Daney union cvmx_stxx_bckprs_cnt { 72af866496SDavid Daney uint64_t u64; 73af866496SDavid Daney struct cvmx_stxx_bckprs_cnt_s { 74c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 75af866496SDavid Daney uint64_t reserved_32_63:32; 76af866496SDavid Daney uint64_t cnt:32; 77c5aa59e8SDavid Daney #else 78c5aa59e8SDavid Daney uint64_t cnt:32; 79c5aa59e8SDavid Daney uint64_t reserved_32_63:32; 80c5aa59e8SDavid Daney #endif 81af866496SDavid Daney } s; 82af866496SDavid Daney struct cvmx_stxx_bckprs_cnt_s cn38xx; 83af866496SDavid Daney struct cvmx_stxx_bckprs_cnt_s cn38xxp2; 84af866496SDavid Daney struct cvmx_stxx_bckprs_cnt_s cn58xx; 85af866496SDavid Daney struct cvmx_stxx_bckprs_cnt_s cn58xxp1; 86af866496SDavid Daney }; 87af866496SDavid Daney 88af866496SDavid Daney union cvmx_stxx_com_ctl { 89af866496SDavid Daney uint64_t u64; 90af866496SDavid Daney struct cvmx_stxx_com_ctl_s { 91c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 92af866496SDavid Daney uint64_t reserved_4_63:60; 93af866496SDavid Daney uint64_t st_en:1; 94af866496SDavid Daney uint64_t reserved_1_2:2; 95af866496SDavid Daney uint64_t inf_en:1; 96c5aa59e8SDavid Daney #else 97c5aa59e8SDavid Daney uint64_t inf_en:1; 98c5aa59e8SDavid Daney uint64_t reserved_1_2:2; 99c5aa59e8SDavid Daney uint64_t st_en:1; 100c5aa59e8SDavid Daney uint64_t reserved_4_63:60; 101c5aa59e8SDavid Daney #endif 102af866496SDavid Daney } s; 103af866496SDavid Daney struct cvmx_stxx_com_ctl_s cn38xx; 104af866496SDavid Daney struct cvmx_stxx_com_ctl_s cn38xxp2; 105af866496SDavid Daney struct cvmx_stxx_com_ctl_s cn58xx; 106af866496SDavid Daney struct cvmx_stxx_com_ctl_s cn58xxp1; 107af866496SDavid Daney }; 108af866496SDavid Daney 109af866496SDavid Daney union cvmx_stxx_dip_cnt { 110af866496SDavid Daney uint64_t u64; 111af866496SDavid Daney struct cvmx_stxx_dip_cnt_s { 112c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 113af866496SDavid Daney uint64_t reserved_8_63:56; 114af866496SDavid Daney uint64_t frmmax:4; 115af866496SDavid Daney uint64_t dipmax:4; 116c5aa59e8SDavid Daney #else 117c5aa59e8SDavid Daney uint64_t dipmax:4; 118c5aa59e8SDavid Daney uint64_t frmmax:4; 119c5aa59e8SDavid Daney uint64_t reserved_8_63:56; 120c5aa59e8SDavid Daney #endif 121af866496SDavid Daney } s; 122af866496SDavid Daney struct cvmx_stxx_dip_cnt_s cn38xx; 123af866496SDavid Daney struct cvmx_stxx_dip_cnt_s cn38xxp2; 124af866496SDavid Daney struct cvmx_stxx_dip_cnt_s cn58xx; 125af866496SDavid Daney struct cvmx_stxx_dip_cnt_s cn58xxp1; 126af866496SDavid Daney }; 127af866496SDavid Daney 128af866496SDavid Daney union cvmx_stxx_ign_cal { 129af866496SDavid Daney uint64_t u64; 130af866496SDavid Daney struct cvmx_stxx_ign_cal_s { 131c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 132af866496SDavid Daney uint64_t reserved_16_63:48; 133af866496SDavid Daney uint64_t igntpa:16; 134c5aa59e8SDavid Daney #else 135c5aa59e8SDavid Daney uint64_t igntpa:16; 136c5aa59e8SDavid Daney uint64_t reserved_16_63:48; 137c5aa59e8SDavid Daney #endif 138af866496SDavid Daney } s; 139af866496SDavid Daney struct cvmx_stxx_ign_cal_s cn38xx; 140af866496SDavid Daney struct cvmx_stxx_ign_cal_s cn38xxp2; 141af866496SDavid Daney struct cvmx_stxx_ign_cal_s cn58xx; 142af866496SDavid Daney struct cvmx_stxx_ign_cal_s cn58xxp1; 143af866496SDavid Daney }; 144af866496SDavid Daney 145af866496SDavid Daney union cvmx_stxx_int_msk { 146af866496SDavid Daney uint64_t u64; 147af866496SDavid Daney struct cvmx_stxx_int_msk_s { 148c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 149af866496SDavid Daney uint64_t reserved_8_63:56; 150af866496SDavid Daney uint64_t frmerr:1; 151af866496SDavid Daney uint64_t unxfrm:1; 152af866496SDavid Daney uint64_t nosync:1; 153af866496SDavid Daney uint64_t diperr:1; 154af866496SDavid Daney uint64_t datovr:1; 155af866496SDavid Daney uint64_t ovrbst:1; 156af866496SDavid Daney uint64_t calpar1:1; 157af866496SDavid Daney uint64_t calpar0:1; 158c5aa59e8SDavid Daney #else 159c5aa59e8SDavid Daney uint64_t calpar0:1; 160c5aa59e8SDavid Daney uint64_t calpar1:1; 161c5aa59e8SDavid Daney uint64_t ovrbst:1; 162c5aa59e8SDavid Daney uint64_t datovr:1; 163c5aa59e8SDavid Daney uint64_t diperr:1; 164c5aa59e8SDavid Daney uint64_t nosync:1; 165c5aa59e8SDavid Daney uint64_t unxfrm:1; 166c5aa59e8SDavid Daney uint64_t frmerr:1; 167c5aa59e8SDavid Daney uint64_t reserved_8_63:56; 168c5aa59e8SDavid Daney #endif 169af866496SDavid Daney } s; 170af866496SDavid Daney struct cvmx_stxx_int_msk_s cn38xx; 171af866496SDavid Daney struct cvmx_stxx_int_msk_s cn38xxp2; 172af866496SDavid Daney struct cvmx_stxx_int_msk_s cn58xx; 173af866496SDavid Daney struct cvmx_stxx_int_msk_s cn58xxp1; 174af866496SDavid Daney }; 175af866496SDavid Daney 176af866496SDavid Daney union cvmx_stxx_int_reg { 177af866496SDavid Daney uint64_t u64; 178af866496SDavid Daney struct cvmx_stxx_int_reg_s { 179c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 180af866496SDavid Daney uint64_t reserved_9_63:55; 181af866496SDavid Daney uint64_t syncerr:1; 182af866496SDavid Daney uint64_t frmerr:1; 183af866496SDavid Daney uint64_t unxfrm:1; 184af866496SDavid Daney uint64_t nosync:1; 185af866496SDavid Daney uint64_t diperr:1; 186af866496SDavid Daney uint64_t datovr:1; 187af866496SDavid Daney uint64_t ovrbst:1; 188af866496SDavid Daney uint64_t calpar1:1; 189af866496SDavid Daney uint64_t calpar0:1; 190c5aa59e8SDavid Daney #else 191c5aa59e8SDavid Daney uint64_t calpar0:1; 192c5aa59e8SDavid Daney uint64_t calpar1:1; 193c5aa59e8SDavid Daney uint64_t ovrbst:1; 194c5aa59e8SDavid Daney uint64_t datovr:1; 195c5aa59e8SDavid Daney uint64_t diperr:1; 196c5aa59e8SDavid Daney uint64_t nosync:1; 197c5aa59e8SDavid Daney uint64_t unxfrm:1; 198c5aa59e8SDavid Daney uint64_t frmerr:1; 199c5aa59e8SDavid Daney uint64_t syncerr:1; 200c5aa59e8SDavid Daney uint64_t reserved_9_63:55; 201c5aa59e8SDavid Daney #endif 202af866496SDavid Daney } s; 203af866496SDavid Daney struct cvmx_stxx_int_reg_s cn38xx; 204af866496SDavid Daney struct cvmx_stxx_int_reg_s cn38xxp2; 205af866496SDavid Daney struct cvmx_stxx_int_reg_s cn58xx; 206af866496SDavid Daney struct cvmx_stxx_int_reg_s cn58xxp1; 207af866496SDavid Daney }; 208af866496SDavid Daney 209af866496SDavid Daney union cvmx_stxx_int_sync { 210af866496SDavid Daney uint64_t u64; 211af866496SDavid Daney struct cvmx_stxx_int_sync_s { 212c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 213af866496SDavid Daney uint64_t reserved_8_63:56; 214af866496SDavid Daney uint64_t frmerr:1; 215af866496SDavid Daney uint64_t unxfrm:1; 216af866496SDavid Daney uint64_t nosync:1; 217af866496SDavid Daney uint64_t diperr:1; 218af866496SDavid Daney uint64_t datovr:1; 219af866496SDavid Daney uint64_t ovrbst:1; 220af866496SDavid Daney uint64_t calpar1:1; 221af866496SDavid Daney uint64_t calpar0:1; 222c5aa59e8SDavid Daney #else 223c5aa59e8SDavid Daney uint64_t calpar0:1; 224c5aa59e8SDavid Daney uint64_t calpar1:1; 225c5aa59e8SDavid Daney uint64_t ovrbst:1; 226c5aa59e8SDavid Daney uint64_t datovr:1; 227c5aa59e8SDavid Daney uint64_t diperr:1; 228c5aa59e8SDavid Daney uint64_t nosync:1; 229c5aa59e8SDavid Daney uint64_t unxfrm:1; 230c5aa59e8SDavid Daney uint64_t frmerr:1; 231c5aa59e8SDavid Daney uint64_t reserved_8_63:56; 232c5aa59e8SDavid Daney #endif 233af866496SDavid Daney } s; 234af866496SDavid Daney struct cvmx_stxx_int_sync_s cn38xx; 235af866496SDavid Daney struct cvmx_stxx_int_sync_s cn38xxp2; 236af866496SDavid Daney struct cvmx_stxx_int_sync_s cn58xx; 237af866496SDavid Daney struct cvmx_stxx_int_sync_s cn58xxp1; 238af866496SDavid Daney }; 239af866496SDavid Daney 240af866496SDavid Daney union cvmx_stxx_min_bst { 241af866496SDavid Daney uint64_t u64; 242af866496SDavid Daney struct cvmx_stxx_min_bst_s { 243c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 244af866496SDavid Daney uint64_t reserved_9_63:55; 245af866496SDavid Daney uint64_t minb:9; 246c5aa59e8SDavid Daney #else 247c5aa59e8SDavid Daney uint64_t minb:9; 248c5aa59e8SDavid Daney uint64_t reserved_9_63:55; 249c5aa59e8SDavid Daney #endif 250af866496SDavid Daney } s; 251af866496SDavid Daney struct cvmx_stxx_min_bst_s cn38xx; 252af866496SDavid Daney struct cvmx_stxx_min_bst_s cn38xxp2; 253af866496SDavid Daney struct cvmx_stxx_min_bst_s cn58xx; 254af866496SDavid Daney struct cvmx_stxx_min_bst_s cn58xxp1; 255af866496SDavid Daney }; 256af866496SDavid Daney 257af866496SDavid Daney union cvmx_stxx_spi4_calx { 258af866496SDavid Daney uint64_t u64; 259af866496SDavid Daney struct cvmx_stxx_spi4_calx_s { 260c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 261af866496SDavid Daney uint64_t reserved_17_63:47; 262af866496SDavid Daney uint64_t oddpar:1; 263af866496SDavid Daney uint64_t prt3:4; 264af866496SDavid Daney uint64_t prt2:4; 265af866496SDavid Daney uint64_t prt1:4; 266af866496SDavid Daney uint64_t prt0:4; 267c5aa59e8SDavid Daney #else 268c5aa59e8SDavid Daney uint64_t prt0:4; 269c5aa59e8SDavid Daney uint64_t prt1:4; 270c5aa59e8SDavid Daney uint64_t prt2:4; 271c5aa59e8SDavid Daney uint64_t prt3:4; 272c5aa59e8SDavid Daney uint64_t oddpar:1; 273c5aa59e8SDavid Daney uint64_t reserved_17_63:47; 274c5aa59e8SDavid Daney #endif 275af866496SDavid Daney } s; 276af866496SDavid Daney struct cvmx_stxx_spi4_calx_s cn38xx; 277af866496SDavid Daney struct cvmx_stxx_spi4_calx_s cn38xxp2; 278af866496SDavid Daney struct cvmx_stxx_spi4_calx_s cn58xx; 279af866496SDavid Daney struct cvmx_stxx_spi4_calx_s cn58xxp1; 280af866496SDavid Daney }; 281af866496SDavid Daney 282af866496SDavid Daney union cvmx_stxx_spi4_dat { 283af866496SDavid Daney uint64_t u64; 284af866496SDavid Daney struct cvmx_stxx_spi4_dat_s { 285c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 286af866496SDavid Daney uint64_t reserved_32_63:32; 287af866496SDavid Daney uint64_t alpha:16; 288af866496SDavid Daney uint64_t max_t:16; 289c5aa59e8SDavid Daney #else 290c5aa59e8SDavid Daney uint64_t max_t:16; 291c5aa59e8SDavid Daney uint64_t alpha:16; 292c5aa59e8SDavid Daney uint64_t reserved_32_63:32; 293c5aa59e8SDavid Daney #endif 294af866496SDavid Daney } s; 295af866496SDavid Daney struct cvmx_stxx_spi4_dat_s cn38xx; 296af866496SDavid Daney struct cvmx_stxx_spi4_dat_s cn38xxp2; 297af866496SDavid Daney struct cvmx_stxx_spi4_dat_s cn58xx; 298af866496SDavid Daney struct cvmx_stxx_spi4_dat_s cn58xxp1; 299af866496SDavid Daney }; 300af866496SDavid Daney 301af866496SDavid Daney union cvmx_stxx_spi4_stat { 302af866496SDavid Daney uint64_t u64; 303af866496SDavid Daney struct cvmx_stxx_spi4_stat_s { 304c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 305af866496SDavid Daney uint64_t reserved_16_63:48; 306af866496SDavid Daney uint64_t m:8; 307af866496SDavid Daney uint64_t reserved_7_7:1; 308af866496SDavid Daney uint64_t len:7; 309c5aa59e8SDavid Daney #else 310c5aa59e8SDavid Daney uint64_t len:7; 311c5aa59e8SDavid Daney uint64_t reserved_7_7:1; 312c5aa59e8SDavid Daney uint64_t m:8; 313c5aa59e8SDavid Daney uint64_t reserved_16_63:48; 314c5aa59e8SDavid Daney #endif 315af866496SDavid Daney } s; 316af866496SDavid Daney struct cvmx_stxx_spi4_stat_s cn38xx; 317af866496SDavid Daney struct cvmx_stxx_spi4_stat_s cn38xxp2; 318af866496SDavid Daney struct cvmx_stxx_spi4_stat_s cn58xx; 319af866496SDavid Daney struct cvmx_stxx_spi4_stat_s cn58xxp1; 320af866496SDavid Daney }; 321af866496SDavid Daney 322af866496SDavid Daney union cvmx_stxx_stat_bytes_hi { 323af866496SDavid Daney uint64_t u64; 324af866496SDavid Daney struct cvmx_stxx_stat_bytes_hi_s { 325c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 326af866496SDavid Daney uint64_t reserved_32_63:32; 327af866496SDavid Daney uint64_t cnt:32; 328c5aa59e8SDavid Daney #else 329c5aa59e8SDavid Daney uint64_t cnt:32; 330c5aa59e8SDavid Daney uint64_t reserved_32_63:32; 331c5aa59e8SDavid Daney #endif 332af866496SDavid Daney } s; 333af866496SDavid Daney struct cvmx_stxx_stat_bytes_hi_s cn38xx; 334af866496SDavid Daney struct cvmx_stxx_stat_bytes_hi_s cn38xxp2; 335af866496SDavid Daney struct cvmx_stxx_stat_bytes_hi_s cn58xx; 336af866496SDavid Daney struct cvmx_stxx_stat_bytes_hi_s cn58xxp1; 337af866496SDavid Daney }; 338af866496SDavid Daney 339af866496SDavid Daney union cvmx_stxx_stat_bytes_lo { 340af866496SDavid Daney uint64_t u64; 341af866496SDavid Daney struct cvmx_stxx_stat_bytes_lo_s { 342c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 343af866496SDavid Daney uint64_t reserved_32_63:32; 344af866496SDavid Daney uint64_t cnt:32; 345c5aa59e8SDavid Daney #else 346c5aa59e8SDavid Daney uint64_t cnt:32; 347c5aa59e8SDavid Daney uint64_t reserved_32_63:32; 348c5aa59e8SDavid Daney #endif 349af866496SDavid Daney } s; 350af866496SDavid Daney struct cvmx_stxx_stat_bytes_lo_s cn38xx; 351af866496SDavid Daney struct cvmx_stxx_stat_bytes_lo_s cn38xxp2; 352af866496SDavid Daney struct cvmx_stxx_stat_bytes_lo_s cn58xx; 353af866496SDavid Daney struct cvmx_stxx_stat_bytes_lo_s cn58xxp1; 354af866496SDavid Daney }; 355af866496SDavid Daney 356af866496SDavid Daney union cvmx_stxx_stat_ctl { 357af866496SDavid Daney uint64_t u64; 358af866496SDavid Daney struct cvmx_stxx_stat_ctl_s { 359c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 360af866496SDavid Daney uint64_t reserved_5_63:59; 361af866496SDavid Daney uint64_t clr:1; 362af866496SDavid Daney uint64_t bckprs:4; 363c5aa59e8SDavid Daney #else 364c5aa59e8SDavid Daney uint64_t bckprs:4; 365c5aa59e8SDavid Daney uint64_t clr:1; 366c5aa59e8SDavid Daney uint64_t reserved_5_63:59; 367c5aa59e8SDavid Daney #endif 368af866496SDavid Daney } s; 369af866496SDavid Daney struct cvmx_stxx_stat_ctl_s cn38xx; 370af866496SDavid Daney struct cvmx_stxx_stat_ctl_s cn38xxp2; 371af866496SDavid Daney struct cvmx_stxx_stat_ctl_s cn58xx; 372af866496SDavid Daney struct cvmx_stxx_stat_ctl_s cn58xxp1; 373af866496SDavid Daney }; 374af866496SDavid Daney 375af866496SDavid Daney union cvmx_stxx_stat_pkt_xmt { 376af866496SDavid Daney uint64_t u64; 377af866496SDavid Daney struct cvmx_stxx_stat_pkt_xmt_s { 378c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 379af866496SDavid Daney uint64_t reserved_32_63:32; 380af866496SDavid Daney uint64_t cnt:32; 381c5aa59e8SDavid Daney #else 382c5aa59e8SDavid Daney uint64_t cnt:32; 383c5aa59e8SDavid Daney uint64_t reserved_32_63:32; 384c5aa59e8SDavid Daney #endif 385af866496SDavid Daney } s; 386af866496SDavid Daney struct cvmx_stxx_stat_pkt_xmt_s cn38xx; 387af866496SDavid Daney struct cvmx_stxx_stat_pkt_xmt_s cn38xxp2; 388af866496SDavid Daney struct cvmx_stxx_stat_pkt_xmt_s cn58xx; 389af866496SDavid Daney struct cvmx_stxx_stat_pkt_xmt_s cn58xxp1; 390af866496SDavid Daney }; 391af866496SDavid Daney 392af866496SDavid Daney #endif 393