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