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 * 7840267e4SSteven J. Hill * Copyright (C) 2003-2018 Cavium, Inc. 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 48840267e4SSteven J. Hill void __cvmx_interrupt_stxx_int_msk_enable(int index); 49840267e4SSteven J. Hill 50af866496SDavid Daney union cvmx_stxx_arb_ctl { 51af866496SDavid Daney uint64_t u64; 52af866496SDavid Daney struct cvmx_stxx_arb_ctl_s { 53c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 54af866496SDavid Daney uint64_t reserved_6_63:58; 55af866496SDavid Daney uint64_t mintrn:1; 56af866496SDavid Daney uint64_t reserved_4_4:1; 57af866496SDavid Daney uint64_t igntpa:1; 58af866496SDavid Daney uint64_t reserved_0_2:3; 59c5aa59e8SDavid Daney #else 60c5aa59e8SDavid Daney uint64_t reserved_0_2:3; 61c5aa59e8SDavid Daney uint64_t igntpa:1; 62c5aa59e8SDavid Daney uint64_t reserved_4_4:1; 63c5aa59e8SDavid Daney uint64_t mintrn:1; 64c5aa59e8SDavid Daney uint64_t reserved_6_63:58; 65c5aa59e8SDavid Daney #endif 66af866496SDavid Daney } s; 67af866496SDavid Daney }; 68af866496SDavid Daney 69af866496SDavid Daney union cvmx_stxx_bckprs_cnt { 70af866496SDavid Daney uint64_t u64; 71af866496SDavid Daney struct cvmx_stxx_bckprs_cnt_s { 72c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 73af866496SDavid Daney uint64_t reserved_32_63:32; 74af866496SDavid Daney uint64_t cnt:32; 75c5aa59e8SDavid Daney #else 76c5aa59e8SDavid Daney uint64_t cnt:32; 77c5aa59e8SDavid Daney uint64_t reserved_32_63:32; 78c5aa59e8SDavid Daney #endif 79af866496SDavid Daney } s; 80af866496SDavid Daney }; 81af866496SDavid Daney 82af866496SDavid Daney union cvmx_stxx_com_ctl { 83af866496SDavid Daney uint64_t u64; 84af866496SDavid Daney struct cvmx_stxx_com_ctl_s { 85c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 86af866496SDavid Daney uint64_t reserved_4_63:60; 87af866496SDavid Daney uint64_t st_en:1; 88af866496SDavid Daney uint64_t reserved_1_2:2; 89af866496SDavid Daney uint64_t inf_en:1; 90c5aa59e8SDavid Daney #else 91c5aa59e8SDavid Daney uint64_t inf_en:1; 92c5aa59e8SDavid Daney uint64_t reserved_1_2:2; 93c5aa59e8SDavid Daney uint64_t st_en:1; 94c5aa59e8SDavid Daney uint64_t reserved_4_63:60; 95c5aa59e8SDavid Daney #endif 96af866496SDavid Daney } s; 97af866496SDavid Daney }; 98af866496SDavid Daney 99af866496SDavid Daney union cvmx_stxx_dip_cnt { 100af866496SDavid Daney uint64_t u64; 101af866496SDavid Daney struct cvmx_stxx_dip_cnt_s { 102c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 103af866496SDavid Daney uint64_t reserved_8_63:56; 104af866496SDavid Daney uint64_t frmmax:4; 105af866496SDavid Daney uint64_t dipmax:4; 106c5aa59e8SDavid Daney #else 107c5aa59e8SDavid Daney uint64_t dipmax:4; 108c5aa59e8SDavid Daney uint64_t frmmax:4; 109c5aa59e8SDavid Daney uint64_t reserved_8_63:56; 110c5aa59e8SDavid Daney #endif 111af866496SDavid Daney } s; 112af866496SDavid Daney }; 113af866496SDavid Daney 114af866496SDavid Daney union cvmx_stxx_ign_cal { 115af866496SDavid Daney uint64_t u64; 116af866496SDavid Daney struct cvmx_stxx_ign_cal_s { 117c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 118af866496SDavid Daney uint64_t reserved_16_63:48; 119af866496SDavid Daney uint64_t igntpa:16; 120c5aa59e8SDavid Daney #else 121c5aa59e8SDavid Daney uint64_t igntpa:16; 122c5aa59e8SDavid Daney uint64_t reserved_16_63:48; 123c5aa59e8SDavid Daney #endif 124af866496SDavid Daney } s; 125af866496SDavid Daney }; 126af866496SDavid Daney 127af866496SDavid Daney union cvmx_stxx_int_msk { 128af866496SDavid Daney uint64_t u64; 129af866496SDavid Daney struct cvmx_stxx_int_msk_s { 130c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 131af866496SDavid Daney uint64_t reserved_8_63:56; 132af866496SDavid Daney uint64_t frmerr:1; 133af866496SDavid Daney uint64_t unxfrm:1; 134af866496SDavid Daney uint64_t nosync:1; 135af866496SDavid Daney uint64_t diperr:1; 136af866496SDavid Daney uint64_t datovr:1; 137af866496SDavid Daney uint64_t ovrbst:1; 138af866496SDavid Daney uint64_t calpar1:1; 139af866496SDavid Daney uint64_t calpar0:1; 140c5aa59e8SDavid Daney #else 141c5aa59e8SDavid Daney uint64_t calpar0:1; 142c5aa59e8SDavid Daney uint64_t calpar1:1; 143c5aa59e8SDavid Daney uint64_t ovrbst:1; 144c5aa59e8SDavid Daney uint64_t datovr:1; 145c5aa59e8SDavid Daney uint64_t diperr:1; 146c5aa59e8SDavid Daney uint64_t nosync:1; 147c5aa59e8SDavid Daney uint64_t unxfrm:1; 148c5aa59e8SDavid Daney uint64_t frmerr:1; 149c5aa59e8SDavid Daney uint64_t reserved_8_63:56; 150c5aa59e8SDavid Daney #endif 151af866496SDavid Daney } s; 152af866496SDavid Daney }; 153af866496SDavid Daney 154af866496SDavid Daney union cvmx_stxx_int_reg { 155af866496SDavid Daney uint64_t u64; 156af866496SDavid Daney struct cvmx_stxx_int_reg_s { 157c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 158af866496SDavid Daney uint64_t reserved_9_63:55; 159af866496SDavid Daney uint64_t syncerr:1; 160af866496SDavid Daney uint64_t frmerr:1; 161af866496SDavid Daney uint64_t unxfrm:1; 162af866496SDavid Daney uint64_t nosync:1; 163af866496SDavid Daney uint64_t diperr:1; 164af866496SDavid Daney uint64_t datovr:1; 165af866496SDavid Daney uint64_t ovrbst:1; 166af866496SDavid Daney uint64_t calpar1:1; 167af866496SDavid Daney uint64_t calpar0:1; 168c5aa59e8SDavid Daney #else 169c5aa59e8SDavid Daney uint64_t calpar0:1; 170c5aa59e8SDavid Daney uint64_t calpar1:1; 171c5aa59e8SDavid Daney uint64_t ovrbst:1; 172c5aa59e8SDavid Daney uint64_t datovr:1; 173c5aa59e8SDavid Daney uint64_t diperr:1; 174c5aa59e8SDavid Daney uint64_t nosync:1; 175c5aa59e8SDavid Daney uint64_t unxfrm:1; 176c5aa59e8SDavid Daney uint64_t frmerr:1; 177c5aa59e8SDavid Daney uint64_t syncerr:1; 178c5aa59e8SDavid Daney uint64_t reserved_9_63:55; 179c5aa59e8SDavid Daney #endif 180af866496SDavid Daney } s; 181af866496SDavid Daney }; 182af866496SDavid Daney 183af866496SDavid Daney union cvmx_stxx_int_sync { 184af866496SDavid Daney uint64_t u64; 185af866496SDavid Daney struct cvmx_stxx_int_sync_s { 186c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 187af866496SDavid Daney uint64_t reserved_8_63:56; 188af866496SDavid Daney uint64_t frmerr:1; 189af866496SDavid Daney uint64_t unxfrm:1; 190af866496SDavid Daney uint64_t nosync:1; 191af866496SDavid Daney uint64_t diperr:1; 192af866496SDavid Daney uint64_t datovr:1; 193af866496SDavid Daney uint64_t ovrbst:1; 194af866496SDavid Daney uint64_t calpar1:1; 195af866496SDavid Daney uint64_t calpar0:1; 196c5aa59e8SDavid Daney #else 197c5aa59e8SDavid Daney uint64_t calpar0:1; 198c5aa59e8SDavid Daney uint64_t calpar1:1; 199c5aa59e8SDavid Daney uint64_t ovrbst:1; 200c5aa59e8SDavid Daney uint64_t datovr:1; 201c5aa59e8SDavid Daney uint64_t diperr:1; 202c5aa59e8SDavid Daney uint64_t nosync:1; 203c5aa59e8SDavid Daney uint64_t unxfrm:1; 204c5aa59e8SDavid Daney uint64_t frmerr:1; 205c5aa59e8SDavid Daney uint64_t reserved_8_63:56; 206c5aa59e8SDavid Daney #endif 207af866496SDavid Daney } s; 208af866496SDavid Daney }; 209af866496SDavid Daney 210af866496SDavid Daney union cvmx_stxx_min_bst { 211af866496SDavid Daney uint64_t u64; 212af866496SDavid Daney struct cvmx_stxx_min_bst_s { 213c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 214af866496SDavid Daney uint64_t reserved_9_63:55; 215af866496SDavid Daney uint64_t minb:9; 216c5aa59e8SDavid Daney #else 217c5aa59e8SDavid Daney uint64_t minb:9; 218c5aa59e8SDavid Daney uint64_t reserved_9_63:55; 219c5aa59e8SDavid Daney #endif 220af866496SDavid Daney } s; 221af866496SDavid Daney }; 222af866496SDavid Daney 223af866496SDavid Daney union cvmx_stxx_spi4_calx { 224af866496SDavid Daney uint64_t u64; 225af866496SDavid Daney struct cvmx_stxx_spi4_calx_s { 226c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 227af866496SDavid Daney uint64_t reserved_17_63:47; 228af866496SDavid Daney uint64_t oddpar:1; 229af866496SDavid Daney uint64_t prt3:4; 230af866496SDavid Daney uint64_t prt2:4; 231af866496SDavid Daney uint64_t prt1:4; 232af866496SDavid Daney uint64_t prt0:4; 233c5aa59e8SDavid Daney #else 234c5aa59e8SDavid Daney uint64_t prt0:4; 235c5aa59e8SDavid Daney uint64_t prt1:4; 236c5aa59e8SDavid Daney uint64_t prt2:4; 237c5aa59e8SDavid Daney uint64_t prt3:4; 238c5aa59e8SDavid Daney uint64_t oddpar:1; 239c5aa59e8SDavid Daney uint64_t reserved_17_63:47; 240c5aa59e8SDavid Daney #endif 241af866496SDavid Daney } s; 242af866496SDavid Daney }; 243af866496SDavid Daney 244af866496SDavid Daney union cvmx_stxx_spi4_dat { 245af866496SDavid Daney uint64_t u64; 246af866496SDavid Daney struct cvmx_stxx_spi4_dat_s { 247c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 248af866496SDavid Daney uint64_t reserved_32_63:32; 249af866496SDavid Daney uint64_t alpha:16; 250af866496SDavid Daney uint64_t max_t:16; 251c5aa59e8SDavid Daney #else 252c5aa59e8SDavid Daney uint64_t max_t:16; 253c5aa59e8SDavid Daney uint64_t alpha:16; 254c5aa59e8SDavid Daney uint64_t reserved_32_63:32; 255c5aa59e8SDavid Daney #endif 256af866496SDavid Daney } s; 257af866496SDavid Daney }; 258af866496SDavid Daney 259af866496SDavid Daney union cvmx_stxx_spi4_stat { 260af866496SDavid Daney uint64_t u64; 261af866496SDavid Daney struct cvmx_stxx_spi4_stat_s { 262c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 263af866496SDavid Daney uint64_t reserved_16_63:48; 264af866496SDavid Daney uint64_t m:8; 265af866496SDavid Daney uint64_t reserved_7_7:1; 266af866496SDavid Daney uint64_t len:7; 267c5aa59e8SDavid Daney #else 268c5aa59e8SDavid Daney uint64_t len:7; 269c5aa59e8SDavid Daney uint64_t reserved_7_7:1; 270c5aa59e8SDavid Daney uint64_t m:8; 271c5aa59e8SDavid Daney uint64_t reserved_16_63:48; 272c5aa59e8SDavid Daney #endif 273af866496SDavid Daney } s; 274af866496SDavid Daney }; 275af866496SDavid Daney 276af866496SDavid Daney union cvmx_stxx_stat_bytes_hi { 277af866496SDavid Daney uint64_t u64; 278af866496SDavid Daney struct cvmx_stxx_stat_bytes_hi_s { 279c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 280af866496SDavid Daney uint64_t reserved_32_63:32; 281af866496SDavid Daney uint64_t cnt:32; 282c5aa59e8SDavid Daney #else 283c5aa59e8SDavid Daney uint64_t cnt:32; 284c5aa59e8SDavid Daney uint64_t reserved_32_63:32; 285c5aa59e8SDavid Daney #endif 286af866496SDavid Daney } s; 287af866496SDavid Daney }; 288af866496SDavid Daney 289af866496SDavid Daney union cvmx_stxx_stat_bytes_lo { 290af866496SDavid Daney uint64_t u64; 291af866496SDavid Daney struct cvmx_stxx_stat_bytes_lo_s { 292c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 293af866496SDavid Daney uint64_t reserved_32_63:32; 294af866496SDavid Daney uint64_t cnt:32; 295c5aa59e8SDavid Daney #else 296c5aa59e8SDavid Daney uint64_t cnt:32; 297c5aa59e8SDavid Daney uint64_t reserved_32_63:32; 298c5aa59e8SDavid Daney #endif 299af866496SDavid Daney } s; 300af866496SDavid Daney }; 301af866496SDavid Daney 302af866496SDavid Daney union cvmx_stxx_stat_ctl { 303af866496SDavid Daney uint64_t u64; 304af866496SDavid Daney struct cvmx_stxx_stat_ctl_s { 305c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 306af866496SDavid Daney uint64_t reserved_5_63:59; 307af866496SDavid Daney uint64_t clr:1; 308af866496SDavid Daney uint64_t bckprs:4; 309c5aa59e8SDavid Daney #else 310c5aa59e8SDavid Daney uint64_t bckprs:4; 311c5aa59e8SDavid Daney uint64_t clr:1; 312c5aa59e8SDavid Daney uint64_t reserved_5_63:59; 313c5aa59e8SDavid Daney #endif 314af866496SDavid Daney } s; 315af866496SDavid Daney }; 316af866496SDavid Daney 317af866496SDavid Daney union cvmx_stxx_stat_pkt_xmt { 318af866496SDavid Daney uint64_t u64; 319af866496SDavid Daney struct cvmx_stxx_stat_pkt_xmt_s { 320c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 321af866496SDavid Daney uint64_t reserved_32_63:32; 322af866496SDavid Daney uint64_t cnt:32; 323c5aa59e8SDavid Daney #else 324c5aa59e8SDavid Daney uint64_t cnt:32; 325c5aa59e8SDavid Daney uint64_t reserved_32_63:32; 326c5aa59e8SDavid Daney #endif 327af866496SDavid Daney } s; 328af866496SDavid Daney }; 329af866496SDavid Daney 330af866496SDavid Daney #endif 331