cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

cvmx-pemx-defs.h (15316B)


      1/***********************license start***************
      2 * Author: Cavium Networks
      3 *
      4 * Contact: support@caviumnetworks.com
      5 * This file is part of the OCTEON SDK
      6 *
      7 * Copyright (c) 2003-2012 Cavium Networks
      8 *
      9 * This file is free software; you can redistribute it and/or modify
     10 * it under the terms of the GNU General Public License, Version 2, as
     11 * published by the Free Software Foundation.
     12 *
     13 * This file is distributed in the hope that it will be useful, but
     14 * AS-IS and WITHOUT ANY WARRANTY; without even the implied warranty
     15 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, TITLE, or
     16 * NONINFRINGEMENT.  See the GNU General Public License for more
     17 * details.
     18 *
     19 * You should have received a copy of the GNU General Public License
     20 * along with this file; if not, write to the Free Software
     21 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
     22 * or visit http://www.gnu.org/licenses/.
     23 *
     24 * This file may also be available under a different license from Cavium.
     25 * Contact Cavium Networks for more information
     26 ***********************license end**************************************/
     27
     28#ifndef __CVMX_PEMX_DEFS_H__
     29#define __CVMX_PEMX_DEFS_H__
     30
     31#define CVMX_PEMX_BAR1_INDEXX(offset, block_id) (CVMX_ADD_IO_SEG(0x00011800C00000A8ull) + (((offset) & 15) + ((block_id) & 1) * 0x200000ull) * 8)
     32#define CVMX_PEMX_BAR2_MASK(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000130ull) + ((block_id) & 1) * 0x1000000ull)
     33#define CVMX_PEMX_BAR_CTL(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000128ull) + ((block_id) & 1) * 0x1000000ull)
     34#define CVMX_PEMX_BIST_STATUS(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000018ull) + ((block_id) & 1) * 0x1000000ull)
     35#define CVMX_PEMX_BIST_STATUS2(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000420ull) + ((block_id) & 1) * 0x1000000ull)
     36#define CVMX_PEMX_CFG_RD(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000030ull) + ((block_id) & 1) * 0x1000000ull)
     37#define CVMX_PEMX_CFG_WR(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000028ull) + ((block_id) & 1) * 0x1000000ull)
     38#define CVMX_PEMX_CPL_LUT_VALID(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000098ull) + ((block_id) & 1) * 0x1000000ull)
     39#define CVMX_PEMX_CTL_STATUS(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000000ull) + ((block_id) & 1) * 0x1000000ull)
     40#define CVMX_PEMX_DBG_INFO(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000008ull) + ((block_id) & 1) * 0x1000000ull)
     41#define CVMX_PEMX_DBG_INFO_EN(block_id) (CVMX_ADD_IO_SEG(0x00011800C00000A0ull) + ((block_id) & 1) * 0x1000000ull)
     42#define CVMX_PEMX_DIAG_STATUS(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000020ull) + ((block_id) & 1) * 0x1000000ull)
     43#define CVMX_PEMX_INB_READ_CREDITS(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000138ull) + ((block_id) & 1) * 0x1000000ull)
     44#define CVMX_PEMX_INT_ENB(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000410ull) + ((block_id) & 1) * 0x1000000ull)
     45#define CVMX_PEMX_INT_ENB_INT(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000418ull) + ((block_id) & 1) * 0x1000000ull)
     46#define CVMX_PEMX_INT_SUM(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000408ull) + ((block_id) & 1) * 0x1000000ull)
     47#define CVMX_PEMX_P2N_BAR0_START(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000080ull) + ((block_id) & 1) * 0x1000000ull)
     48#define CVMX_PEMX_P2N_BAR1_START(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000088ull) + ((block_id) & 1) * 0x1000000ull)
     49#define CVMX_PEMX_P2N_BAR2_START(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000090ull) + ((block_id) & 1) * 0x1000000ull)
     50#define CVMX_PEMX_P2P_BARX_END(offset, block_id) (CVMX_ADD_IO_SEG(0x00011800C0000048ull) + (((offset) & 3) + ((block_id) & 1) * 0x100000ull) * 16)
     51#define CVMX_PEMX_P2P_BARX_START(offset, block_id) (CVMX_ADD_IO_SEG(0x00011800C0000040ull) + (((offset) & 3) + ((block_id) & 1) * 0x100000ull) * 16)
     52#define CVMX_PEMX_TLP_CREDITS(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000038ull) + ((block_id) & 1) * 0x1000000ull)
     53
     54union cvmx_pemx_bar1_indexx {
     55	uint64_t u64;
     56	struct cvmx_pemx_bar1_indexx_s {
     57#ifdef __BIG_ENDIAN_BITFIELD
     58		uint64_t reserved_20_63:44;
     59		uint64_t addr_idx:16;
     60		uint64_t ca:1;
     61		uint64_t end_swp:2;
     62		uint64_t addr_v:1;
     63#else
     64		uint64_t addr_v:1;
     65		uint64_t end_swp:2;
     66		uint64_t ca:1;
     67		uint64_t addr_idx:16;
     68		uint64_t reserved_20_63:44;
     69#endif
     70	} s;
     71};
     72
     73union cvmx_pemx_bar2_mask {
     74	uint64_t u64;
     75	struct cvmx_pemx_bar2_mask_s {
     76#ifdef __BIG_ENDIAN_BITFIELD
     77		uint64_t reserved_38_63:26;
     78		uint64_t mask:35;
     79		uint64_t reserved_0_2:3;
     80#else
     81		uint64_t reserved_0_2:3;
     82		uint64_t mask:35;
     83		uint64_t reserved_38_63:26;
     84#endif
     85	} s;
     86};
     87
     88union cvmx_pemx_bar_ctl {
     89	uint64_t u64;
     90	struct cvmx_pemx_bar_ctl_s {
     91#ifdef __BIG_ENDIAN_BITFIELD
     92		uint64_t reserved_7_63:57;
     93		uint64_t bar1_siz:3;
     94		uint64_t bar2_enb:1;
     95		uint64_t bar2_esx:2;
     96		uint64_t bar2_cax:1;
     97#else
     98		uint64_t bar2_cax:1;
     99		uint64_t bar2_esx:2;
    100		uint64_t bar2_enb:1;
    101		uint64_t bar1_siz:3;
    102		uint64_t reserved_7_63:57;
    103#endif
    104	} s;
    105};
    106
    107union cvmx_pemx_bist_status {
    108	uint64_t u64;
    109	struct cvmx_pemx_bist_status_s {
    110#ifdef __BIG_ENDIAN_BITFIELD
    111		uint64_t reserved_8_63:56;
    112		uint64_t retry:1;
    113		uint64_t rqdata0:1;
    114		uint64_t rqdata1:1;
    115		uint64_t rqdata2:1;
    116		uint64_t rqdata3:1;
    117		uint64_t rqhdr1:1;
    118		uint64_t rqhdr0:1;
    119		uint64_t sot:1;
    120#else
    121		uint64_t sot:1;
    122		uint64_t rqhdr0:1;
    123		uint64_t rqhdr1:1;
    124		uint64_t rqdata3:1;
    125		uint64_t rqdata2:1;
    126		uint64_t rqdata1:1;
    127		uint64_t rqdata0:1;
    128		uint64_t retry:1;
    129		uint64_t reserved_8_63:56;
    130#endif
    131	} s;
    132};
    133
    134union cvmx_pemx_bist_status2 {
    135	uint64_t u64;
    136	struct cvmx_pemx_bist_status2_s {
    137#ifdef __BIG_ENDIAN_BITFIELD
    138		uint64_t reserved_10_63:54;
    139		uint64_t e2p_cpl:1;
    140		uint64_t e2p_n:1;
    141		uint64_t e2p_p:1;
    142		uint64_t peai_p2e:1;
    143		uint64_t pef_tpf1:1;
    144		uint64_t pef_tpf0:1;
    145		uint64_t pef_tnf:1;
    146		uint64_t pef_tcf1:1;
    147		uint64_t pef_tc0:1;
    148		uint64_t ppf:1;
    149#else
    150		uint64_t ppf:1;
    151		uint64_t pef_tc0:1;
    152		uint64_t pef_tcf1:1;
    153		uint64_t pef_tnf:1;
    154		uint64_t pef_tpf0:1;
    155		uint64_t pef_tpf1:1;
    156		uint64_t peai_p2e:1;
    157		uint64_t e2p_p:1;
    158		uint64_t e2p_n:1;
    159		uint64_t e2p_cpl:1;
    160		uint64_t reserved_10_63:54;
    161#endif
    162	} s;
    163};
    164
    165union cvmx_pemx_cfg_rd {
    166	uint64_t u64;
    167	struct cvmx_pemx_cfg_rd_s {
    168#ifdef __BIG_ENDIAN_BITFIELD
    169		uint64_t data:32;
    170		uint64_t addr:32;
    171#else
    172		uint64_t addr:32;
    173		uint64_t data:32;
    174#endif
    175	} s;
    176};
    177
    178union cvmx_pemx_cfg_wr {
    179	uint64_t u64;
    180	struct cvmx_pemx_cfg_wr_s {
    181#ifdef __BIG_ENDIAN_BITFIELD
    182		uint64_t data:32;
    183		uint64_t addr:32;
    184#else
    185		uint64_t addr:32;
    186		uint64_t data:32;
    187#endif
    188	} s;
    189};
    190
    191union cvmx_pemx_cpl_lut_valid {
    192	uint64_t u64;
    193	struct cvmx_pemx_cpl_lut_valid_s {
    194#ifdef __BIG_ENDIAN_BITFIELD
    195		uint64_t reserved_32_63:32;
    196		uint64_t tag:32;
    197#else
    198		uint64_t tag:32;
    199		uint64_t reserved_32_63:32;
    200#endif
    201	} s;
    202};
    203
    204union cvmx_pemx_ctl_status {
    205	uint64_t u64;
    206	struct cvmx_pemx_ctl_status_s {
    207#ifdef __BIG_ENDIAN_BITFIELD
    208		uint64_t reserved_48_63:16;
    209		uint64_t auto_sd:1;
    210		uint64_t dnum:5;
    211		uint64_t pbus:8;
    212		uint64_t reserved_32_33:2;
    213		uint64_t cfg_rtry:16;
    214		uint64_t reserved_12_15:4;
    215		uint64_t pm_xtoff:1;
    216		uint64_t pm_xpme:1;
    217		uint64_t ob_p_cmd:1;
    218		uint64_t reserved_7_8:2;
    219		uint64_t nf_ecrc:1;
    220		uint64_t dly_one:1;
    221		uint64_t lnk_enb:1;
    222		uint64_t ro_ctlp:1;
    223		uint64_t fast_lm:1;
    224		uint64_t inv_ecrc:1;
    225		uint64_t inv_lcrc:1;
    226#else
    227		uint64_t inv_lcrc:1;
    228		uint64_t inv_ecrc:1;
    229		uint64_t fast_lm:1;
    230		uint64_t ro_ctlp:1;
    231		uint64_t lnk_enb:1;
    232		uint64_t dly_one:1;
    233		uint64_t nf_ecrc:1;
    234		uint64_t reserved_7_8:2;
    235		uint64_t ob_p_cmd:1;
    236		uint64_t pm_xpme:1;
    237		uint64_t pm_xtoff:1;
    238		uint64_t reserved_12_15:4;
    239		uint64_t cfg_rtry:16;
    240		uint64_t reserved_32_33:2;
    241		uint64_t pbus:8;
    242		uint64_t dnum:5;
    243		uint64_t auto_sd:1;
    244		uint64_t reserved_48_63:16;
    245#endif
    246	} s;
    247};
    248
    249union cvmx_pemx_dbg_info {
    250	uint64_t u64;
    251	struct cvmx_pemx_dbg_info_s {
    252#ifdef __BIG_ENDIAN_BITFIELD
    253		uint64_t reserved_31_63:33;
    254		uint64_t ecrc_e:1;
    255		uint64_t rawwpp:1;
    256		uint64_t racpp:1;
    257		uint64_t ramtlp:1;
    258		uint64_t rarwdns:1;
    259		uint64_t caar:1;
    260		uint64_t racca:1;
    261		uint64_t racur:1;
    262		uint64_t rauc:1;
    263		uint64_t rqo:1;
    264		uint64_t fcuv:1;
    265		uint64_t rpe:1;
    266		uint64_t fcpvwt:1;
    267		uint64_t dpeoosd:1;
    268		uint64_t rtwdle:1;
    269		uint64_t rdwdle:1;
    270		uint64_t mre:1;
    271		uint64_t rte:1;
    272		uint64_t acto:1;
    273		uint64_t rvdm:1;
    274		uint64_t rumep:1;
    275		uint64_t rptamrc:1;
    276		uint64_t rpmerc:1;
    277		uint64_t rfemrc:1;
    278		uint64_t rnfemrc:1;
    279		uint64_t rcemrc:1;
    280		uint64_t rpoison:1;
    281		uint64_t recrce:1;
    282		uint64_t rtlplle:1;
    283		uint64_t rtlpmal:1;
    284		uint64_t spoison:1;
    285#else
    286		uint64_t spoison:1;
    287		uint64_t rtlpmal:1;
    288		uint64_t rtlplle:1;
    289		uint64_t recrce:1;
    290		uint64_t rpoison:1;
    291		uint64_t rcemrc:1;
    292		uint64_t rnfemrc:1;
    293		uint64_t rfemrc:1;
    294		uint64_t rpmerc:1;
    295		uint64_t rptamrc:1;
    296		uint64_t rumep:1;
    297		uint64_t rvdm:1;
    298		uint64_t acto:1;
    299		uint64_t rte:1;
    300		uint64_t mre:1;
    301		uint64_t rdwdle:1;
    302		uint64_t rtwdle:1;
    303		uint64_t dpeoosd:1;
    304		uint64_t fcpvwt:1;
    305		uint64_t rpe:1;
    306		uint64_t fcuv:1;
    307		uint64_t rqo:1;
    308		uint64_t rauc:1;
    309		uint64_t racur:1;
    310		uint64_t racca:1;
    311		uint64_t caar:1;
    312		uint64_t rarwdns:1;
    313		uint64_t ramtlp:1;
    314		uint64_t racpp:1;
    315		uint64_t rawwpp:1;
    316		uint64_t ecrc_e:1;
    317		uint64_t reserved_31_63:33;
    318#endif
    319	} s;
    320};
    321
    322union cvmx_pemx_dbg_info_en {
    323	uint64_t u64;
    324	struct cvmx_pemx_dbg_info_en_s {
    325#ifdef __BIG_ENDIAN_BITFIELD
    326		uint64_t reserved_31_63:33;
    327		uint64_t ecrc_e:1;
    328		uint64_t rawwpp:1;
    329		uint64_t racpp:1;
    330		uint64_t ramtlp:1;
    331		uint64_t rarwdns:1;
    332		uint64_t caar:1;
    333		uint64_t racca:1;
    334		uint64_t racur:1;
    335		uint64_t rauc:1;
    336		uint64_t rqo:1;
    337		uint64_t fcuv:1;
    338		uint64_t rpe:1;
    339		uint64_t fcpvwt:1;
    340		uint64_t dpeoosd:1;
    341		uint64_t rtwdle:1;
    342		uint64_t rdwdle:1;
    343		uint64_t mre:1;
    344		uint64_t rte:1;
    345		uint64_t acto:1;
    346		uint64_t rvdm:1;
    347		uint64_t rumep:1;
    348		uint64_t rptamrc:1;
    349		uint64_t rpmerc:1;
    350		uint64_t rfemrc:1;
    351		uint64_t rnfemrc:1;
    352		uint64_t rcemrc:1;
    353		uint64_t rpoison:1;
    354		uint64_t recrce:1;
    355		uint64_t rtlplle:1;
    356		uint64_t rtlpmal:1;
    357		uint64_t spoison:1;
    358#else
    359		uint64_t spoison:1;
    360		uint64_t rtlpmal:1;
    361		uint64_t rtlplle:1;
    362		uint64_t recrce:1;
    363		uint64_t rpoison:1;
    364		uint64_t rcemrc:1;
    365		uint64_t rnfemrc:1;
    366		uint64_t rfemrc:1;
    367		uint64_t rpmerc:1;
    368		uint64_t rptamrc:1;
    369		uint64_t rumep:1;
    370		uint64_t rvdm:1;
    371		uint64_t acto:1;
    372		uint64_t rte:1;
    373		uint64_t mre:1;
    374		uint64_t rdwdle:1;
    375		uint64_t rtwdle:1;
    376		uint64_t dpeoosd:1;
    377		uint64_t fcpvwt:1;
    378		uint64_t rpe:1;
    379		uint64_t fcuv:1;
    380		uint64_t rqo:1;
    381		uint64_t rauc:1;
    382		uint64_t racur:1;
    383		uint64_t racca:1;
    384		uint64_t caar:1;
    385		uint64_t rarwdns:1;
    386		uint64_t ramtlp:1;
    387		uint64_t racpp:1;
    388		uint64_t rawwpp:1;
    389		uint64_t ecrc_e:1;
    390		uint64_t reserved_31_63:33;
    391#endif
    392	} s;
    393};
    394
    395union cvmx_pemx_diag_status {
    396	uint64_t u64;
    397	struct cvmx_pemx_diag_status_s {
    398#ifdef __BIG_ENDIAN_BITFIELD
    399		uint64_t reserved_4_63:60;
    400		uint64_t pm_dst:1;
    401		uint64_t pm_stat:1;
    402		uint64_t pm_en:1;
    403		uint64_t aux_en:1;
    404#else
    405		uint64_t aux_en:1;
    406		uint64_t pm_en:1;
    407		uint64_t pm_stat:1;
    408		uint64_t pm_dst:1;
    409		uint64_t reserved_4_63:60;
    410#endif
    411	} s;
    412};
    413
    414union cvmx_pemx_inb_read_credits {
    415	uint64_t u64;
    416	struct cvmx_pemx_inb_read_credits_s {
    417#ifdef __BIG_ENDIAN_BITFIELD
    418		uint64_t reserved_6_63:58;
    419		uint64_t num:6;
    420#else
    421		uint64_t num:6;
    422		uint64_t reserved_6_63:58;
    423#endif
    424	} s;
    425};
    426
    427union cvmx_pemx_int_enb {
    428	uint64_t u64;
    429	struct cvmx_pemx_int_enb_s {
    430#ifdef __BIG_ENDIAN_BITFIELD
    431		uint64_t reserved_14_63:50;
    432		uint64_t crs_dr:1;
    433		uint64_t crs_er:1;
    434		uint64_t rdlk:1;
    435		uint64_t exc:1;
    436		uint64_t un_bx:1;
    437		uint64_t un_b2:1;
    438		uint64_t un_b1:1;
    439		uint64_t up_bx:1;
    440		uint64_t up_b2:1;
    441		uint64_t up_b1:1;
    442		uint64_t pmem:1;
    443		uint64_t pmei:1;
    444		uint64_t se:1;
    445		uint64_t aeri:1;
    446#else
    447		uint64_t aeri:1;
    448		uint64_t se:1;
    449		uint64_t pmei:1;
    450		uint64_t pmem:1;
    451		uint64_t up_b1:1;
    452		uint64_t up_b2:1;
    453		uint64_t up_bx:1;
    454		uint64_t un_b1:1;
    455		uint64_t un_b2:1;
    456		uint64_t un_bx:1;
    457		uint64_t exc:1;
    458		uint64_t rdlk:1;
    459		uint64_t crs_er:1;
    460		uint64_t crs_dr:1;
    461		uint64_t reserved_14_63:50;
    462#endif
    463	} s;
    464};
    465
    466union cvmx_pemx_int_enb_int {
    467	uint64_t u64;
    468	struct cvmx_pemx_int_enb_int_s {
    469#ifdef __BIG_ENDIAN_BITFIELD
    470		uint64_t reserved_14_63:50;
    471		uint64_t crs_dr:1;
    472		uint64_t crs_er:1;
    473		uint64_t rdlk:1;
    474		uint64_t exc:1;
    475		uint64_t un_bx:1;
    476		uint64_t un_b2:1;
    477		uint64_t un_b1:1;
    478		uint64_t up_bx:1;
    479		uint64_t up_b2:1;
    480		uint64_t up_b1:1;
    481		uint64_t pmem:1;
    482		uint64_t pmei:1;
    483		uint64_t se:1;
    484		uint64_t aeri:1;
    485#else
    486		uint64_t aeri:1;
    487		uint64_t se:1;
    488		uint64_t pmei:1;
    489		uint64_t pmem:1;
    490		uint64_t up_b1:1;
    491		uint64_t up_b2:1;
    492		uint64_t up_bx:1;
    493		uint64_t un_b1:1;
    494		uint64_t un_b2:1;
    495		uint64_t un_bx:1;
    496		uint64_t exc:1;
    497		uint64_t rdlk:1;
    498		uint64_t crs_er:1;
    499		uint64_t crs_dr:1;
    500		uint64_t reserved_14_63:50;
    501#endif
    502	} s;
    503};
    504
    505union cvmx_pemx_int_sum {
    506	uint64_t u64;
    507	struct cvmx_pemx_int_sum_s {
    508#ifdef __BIG_ENDIAN_BITFIELD
    509		uint64_t reserved_14_63:50;
    510		uint64_t crs_dr:1;
    511		uint64_t crs_er:1;
    512		uint64_t rdlk:1;
    513		uint64_t exc:1;
    514		uint64_t un_bx:1;
    515		uint64_t un_b2:1;
    516		uint64_t un_b1:1;
    517		uint64_t up_bx:1;
    518		uint64_t up_b2:1;
    519		uint64_t up_b1:1;
    520		uint64_t pmem:1;
    521		uint64_t pmei:1;
    522		uint64_t se:1;
    523		uint64_t aeri:1;
    524#else
    525		uint64_t aeri:1;
    526		uint64_t se:1;
    527		uint64_t pmei:1;
    528		uint64_t pmem:1;
    529		uint64_t up_b1:1;
    530		uint64_t up_b2:1;
    531		uint64_t up_bx:1;
    532		uint64_t un_b1:1;
    533		uint64_t un_b2:1;
    534		uint64_t un_bx:1;
    535		uint64_t exc:1;
    536		uint64_t rdlk:1;
    537		uint64_t crs_er:1;
    538		uint64_t crs_dr:1;
    539		uint64_t reserved_14_63:50;
    540#endif
    541	} s;
    542};
    543
    544union cvmx_pemx_p2n_bar0_start {
    545	uint64_t u64;
    546	struct cvmx_pemx_p2n_bar0_start_s {
    547#ifdef __BIG_ENDIAN_BITFIELD
    548		uint64_t addr:50;
    549		uint64_t reserved_0_13:14;
    550#else
    551		uint64_t reserved_0_13:14;
    552		uint64_t addr:50;
    553#endif
    554	} s;
    555};
    556
    557union cvmx_pemx_p2n_bar1_start {
    558	uint64_t u64;
    559	struct cvmx_pemx_p2n_bar1_start_s {
    560#ifdef __BIG_ENDIAN_BITFIELD
    561		uint64_t addr:38;
    562		uint64_t reserved_0_25:26;
    563#else
    564		uint64_t reserved_0_25:26;
    565		uint64_t addr:38;
    566#endif
    567	} s;
    568};
    569
    570union cvmx_pemx_p2n_bar2_start {
    571	uint64_t u64;
    572	struct cvmx_pemx_p2n_bar2_start_s {
    573#ifdef __BIG_ENDIAN_BITFIELD
    574		uint64_t addr:23;
    575		uint64_t reserved_0_40:41;
    576#else
    577		uint64_t reserved_0_40:41;
    578		uint64_t addr:23;
    579#endif
    580	} s;
    581};
    582
    583union cvmx_pemx_p2p_barx_end {
    584	uint64_t u64;
    585	struct cvmx_pemx_p2p_barx_end_s {
    586#ifdef __BIG_ENDIAN_BITFIELD
    587		uint64_t addr:52;
    588		uint64_t reserved_0_11:12;
    589#else
    590		uint64_t reserved_0_11:12;
    591		uint64_t addr:52;
    592#endif
    593	} s;
    594};
    595
    596union cvmx_pemx_p2p_barx_start {
    597	uint64_t u64;
    598	struct cvmx_pemx_p2p_barx_start_s {
    599#ifdef __BIG_ENDIAN_BITFIELD
    600		uint64_t addr:52;
    601		uint64_t reserved_0_11:12;
    602#else
    603		uint64_t reserved_0_11:12;
    604		uint64_t addr:52;
    605#endif
    606	} s;
    607};
    608
    609union cvmx_pemx_tlp_credits {
    610	uint64_t u64;
    611	struct cvmx_pemx_tlp_credits_s {
    612#ifdef __BIG_ENDIAN_BITFIELD
    613		uint64_t reserved_56_63:8;
    614		uint64_t peai_ppf:8;
    615		uint64_t pem_cpl:8;
    616		uint64_t pem_np:8;
    617		uint64_t pem_p:8;
    618		uint64_t sli_cpl:8;
    619		uint64_t sli_np:8;
    620		uint64_t sli_p:8;
    621#else
    622		uint64_t sli_p:8;
    623		uint64_t sli_np:8;
    624		uint64_t sli_cpl:8;
    625		uint64_t pem_p:8;
    626		uint64_t pem_np:8;
    627		uint64_t pem_cpl:8;
    628		uint64_t peai_ppf:8;
    629		uint64_t reserved_56_63:8;
    630#endif
    631	} s;
    632	struct cvmx_pemx_tlp_credits_cn61xx {
    633#ifdef __BIG_ENDIAN_BITFIELD
    634		uint64_t reserved_56_63:8;
    635		uint64_t peai_ppf:8;
    636		uint64_t reserved_24_47:24;
    637		uint64_t sli_cpl:8;
    638		uint64_t sli_np:8;
    639		uint64_t sli_p:8;
    640#else
    641		uint64_t sli_p:8;
    642		uint64_t sli_np:8;
    643		uint64_t sli_cpl:8;
    644		uint64_t reserved_24_47:24;
    645		uint64_t peai_ppf:8;
    646		uint64_t reserved_56_63:8;
    647#endif
    648	} cn61xx;
    649};
    650
    651#endif