1412394d1SDavid Daney /***********************license start*************** 2412394d1SDavid Daney * Author: Cavium Networks 3412394d1SDavid Daney * 4412394d1SDavid Daney * Contact: support@caviumnetworks.com 5412394d1SDavid Daney * This file is part of the OCTEON SDK 6412394d1SDavid Daney * 7c5aa59e8SDavid Daney * Copyright (c) 2003-2012 Cavium Networks 8412394d1SDavid Daney * 9412394d1SDavid Daney * This file is free software; you can redistribute it and/or modify 10412394d1SDavid Daney * it under the terms of the GNU General Public License, Version 2, as 11412394d1SDavid Daney * published by the Free Software Foundation. 12412394d1SDavid Daney * 13412394d1SDavid Daney * This file is distributed in the hope that it will be useful, but 14412394d1SDavid Daney * AS-IS and WITHOUT ANY WARRANTY; without even the implied warranty 15412394d1SDavid Daney * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, TITLE, or 16412394d1SDavid Daney * NONINFRINGEMENT. See the GNU General Public License for more 17412394d1SDavid Daney * details. 18412394d1SDavid Daney * 19412394d1SDavid Daney * You should have received a copy of the GNU General Public License 20412394d1SDavid Daney * along with this file; if not, write to the Free Software 21412394d1SDavid Daney * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 22412394d1SDavid Daney * or visit http://www.gnu.org/licenses/. 23412394d1SDavid Daney * 24412394d1SDavid Daney * This file may also be available under a different license from Cavium. 25412394d1SDavid Daney * Contact Cavium Networks for more information 26412394d1SDavid Daney ***********************license end**************************************/ 27412394d1SDavid Daney 28412394d1SDavid Daney #ifndef __CVMX_PEMX_DEFS_H__ 29412394d1SDavid Daney #define __CVMX_PEMX_DEFS_H__ 30412394d1SDavid Daney 31412394d1SDavid Daney #define CVMX_PEMX_BAR1_INDEXX(offset, block_id) (CVMX_ADD_IO_SEG(0x00011800C00000A8ull) + (((offset) & 15) + ((block_id) & 1) * 0x200000ull) * 8) 32412394d1SDavid Daney #define CVMX_PEMX_BAR2_MASK(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000130ull) + ((block_id) & 1) * 0x1000000ull) 33412394d1SDavid Daney #define CVMX_PEMX_BAR_CTL(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000128ull) + ((block_id) & 1) * 0x1000000ull) 34412394d1SDavid Daney #define CVMX_PEMX_BIST_STATUS(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000018ull) + ((block_id) & 1) * 0x1000000ull) 35412394d1SDavid Daney #define CVMX_PEMX_BIST_STATUS2(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000420ull) + ((block_id) & 1) * 0x1000000ull) 36412394d1SDavid Daney #define CVMX_PEMX_CFG_RD(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000030ull) + ((block_id) & 1) * 0x1000000ull) 37412394d1SDavid Daney #define CVMX_PEMX_CFG_WR(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000028ull) + ((block_id) & 1) * 0x1000000ull) 38412394d1SDavid Daney #define CVMX_PEMX_CPL_LUT_VALID(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000098ull) + ((block_id) & 1) * 0x1000000ull) 39412394d1SDavid Daney #define CVMX_PEMX_CTL_STATUS(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000000ull) + ((block_id) & 1) * 0x1000000ull) 40412394d1SDavid Daney #define CVMX_PEMX_DBG_INFO(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000008ull) + ((block_id) & 1) * 0x1000000ull) 41412394d1SDavid Daney #define CVMX_PEMX_DBG_INFO_EN(block_id) (CVMX_ADD_IO_SEG(0x00011800C00000A0ull) + ((block_id) & 1) * 0x1000000ull) 42412394d1SDavid Daney #define CVMX_PEMX_DIAG_STATUS(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000020ull) + ((block_id) & 1) * 0x1000000ull) 43412394d1SDavid Daney #define CVMX_PEMX_INB_READ_CREDITS(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000138ull) + ((block_id) & 1) * 0x1000000ull) 44412394d1SDavid Daney #define CVMX_PEMX_INT_ENB(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000410ull) + ((block_id) & 1) * 0x1000000ull) 45412394d1SDavid Daney #define CVMX_PEMX_INT_ENB_INT(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000418ull) + ((block_id) & 1) * 0x1000000ull) 46412394d1SDavid Daney #define CVMX_PEMX_INT_SUM(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000408ull) + ((block_id) & 1) * 0x1000000ull) 47412394d1SDavid Daney #define CVMX_PEMX_P2N_BAR0_START(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000080ull) + ((block_id) & 1) * 0x1000000ull) 48412394d1SDavid Daney #define CVMX_PEMX_P2N_BAR1_START(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000088ull) + ((block_id) & 1) * 0x1000000ull) 49412394d1SDavid Daney #define CVMX_PEMX_P2N_BAR2_START(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000090ull) + ((block_id) & 1) * 0x1000000ull) 50412394d1SDavid Daney #define CVMX_PEMX_P2P_BARX_END(offset, block_id) (CVMX_ADD_IO_SEG(0x00011800C0000048ull) + (((offset) & 3) + ((block_id) & 1) * 0x100000ull) * 16) 51412394d1SDavid Daney #define CVMX_PEMX_P2P_BARX_START(offset, block_id) (CVMX_ADD_IO_SEG(0x00011800C0000040ull) + (((offset) & 3) + ((block_id) & 1) * 0x100000ull) * 16) 52412394d1SDavid Daney #define CVMX_PEMX_TLP_CREDITS(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000038ull) + ((block_id) & 1) * 0x1000000ull) 53412394d1SDavid Daney 54412394d1SDavid Daney union cvmx_pemx_bar1_indexx { 55412394d1SDavid Daney uint64_t u64; 56412394d1SDavid Daney struct cvmx_pemx_bar1_indexx_s { 57c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 58412394d1SDavid Daney uint64_t reserved_20_63:44; 59412394d1SDavid Daney uint64_t addr_idx:16; 60412394d1SDavid Daney uint64_t ca:1; 61412394d1SDavid Daney uint64_t end_swp:2; 62412394d1SDavid Daney uint64_t addr_v:1; 63c5aa59e8SDavid Daney #else 64c5aa59e8SDavid Daney uint64_t addr_v:1; 65c5aa59e8SDavid Daney uint64_t end_swp:2; 66c5aa59e8SDavid Daney uint64_t ca:1; 67c5aa59e8SDavid Daney uint64_t addr_idx:16; 68c5aa59e8SDavid Daney uint64_t reserved_20_63:44; 69c5aa59e8SDavid Daney #endif 70412394d1SDavid Daney } s; 71412394d1SDavid Daney }; 72412394d1SDavid Daney 73412394d1SDavid Daney union cvmx_pemx_bar2_mask { 74412394d1SDavid Daney uint64_t u64; 75412394d1SDavid Daney struct cvmx_pemx_bar2_mask_s { 76c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 77412394d1SDavid Daney uint64_t reserved_38_63:26; 78412394d1SDavid Daney uint64_t mask:35; 79412394d1SDavid Daney uint64_t reserved_0_2:3; 80c5aa59e8SDavid Daney #else 81c5aa59e8SDavid Daney uint64_t reserved_0_2:3; 82c5aa59e8SDavid Daney uint64_t mask:35; 83c5aa59e8SDavid Daney uint64_t reserved_38_63:26; 84c5aa59e8SDavid Daney #endif 85412394d1SDavid Daney } s; 86412394d1SDavid Daney }; 87412394d1SDavid Daney 88412394d1SDavid Daney union cvmx_pemx_bar_ctl { 89412394d1SDavid Daney uint64_t u64; 90412394d1SDavid Daney struct cvmx_pemx_bar_ctl_s { 91c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 92412394d1SDavid Daney uint64_t reserved_7_63:57; 93412394d1SDavid Daney uint64_t bar1_siz:3; 94412394d1SDavid Daney uint64_t bar2_enb:1; 95412394d1SDavid Daney uint64_t bar2_esx:2; 96412394d1SDavid Daney uint64_t bar2_cax:1; 97c5aa59e8SDavid Daney #else 98c5aa59e8SDavid Daney uint64_t bar2_cax:1; 99c5aa59e8SDavid Daney uint64_t bar2_esx:2; 100c5aa59e8SDavid Daney uint64_t bar2_enb:1; 101c5aa59e8SDavid Daney uint64_t bar1_siz:3; 102c5aa59e8SDavid Daney uint64_t reserved_7_63:57; 103c5aa59e8SDavid Daney #endif 104412394d1SDavid Daney } s; 105412394d1SDavid Daney }; 106412394d1SDavid Daney 107412394d1SDavid Daney union cvmx_pemx_bist_status { 108412394d1SDavid Daney uint64_t u64; 109412394d1SDavid Daney struct cvmx_pemx_bist_status_s { 110c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 111412394d1SDavid Daney uint64_t reserved_8_63:56; 112412394d1SDavid Daney uint64_t retry:1; 113412394d1SDavid Daney uint64_t rqdata0:1; 114412394d1SDavid Daney uint64_t rqdata1:1; 115412394d1SDavid Daney uint64_t rqdata2:1; 116412394d1SDavid Daney uint64_t rqdata3:1; 117412394d1SDavid Daney uint64_t rqhdr1:1; 118412394d1SDavid Daney uint64_t rqhdr0:1; 119412394d1SDavid Daney uint64_t sot:1; 120c5aa59e8SDavid Daney #else 121c5aa59e8SDavid Daney uint64_t sot:1; 122c5aa59e8SDavid Daney uint64_t rqhdr0:1; 123c5aa59e8SDavid Daney uint64_t rqhdr1:1; 124c5aa59e8SDavid Daney uint64_t rqdata3:1; 125c5aa59e8SDavid Daney uint64_t rqdata2:1; 126c5aa59e8SDavid Daney uint64_t rqdata1:1; 127c5aa59e8SDavid Daney uint64_t rqdata0:1; 128c5aa59e8SDavid Daney uint64_t retry:1; 129c5aa59e8SDavid Daney uint64_t reserved_8_63:56; 130c5aa59e8SDavid Daney #endif 131412394d1SDavid Daney } s; 132412394d1SDavid Daney }; 133412394d1SDavid Daney 134412394d1SDavid Daney union cvmx_pemx_bist_status2 { 135412394d1SDavid Daney uint64_t u64; 136412394d1SDavid Daney struct cvmx_pemx_bist_status2_s { 137c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 138412394d1SDavid Daney uint64_t reserved_10_63:54; 139412394d1SDavid Daney uint64_t e2p_cpl:1; 140412394d1SDavid Daney uint64_t e2p_n:1; 141412394d1SDavid Daney uint64_t e2p_p:1; 142412394d1SDavid Daney uint64_t peai_p2e:1; 143412394d1SDavid Daney uint64_t pef_tpf1:1; 144412394d1SDavid Daney uint64_t pef_tpf0:1; 145412394d1SDavid Daney uint64_t pef_tnf:1; 146412394d1SDavid Daney uint64_t pef_tcf1:1; 147412394d1SDavid Daney uint64_t pef_tc0:1; 148412394d1SDavid Daney uint64_t ppf:1; 149c5aa59e8SDavid Daney #else 150c5aa59e8SDavid Daney uint64_t ppf:1; 151c5aa59e8SDavid Daney uint64_t pef_tc0:1; 152c5aa59e8SDavid Daney uint64_t pef_tcf1:1; 153c5aa59e8SDavid Daney uint64_t pef_tnf:1; 154c5aa59e8SDavid Daney uint64_t pef_tpf0:1; 155c5aa59e8SDavid Daney uint64_t pef_tpf1:1; 156c5aa59e8SDavid Daney uint64_t peai_p2e:1; 157c5aa59e8SDavid Daney uint64_t e2p_p:1; 158c5aa59e8SDavid Daney uint64_t e2p_n:1; 159c5aa59e8SDavid Daney uint64_t e2p_cpl:1; 160c5aa59e8SDavid Daney uint64_t reserved_10_63:54; 161c5aa59e8SDavid Daney #endif 162412394d1SDavid Daney } s; 163412394d1SDavid Daney }; 164412394d1SDavid Daney 165412394d1SDavid Daney union cvmx_pemx_cfg_rd { 166412394d1SDavid Daney uint64_t u64; 167412394d1SDavid Daney struct cvmx_pemx_cfg_rd_s { 168c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 169412394d1SDavid Daney uint64_t data:32; 170412394d1SDavid Daney uint64_t addr:32; 171c5aa59e8SDavid Daney #else 172c5aa59e8SDavid Daney uint64_t addr:32; 173c5aa59e8SDavid Daney uint64_t data:32; 174c5aa59e8SDavid Daney #endif 175412394d1SDavid Daney } s; 176412394d1SDavid Daney }; 177412394d1SDavid Daney 178412394d1SDavid Daney union cvmx_pemx_cfg_wr { 179412394d1SDavid Daney uint64_t u64; 180412394d1SDavid Daney struct cvmx_pemx_cfg_wr_s { 181c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 182412394d1SDavid Daney uint64_t data:32; 183412394d1SDavid Daney uint64_t addr:32; 184c5aa59e8SDavid Daney #else 185c5aa59e8SDavid Daney uint64_t addr:32; 186c5aa59e8SDavid Daney uint64_t data:32; 187c5aa59e8SDavid Daney #endif 188412394d1SDavid Daney } s; 189412394d1SDavid Daney }; 190412394d1SDavid Daney 191412394d1SDavid Daney union cvmx_pemx_cpl_lut_valid { 192412394d1SDavid Daney uint64_t u64; 193412394d1SDavid Daney struct cvmx_pemx_cpl_lut_valid_s { 194c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 195412394d1SDavid Daney uint64_t reserved_32_63:32; 196412394d1SDavid Daney uint64_t tag:32; 197c5aa59e8SDavid Daney #else 198c5aa59e8SDavid Daney uint64_t tag:32; 199c5aa59e8SDavid Daney uint64_t reserved_32_63:32; 200c5aa59e8SDavid Daney #endif 201412394d1SDavid Daney } s; 202412394d1SDavid Daney }; 203412394d1SDavid Daney 204412394d1SDavid Daney union cvmx_pemx_ctl_status { 205412394d1SDavid Daney uint64_t u64; 206412394d1SDavid Daney struct cvmx_pemx_ctl_status_s { 207c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 208412394d1SDavid Daney uint64_t reserved_48_63:16; 209412394d1SDavid Daney uint64_t auto_sd:1; 210412394d1SDavid Daney uint64_t dnum:5; 211412394d1SDavid Daney uint64_t pbus:8; 212412394d1SDavid Daney uint64_t reserved_32_33:2; 213412394d1SDavid Daney uint64_t cfg_rtry:16; 214412394d1SDavid Daney uint64_t reserved_12_15:4; 215412394d1SDavid Daney uint64_t pm_xtoff:1; 216412394d1SDavid Daney uint64_t pm_xpme:1; 217412394d1SDavid Daney uint64_t ob_p_cmd:1; 218412394d1SDavid Daney uint64_t reserved_7_8:2; 219412394d1SDavid Daney uint64_t nf_ecrc:1; 220412394d1SDavid Daney uint64_t dly_one:1; 221412394d1SDavid Daney uint64_t lnk_enb:1; 222412394d1SDavid Daney uint64_t ro_ctlp:1; 223412394d1SDavid Daney uint64_t fast_lm:1; 224412394d1SDavid Daney uint64_t inv_ecrc:1; 225412394d1SDavid Daney uint64_t inv_lcrc:1; 226c5aa59e8SDavid Daney #else 227c5aa59e8SDavid Daney uint64_t inv_lcrc:1; 228c5aa59e8SDavid Daney uint64_t inv_ecrc:1; 229c5aa59e8SDavid Daney uint64_t fast_lm:1; 230c5aa59e8SDavid Daney uint64_t ro_ctlp:1; 231c5aa59e8SDavid Daney uint64_t lnk_enb:1; 232c5aa59e8SDavid Daney uint64_t dly_one:1; 233c5aa59e8SDavid Daney uint64_t nf_ecrc:1; 234c5aa59e8SDavid Daney uint64_t reserved_7_8:2; 235c5aa59e8SDavid Daney uint64_t ob_p_cmd:1; 236c5aa59e8SDavid Daney uint64_t pm_xpme:1; 237c5aa59e8SDavid Daney uint64_t pm_xtoff:1; 238c5aa59e8SDavid Daney uint64_t reserved_12_15:4; 239c5aa59e8SDavid Daney uint64_t cfg_rtry:16; 240c5aa59e8SDavid Daney uint64_t reserved_32_33:2; 241c5aa59e8SDavid Daney uint64_t pbus:8; 242c5aa59e8SDavid Daney uint64_t dnum:5; 243c5aa59e8SDavid Daney uint64_t auto_sd:1; 244c5aa59e8SDavid Daney uint64_t reserved_48_63:16; 245c5aa59e8SDavid Daney #endif 246412394d1SDavid Daney } s; 247412394d1SDavid Daney }; 248412394d1SDavid Daney 249412394d1SDavid Daney union cvmx_pemx_dbg_info { 250412394d1SDavid Daney uint64_t u64; 251412394d1SDavid Daney struct cvmx_pemx_dbg_info_s { 252c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 253412394d1SDavid Daney uint64_t reserved_31_63:33; 254412394d1SDavid Daney uint64_t ecrc_e:1; 255412394d1SDavid Daney uint64_t rawwpp:1; 256412394d1SDavid Daney uint64_t racpp:1; 257412394d1SDavid Daney uint64_t ramtlp:1; 258412394d1SDavid Daney uint64_t rarwdns:1; 259412394d1SDavid Daney uint64_t caar:1; 260412394d1SDavid Daney uint64_t racca:1; 261412394d1SDavid Daney uint64_t racur:1; 262412394d1SDavid Daney uint64_t rauc:1; 263412394d1SDavid Daney uint64_t rqo:1; 264412394d1SDavid Daney uint64_t fcuv:1; 265412394d1SDavid Daney uint64_t rpe:1; 266412394d1SDavid Daney uint64_t fcpvwt:1; 267412394d1SDavid Daney uint64_t dpeoosd:1; 268412394d1SDavid Daney uint64_t rtwdle:1; 269412394d1SDavid Daney uint64_t rdwdle:1; 270412394d1SDavid Daney uint64_t mre:1; 271412394d1SDavid Daney uint64_t rte:1; 272412394d1SDavid Daney uint64_t acto:1; 273412394d1SDavid Daney uint64_t rvdm:1; 274412394d1SDavid Daney uint64_t rumep:1; 275412394d1SDavid Daney uint64_t rptamrc:1; 276412394d1SDavid Daney uint64_t rpmerc:1; 277412394d1SDavid Daney uint64_t rfemrc:1; 278412394d1SDavid Daney uint64_t rnfemrc:1; 279412394d1SDavid Daney uint64_t rcemrc:1; 280412394d1SDavid Daney uint64_t rpoison:1; 281412394d1SDavid Daney uint64_t recrce:1; 282412394d1SDavid Daney uint64_t rtlplle:1; 283412394d1SDavid Daney uint64_t rtlpmal:1; 284412394d1SDavid Daney uint64_t spoison:1; 285c5aa59e8SDavid Daney #else 286c5aa59e8SDavid Daney uint64_t spoison:1; 287c5aa59e8SDavid Daney uint64_t rtlpmal:1; 288c5aa59e8SDavid Daney uint64_t rtlplle:1; 289c5aa59e8SDavid Daney uint64_t recrce:1; 290c5aa59e8SDavid Daney uint64_t rpoison:1; 291c5aa59e8SDavid Daney uint64_t rcemrc:1; 292c5aa59e8SDavid Daney uint64_t rnfemrc:1; 293c5aa59e8SDavid Daney uint64_t rfemrc:1; 294c5aa59e8SDavid Daney uint64_t rpmerc:1; 295c5aa59e8SDavid Daney uint64_t rptamrc:1; 296c5aa59e8SDavid Daney uint64_t rumep:1; 297c5aa59e8SDavid Daney uint64_t rvdm:1; 298c5aa59e8SDavid Daney uint64_t acto:1; 299c5aa59e8SDavid Daney uint64_t rte:1; 300c5aa59e8SDavid Daney uint64_t mre:1; 301c5aa59e8SDavid Daney uint64_t rdwdle:1; 302c5aa59e8SDavid Daney uint64_t rtwdle:1; 303c5aa59e8SDavid Daney uint64_t dpeoosd:1; 304c5aa59e8SDavid Daney uint64_t fcpvwt:1; 305c5aa59e8SDavid Daney uint64_t rpe:1; 306c5aa59e8SDavid Daney uint64_t fcuv:1; 307c5aa59e8SDavid Daney uint64_t rqo:1; 308c5aa59e8SDavid Daney uint64_t rauc:1; 309c5aa59e8SDavid Daney uint64_t racur:1; 310c5aa59e8SDavid Daney uint64_t racca:1; 311c5aa59e8SDavid Daney uint64_t caar:1; 312c5aa59e8SDavid Daney uint64_t rarwdns:1; 313c5aa59e8SDavid Daney uint64_t ramtlp:1; 314c5aa59e8SDavid Daney uint64_t racpp:1; 315c5aa59e8SDavid Daney uint64_t rawwpp:1; 316c5aa59e8SDavid Daney uint64_t ecrc_e:1; 317c5aa59e8SDavid Daney uint64_t reserved_31_63:33; 318c5aa59e8SDavid Daney #endif 319412394d1SDavid Daney } s; 320412394d1SDavid Daney }; 321412394d1SDavid Daney 322412394d1SDavid Daney union cvmx_pemx_dbg_info_en { 323412394d1SDavid Daney uint64_t u64; 324412394d1SDavid Daney struct cvmx_pemx_dbg_info_en_s { 325c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 326412394d1SDavid Daney uint64_t reserved_31_63:33; 327412394d1SDavid Daney uint64_t ecrc_e:1; 328412394d1SDavid Daney uint64_t rawwpp:1; 329412394d1SDavid Daney uint64_t racpp:1; 330412394d1SDavid Daney uint64_t ramtlp:1; 331412394d1SDavid Daney uint64_t rarwdns:1; 332412394d1SDavid Daney uint64_t caar:1; 333412394d1SDavid Daney uint64_t racca:1; 334412394d1SDavid Daney uint64_t racur:1; 335412394d1SDavid Daney uint64_t rauc:1; 336412394d1SDavid Daney uint64_t rqo:1; 337412394d1SDavid Daney uint64_t fcuv:1; 338412394d1SDavid Daney uint64_t rpe:1; 339412394d1SDavid Daney uint64_t fcpvwt:1; 340412394d1SDavid Daney uint64_t dpeoosd:1; 341412394d1SDavid Daney uint64_t rtwdle:1; 342412394d1SDavid Daney uint64_t rdwdle:1; 343412394d1SDavid Daney uint64_t mre:1; 344412394d1SDavid Daney uint64_t rte:1; 345412394d1SDavid Daney uint64_t acto:1; 346412394d1SDavid Daney uint64_t rvdm:1; 347412394d1SDavid Daney uint64_t rumep:1; 348412394d1SDavid Daney uint64_t rptamrc:1; 349412394d1SDavid Daney uint64_t rpmerc:1; 350412394d1SDavid Daney uint64_t rfemrc:1; 351412394d1SDavid Daney uint64_t rnfemrc:1; 352412394d1SDavid Daney uint64_t rcemrc:1; 353412394d1SDavid Daney uint64_t rpoison:1; 354412394d1SDavid Daney uint64_t recrce:1; 355412394d1SDavid Daney uint64_t rtlplle:1; 356412394d1SDavid Daney uint64_t rtlpmal:1; 357412394d1SDavid Daney uint64_t spoison:1; 358c5aa59e8SDavid Daney #else 359c5aa59e8SDavid Daney uint64_t spoison:1; 360c5aa59e8SDavid Daney uint64_t rtlpmal:1; 361c5aa59e8SDavid Daney uint64_t rtlplle:1; 362c5aa59e8SDavid Daney uint64_t recrce:1; 363c5aa59e8SDavid Daney uint64_t rpoison:1; 364c5aa59e8SDavid Daney uint64_t rcemrc:1; 365c5aa59e8SDavid Daney uint64_t rnfemrc:1; 366c5aa59e8SDavid Daney uint64_t rfemrc:1; 367c5aa59e8SDavid Daney uint64_t rpmerc:1; 368c5aa59e8SDavid Daney uint64_t rptamrc:1; 369c5aa59e8SDavid Daney uint64_t rumep:1; 370c5aa59e8SDavid Daney uint64_t rvdm:1; 371c5aa59e8SDavid Daney uint64_t acto:1; 372c5aa59e8SDavid Daney uint64_t rte:1; 373c5aa59e8SDavid Daney uint64_t mre:1; 374c5aa59e8SDavid Daney uint64_t rdwdle:1; 375c5aa59e8SDavid Daney uint64_t rtwdle:1; 376c5aa59e8SDavid Daney uint64_t dpeoosd:1; 377c5aa59e8SDavid Daney uint64_t fcpvwt:1; 378c5aa59e8SDavid Daney uint64_t rpe:1; 379c5aa59e8SDavid Daney uint64_t fcuv:1; 380c5aa59e8SDavid Daney uint64_t rqo:1; 381c5aa59e8SDavid Daney uint64_t rauc:1; 382c5aa59e8SDavid Daney uint64_t racur:1; 383c5aa59e8SDavid Daney uint64_t racca:1; 384c5aa59e8SDavid Daney uint64_t caar:1; 385c5aa59e8SDavid Daney uint64_t rarwdns:1; 386c5aa59e8SDavid Daney uint64_t ramtlp:1; 387c5aa59e8SDavid Daney uint64_t racpp:1; 388c5aa59e8SDavid Daney uint64_t rawwpp:1; 389c5aa59e8SDavid Daney uint64_t ecrc_e:1; 390c5aa59e8SDavid Daney uint64_t reserved_31_63:33; 391c5aa59e8SDavid Daney #endif 392412394d1SDavid Daney } s; 393412394d1SDavid Daney }; 394412394d1SDavid Daney 395412394d1SDavid Daney union cvmx_pemx_diag_status { 396412394d1SDavid Daney uint64_t u64; 397412394d1SDavid Daney struct cvmx_pemx_diag_status_s { 398c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 399412394d1SDavid Daney uint64_t reserved_4_63:60; 400412394d1SDavid Daney uint64_t pm_dst:1; 401412394d1SDavid Daney uint64_t pm_stat:1; 402412394d1SDavid Daney uint64_t pm_en:1; 403412394d1SDavid Daney uint64_t aux_en:1; 404c5aa59e8SDavid Daney #else 405c5aa59e8SDavid Daney uint64_t aux_en:1; 406c5aa59e8SDavid Daney uint64_t pm_en:1; 407c5aa59e8SDavid Daney uint64_t pm_stat:1; 408c5aa59e8SDavid Daney uint64_t pm_dst:1; 409c5aa59e8SDavid Daney uint64_t reserved_4_63:60; 410c5aa59e8SDavid Daney #endif 411412394d1SDavid Daney } s; 412412394d1SDavid Daney }; 413412394d1SDavid Daney 414412394d1SDavid Daney union cvmx_pemx_inb_read_credits { 415412394d1SDavid Daney uint64_t u64; 416412394d1SDavid Daney struct cvmx_pemx_inb_read_credits_s { 417c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 418412394d1SDavid Daney uint64_t reserved_6_63:58; 419412394d1SDavid Daney uint64_t num:6; 420c5aa59e8SDavid Daney #else 421c5aa59e8SDavid Daney uint64_t num:6; 422c5aa59e8SDavid Daney uint64_t reserved_6_63:58; 423c5aa59e8SDavid Daney #endif 424412394d1SDavid Daney } s; 425412394d1SDavid Daney }; 426412394d1SDavid Daney 427412394d1SDavid Daney union cvmx_pemx_int_enb { 428412394d1SDavid Daney uint64_t u64; 429412394d1SDavid Daney struct cvmx_pemx_int_enb_s { 430c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 431412394d1SDavid Daney uint64_t reserved_14_63:50; 432412394d1SDavid Daney uint64_t crs_dr:1; 433412394d1SDavid Daney uint64_t crs_er:1; 434412394d1SDavid Daney uint64_t rdlk:1; 435412394d1SDavid Daney uint64_t exc:1; 436412394d1SDavid Daney uint64_t un_bx:1; 437412394d1SDavid Daney uint64_t un_b2:1; 438412394d1SDavid Daney uint64_t un_b1:1; 439412394d1SDavid Daney uint64_t up_bx:1; 440412394d1SDavid Daney uint64_t up_b2:1; 441412394d1SDavid Daney uint64_t up_b1:1; 442412394d1SDavid Daney uint64_t pmem:1; 443412394d1SDavid Daney uint64_t pmei:1; 444412394d1SDavid Daney uint64_t se:1; 445412394d1SDavid Daney uint64_t aeri:1; 446c5aa59e8SDavid Daney #else 447c5aa59e8SDavid Daney uint64_t aeri:1; 448c5aa59e8SDavid Daney uint64_t se:1; 449c5aa59e8SDavid Daney uint64_t pmei:1; 450c5aa59e8SDavid Daney uint64_t pmem:1; 451c5aa59e8SDavid Daney uint64_t up_b1:1; 452c5aa59e8SDavid Daney uint64_t up_b2:1; 453c5aa59e8SDavid Daney uint64_t up_bx:1; 454c5aa59e8SDavid Daney uint64_t un_b1:1; 455c5aa59e8SDavid Daney uint64_t un_b2:1; 456c5aa59e8SDavid Daney uint64_t un_bx:1; 457c5aa59e8SDavid Daney uint64_t exc:1; 458c5aa59e8SDavid Daney uint64_t rdlk:1; 459c5aa59e8SDavid Daney uint64_t crs_er:1; 460c5aa59e8SDavid Daney uint64_t crs_dr:1; 461c5aa59e8SDavid Daney uint64_t reserved_14_63:50; 462c5aa59e8SDavid Daney #endif 463412394d1SDavid Daney } s; 464412394d1SDavid Daney }; 465412394d1SDavid Daney 466412394d1SDavid Daney union cvmx_pemx_int_enb_int { 467412394d1SDavid Daney uint64_t u64; 468412394d1SDavid Daney struct cvmx_pemx_int_enb_int_s { 469c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 470412394d1SDavid Daney uint64_t reserved_14_63:50; 471412394d1SDavid Daney uint64_t crs_dr:1; 472412394d1SDavid Daney uint64_t crs_er:1; 473412394d1SDavid Daney uint64_t rdlk:1; 474412394d1SDavid Daney uint64_t exc:1; 475412394d1SDavid Daney uint64_t un_bx:1; 476412394d1SDavid Daney uint64_t un_b2:1; 477412394d1SDavid Daney uint64_t un_b1:1; 478412394d1SDavid Daney uint64_t up_bx:1; 479412394d1SDavid Daney uint64_t up_b2:1; 480412394d1SDavid Daney uint64_t up_b1:1; 481412394d1SDavid Daney uint64_t pmem:1; 482412394d1SDavid Daney uint64_t pmei:1; 483412394d1SDavid Daney uint64_t se:1; 484412394d1SDavid Daney uint64_t aeri:1; 485c5aa59e8SDavid Daney #else 486c5aa59e8SDavid Daney uint64_t aeri:1; 487c5aa59e8SDavid Daney uint64_t se:1; 488c5aa59e8SDavid Daney uint64_t pmei:1; 489c5aa59e8SDavid Daney uint64_t pmem:1; 490c5aa59e8SDavid Daney uint64_t up_b1:1; 491c5aa59e8SDavid Daney uint64_t up_b2:1; 492c5aa59e8SDavid Daney uint64_t up_bx:1; 493c5aa59e8SDavid Daney uint64_t un_b1:1; 494c5aa59e8SDavid Daney uint64_t un_b2:1; 495c5aa59e8SDavid Daney uint64_t un_bx:1; 496c5aa59e8SDavid Daney uint64_t exc:1; 497c5aa59e8SDavid Daney uint64_t rdlk:1; 498c5aa59e8SDavid Daney uint64_t crs_er:1; 499c5aa59e8SDavid Daney uint64_t crs_dr:1; 500c5aa59e8SDavid Daney uint64_t reserved_14_63:50; 501c5aa59e8SDavid Daney #endif 502412394d1SDavid Daney } s; 503412394d1SDavid Daney }; 504412394d1SDavid Daney 505412394d1SDavid Daney union cvmx_pemx_int_sum { 506412394d1SDavid Daney uint64_t u64; 507412394d1SDavid Daney struct cvmx_pemx_int_sum_s { 508c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 509412394d1SDavid Daney uint64_t reserved_14_63:50; 510412394d1SDavid Daney uint64_t crs_dr:1; 511412394d1SDavid Daney uint64_t crs_er:1; 512412394d1SDavid Daney uint64_t rdlk:1; 513412394d1SDavid Daney uint64_t exc:1; 514412394d1SDavid Daney uint64_t un_bx:1; 515412394d1SDavid Daney uint64_t un_b2:1; 516412394d1SDavid Daney uint64_t un_b1:1; 517412394d1SDavid Daney uint64_t up_bx:1; 518412394d1SDavid Daney uint64_t up_b2:1; 519412394d1SDavid Daney uint64_t up_b1:1; 520412394d1SDavid Daney uint64_t pmem:1; 521412394d1SDavid Daney uint64_t pmei:1; 522412394d1SDavid Daney uint64_t se:1; 523412394d1SDavid Daney uint64_t aeri:1; 524c5aa59e8SDavid Daney #else 525c5aa59e8SDavid Daney uint64_t aeri:1; 526c5aa59e8SDavid Daney uint64_t se:1; 527c5aa59e8SDavid Daney uint64_t pmei:1; 528c5aa59e8SDavid Daney uint64_t pmem:1; 529c5aa59e8SDavid Daney uint64_t up_b1:1; 530c5aa59e8SDavid Daney uint64_t up_b2:1; 531c5aa59e8SDavid Daney uint64_t up_bx:1; 532c5aa59e8SDavid Daney uint64_t un_b1:1; 533c5aa59e8SDavid Daney uint64_t un_b2:1; 534c5aa59e8SDavid Daney uint64_t un_bx:1; 535c5aa59e8SDavid Daney uint64_t exc:1; 536c5aa59e8SDavid Daney uint64_t rdlk:1; 537c5aa59e8SDavid Daney uint64_t crs_er:1; 538c5aa59e8SDavid Daney uint64_t crs_dr:1; 539c5aa59e8SDavid Daney uint64_t reserved_14_63:50; 540c5aa59e8SDavid Daney #endif 541412394d1SDavid Daney } s; 542412394d1SDavid Daney }; 543412394d1SDavid Daney 544412394d1SDavid Daney union cvmx_pemx_p2n_bar0_start { 545412394d1SDavid Daney uint64_t u64; 546412394d1SDavid Daney struct cvmx_pemx_p2n_bar0_start_s { 547c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 548412394d1SDavid Daney uint64_t addr:50; 549412394d1SDavid Daney uint64_t reserved_0_13:14; 550c5aa59e8SDavid Daney #else 551c5aa59e8SDavid Daney uint64_t reserved_0_13:14; 552c5aa59e8SDavid Daney uint64_t addr:50; 553c5aa59e8SDavid Daney #endif 554412394d1SDavid Daney } s; 555412394d1SDavid Daney }; 556412394d1SDavid Daney 557412394d1SDavid Daney union cvmx_pemx_p2n_bar1_start { 558412394d1SDavid Daney uint64_t u64; 559412394d1SDavid Daney struct cvmx_pemx_p2n_bar1_start_s { 560c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 561412394d1SDavid Daney uint64_t addr:38; 562412394d1SDavid Daney uint64_t reserved_0_25:26; 563c5aa59e8SDavid Daney #else 564c5aa59e8SDavid Daney uint64_t reserved_0_25:26; 565c5aa59e8SDavid Daney uint64_t addr:38; 566c5aa59e8SDavid Daney #endif 567412394d1SDavid Daney } s; 568412394d1SDavid Daney }; 569412394d1SDavid Daney 570412394d1SDavid Daney union cvmx_pemx_p2n_bar2_start { 571412394d1SDavid Daney uint64_t u64; 572412394d1SDavid Daney struct cvmx_pemx_p2n_bar2_start_s { 573c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 574412394d1SDavid Daney uint64_t addr:23; 575412394d1SDavid Daney uint64_t reserved_0_40:41; 576c5aa59e8SDavid Daney #else 577c5aa59e8SDavid Daney uint64_t reserved_0_40:41; 578c5aa59e8SDavid Daney uint64_t addr:23; 579c5aa59e8SDavid Daney #endif 580412394d1SDavid Daney } s; 581412394d1SDavid Daney }; 582412394d1SDavid Daney 583412394d1SDavid Daney union cvmx_pemx_p2p_barx_end { 584412394d1SDavid Daney uint64_t u64; 585412394d1SDavid Daney struct cvmx_pemx_p2p_barx_end_s { 586c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 587412394d1SDavid Daney uint64_t addr:52; 588412394d1SDavid Daney uint64_t reserved_0_11:12; 589c5aa59e8SDavid Daney #else 590c5aa59e8SDavid Daney uint64_t reserved_0_11:12; 591c5aa59e8SDavid Daney uint64_t addr:52; 592c5aa59e8SDavid Daney #endif 593412394d1SDavid Daney } s; 594412394d1SDavid Daney }; 595412394d1SDavid Daney 596412394d1SDavid Daney union cvmx_pemx_p2p_barx_start { 597412394d1SDavid Daney uint64_t u64; 598412394d1SDavid Daney struct cvmx_pemx_p2p_barx_start_s { 599c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 600412394d1SDavid Daney uint64_t addr:52; 601412394d1SDavid Daney uint64_t reserved_0_11:12; 602c5aa59e8SDavid Daney #else 603c5aa59e8SDavid Daney uint64_t reserved_0_11:12; 604c5aa59e8SDavid Daney uint64_t addr:52; 605c5aa59e8SDavid Daney #endif 606412394d1SDavid Daney } s; 607412394d1SDavid Daney }; 608412394d1SDavid Daney 609412394d1SDavid Daney union cvmx_pemx_tlp_credits { 610412394d1SDavid Daney uint64_t u64; 611412394d1SDavid Daney struct cvmx_pemx_tlp_credits_s { 612c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 613412394d1SDavid Daney uint64_t reserved_56_63:8; 614412394d1SDavid Daney uint64_t peai_ppf:8; 615412394d1SDavid Daney uint64_t pem_cpl:8; 616412394d1SDavid Daney uint64_t pem_np:8; 617412394d1SDavid Daney uint64_t pem_p:8; 618412394d1SDavid Daney uint64_t sli_cpl:8; 619412394d1SDavid Daney uint64_t sli_np:8; 620412394d1SDavid Daney uint64_t sli_p:8; 621c5aa59e8SDavid Daney #else 622c5aa59e8SDavid Daney uint64_t sli_p:8; 623c5aa59e8SDavid Daney uint64_t sli_np:8; 624c5aa59e8SDavid Daney uint64_t sli_cpl:8; 625c5aa59e8SDavid Daney uint64_t pem_p:8; 626c5aa59e8SDavid Daney uint64_t pem_np:8; 627c5aa59e8SDavid Daney uint64_t pem_cpl:8; 628c5aa59e8SDavid Daney uint64_t peai_ppf:8; 629c5aa59e8SDavid Daney uint64_t reserved_56_63:8; 630c5aa59e8SDavid Daney #endif 631412394d1SDavid Daney } s; 632412394d1SDavid Daney struct cvmx_pemx_tlp_credits_cn61xx { 633c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 634412394d1SDavid Daney uint64_t reserved_56_63:8; 635412394d1SDavid Daney uint64_t peai_ppf:8; 636412394d1SDavid Daney uint64_t reserved_24_47:24; 637412394d1SDavid Daney uint64_t sli_cpl:8; 638412394d1SDavid Daney uint64_t sli_np:8; 639412394d1SDavid Daney uint64_t sli_p:8; 640c5aa59e8SDavid Daney #else 641c5aa59e8SDavid Daney uint64_t sli_p:8; 642c5aa59e8SDavid Daney uint64_t sli_np:8; 643c5aa59e8SDavid Daney uint64_t sli_cpl:8; 644c5aa59e8SDavid Daney uint64_t reserved_24_47:24; 645c5aa59e8SDavid Daney uint64_t peai_ppf:8; 646c5aa59e8SDavid Daney uint64_t reserved_56_63:8; 647c5aa59e8SDavid Daney #endif 648412394d1SDavid Daney } cn61xx; 649412394d1SDavid Daney }; 650412394d1SDavid Daney 651412394d1SDavid Daney #endif 652