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_SPXX_DEFS_H__ 29af866496SDavid Daney #define __CVMX_SPXX_DEFS_H__ 30af866496SDavid Daney 31c5aa59e8SDavid Daney #define CVMX_SPXX_BCKPRS_CNT(block_id) (CVMX_ADD_IO_SEG(0x0001180090000340ull) + ((block_id) & 1) * 0x8000000ull) 32c5aa59e8SDavid Daney #define CVMX_SPXX_BIST_STAT(block_id) (CVMX_ADD_IO_SEG(0x00011800900007F8ull) + ((block_id) & 1) * 0x8000000ull) 33c5aa59e8SDavid Daney #define CVMX_SPXX_CLK_CTL(block_id) (CVMX_ADD_IO_SEG(0x0001180090000348ull) + ((block_id) & 1) * 0x8000000ull) 34c5aa59e8SDavid Daney #define CVMX_SPXX_CLK_STAT(block_id) (CVMX_ADD_IO_SEG(0x0001180090000350ull) + ((block_id) & 1) * 0x8000000ull) 35c5aa59e8SDavid Daney #define CVMX_SPXX_DBG_DESKEW_CTL(block_id) (CVMX_ADD_IO_SEG(0x0001180090000368ull) + ((block_id) & 1) * 0x8000000ull) 36c5aa59e8SDavid Daney #define CVMX_SPXX_DBG_DESKEW_STATE(block_id) (CVMX_ADD_IO_SEG(0x0001180090000370ull) + ((block_id) & 1) * 0x8000000ull) 37c5aa59e8SDavid Daney #define CVMX_SPXX_DRV_CTL(block_id) (CVMX_ADD_IO_SEG(0x0001180090000358ull) + ((block_id) & 1) * 0x8000000ull) 38c5aa59e8SDavid Daney #define CVMX_SPXX_ERR_CTL(block_id) (CVMX_ADD_IO_SEG(0x0001180090000320ull) + ((block_id) & 1) * 0x8000000ull) 39c5aa59e8SDavid Daney #define CVMX_SPXX_INT_DAT(block_id) (CVMX_ADD_IO_SEG(0x0001180090000318ull) + ((block_id) & 1) * 0x8000000ull) 40c5aa59e8SDavid Daney #define CVMX_SPXX_INT_MSK(block_id) (CVMX_ADD_IO_SEG(0x0001180090000308ull) + ((block_id) & 1) * 0x8000000ull) 41c5aa59e8SDavid Daney #define CVMX_SPXX_INT_REG(block_id) (CVMX_ADD_IO_SEG(0x0001180090000300ull) + ((block_id) & 1) * 0x8000000ull) 42c5aa59e8SDavid Daney #define CVMX_SPXX_INT_SYNC(block_id) (CVMX_ADD_IO_SEG(0x0001180090000310ull) + ((block_id) & 1) * 0x8000000ull) 43c5aa59e8SDavid Daney #define CVMX_SPXX_TPA_ACC(block_id) (CVMX_ADD_IO_SEG(0x0001180090000338ull) + ((block_id) & 1) * 0x8000000ull) 44c5aa59e8SDavid Daney #define CVMX_SPXX_TPA_MAX(block_id) (CVMX_ADD_IO_SEG(0x0001180090000330ull) + ((block_id) & 1) * 0x8000000ull) 45c5aa59e8SDavid Daney #define CVMX_SPXX_TPA_SEL(block_id) (CVMX_ADD_IO_SEG(0x0001180090000328ull) + ((block_id) & 1) * 0x8000000ull) 46c5aa59e8SDavid Daney #define CVMX_SPXX_TRN4_CTL(block_id) (CVMX_ADD_IO_SEG(0x0001180090000360ull) + ((block_id) & 1) * 0x8000000ull) 47af866496SDavid Daney 48af866496SDavid Daney union cvmx_spxx_bckprs_cnt { 49af866496SDavid Daney uint64_t u64; 50af866496SDavid Daney struct cvmx_spxx_bckprs_cnt_s { 51c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 52af866496SDavid Daney uint64_t reserved_32_63:32; 53af866496SDavid Daney uint64_t cnt:32; 54c5aa59e8SDavid Daney #else 55c5aa59e8SDavid Daney uint64_t cnt:32; 56c5aa59e8SDavid Daney uint64_t reserved_32_63:32; 57c5aa59e8SDavid Daney #endif 58af866496SDavid Daney } s; 59af866496SDavid Daney struct cvmx_spxx_bckprs_cnt_s cn38xx; 60af866496SDavid Daney struct cvmx_spxx_bckprs_cnt_s cn38xxp2; 61af866496SDavid Daney struct cvmx_spxx_bckprs_cnt_s cn58xx; 62af866496SDavid Daney struct cvmx_spxx_bckprs_cnt_s cn58xxp1; 63af866496SDavid Daney }; 64af866496SDavid Daney 65af866496SDavid Daney union cvmx_spxx_bist_stat { 66af866496SDavid Daney uint64_t u64; 67af866496SDavid Daney struct cvmx_spxx_bist_stat_s { 68c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 69af866496SDavid Daney uint64_t reserved_3_63:61; 70af866496SDavid Daney uint64_t stat2:1; 71af866496SDavid Daney uint64_t stat1:1; 72af866496SDavid Daney uint64_t stat0:1; 73c5aa59e8SDavid Daney #else 74c5aa59e8SDavid Daney uint64_t stat0:1; 75c5aa59e8SDavid Daney uint64_t stat1:1; 76c5aa59e8SDavid Daney uint64_t stat2:1; 77c5aa59e8SDavid Daney uint64_t reserved_3_63:61; 78c5aa59e8SDavid Daney #endif 79af866496SDavid Daney } s; 80af866496SDavid Daney struct cvmx_spxx_bist_stat_s cn38xx; 81af866496SDavid Daney struct cvmx_spxx_bist_stat_s cn38xxp2; 82af866496SDavid Daney struct cvmx_spxx_bist_stat_s cn58xx; 83af866496SDavid Daney struct cvmx_spxx_bist_stat_s cn58xxp1; 84af866496SDavid Daney }; 85af866496SDavid Daney 86af866496SDavid Daney union cvmx_spxx_clk_ctl { 87af866496SDavid Daney uint64_t u64; 88af866496SDavid Daney struct cvmx_spxx_clk_ctl_s { 89c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 90af866496SDavid Daney uint64_t reserved_17_63:47; 91af866496SDavid Daney uint64_t seetrn:1; 92af866496SDavid Daney uint64_t reserved_12_15:4; 93af866496SDavid Daney uint64_t clkdly:5; 94af866496SDavid Daney uint64_t runbist:1; 95af866496SDavid Daney uint64_t statdrv:1; 96af866496SDavid Daney uint64_t statrcv:1; 97af866496SDavid Daney uint64_t sndtrn:1; 98af866496SDavid Daney uint64_t drptrn:1; 99af866496SDavid Daney uint64_t rcvtrn:1; 100af866496SDavid Daney uint64_t srxdlck:1; 101c5aa59e8SDavid Daney #else 102c5aa59e8SDavid Daney uint64_t srxdlck:1; 103c5aa59e8SDavid Daney uint64_t rcvtrn:1; 104c5aa59e8SDavid Daney uint64_t drptrn:1; 105c5aa59e8SDavid Daney uint64_t sndtrn:1; 106c5aa59e8SDavid Daney uint64_t statrcv:1; 107c5aa59e8SDavid Daney uint64_t statdrv:1; 108c5aa59e8SDavid Daney uint64_t runbist:1; 109c5aa59e8SDavid Daney uint64_t clkdly:5; 110c5aa59e8SDavid Daney uint64_t reserved_12_15:4; 111c5aa59e8SDavid Daney uint64_t seetrn:1; 112c5aa59e8SDavid Daney uint64_t reserved_17_63:47; 113c5aa59e8SDavid Daney #endif 114af866496SDavid Daney } s; 115af866496SDavid Daney struct cvmx_spxx_clk_ctl_s cn38xx; 116af866496SDavid Daney struct cvmx_spxx_clk_ctl_s cn38xxp2; 117af866496SDavid Daney struct cvmx_spxx_clk_ctl_s cn58xx; 118af866496SDavid Daney struct cvmx_spxx_clk_ctl_s cn58xxp1; 119af866496SDavid Daney }; 120af866496SDavid Daney 121af866496SDavid Daney union cvmx_spxx_clk_stat { 122af866496SDavid Daney uint64_t u64; 123af866496SDavid Daney struct cvmx_spxx_clk_stat_s { 124c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 125af866496SDavid Daney uint64_t reserved_11_63:53; 126af866496SDavid Daney uint64_t stxcal:1; 127af866496SDavid Daney uint64_t reserved_9_9:1; 128af866496SDavid Daney uint64_t srxtrn:1; 129af866496SDavid Daney uint64_t s4clk1:1; 130af866496SDavid Daney uint64_t s4clk0:1; 131af866496SDavid Daney uint64_t d4clk1:1; 132af866496SDavid Daney uint64_t d4clk0:1; 133af866496SDavid Daney uint64_t reserved_0_3:4; 134c5aa59e8SDavid Daney #else 135c5aa59e8SDavid Daney uint64_t reserved_0_3:4; 136c5aa59e8SDavid Daney uint64_t d4clk0:1; 137c5aa59e8SDavid Daney uint64_t d4clk1:1; 138c5aa59e8SDavid Daney uint64_t s4clk0:1; 139c5aa59e8SDavid Daney uint64_t s4clk1:1; 140c5aa59e8SDavid Daney uint64_t srxtrn:1; 141c5aa59e8SDavid Daney uint64_t reserved_9_9:1; 142c5aa59e8SDavid Daney uint64_t stxcal:1; 143c5aa59e8SDavid Daney uint64_t reserved_11_63:53; 144c5aa59e8SDavid Daney #endif 145af866496SDavid Daney } s; 146af866496SDavid Daney struct cvmx_spxx_clk_stat_s cn38xx; 147af866496SDavid Daney struct cvmx_spxx_clk_stat_s cn38xxp2; 148af866496SDavid Daney struct cvmx_spxx_clk_stat_s cn58xx; 149af866496SDavid Daney struct cvmx_spxx_clk_stat_s cn58xxp1; 150af866496SDavid Daney }; 151af866496SDavid Daney 152af866496SDavid Daney union cvmx_spxx_dbg_deskew_ctl { 153af866496SDavid Daney uint64_t u64; 154af866496SDavid Daney struct cvmx_spxx_dbg_deskew_ctl_s { 155c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 156af866496SDavid Daney uint64_t reserved_30_63:34; 157af866496SDavid Daney uint64_t fallnop:1; 158af866496SDavid Daney uint64_t fall8:1; 159af866496SDavid Daney uint64_t reserved_26_27:2; 160af866496SDavid Daney uint64_t sstep_go:1; 161af866496SDavid Daney uint64_t sstep:1; 162af866496SDavid Daney uint64_t reserved_22_23:2; 163af866496SDavid Daney uint64_t clrdly:1; 164af866496SDavid Daney uint64_t dec:1; 165af866496SDavid Daney uint64_t inc:1; 166af866496SDavid Daney uint64_t mux:1; 167af866496SDavid Daney uint64_t offset:5; 168af866496SDavid Daney uint64_t bitsel:5; 169af866496SDavid Daney uint64_t offdly:6; 170af866496SDavid Daney uint64_t dllfrc:1; 171af866496SDavid Daney uint64_t dlldis:1; 172c5aa59e8SDavid Daney #else 173c5aa59e8SDavid Daney uint64_t dlldis:1; 174c5aa59e8SDavid Daney uint64_t dllfrc:1; 175c5aa59e8SDavid Daney uint64_t offdly:6; 176c5aa59e8SDavid Daney uint64_t bitsel:5; 177c5aa59e8SDavid Daney uint64_t offset:5; 178c5aa59e8SDavid Daney uint64_t mux:1; 179c5aa59e8SDavid Daney uint64_t inc:1; 180c5aa59e8SDavid Daney uint64_t dec:1; 181c5aa59e8SDavid Daney uint64_t clrdly:1; 182c5aa59e8SDavid Daney uint64_t reserved_22_23:2; 183c5aa59e8SDavid Daney uint64_t sstep:1; 184c5aa59e8SDavid Daney uint64_t sstep_go:1; 185c5aa59e8SDavid Daney uint64_t reserved_26_27:2; 186c5aa59e8SDavid Daney uint64_t fall8:1; 187c5aa59e8SDavid Daney uint64_t fallnop:1; 188c5aa59e8SDavid Daney uint64_t reserved_30_63:34; 189c5aa59e8SDavid Daney #endif 190af866496SDavid Daney } s; 191af866496SDavid Daney struct cvmx_spxx_dbg_deskew_ctl_s cn38xx; 192af866496SDavid Daney struct cvmx_spxx_dbg_deskew_ctl_s cn38xxp2; 193af866496SDavid Daney struct cvmx_spxx_dbg_deskew_ctl_s cn58xx; 194af866496SDavid Daney struct cvmx_spxx_dbg_deskew_ctl_s cn58xxp1; 195af866496SDavid Daney }; 196af866496SDavid Daney 197af866496SDavid Daney union cvmx_spxx_dbg_deskew_state { 198af866496SDavid Daney uint64_t u64; 199af866496SDavid Daney struct cvmx_spxx_dbg_deskew_state_s { 200c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 201af866496SDavid Daney uint64_t reserved_9_63:55; 202af866496SDavid Daney uint64_t testres:1; 203af866496SDavid Daney uint64_t unxterm:1; 204af866496SDavid Daney uint64_t muxsel:2; 205af866496SDavid Daney uint64_t offset:5; 206c5aa59e8SDavid Daney #else 207c5aa59e8SDavid Daney uint64_t offset:5; 208c5aa59e8SDavid Daney uint64_t muxsel:2; 209c5aa59e8SDavid Daney uint64_t unxterm:1; 210c5aa59e8SDavid Daney uint64_t testres:1; 211c5aa59e8SDavid Daney uint64_t reserved_9_63:55; 212c5aa59e8SDavid Daney #endif 213af866496SDavid Daney } s; 214af866496SDavid Daney struct cvmx_spxx_dbg_deskew_state_s cn38xx; 215af866496SDavid Daney struct cvmx_spxx_dbg_deskew_state_s cn38xxp2; 216af866496SDavid Daney struct cvmx_spxx_dbg_deskew_state_s cn58xx; 217af866496SDavid Daney struct cvmx_spxx_dbg_deskew_state_s cn58xxp1; 218af866496SDavid Daney }; 219af866496SDavid Daney 220af866496SDavid Daney union cvmx_spxx_drv_ctl { 221af866496SDavid Daney uint64_t u64; 222af866496SDavid Daney struct cvmx_spxx_drv_ctl_s { 223c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 224af866496SDavid Daney uint64_t reserved_0_63:64; 225c5aa59e8SDavid Daney #else 226c5aa59e8SDavid Daney uint64_t reserved_0_63:64; 227c5aa59e8SDavid Daney #endif 228af866496SDavid Daney } s; 229af866496SDavid Daney struct cvmx_spxx_drv_ctl_cn38xx { 230c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 231af866496SDavid Daney uint64_t reserved_16_63:48; 232af866496SDavid Daney uint64_t stx4ncmp:4; 233af866496SDavid Daney uint64_t stx4pcmp:4; 234af866496SDavid Daney uint64_t srx4cmp:8; 235c5aa59e8SDavid Daney #else 236c5aa59e8SDavid Daney uint64_t srx4cmp:8; 237c5aa59e8SDavid Daney uint64_t stx4pcmp:4; 238c5aa59e8SDavid Daney uint64_t stx4ncmp:4; 239c5aa59e8SDavid Daney uint64_t reserved_16_63:48; 240c5aa59e8SDavid Daney #endif 241af866496SDavid Daney } cn38xx; 242af866496SDavid Daney struct cvmx_spxx_drv_ctl_cn38xx cn38xxp2; 243af866496SDavid Daney struct cvmx_spxx_drv_ctl_cn58xx { 244c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 245af866496SDavid Daney uint64_t reserved_24_63:40; 246af866496SDavid Daney uint64_t stx4ncmp:4; 247af866496SDavid Daney uint64_t stx4pcmp:4; 248af866496SDavid Daney uint64_t reserved_10_15:6; 249af866496SDavid Daney uint64_t srx4cmp:10; 250c5aa59e8SDavid Daney #else 251c5aa59e8SDavid Daney uint64_t srx4cmp:10; 252c5aa59e8SDavid Daney uint64_t reserved_10_15:6; 253c5aa59e8SDavid Daney uint64_t stx4pcmp:4; 254c5aa59e8SDavid Daney uint64_t stx4ncmp:4; 255c5aa59e8SDavid Daney uint64_t reserved_24_63:40; 256c5aa59e8SDavid Daney #endif 257af866496SDavid Daney } cn58xx; 258af866496SDavid Daney struct cvmx_spxx_drv_ctl_cn58xx cn58xxp1; 259af866496SDavid Daney }; 260af866496SDavid Daney 261af866496SDavid Daney union cvmx_spxx_err_ctl { 262af866496SDavid Daney uint64_t u64; 263af866496SDavid Daney struct cvmx_spxx_err_ctl_s { 264c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 265af866496SDavid Daney uint64_t reserved_9_63:55; 266af866496SDavid Daney uint64_t prtnxa:1; 267af866496SDavid Daney uint64_t dipcls:1; 268af866496SDavid Daney uint64_t dippay:1; 269af866496SDavid Daney uint64_t reserved_4_5:2; 270af866496SDavid Daney uint64_t errcnt:4; 271c5aa59e8SDavid Daney #else 272c5aa59e8SDavid Daney uint64_t errcnt:4; 273c5aa59e8SDavid Daney uint64_t reserved_4_5:2; 274c5aa59e8SDavid Daney uint64_t dippay:1; 275c5aa59e8SDavid Daney uint64_t dipcls:1; 276c5aa59e8SDavid Daney uint64_t prtnxa:1; 277c5aa59e8SDavid Daney uint64_t reserved_9_63:55; 278c5aa59e8SDavid Daney #endif 279af866496SDavid Daney } s; 280af866496SDavid Daney struct cvmx_spxx_err_ctl_s cn38xx; 281af866496SDavid Daney struct cvmx_spxx_err_ctl_s cn38xxp2; 282af866496SDavid Daney struct cvmx_spxx_err_ctl_s cn58xx; 283af866496SDavid Daney struct cvmx_spxx_err_ctl_s cn58xxp1; 284af866496SDavid Daney }; 285af866496SDavid Daney 286af866496SDavid Daney union cvmx_spxx_int_dat { 287af866496SDavid Daney uint64_t u64; 288af866496SDavid Daney struct cvmx_spxx_int_dat_s { 289c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 290af866496SDavid Daney uint64_t reserved_32_63:32; 291af866496SDavid Daney uint64_t mul:1; 292af866496SDavid Daney uint64_t reserved_14_30:17; 293af866496SDavid Daney uint64_t calbnk:2; 294af866496SDavid Daney uint64_t rsvop:4; 295af866496SDavid Daney uint64_t prt:8; 296c5aa59e8SDavid Daney #else 297c5aa59e8SDavid Daney uint64_t prt:8; 298c5aa59e8SDavid Daney uint64_t rsvop:4; 299c5aa59e8SDavid Daney uint64_t calbnk:2; 300c5aa59e8SDavid Daney uint64_t reserved_14_30:17; 301c5aa59e8SDavid Daney uint64_t mul:1; 302c5aa59e8SDavid Daney uint64_t reserved_32_63:32; 303c5aa59e8SDavid Daney #endif 304af866496SDavid Daney } s; 305af866496SDavid Daney struct cvmx_spxx_int_dat_s cn38xx; 306af866496SDavid Daney struct cvmx_spxx_int_dat_s cn38xxp2; 307af866496SDavid Daney struct cvmx_spxx_int_dat_s cn58xx; 308af866496SDavid Daney struct cvmx_spxx_int_dat_s cn58xxp1; 309af866496SDavid Daney }; 310af866496SDavid Daney 311af866496SDavid Daney union cvmx_spxx_int_msk { 312af866496SDavid Daney uint64_t u64; 313af866496SDavid Daney struct cvmx_spxx_int_msk_s { 314c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 315af866496SDavid Daney uint64_t reserved_12_63:52; 316af866496SDavid Daney uint64_t calerr:1; 317af866496SDavid Daney uint64_t syncerr:1; 318af866496SDavid Daney uint64_t diperr:1; 319af866496SDavid Daney uint64_t tpaovr:1; 320af866496SDavid Daney uint64_t rsverr:1; 321af866496SDavid Daney uint64_t drwnng:1; 322af866496SDavid Daney uint64_t clserr:1; 323af866496SDavid Daney uint64_t spiovr:1; 324af866496SDavid Daney uint64_t reserved_2_3:2; 325af866496SDavid Daney uint64_t abnorm:1; 326af866496SDavid Daney uint64_t prtnxa:1; 327c5aa59e8SDavid Daney #else 328c5aa59e8SDavid Daney uint64_t prtnxa:1; 329c5aa59e8SDavid Daney uint64_t abnorm:1; 330c5aa59e8SDavid Daney uint64_t reserved_2_3:2; 331c5aa59e8SDavid Daney uint64_t spiovr:1; 332c5aa59e8SDavid Daney uint64_t clserr:1; 333c5aa59e8SDavid Daney uint64_t drwnng:1; 334c5aa59e8SDavid Daney uint64_t rsverr:1; 335c5aa59e8SDavid Daney uint64_t tpaovr:1; 336c5aa59e8SDavid Daney uint64_t diperr:1; 337c5aa59e8SDavid Daney uint64_t syncerr:1; 338c5aa59e8SDavid Daney uint64_t calerr:1; 339c5aa59e8SDavid Daney uint64_t reserved_12_63:52; 340c5aa59e8SDavid Daney #endif 341af866496SDavid Daney } s; 342af866496SDavid Daney struct cvmx_spxx_int_msk_s cn38xx; 343af866496SDavid Daney struct cvmx_spxx_int_msk_s cn38xxp2; 344af866496SDavid Daney struct cvmx_spxx_int_msk_s cn58xx; 345af866496SDavid Daney struct cvmx_spxx_int_msk_s cn58xxp1; 346af866496SDavid Daney }; 347af866496SDavid Daney 348af866496SDavid Daney union cvmx_spxx_int_reg { 349af866496SDavid Daney uint64_t u64; 350af866496SDavid Daney struct cvmx_spxx_int_reg_s { 351c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 352af866496SDavid Daney uint64_t reserved_32_63:32; 353af866496SDavid Daney uint64_t spf:1; 354af866496SDavid Daney uint64_t reserved_12_30:19; 355af866496SDavid Daney uint64_t calerr:1; 356af866496SDavid Daney uint64_t syncerr:1; 357af866496SDavid Daney uint64_t diperr:1; 358af866496SDavid Daney uint64_t tpaovr:1; 359af866496SDavid Daney uint64_t rsverr:1; 360af866496SDavid Daney uint64_t drwnng:1; 361af866496SDavid Daney uint64_t clserr:1; 362af866496SDavid Daney uint64_t spiovr:1; 363af866496SDavid Daney uint64_t reserved_2_3:2; 364af866496SDavid Daney uint64_t abnorm:1; 365af866496SDavid Daney uint64_t prtnxa:1; 366c5aa59e8SDavid Daney #else 367c5aa59e8SDavid Daney uint64_t prtnxa:1; 368c5aa59e8SDavid Daney uint64_t abnorm:1; 369c5aa59e8SDavid Daney uint64_t reserved_2_3:2; 370c5aa59e8SDavid Daney uint64_t spiovr:1; 371c5aa59e8SDavid Daney uint64_t clserr:1; 372c5aa59e8SDavid Daney uint64_t drwnng:1; 373c5aa59e8SDavid Daney uint64_t rsverr:1; 374c5aa59e8SDavid Daney uint64_t tpaovr:1; 375c5aa59e8SDavid Daney uint64_t diperr:1; 376c5aa59e8SDavid Daney uint64_t syncerr:1; 377c5aa59e8SDavid Daney uint64_t calerr:1; 378c5aa59e8SDavid Daney uint64_t reserved_12_30:19; 379c5aa59e8SDavid Daney uint64_t spf:1; 380c5aa59e8SDavid Daney uint64_t reserved_32_63:32; 381c5aa59e8SDavid Daney #endif 382af866496SDavid Daney } s; 383af866496SDavid Daney struct cvmx_spxx_int_reg_s cn38xx; 384af866496SDavid Daney struct cvmx_spxx_int_reg_s cn38xxp2; 385af866496SDavid Daney struct cvmx_spxx_int_reg_s cn58xx; 386af866496SDavid Daney struct cvmx_spxx_int_reg_s cn58xxp1; 387af866496SDavid Daney }; 388af866496SDavid Daney 389af866496SDavid Daney union cvmx_spxx_int_sync { 390af866496SDavid Daney uint64_t u64; 391af866496SDavid Daney struct cvmx_spxx_int_sync_s { 392c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 393af866496SDavid Daney uint64_t reserved_12_63:52; 394af866496SDavid Daney uint64_t calerr:1; 395af866496SDavid Daney uint64_t syncerr:1; 396af866496SDavid Daney uint64_t diperr:1; 397af866496SDavid Daney uint64_t tpaovr:1; 398af866496SDavid Daney uint64_t rsverr:1; 399af866496SDavid Daney uint64_t drwnng:1; 400af866496SDavid Daney uint64_t clserr:1; 401af866496SDavid Daney uint64_t spiovr:1; 402af866496SDavid Daney uint64_t reserved_2_3:2; 403af866496SDavid Daney uint64_t abnorm:1; 404af866496SDavid Daney uint64_t prtnxa:1; 405c5aa59e8SDavid Daney #else 406c5aa59e8SDavid Daney uint64_t prtnxa:1; 407c5aa59e8SDavid Daney uint64_t abnorm:1; 408c5aa59e8SDavid Daney uint64_t reserved_2_3:2; 409c5aa59e8SDavid Daney uint64_t spiovr:1; 410c5aa59e8SDavid Daney uint64_t clserr:1; 411c5aa59e8SDavid Daney uint64_t drwnng:1; 412c5aa59e8SDavid Daney uint64_t rsverr:1; 413c5aa59e8SDavid Daney uint64_t tpaovr:1; 414c5aa59e8SDavid Daney uint64_t diperr:1; 415c5aa59e8SDavid Daney uint64_t syncerr:1; 416c5aa59e8SDavid Daney uint64_t calerr:1; 417c5aa59e8SDavid Daney uint64_t reserved_12_63:52; 418c5aa59e8SDavid Daney #endif 419af866496SDavid Daney } s; 420af866496SDavid Daney struct cvmx_spxx_int_sync_s cn38xx; 421af866496SDavid Daney struct cvmx_spxx_int_sync_s cn38xxp2; 422af866496SDavid Daney struct cvmx_spxx_int_sync_s cn58xx; 423af866496SDavid Daney struct cvmx_spxx_int_sync_s cn58xxp1; 424af866496SDavid Daney }; 425af866496SDavid Daney 426af866496SDavid Daney union cvmx_spxx_tpa_acc { 427af866496SDavid Daney uint64_t u64; 428af866496SDavid Daney struct cvmx_spxx_tpa_acc_s { 429c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 430af866496SDavid Daney uint64_t reserved_32_63:32; 431af866496SDavid Daney uint64_t cnt:32; 432c5aa59e8SDavid Daney #else 433c5aa59e8SDavid Daney uint64_t cnt:32; 434c5aa59e8SDavid Daney uint64_t reserved_32_63:32; 435c5aa59e8SDavid Daney #endif 436af866496SDavid Daney } s; 437af866496SDavid Daney struct cvmx_spxx_tpa_acc_s cn38xx; 438af866496SDavid Daney struct cvmx_spxx_tpa_acc_s cn38xxp2; 439af866496SDavid Daney struct cvmx_spxx_tpa_acc_s cn58xx; 440af866496SDavid Daney struct cvmx_spxx_tpa_acc_s cn58xxp1; 441af866496SDavid Daney }; 442af866496SDavid Daney 443af866496SDavid Daney union cvmx_spxx_tpa_max { 444af866496SDavid Daney uint64_t u64; 445af866496SDavid Daney struct cvmx_spxx_tpa_max_s { 446c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 447af866496SDavid Daney uint64_t reserved_32_63:32; 448af866496SDavid Daney uint64_t max:32; 449c5aa59e8SDavid Daney #else 450c5aa59e8SDavid Daney uint64_t max:32; 451c5aa59e8SDavid Daney uint64_t reserved_32_63:32; 452c5aa59e8SDavid Daney #endif 453af866496SDavid Daney } s; 454af866496SDavid Daney struct cvmx_spxx_tpa_max_s cn38xx; 455af866496SDavid Daney struct cvmx_spxx_tpa_max_s cn38xxp2; 456af866496SDavid Daney struct cvmx_spxx_tpa_max_s cn58xx; 457af866496SDavid Daney struct cvmx_spxx_tpa_max_s cn58xxp1; 458af866496SDavid Daney }; 459af866496SDavid Daney 460af866496SDavid Daney union cvmx_spxx_tpa_sel { 461af866496SDavid Daney uint64_t u64; 462af866496SDavid Daney struct cvmx_spxx_tpa_sel_s { 463c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 464af866496SDavid Daney uint64_t reserved_4_63:60; 465af866496SDavid Daney uint64_t prtsel:4; 466c5aa59e8SDavid Daney #else 467c5aa59e8SDavid Daney uint64_t prtsel:4; 468c5aa59e8SDavid Daney uint64_t reserved_4_63:60; 469c5aa59e8SDavid Daney #endif 470af866496SDavid Daney } s; 471af866496SDavid Daney struct cvmx_spxx_tpa_sel_s cn38xx; 472af866496SDavid Daney struct cvmx_spxx_tpa_sel_s cn38xxp2; 473af866496SDavid Daney struct cvmx_spxx_tpa_sel_s cn58xx; 474af866496SDavid Daney struct cvmx_spxx_tpa_sel_s cn58xxp1; 475af866496SDavid Daney }; 476af866496SDavid Daney 477af866496SDavid Daney union cvmx_spxx_trn4_ctl { 478af866496SDavid Daney uint64_t u64; 479af866496SDavid Daney struct cvmx_spxx_trn4_ctl_s { 480c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 481af866496SDavid Daney uint64_t reserved_13_63:51; 482af866496SDavid Daney uint64_t trntest:1; 483af866496SDavid Daney uint64_t jitter:3; 484af866496SDavid Daney uint64_t clr_boot:1; 485af866496SDavid Daney uint64_t set_boot:1; 486af866496SDavid Daney uint64_t maxdist:5; 487af866496SDavid Daney uint64_t macro_en:1; 488af866496SDavid Daney uint64_t mux_en:1; 489c5aa59e8SDavid Daney #else 490c5aa59e8SDavid Daney uint64_t mux_en:1; 491c5aa59e8SDavid Daney uint64_t macro_en:1; 492c5aa59e8SDavid Daney uint64_t maxdist:5; 493c5aa59e8SDavid Daney uint64_t set_boot:1; 494c5aa59e8SDavid Daney uint64_t clr_boot:1; 495c5aa59e8SDavid Daney uint64_t jitter:3; 496c5aa59e8SDavid Daney uint64_t trntest:1; 497c5aa59e8SDavid Daney uint64_t reserved_13_63:51; 498c5aa59e8SDavid Daney #endif 499af866496SDavid Daney } s; 500af866496SDavid Daney struct cvmx_spxx_trn4_ctl_s cn38xx; 501af866496SDavid Daney struct cvmx_spxx_trn4_ctl_s cn38xxp2; 502af866496SDavid Daney struct cvmx_spxx_trn4_ctl_s cn58xx; 503af866496SDavid Daney struct cvmx_spxx_trn4_ctl_s cn58xxp1; 504af866496SDavid Daney }; 505af866496SDavid Daney 506af866496SDavid Daney #endif 507