/* SPDX-License-Identifier: GPL-2.0 */ /* * Copyright (C) 2018-2022 Marvell International Ltd. * * Configuration and status register (CSR) type definitions for * Octeon ilk. */ #ifndef __CVMX_ILK_DEFS_H__ #define __CVMX_ILK_DEFS_H__ #define CVMX_ILK_BIST_SUM (0x0001180014000038ull) #define CVMX_ILK_GBL_CFG (0x0001180014000000ull) #define CVMX_ILK_GBL_ERR_CFG (0x0001180014000058ull) #define CVMX_ILK_GBL_INT (0x0001180014000008ull) #define CVMX_ILK_GBL_INT_EN (0x0001180014000010ull) #define CVMX_ILK_INT_SUM (0x0001180014000030ull) #define CVMX_ILK_LNEX_TRN_CTL(offset) \ (0x00011800140380F0ull + ((offset) & 15) * 1024) #define CVMX_ILK_LNEX_TRN_LD(offset) \ (0x00011800140380E0ull + ((offset) & 15) * 1024) #define CVMX_ILK_LNEX_TRN_LP(offset) \ (0x00011800140380E8ull + ((offset) & 15) * 1024) #define CVMX_ILK_LNE_DBG (0x0001180014030008ull) #define CVMX_ILK_LNE_STS_MSG (0x0001180014030000ull) #define CVMX_ILK_RID_CFG (0x0001180014000050ull) #define CVMX_ILK_RXF_IDX_PMAP (0x0001180014000020ull) #define CVMX_ILK_RXF_MEM_PMAP (0x0001180014000028ull) #define CVMX_ILK_RXX_BYTE_CNTX(offset, block_id) \ (0x0001180014023000ull + \ (((offset) & 255) + ((block_id) & 1) * 0x800ull) * 8) #define CVMX_ILK_RXX_CAL_ENTRYX(offset, block_id) \ (0x0001180014021000ull + \ (((offset) & 511) + ((block_id) & 1) * 0x800ull) * 8) #define CVMX_ILK_RXX_CFG0(offset) (0x0001180014020000ull + ((offset) & 1) * 16384) #define CVMX_ILK_RXX_CFG1(offset) (0x0001180014020008ull + ((offset) & 1) * 16384) #define CVMX_ILK_RXX_CHAX(offset, block_id) \ (0x0001180014002000ull + \ (((offset) & 255) + ((block_id) & 1) * 0x200ull) * 8) #define CVMX_ILK_RXX_CHA_XONX(offset, block_id) \ (0x0001180014020400ull + (((offset) & 3) + ((block_id) & 1) * 0x800ull) * 8) #define CVMX_ILK_RXX_ERR_CFG(offset) \ (0x00011800140200E0ull + ((offset) & 1) * 16384) #define CVMX_ILK_RXX_FLOW_CTL0(offset) \ (0x0001180014020090ull + ((offset) & 1) * 16384) #define CVMX_ILK_RXX_FLOW_CTL1(offset) \ (0x0001180014020098ull + ((offset) & 1) * 16384) #define CVMX_ILK_RXX_IDX_CAL(offset) \ (0x00011800140200A0ull + ((offset) & 1) * 16384) #define CVMX_ILK_RXX_IDX_STAT0(offset) \ (0x0001180014020070ull + ((offset) & 1) * 16384) #define CVMX_ILK_RXX_IDX_STAT1(offset) \ (0x0001180014020078ull + ((offset) & 1) * 16384) #define CVMX_ILK_RXX_INT(offset) (0x0001180014020010ull + ((offset) & 1) * 16384) #define CVMX_ILK_RXX_INT_EN(offset) \ (0x0001180014020018ull + ((offset) & 1) * 16384) #define CVMX_ILK_RXX_JABBER(offset) \ (0x00011800140200B8ull + ((offset) & 1) * 16384) #define CVMX_ILK_RXX_MEM_CAL0(offset) \ (0x00011800140200A8ull + ((offset) & 1) * 16384) #define CVMX_ILK_RXX_MEM_CAL1(offset) \ (0x00011800140200B0ull + ((offset) & 1) * 16384) #define CVMX_ILK_RXX_MEM_STAT0(offset) \ (0x0001180014020080ull + ((offset) & 1) * 16384) #define CVMX_ILK_RXX_MEM_STAT1(offset) \ (0x0001180014020088ull + ((offset) & 1) * 16384) #define CVMX_ILK_RXX_PKT_CNTX(offset, block_id) \ (0x0001180014022000ull + \ (((offset) & 255) + ((block_id) & 1) * 0x800ull) * 8) #define CVMX_ILK_RXX_RID(offset) (0x00011800140200C0ull + ((offset) & 1) * 16384) #define CVMX_ILK_RXX_STAT0(offset) \ (0x0001180014020020ull + ((offset) & 1) * 16384) #define CVMX_ILK_RXX_STAT1(offset) \ (0x0001180014020028ull + ((offset) & 1) * 16384) #define CVMX_ILK_RXX_STAT2(offset) \ (0x0001180014020030ull + ((offset) & 1) * 16384) #define CVMX_ILK_RXX_STAT3(offset) \ (0x0001180014020038ull + ((offset) & 1) * 16384) #define CVMX_ILK_RXX_STAT4(offset) \ (0x0001180014020040ull + ((offset) & 1) * 16384) #define CVMX_ILK_RXX_STAT5(offset) \ (0x0001180014020048ull + ((offset) & 1) * 16384) #define CVMX_ILK_RXX_STAT6(offset) \ (0x0001180014020050ull + ((offset) & 1) * 16384) #define CVMX_ILK_RXX_STAT7(offset) \ (0x0001180014020058ull + ((offset) & 1) * 16384) #define CVMX_ILK_RXX_STAT8(offset) \ (0x0001180014020060ull + ((offset) & 1) * 16384) #define CVMX_ILK_RXX_STAT9(offset) \ (0x0001180014020068ull + ((offset) & 1) * 16384) #define CVMX_ILK_RX_LNEX_CFG(offset) \ (0x0001180014038000ull + ((offset) & 15) * 1024) #define CVMX_ILK_RX_LNEX_INT(offset) \ (0x0001180014038008ull + ((offset) & 15) * 1024) #define CVMX_ILK_RX_LNEX_INT_EN(offset) \ (0x0001180014038010ull + ((offset) & 7) * 1024) #define CVMX_ILK_RX_LNEX_STAT0(offset) \ (0x0001180014038018ull + ((offset) & 15) * 1024) #define CVMX_ILK_RX_LNEX_STAT1(offset) \ (0x0001180014038020ull + ((offset) & 15) * 1024) #define CVMX_ILK_RX_LNEX_STAT10(offset) \ (0x0001180014038068ull + ((offset) & 15) * 1024) #define CVMX_ILK_RX_LNEX_STAT2(offset) \ (0x0001180014038028ull + ((offset) & 15) * 1024) #define CVMX_ILK_RX_LNEX_STAT3(offset) \ (0x0001180014038030ull + ((offset) & 15) * 1024) #define CVMX_ILK_RX_LNEX_STAT4(offset) \ (0x0001180014038038ull + ((offset) & 15) * 1024) #define CVMX_ILK_RX_LNEX_STAT5(offset) \ (0x0001180014038040ull + ((offset) & 15) * 1024) #define CVMX_ILK_RX_LNEX_STAT6(offset) \ (0x0001180014038048ull + ((offset) & 15) * 1024) #define CVMX_ILK_RX_LNEX_STAT7(offset) \ (0x0001180014038050ull + ((offset) & 15) * 1024) #define CVMX_ILK_RX_LNEX_STAT8(offset) \ (0x0001180014038058ull + ((offset) & 15) * 1024) #define CVMX_ILK_RX_LNEX_STAT9(offset) \ (0x0001180014038060ull + ((offset) & 15) * 1024) #define CVMX_ILK_SER_CFG (0x0001180014000018ull) #define CVMX_ILK_TXX_BYTE_CNTX(offset, block_id) \ (0x0001180014013000ull + \ (((offset) & 255) + ((block_id) & 1) * 0x800ull) * 8) #define CVMX_ILK_TXX_CAL_ENTRYX(offset, block_id) \ (0x0001180014011000ull + \ (((offset) & 511) + ((block_id) & 1) * 0x800ull) * 8) #define CVMX_ILK_TXX_CFG0(offset) (0x0001180014010000ull + ((offset) & 1) * 16384) #define CVMX_ILK_TXX_CFG1(offset) (0x0001180014010008ull + ((offset) & 1) * 16384) #define CVMX_ILK_TXX_CHA_XONX(offset, block_id) \ (0x0001180014010400ull + (((offset) & 3) + ((block_id) & 1) * 0x800ull) * 8) #define CVMX_ILK_TXX_DBG(offset) (0x0001180014010070ull + ((offset) & 1) * 16384) #define CVMX_ILK_TXX_ERR_CFG(offset) \ (0x00011800140100B0ull + ((offset) & 1) * 16384) #define CVMX_ILK_TXX_FLOW_CTL0(offset) \ (0x0001180014010048ull + ((offset) & 1) * 16384) #define CVMX_ILK_TXX_FLOW_CTL1(offset) \ (0x0001180014010050ull + ((offset) & 1) * 16384) #define CVMX_ILK_TXX_IDX_CAL(offset) \ (0x0001180014010058ull + ((offset) & 1) * 16384) #define CVMX_ILK_TXX_IDX_PMAP(offset) \ (0x0001180014010010ull + ((offset) & 1) * 16384) #define CVMX_ILK_TXX_IDX_STAT0(offset) \ (0x0001180014010020ull + ((offset) & 1) * 16384) #define CVMX_ILK_TXX_IDX_STAT1(offset) \ (0x0001180014010028ull + ((offset) & 1) * 16384) #define CVMX_ILK_TXX_INT(offset) (0x0001180014010078ull + ((offset) & 1) * 16384) #define CVMX_ILK_TXX_INT_EN(offset) \ (0x0001180014010080ull + ((offset) & 1) * 16384) #define CVMX_ILK_TXX_MEM_CAL0(offset) \ (0x0001180014010060ull + ((offset) & 1) * 16384) #define CVMX_ILK_TXX_MEM_CAL1(offset) \ (0x0001180014010068ull + ((offset) & 1) * 16384) #define CVMX_ILK_TXX_MEM_PMAP(offset) \ (0x0001180014010018ull + ((offset) & 1) * 16384) #define CVMX_ILK_TXX_MEM_STAT0(offset) \ (0x0001180014010030ull + ((offset) & 1) * 16384) #define CVMX_ILK_TXX_MEM_STAT1(offset) \ (0x0001180014010038ull + ((offset) & 1) * 16384) #define CVMX_ILK_TXX_PIPE(offset) (0x0001180014010088ull + ((offset) & 1) * 16384) #define CVMX_ILK_TXX_PKT_CNTX(offset, block_id) \ (0x0001180014012000ull + \ (((offset) & 255) + ((block_id) & 1) * 0x800ull) * 8) #define CVMX_ILK_TXX_RMATCH(offset) \ (0x0001180014010040ull + ((offset) & 1) * 16384) /** * cvmx_ilk_bist_sum */ union cvmx_ilk_bist_sum { u64 u64; struct cvmx_ilk_bist_sum_s { u64 rxf_x2p : 1; u64 rxf_mem19 : 1; u64 rxf_mem18 : 1; u64 rxf_mem17 : 1; u64 rxf_mem16 : 1; u64 rxf_mem15 : 1; u64 reserved_52_57 : 6; u64 rxf_mem8 : 1; u64 rxf_mem7 : 1; u64 rxf_mem6 : 1; u64 rxf_mem5 : 1; u64 rxf_mem4 : 1; u64 rxf_mem3 : 1; u64 reserved_36_45 : 10; u64 rle7_dsk1 : 1; u64 rle7_dsk0 : 1; u64 rle6_dsk1 : 1; u64 rle6_dsk0 : 1; u64 rle5_dsk1 : 1; u64 rle5_dsk0 : 1; u64 rle4_dsk1 : 1; u64 rle4_dsk0 : 1; u64 rle3_dsk1 : 1; u64 rle3_dsk0 : 1; u64 rle2_dsk1 : 1; u64 rle2_dsk0 : 1; u64 rle1_dsk1 : 1; u64 rle1_dsk0 : 1; u64 rle0_dsk1 : 1; u64 rle0_dsk0 : 1; u64 rlk1_pmap : 1; u64 reserved_18_18 : 1; u64 rlk1_fwc : 1; u64 reserved_16_16 : 1; u64 rlk0_pmap : 1; u64 rlk0_stat1 : 1; u64 rlk0_fwc : 1; u64 rlk0_stat : 1; u64 tlk1_stat1 : 1; u64 tlk1_fwc : 1; u64 reserved_9_9 : 1; u64 tlk1_txf2 : 1; u64 tlk1_txf1 : 1; u64 tlk1_txf0 : 1; u64 tlk0_stat1 : 1; u64 tlk0_fwc : 1; u64 reserved_3_3 : 1; u64 tlk0_txf2 : 1; u64 tlk0_txf1 : 1; u64 tlk0_txf0 : 1; } s; struct cvmx_ilk_bist_sum_cn68xx { u64 reserved_58_63 : 6; u64 rxf_x2p1 : 1; u64 rxf_x2p0 : 1; u64 rxf_pmap : 1; u64 rxf_mem2 : 1; u64 rxf_mem1 : 1; u64 rxf_mem0 : 1; u64 reserved_36_51 : 16; u64 rle7_dsk1 : 1; u64 rle7_dsk0 : 1; u64 rle6_dsk1 : 1; u64 rle6_dsk0 : 1; u64 rle5_dsk1 : 1; u64 rle5_dsk0 : 1; u64 rle4_dsk1 : 1; u64 rle4_dsk0 : 1; u64 rle3_dsk1 : 1; u64 rle3_dsk0 : 1; u64 rle2_dsk1 : 1; u64 rle2_dsk0 : 1; u64 rle1_dsk1 : 1; u64 rle1_dsk0 : 1; u64 rle0_dsk1 : 1; u64 rle0_dsk0 : 1; u64 reserved_19_19 : 1; u64 rlk1_stat1 : 1; u64 rlk1_fwc : 1; u64 rlk1_stat : 1; u64 reserved_15_15 : 1; u64 rlk0_stat1 : 1; u64 rlk0_fwc : 1; u64 rlk0_stat : 1; u64 tlk1_stat1 : 1; u64 tlk1_fwc : 1; u64 tlk1_stat0 : 1; u64 tlk1_txf2 : 1; u64 tlk1_txf1 : 1; u64 tlk1_txf0 : 1; u64 tlk0_stat1 : 1; u64 tlk0_fwc : 1; u64 tlk0_stat0 : 1; u64 tlk0_txf2 : 1; u64 tlk0_txf1 : 1; u64 tlk0_txf0 : 1; } cn68xx; struct cvmx_ilk_bist_sum_cn68xxp1 { u64 reserved_58_63 : 6; u64 rxf_x2p1 : 1; u64 rxf_x2p0 : 1; u64 rxf_pmap : 1; u64 rxf_mem2 : 1; u64 rxf_mem1 : 1; u64 rxf_mem0 : 1; u64 reserved_36_51 : 16; u64 rle7_dsk1 : 1; u64 rle7_dsk0 : 1; u64 rle6_dsk1 : 1; u64 rle6_dsk0 : 1; u64 rle5_dsk1 : 1; u64 rle5_dsk0 : 1; u64 rle4_dsk1 : 1; u64 rle4_dsk0 : 1; u64 rle3_dsk1 : 1; u64 rle3_dsk0 : 1; u64 rle2_dsk1 : 1; u64 rle2_dsk0 : 1; u64 rle1_dsk1 : 1; u64 rle1_dsk0 : 1; u64 rle0_dsk1 : 1; u64 rle0_dsk0 : 1; u64 reserved_18_19 : 2; u64 rlk1_fwc : 1; u64 rlk1_stat : 1; u64 reserved_14_15 : 2; u64 rlk0_fwc : 1; u64 rlk0_stat : 1; u64 reserved_11_11 : 1; u64 tlk1_fwc : 1; u64 tlk1_stat : 1; u64 tlk1_txf2 : 1; u64 tlk1_txf1 : 1; u64 tlk1_txf0 : 1; u64 reserved_5_5 : 1; u64 tlk0_fwc : 1; u64 tlk0_stat : 1; u64 tlk0_txf2 : 1; u64 tlk0_txf1 : 1; u64 tlk0_txf0 : 1; } cn68xxp1; struct cvmx_ilk_bist_sum_cn78xx { u64 rxf_x2p : 1; u64 rxf_mem19 : 1; u64 rxf_mem18 : 1; u64 rxf_mem17 : 1; u64 rxf_mem16 : 1; u64 rxf_mem15 : 1; u64 rxf_mem14 : 1; u64 rxf_mem13 : 1; u64 rxf_mem12 : 1; u64 rxf_mem11 : 1; u64 rxf_mem10 : 1; u64 rxf_mem9 : 1; u64 rxf_mem8 : 1; u64 rxf_mem7 : 1; u64 rxf_mem6 : 1; u64 rxf_mem5 : 1; u64 rxf_mem4 : 1; u64 rxf_mem3 : 1; u64 rxf_mem2 : 1; u64 rxf_mem1 : 1; u64 rxf_mem0 : 1; u64 reserved_36_42 : 7; u64 rle7_dsk1 : 1; u64 rle7_dsk0 : 1; u64 rle6_dsk1 : 1; u64 rle6_dsk0 : 1; u64 rle5_dsk1 : 1; u64 rle5_dsk0 : 1; u64 rle4_dsk1 : 1; u64 rle4_dsk0 : 1; u64 rle3_dsk1 : 1; u64 rle3_dsk0 : 1; u64 rle2_dsk1 : 1; u64 rle2_dsk0 : 1; u64 rle1_dsk1 : 1; u64 rle1_dsk0 : 1; u64 rle0_dsk1 : 1; u64 rle0_dsk0 : 1; u64 rlk1_pmap : 1; u64 rlk1_stat : 1; u64 rlk1_fwc : 1; u64 rlk1_stat1 : 1; u64 rlk0_pmap : 1; u64 rlk0_stat1 : 1; u64 rlk0_fwc : 1; u64 rlk0_stat : 1; u64 tlk1_stat1 : 1; u64 tlk1_fwc : 1; u64 tlk1_stat0 : 1; u64 tlk1_txf2 : 1; u64 tlk1_txf1 : 1; u64 tlk1_txf0 : 1; u64 tlk0_stat1 : 1; u64 tlk0_fwc : 1; u64 tlk0_stat0 : 1; u64 tlk0_txf2 : 1; u64 tlk0_txf1 : 1; u64 tlk0_txf0 : 1; } cn78xx; struct cvmx_ilk_bist_sum_cn78xx cn78xxp1; }; typedef union cvmx_ilk_bist_sum cvmx_ilk_bist_sum_t; /** * cvmx_ilk_gbl_cfg */ union cvmx_ilk_gbl_cfg { u64 u64; struct cvmx_ilk_gbl_cfg_s { u64 reserved_4_63 : 60; u64 rid_rstdis : 1; u64 reset : 1; u64 cclk_dis : 1; u64 rxf_xlink : 1; } s; struct cvmx_ilk_gbl_cfg_s cn68xx; struct cvmx_ilk_gbl_cfg_cn68xxp1 { u64 reserved_2_63 : 62; u64 cclk_dis : 1; u64 rxf_xlink : 1; } cn68xxp1; struct cvmx_ilk_gbl_cfg_s cn78xx; struct cvmx_ilk_gbl_cfg_s cn78xxp1; }; typedef union cvmx_ilk_gbl_cfg cvmx_ilk_gbl_cfg_t; /** * cvmx_ilk_gbl_err_cfg */ union cvmx_ilk_gbl_err_cfg { u64 u64; struct cvmx_ilk_gbl_err_cfg_s { u64 reserved_20_63 : 44; u64 rxf_flip : 2; u64 x2p_flip : 2; u64 reserved_2_15 : 14; u64 rxf_cor_dis : 1; u64 x2p_cor_dis : 1; } s; struct cvmx_ilk_gbl_err_cfg_s cn78xx; struct cvmx_ilk_gbl_err_cfg_s cn78xxp1; }; typedef union cvmx_ilk_gbl_err_cfg cvmx_ilk_gbl_err_cfg_t; /** * cvmx_ilk_gbl_int */ union cvmx_ilk_gbl_int { u64 u64; struct cvmx_ilk_gbl_int_s { u64 reserved_9_63 : 55; u64 x2p_dbe : 1; u64 x2p_sbe : 1; u64 rxf_dbe : 1; u64 rxf_sbe : 1; u64 rxf_push_full : 1; u64 rxf_pop_empty : 1; u64 rxf_ctl_perr : 1; u64 rxf_lnk1_perr : 1; u64 rxf_lnk0_perr : 1; } s; struct cvmx_ilk_gbl_int_cn68xx { u64 reserved_5_63 : 59; u64 rxf_push_full : 1; u64 rxf_pop_empty : 1; u64 rxf_ctl_perr : 1; u64 rxf_lnk1_perr : 1; u64 rxf_lnk0_perr : 1; } cn68xx; struct cvmx_ilk_gbl_int_cn68xx cn68xxp1; struct cvmx_ilk_gbl_int_s cn78xx; struct cvmx_ilk_gbl_int_s cn78xxp1; }; typedef union cvmx_ilk_gbl_int cvmx_ilk_gbl_int_t; /** * cvmx_ilk_gbl_int_en */ union cvmx_ilk_gbl_int_en { u64 u64; struct cvmx_ilk_gbl_int_en_s { u64 reserved_5_63 : 59; u64 rxf_push_full : 1; u64 rxf_pop_empty : 1; u64 rxf_ctl_perr : 1; u64 rxf_lnk1_perr : 1; u64 rxf_lnk0_perr : 1; } s; struct cvmx_ilk_gbl_int_en_s cn68xx; struct cvmx_ilk_gbl_int_en_s cn68xxp1; }; typedef union cvmx_ilk_gbl_int_en cvmx_ilk_gbl_int_en_t; /** * cvmx_ilk_int_sum */ union cvmx_ilk_int_sum { u64 u64; struct cvmx_ilk_int_sum_s { u64 reserved_13_63 : 51; u64 rle7_int : 1; u64 rle6_int : 1; u64 rle5_int : 1; u64 rle4_int : 1; u64 rle3_int : 1; u64 rle2_int : 1; u64 rle1_int : 1; u64 rle0_int : 1; u64 rlk1_int : 1; u64 rlk0_int : 1; u64 tlk1_int : 1; u64 tlk0_int : 1; u64 gbl_int : 1; } s; struct cvmx_ilk_int_sum_s cn68xx; struct cvmx_ilk_int_sum_s cn68xxp1; }; typedef union cvmx_ilk_int_sum cvmx_ilk_int_sum_t; /** * cvmx_ilk_lne#_trn_ctl */ union cvmx_ilk_lnex_trn_ctl { u64 u64; struct cvmx_ilk_lnex_trn_ctl_s { u64 reserved_4_63 : 60; u64 trn_lock : 1; u64 trn_done : 1; u64 trn_ena : 1; u64 eie_det : 1; } s; struct cvmx_ilk_lnex_trn_ctl_s cn78xx; struct cvmx_ilk_lnex_trn_ctl_s cn78xxp1; }; typedef union cvmx_ilk_lnex_trn_ctl cvmx_ilk_lnex_trn_ctl_t; /** * cvmx_ilk_lne#_trn_ld */ union cvmx_ilk_lnex_trn_ld { u64 u64; struct cvmx_ilk_lnex_trn_ld_s { u64 lp_manual : 1; u64 reserved_49_62 : 14; u64 ld_cu_val : 1; u64 ld_cu_dat : 16; u64 reserved_17_31 : 15; u64 ld_sr_val : 1; u64 ld_sr_dat : 16; } s; struct cvmx_ilk_lnex_trn_ld_s cn78xx; struct cvmx_ilk_lnex_trn_ld_s cn78xxp1; }; typedef union cvmx_ilk_lnex_trn_ld cvmx_ilk_lnex_trn_ld_t; /** * cvmx_ilk_lne#_trn_lp */ union cvmx_ilk_lnex_trn_lp { u64 u64; struct cvmx_ilk_lnex_trn_lp_s { u64 reserved_49_63 : 15; u64 lp_cu_val : 1; u64 lp_cu_dat : 16; u64 reserved_17_31 : 15; u64 lp_sr_val : 1; u64 lp_sr_dat : 16; } s; struct cvmx_ilk_lnex_trn_lp_s cn78xx; struct cvmx_ilk_lnex_trn_lp_s cn78xxp1; }; typedef union cvmx_ilk_lnex_trn_lp cvmx_ilk_lnex_trn_lp_t; /** * cvmx_ilk_lne_dbg */ union cvmx_ilk_lne_dbg { u64 u64; struct cvmx_ilk_lne_dbg_s { u64 reserved_60_63 : 4; u64 tx_bad_crc32 : 1; u64 tx_bad_6467_cnt : 5; u64 tx_bad_sync_cnt : 3; u64 tx_bad_scram_cnt : 3; u64 tx_bad_lane_sel : 16; u64 tx_dis_dispr : 16; u64 tx_dis_scram : 16; } s; struct cvmx_ilk_lne_dbg_cn68xx { u64 reserved_60_63 : 4; u64 tx_bad_crc32 : 1; u64 tx_bad_6467_cnt : 5; u64 tx_bad_sync_cnt : 3; u64 tx_bad_scram_cnt : 3; u64 reserved_40_47 : 8; u64 tx_bad_lane_sel : 8; u64 reserved_24_31 : 8; u64 tx_dis_dispr : 8; u64 reserved_8_15 : 8; u64 tx_dis_scram : 8; } cn68xx; struct cvmx_ilk_lne_dbg_cn68xx cn68xxp1; struct cvmx_ilk_lne_dbg_s cn78xx; struct cvmx_ilk_lne_dbg_s cn78xxp1; }; typedef union cvmx_ilk_lne_dbg cvmx_ilk_lne_dbg_t; /** * cvmx_ilk_lne_sts_msg */ union cvmx_ilk_lne_sts_msg { u64 u64; struct cvmx_ilk_lne_sts_msg_s { u64 rx_lnk_stat : 16; u64 rx_lne_stat : 16; u64 tx_lnk_stat : 16; u64 tx_lne_stat : 16; } s; struct cvmx_ilk_lne_sts_msg_cn68xx { u64 reserved_56_63 : 8; u64 rx_lnk_stat : 8; u64 reserved_40_47 : 8; u64 rx_lne_stat : 8; u64 reserved_24_31 : 8; u64 tx_lnk_stat : 8; u64 reserved_8_15 : 8; u64 tx_lne_stat : 8; } cn68xx; struct cvmx_ilk_lne_sts_msg_cn68xx cn68xxp1; struct cvmx_ilk_lne_sts_msg_s cn78xx; struct cvmx_ilk_lne_sts_msg_s cn78xxp1; }; typedef union cvmx_ilk_lne_sts_msg cvmx_ilk_lne_sts_msg_t; /** * cvmx_ilk_rid_cfg */ union cvmx_ilk_rid_cfg { u64 u64; struct cvmx_ilk_rid_cfg_s { u64 reserved_39_63 : 25; u64 max_cnt : 7; u64 reserved_7_31 : 25; u64 base : 7; } s; struct cvmx_ilk_rid_cfg_s cn78xx; struct cvmx_ilk_rid_cfg_s cn78xxp1; }; typedef union cvmx_ilk_rid_cfg cvmx_ilk_rid_cfg_t; /** * cvmx_ilk_rx#_byte_cnt# */ union cvmx_ilk_rxx_byte_cntx { u64 u64; struct cvmx_ilk_rxx_byte_cntx_s { u64 reserved_40_63 : 24; u64 rx_bytes : 40; } s; struct cvmx_ilk_rxx_byte_cntx_s cn78xx; struct cvmx_ilk_rxx_byte_cntx_s cn78xxp1; }; typedef union cvmx_ilk_rxx_byte_cntx cvmx_ilk_rxx_byte_cntx_t; /** * cvmx_ilk_rx#_cal_entry# */ union cvmx_ilk_rxx_cal_entryx { u64 u64; struct cvmx_ilk_rxx_cal_entryx_s { u64 reserved_34_63 : 30; u64 ctl : 2; u64 reserved_8_31 : 24; u64 channel : 8; } s; struct cvmx_ilk_rxx_cal_entryx_s cn78xx; struct cvmx_ilk_rxx_cal_entryx_s cn78xxp1; }; typedef union cvmx_ilk_rxx_cal_entryx cvmx_ilk_rxx_cal_entryx_t; /** * cvmx_ilk_rx#_cfg0 */ union cvmx_ilk_rxx_cfg0 { u64 u64; struct cvmx_ilk_rxx_cfg0_s { u64 ext_lpbk_fc : 1; u64 ext_lpbk : 1; u64 reserved_60_61 : 2; u64 lnk_stats_wrap : 1; u64 bcw_push : 1; u64 mproto_ign : 1; u64 ptrn_mode : 1; u64 lnk_stats_rdclr : 1; u64 lnk_stats_ena : 1; u64 mltuse_fc_ena : 1; u64 cal_ena : 1; u64 mfrm_len : 13; u64 brst_shrt : 7; u64 lane_rev : 1; u64 brst_max : 5; u64 reserved_25_25 : 1; u64 cal_depth : 9; u64 lane_ena : 16; } s; struct cvmx_ilk_rxx_cfg0_cn68xx { u64 ext_lpbk_fc : 1; u64 ext_lpbk : 1; u64 reserved_60_61 : 2; u64 lnk_stats_wrap : 1; u64 bcw_push : 1; u64 mproto_ign : 1; u64 ptrn_mode : 1; u64 lnk_stats_rdclr : 1; u64 lnk_stats_ena : 1; u64 mltuse_fc_ena : 1; u64 cal_ena : 1; u64 mfrm_len : 13; u64 brst_shrt : 7; u64 lane_rev : 1; u64 brst_max : 5; u64 reserved_25_25 : 1; u64 cal_depth : 9; u64 reserved_8_15 : 8; u64 lane_ena : 8; } cn68xx; struct cvmx_ilk_rxx_cfg0_cn68xxp1 { u64 ext_lpbk_fc : 1; u64 ext_lpbk : 1; u64 reserved_57_61 : 5; u64 ptrn_mode : 1; u64 lnk_stats_rdclr : 1; u64 lnk_stats_ena : 1; u64 mltuse_fc_ena : 1; u64 cal_ena : 1; u64 mfrm_len : 13; u64 brst_shrt : 7; u64 lane_rev : 1; u64 brst_max : 5; u64 reserved_25_25 : 1; u64 cal_depth : 9; u64 reserved_8_15 : 8; u64 lane_ena : 8; } cn68xxp1; struct cvmx_ilk_rxx_cfg0_s cn78xx; struct cvmx_ilk_rxx_cfg0_s cn78xxp1; }; typedef union cvmx_ilk_rxx_cfg0 cvmx_ilk_rxx_cfg0_t; /** * cvmx_ilk_rx#_cfg1 */ union cvmx_ilk_rxx_cfg1 { u64 u64; struct cvmx_ilk_rxx_cfg1_s { u64 reserved_62_63 : 2; u64 rx_fifo_cnt : 12; u64 reserved_49_49 : 1; u64 rx_fifo_hwm : 13; u64 reserved_35_35 : 1; u64 rx_fifo_max : 13; u64 pkt_flush : 1; u64 pkt_ena : 1; u64 la_mode : 1; u64 tx_link_fc : 1; u64 rx_link_fc : 1; u64 rx_align_ena : 1; u64 rx_bdry_lock_ena : 16; } s; struct cvmx_ilk_rxx_cfg1_cn68xx { u64 reserved_62_63 : 2; u64 rx_fifo_cnt : 12; u64 reserved_48_49 : 2; u64 rx_fifo_hwm : 12; u64 reserved_34_35 : 2; u64 rx_fifo_max : 12; u64 pkt_flush : 1; u64 pkt_ena : 1; u64 la_mode : 1; u64 tx_link_fc : 1; u64 rx_link_fc : 1; u64 rx_align_ena : 1; u64 reserved_8_15 : 8; u64 rx_bdry_lock_ena : 8; } cn68xx; struct cvmx_ilk_rxx_cfg1_cn68xx cn68xxp1; struct cvmx_ilk_rxx_cfg1_s cn78xx; struct cvmx_ilk_rxx_cfg1_s cn78xxp1; }; typedef union cvmx_ilk_rxx_cfg1 cvmx_ilk_rxx_cfg1_t; /** * cvmx_ilk_rx#_cha# */ union cvmx_ilk_rxx_chax { u64 u64; struct cvmx_ilk_rxx_chax_s { u64 reserved_6_63 : 58; u64 port_kind : 6; } s; struct cvmx_ilk_rxx_chax_s cn78xx; struct cvmx_ilk_rxx_chax_s cn78xxp1; }; typedef union cvmx_ilk_rxx_chax cvmx_ilk_rxx_chax_t; /** * cvmx_ilk_rx#_cha_xon# */ union cvmx_ilk_rxx_cha_xonx { u64 u64; struct cvmx_ilk_rxx_cha_xonx_s { u64 xon : 64; } s; struct cvmx_ilk_rxx_cha_xonx_s cn78xx; struct cvmx_ilk_rxx_cha_xonx_s cn78xxp1; }; typedef union cvmx_ilk_rxx_cha_xonx cvmx_ilk_rxx_cha_xonx_t; /** * cvmx_ilk_rx#_err_cfg */ union cvmx_ilk_rxx_err_cfg { u64 u64; struct cvmx_ilk_rxx_err_cfg_s { u64 reserved_20_63 : 44; u64 fwc_flip : 2; u64 pmap_flip : 2; u64 reserved_2_15 : 14; u64 fwc_cor_dis : 1; u64 pmap_cor_dis : 1; } s; struct cvmx_ilk_rxx_err_cfg_s cn78xx; struct cvmx_ilk_rxx_err_cfg_s cn78xxp1; }; typedef union cvmx_ilk_rxx_err_cfg cvmx_ilk_rxx_err_cfg_t; /** * cvmx_ilk_rx#_flow_ctl0 */ union cvmx_ilk_rxx_flow_ctl0 { u64 u64; struct cvmx_ilk_rxx_flow_ctl0_s { u64 status : 64; } s; struct cvmx_ilk_rxx_flow_ctl0_s cn68xx; struct cvmx_ilk_rxx_flow_ctl0_s cn68xxp1; }; typedef union cvmx_ilk_rxx_flow_ctl0 cvmx_ilk_rxx_flow_ctl0_t; /** * cvmx_ilk_rx#_flow_ctl1 */ union cvmx_ilk_rxx_flow_ctl1 { u64 u64; struct cvmx_ilk_rxx_flow_ctl1_s { u64 status : 64; } s; struct cvmx_ilk_rxx_flow_ctl1_s cn68xx; struct cvmx_ilk_rxx_flow_ctl1_s cn68xxp1; }; typedef union cvmx_ilk_rxx_flow_ctl1 cvmx_ilk_rxx_flow_ctl1_t; /** * cvmx_ilk_rx#_idx_cal */ union cvmx_ilk_rxx_idx_cal { u64 u64; struct cvmx_ilk_rxx_idx_cal_s { u64 reserved_14_63 : 50; u64 inc : 6; u64 reserved_6_7 : 2; u64 index : 6; } s; struct cvmx_ilk_rxx_idx_cal_s cn68xx; struct cvmx_ilk_rxx_idx_cal_s cn68xxp1; }; typedef union cvmx_ilk_rxx_idx_cal cvmx_ilk_rxx_idx_cal_t; /** * cvmx_ilk_rx#_idx_stat0 */ union cvmx_ilk_rxx_idx_stat0 { u64 u64; struct cvmx_ilk_rxx_idx_stat0_s { u64 reserved_32_63 : 32; u64 clr : 1; u64 reserved_24_30 : 7; u64 inc : 8; u64 reserved_8_15 : 8; u64 index : 8; } s; struct cvmx_ilk_rxx_idx_stat0_s cn68xx; struct cvmx_ilk_rxx_idx_stat0_s cn68xxp1; }; typedef union cvmx_ilk_rxx_idx_stat0 cvmx_ilk_rxx_idx_stat0_t; /** * cvmx_ilk_rx#_idx_stat1 */ union cvmx_ilk_rxx_idx_stat1 { u64 u64; struct cvmx_ilk_rxx_idx_stat1_s { u64 reserved_32_63 : 32; u64 clr : 1; u64 reserved_24_30 : 7; u64 inc : 8; u64 reserved_8_15 : 8; u64 index : 8; } s; struct cvmx_ilk_rxx_idx_stat1_s cn68xx; struct cvmx_ilk_rxx_idx_stat1_s cn68xxp1; }; typedef union cvmx_ilk_rxx_idx_stat1 cvmx_ilk_rxx_idx_stat1_t; /** * cvmx_ilk_rx#_int */ union cvmx_ilk_rxx_int { u64 u64; struct cvmx_ilk_rxx_int_s { u64 reserved_13_63 : 51; u64 pmap_dbe : 1; u64 pmap_sbe : 1; u64 fwc_dbe : 1; u64 fwc_sbe : 1; u64 pkt_drop_sop : 1; u64 pkt_drop_rid : 1; u64 pkt_drop_rxf : 1; u64 lane_bad_word : 1; u64 stat_cnt_ovfl : 1; u64 lane_align_done : 1; u64 word_sync_done : 1; u64 crc24_err : 1; u64 lane_align_fail : 1; } s; struct cvmx_ilk_rxx_int_cn68xx { u64 reserved_9_63 : 55; u64 pkt_drop_sop : 1; u64 pkt_drop_rid : 1; u64 pkt_drop_rxf : 1; u64 lane_bad_word : 1; u64 stat_cnt_ovfl : 1; u64 lane_align_done : 1; u64 word_sync_done : 1; u64 crc24_err : 1; u64 lane_align_fail : 1; } cn68xx; struct cvmx_ilk_rxx_int_cn68xxp1 { u64 reserved_8_63 : 56; u64 pkt_drop_rid : 1; u64 pkt_drop_rxf : 1; u64 lane_bad_word : 1; u64 stat_cnt_ovfl : 1; u64 lane_align_done : 1; u64 word_sync_done : 1; u64 crc24_err : 1; u64 lane_align_fail : 1; } cn68xxp1; struct cvmx_ilk_rxx_int_s cn78xx; struct cvmx_ilk_rxx_int_s cn78xxp1; }; typedef union cvmx_ilk_rxx_int cvmx_ilk_rxx_int_t; /** * cvmx_ilk_rx#_int_en */ union cvmx_ilk_rxx_int_en { u64 u64; struct cvmx_ilk_rxx_int_en_s { u64 reserved_9_63 : 55; u64 pkt_drop_sop : 1; u64 pkt_drop_rid : 1; u64 pkt_drop_rxf : 1; u64 lane_bad_word : 1; u64 stat_cnt_ovfl : 1; u64 lane_align_done : 1; u64 word_sync_done : 1; u64 crc24_err : 1; u64 lane_align_fail : 1; } s; struct cvmx_ilk_rxx_int_en_s cn68xx; struct cvmx_ilk_rxx_int_en_cn68xxp1 { u64 reserved_8_63 : 56; u64 pkt_drop_rid : 1; u64 pkt_drop_rxf : 1; u64 lane_bad_word : 1; u64 stat_cnt_ovfl : 1; u64 lane_align_done : 1; u64 word_sync_done : 1; u64 crc24_err : 1; u64 lane_align_fail : 1; } cn68xxp1; }; typedef union cvmx_ilk_rxx_int_en cvmx_ilk_rxx_int_en_t; /** * cvmx_ilk_rx#_jabber */ union cvmx_ilk_rxx_jabber { u64 u64; struct cvmx_ilk_rxx_jabber_s { u64 reserved_16_63 : 48; u64 cnt : 16; } s; struct cvmx_ilk_rxx_jabber_s cn68xx; struct cvmx_ilk_rxx_jabber_s cn68xxp1; struct cvmx_ilk_rxx_jabber_s cn78xx; struct cvmx_ilk_rxx_jabber_s cn78xxp1; }; typedef union cvmx_ilk_rxx_jabber cvmx_ilk_rxx_jabber_t; /** * cvmx_ilk_rx#_mem_cal0 * * Notes: * Software must program the calendar table prior to enabling the * link. * * Software must always write ILK_RXx_MEM_CAL0 then ILK_RXx_MEM_CAL1. * Software must never write them in reverse order or write one without * writing the other. * * A given calendar table entry has no effect on PKO pipe * backpressure when either: * - ENTRY_CTLx=Link (1), or * - ENTRY_CTLx=XON (3) and PORT_PIPEx is outside the range of ILK_TXx_PIPE[BASE/NUMP]. * * Within the 8 calendar table entries of one IDX value, if more * than one affects the same PKO pipe, XOFF always wins over XON, * regardless of the calendar table order. * * Software must always read ILK_RXx_MEM_CAL0 then ILK_RXx_MEM_CAL1. Software * must never read them in reverse order or read one without reading the * other. */ union cvmx_ilk_rxx_mem_cal0 { u64 u64; struct cvmx_ilk_rxx_mem_cal0_s { u64 reserved_36_63 : 28; u64 entry_ctl3 : 2; u64 port_pipe3 : 7; u64 entry_ctl2 : 2; u64 port_pipe2 : 7; u64 entry_ctl1 : 2; u64 port_pipe1 : 7; u64 entry_ctl0 : 2; u64 port_pipe0 : 7; } s; struct cvmx_ilk_rxx_mem_cal0_s cn68xx; struct cvmx_ilk_rxx_mem_cal0_s cn68xxp1; }; typedef union cvmx_ilk_rxx_mem_cal0 cvmx_ilk_rxx_mem_cal0_t; /** * cvmx_ilk_rx#_mem_cal1 * * Notes: * Software must program the calendar table prior to enabling the * link. * * Software must always write ILK_RXx_MEM_CAL0 then ILK_RXx_MEM_CAL1. * Software must never write them in reverse order or write one without * writing the other. * * A given calendar table entry has no effect on PKO pipe * backpressure when either: * - ENTRY_CTLx=Link (1), or * - ENTRY_CTLx=XON (3) and PORT_PIPEx is outside the range of ILK_TXx_PIPE[BASE/NUMP]. * * Within the 8 calendar table entries of one IDX value, if more * than one affects the same PKO pipe, XOFF always wins over XON, * regardless of the calendar table order. * * Software must always read ILK_RXx_MEM_CAL0 then ILK_Rx_MEM_CAL1. Software * must never read them in reverse order or read one without reading the * other. */ union cvmx_ilk_rxx_mem_cal1 { u64 u64; struct cvmx_ilk_rxx_mem_cal1_s { u64 reserved_36_63 : 28; u64 entry_ctl7 : 2; u64 port_pipe7 : 7; u64 entry_ctl6 : 2; u64 port_pipe6 : 7; u64 entry_ctl5 : 2; u64 port_pipe5 : 7; u64 entry_ctl4 : 2; u64 port_pipe4 : 7; } s; struct cvmx_ilk_rxx_mem_cal1_s cn68xx; struct cvmx_ilk_rxx_mem_cal1_s cn68xxp1; }; typedef union cvmx_ilk_rxx_mem_cal1 cvmx_ilk_rxx_mem_cal1_t; /** * cvmx_ilk_rx#_mem_stat0 */ union cvmx_ilk_rxx_mem_stat0 { u64 u64; struct cvmx_ilk_rxx_mem_stat0_s { u64 reserved_28_63 : 36; u64 rx_pkt : 28; } s; struct cvmx_ilk_rxx_mem_stat0_s cn68xx; struct cvmx_ilk_rxx_mem_stat0_s cn68xxp1; }; typedef union cvmx_ilk_rxx_mem_stat0 cvmx_ilk_rxx_mem_stat0_t; /** * cvmx_ilk_rx#_mem_stat1 */ union cvmx_ilk_rxx_mem_stat1 { u64 u64; struct cvmx_ilk_rxx_mem_stat1_s { u64 reserved_36_63 : 28; u64 rx_bytes : 36; } s; struct cvmx_ilk_rxx_mem_stat1_s cn68xx; struct cvmx_ilk_rxx_mem_stat1_s cn68xxp1; }; typedef union cvmx_ilk_rxx_mem_stat1 cvmx_ilk_rxx_mem_stat1_t; /** * cvmx_ilk_rx#_pkt_cnt# */ union cvmx_ilk_rxx_pkt_cntx { u64 u64; struct cvmx_ilk_rxx_pkt_cntx_s { u64 reserved_34_63 : 30; u64 rx_pkt : 34; } s; struct cvmx_ilk_rxx_pkt_cntx_s cn78xx; struct cvmx_ilk_rxx_pkt_cntx_s cn78xxp1; }; typedef union cvmx_ilk_rxx_pkt_cntx cvmx_ilk_rxx_pkt_cntx_t; /** * cvmx_ilk_rx#_rid */ union cvmx_ilk_rxx_rid { u64 u64; struct cvmx_ilk_rxx_rid_s { u64 reserved_7_63 : 57; u64 max_cnt : 7; } s; struct cvmx_ilk_rxx_rid_cn68xx { u64 reserved_6_63 : 58; u64 max_cnt : 6; } cn68xx; struct cvmx_ilk_rxx_rid_s cn78xx; struct cvmx_ilk_rxx_rid_s cn78xxp1; }; typedef union cvmx_ilk_rxx_rid cvmx_ilk_rxx_rid_t; /** * cvmx_ilk_rx#_stat0 */ union cvmx_ilk_rxx_stat0 { u64 u64; struct cvmx_ilk_rxx_stat0_s { u64 reserved_35_63 : 29; u64 crc24_match_cnt : 35; } s; struct cvmx_ilk_rxx_stat0_cn68xx { u64 reserved_33_63 : 31; u64 crc24_match_cnt : 33; } cn68xx; struct cvmx_ilk_rxx_stat0_cn68xxp1 { u64 reserved_27_63 : 37; u64 crc24_match_cnt : 27; } cn68xxp1; struct cvmx_ilk_rxx_stat0_s cn78xx; struct cvmx_ilk_rxx_stat0_s cn78xxp1; }; typedef union cvmx_ilk_rxx_stat0 cvmx_ilk_rxx_stat0_t; /** * cvmx_ilk_rx#_stat1 */ union cvmx_ilk_rxx_stat1 { u64 u64; struct cvmx_ilk_rxx_stat1_s { u64 reserved_20_63 : 44; u64 crc24_err_cnt : 20; } s; struct cvmx_ilk_rxx_stat1_cn68xx { u64 reserved_18_63 : 46; u64 crc24_err_cnt : 18; } cn68xx; struct cvmx_ilk_rxx_stat1_cn68xx cn68xxp1; struct cvmx_ilk_rxx_stat1_s cn78xx; struct cvmx_ilk_rxx_stat1_s cn78xxp1; }; typedef union cvmx_ilk_rxx_stat1 cvmx_ilk_rxx_stat1_t; /** * cvmx_ilk_rx#_stat2 */ union cvmx_ilk_rxx_stat2 { u64 u64; struct cvmx_ilk_rxx_stat2_s { u64 reserved_50_63 : 14; u64 brst_not_full_cnt : 18; u64 reserved_30_31 : 2; u64 brst_cnt : 30; } s; struct cvmx_ilk_rxx_stat2_cn68xx { u64 reserved_48_63 : 16; u64 brst_not_full_cnt : 16; u64 reserved_28_31 : 4; u64 brst_cnt : 28; } cn68xx; struct cvmx_ilk_rxx_stat2_cn68xxp1 { u64 reserved_48_63 : 16; u64 brst_not_full_cnt : 16; u64 reserved_16_31 : 16; u64 brst_cnt : 16; } cn68xxp1; struct cvmx_ilk_rxx_stat2_s cn78xx; struct cvmx_ilk_rxx_stat2_s cn78xxp1; }; typedef union cvmx_ilk_rxx_stat2 cvmx_ilk_rxx_stat2_t; /** * cvmx_ilk_rx#_stat3 */ union cvmx_ilk_rxx_stat3 { u64 u64; struct cvmx_ilk_rxx_stat3_s { u64 reserved_18_63 : 46; u64 brst_max_err_cnt : 18; } s; struct cvmx_ilk_rxx_stat3_cn68xx { u64 reserved_16_63 : 48; u64 brst_max_err_cnt : 16; } cn68xx; struct cvmx_ilk_rxx_stat3_cn68xx cn68xxp1; struct cvmx_ilk_rxx_stat3_s cn78xx; struct cvmx_ilk_rxx_stat3_s cn78xxp1; }; typedef union cvmx_ilk_rxx_stat3 cvmx_ilk_rxx_stat3_t; /** * cvmx_ilk_rx#_stat4 */ union cvmx_ilk_rxx_stat4 { u64 u64; struct cvmx_ilk_rxx_stat4_s { u64 reserved_18_63 : 46; u64 brst_shrt_err_cnt : 18; } s; struct cvmx_ilk_rxx_stat4_cn68xx { u64 reserved_16_63 : 48; u64 brst_shrt_err_cnt : 16; } cn68xx; struct cvmx_ilk_rxx_stat4_cn68xx cn68xxp1; struct cvmx_ilk_rxx_stat4_s cn78xx; struct cvmx_ilk_rxx_stat4_s cn78xxp1; }; typedef union cvmx_ilk_rxx_stat4 cvmx_ilk_rxx_stat4_t; /** * cvmx_ilk_rx#_stat5 */ union cvmx_ilk_rxx_stat5 { u64 u64; struct cvmx_ilk_rxx_stat5_s { u64 reserved_25_63 : 39; u64 align_cnt : 25; } s; struct cvmx_ilk_rxx_stat5_cn68xx { u64 reserved_23_63 : 41; u64 align_cnt : 23; } cn68xx; struct cvmx_ilk_rxx_stat5_cn68xxp1 { u64 reserved_16_63 : 48; u64 align_cnt : 16; } cn68xxp1; struct cvmx_ilk_rxx_stat5_s cn78xx; struct cvmx_ilk_rxx_stat5_s cn78xxp1; }; typedef union cvmx_ilk_rxx_stat5 cvmx_ilk_rxx_stat5_t; /** * cvmx_ilk_rx#_stat6 */ union cvmx_ilk_rxx_stat6 { u64 u64; struct cvmx_ilk_rxx_stat6_s { u64 reserved_18_63 : 46; u64 align_err_cnt : 18; } s; struct cvmx_ilk_rxx_stat6_cn68xx { u64 reserved_16_63 : 48; u64 align_err_cnt : 16; } cn68xx; struct cvmx_ilk_rxx_stat6_cn68xx cn68xxp1; struct cvmx_ilk_rxx_stat6_s cn78xx; struct cvmx_ilk_rxx_stat6_s cn78xxp1; }; typedef union cvmx_ilk_rxx_stat6 cvmx_ilk_rxx_stat6_t; /** * cvmx_ilk_rx#_stat7 */ union cvmx_ilk_rxx_stat7 { u64 u64; struct cvmx_ilk_rxx_stat7_s { u64 reserved_18_63 : 46; u64 bad_64b67b_cnt : 18; } s; struct cvmx_ilk_rxx_stat7_cn68xx { u64 reserved_16_63 : 48; u64 bad_64b67b_cnt : 16; } cn68xx; struct cvmx_ilk_rxx_stat7_cn68xx cn68xxp1; struct cvmx_ilk_rxx_stat7_s cn78xx; struct cvmx_ilk_rxx_stat7_s cn78xxp1; }; typedef union cvmx_ilk_rxx_stat7 cvmx_ilk_rxx_stat7_t; /** * cvmx_ilk_rx#_stat8 */ union cvmx_ilk_rxx_stat8 { u64 u64; struct cvmx_ilk_rxx_stat8_s { u64 reserved_32_63 : 32; u64 pkt_drop_rid_cnt : 16; u64 pkt_drop_rxf_cnt : 16; } s; struct cvmx_ilk_rxx_stat8_s cn68xx; struct cvmx_ilk_rxx_stat8_s cn68xxp1; struct cvmx_ilk_rxx_stat8_s cn78xx; struct cvmx_ilk_rxx_stat8_s cn78xxp1; }; typedef union cvmx_ilk_rxx_stat8 cvmx_ilk_rxx_stat8_t; /** * cvmx_ilk_rx#_stat9 * * This register is reserved. * */ union cvmx_ilk_rxx_stat9 { u64 u64; struct cvmx_ilk_rxx_stat9_s { u64 reserved_0_63 : 64; } s; struct cvmx_ilk_rxx_stat9_s cn68xx; struct cvmx_ilk_rxx_stat9_s cn68xxp1; struct cvmx_ilk_rxx_stat9_s cn78xx; struct cvmx_ilk_rxx_stat9_s cn78xxp1; }; typedef union cvmx_ilk_rxx_stat9 cvmx_ilk_rxx_stat9_t; /** * cvmx_ilk_rx_lne#_cfg */ union cvmx_ilk_rx_lnex_cfg { u64 u64; struct cvmx_ilk_rx_lnex_cfg_s { u64 reserved_9_63 : 55; u64 rx_dis_psh_skip : 1; u64 reserved_7_7 : 1; u64 rx_dis_disp_chk : 1; u64 rx_scrm_sync : 1; u64 rx_bdry_sync : 1; u64 rx_dis_ukwn : 1; u64 rx_dis_scram : 1; u64 stat_rdclr : 1; u64 stat_ena : 1; } s; struct cvmx_ilk_rx_lnex_cfg_cn68xx { u64 reserved_9_63 : 55; u64 rx_dis_psh_skip : 1; u64 reserved_6_7 : 2; u64 rx_scrm_sync : 1; u64 rx_bdry_sync : 1; u64 rx_dis_ukwn : 1; u64 rx_dis_scram : 1; u64 stat_rdclr : 1; u64 stat_ena : 1; } cn68xx; struct cvmx_ilk_rx_lnex_cfg_cn68xxp1 { u64 reserved_5_63 : 59; u64 rx_bdry_sync : 1; u64 rx_dis_ukwn : 1; u64 rx_dis_scram : 1; u64 stat_rdclr : 1; u64 stat_ena : 1; } cn68xxp1; struct cvmx_ilk_rx_lnex_cfg_s cn78xx; struct cvmx_ilk_rx_lnex_cfg_s cn78xxp1; }; typedef union cvmx_ilk_rx_lnex_cfg cvmx_ilk_rx_lnex_cfg_t; /** * cvmx_ilk_rx_lne#_int */ union cvmx_ilk_rx_lnex_int { u64 u64; struct cvmx_ilk_rx_lnex_int_s { u64 reserved_10_63 : 54; u64 disp_err : 1; u64 bad_64b67b : 1; u64 stat_cnt_ovfl : 1; u64 stat_msg : 1; u64 dskew_fifo_ovfl : 1; u64 scrm_sync_loss : 1; u64 ukwn_cntl_word : 1; u64 crc32_err : 1; u64 bdry_sync_loss : 1; u64 serdes_lock_loss : 1; } s; struct cvmx_ilk_rx_lnex_int_cn68xx { u64 reserved_9_63 : 55; u64 bad_64b67b : 1; u64 stat_cnt_ovfl : 1; u64 stat_msg : 1; u64 dskew_fifo_ovfl : 1; u64 scrm_sync_loss : 1; u64 ukwn_cntl_word : 1; u64 crc32_err : 1; u64 bdry_sync_loss : 1; u64 serdes_lock_loss : 1; } cn68xx; struct cvmx_ilk_rx_lnex_int_cn68xx cn68xxp1; struct cvmx_ilk_rx_lnex_int_s cn78xx; struct cvmx_ilk_rx_lnex_int_s cn78xxp1; }; typedef union cvmx_ilk_rx_lnex_int cvmx_ilk_rx_lnex_int_t; /** * cvmx_ilk_rx_lne#_int_en */ union cvmx_ilk_rx_lnex_int_en { u64 u64; struct cvmx_ilk_rx_lnex_int_en_s { u64 reserved_9_63 : 55; u64 bad_64b67b : 1; u64 stat_cnt_ovfl : 1; u64 stat_msg : 1; u64 dskew_fifo_ovfl : 1; u64 scrm_sync_loss : 1; u64 ukwn_cntl_word : 1; u64 crc32_err : 1; u64 bdry_sync_loss : 1; u64 serdes_lock_loss : 1; } s; struct cvmx_ilk_rx_lnex_int_en_s cn68xx; struct cvmx_ilk_rx_lnex_int_en_s cn68xxp1; }; typedef union cvmx_ilk_rx_lnex_int_en cvmx_ilk_rx_lnex_int_en_t; /** * cvmx_ilk_rx_lne#_stat0 */ union cvmx_ilk_rx_lnex_stat0 { u64 u64; struct cvmx_ilk_rx_lnex_stat0_s { u64 reserved_18_63 : 46; u64 ser_lock_loss_cnt : 18; } s; struct cvmx_ilk_rx_lnex_stat0_s cn68xx; struct cvmx_ilk_rx_lnex_stat0_s cn68xxp1; struct cvmx_ilk_rx_lnex_stat0_s cn78xx; struct cvmx_ilk_rx_lnex_stat0_s cn78xxp1; }; typedef union cvmx_ilk_rx_lnex_stat0 cvmx_ilk_rx_lnex_stat0_t; /** * cvmx_ilk_rx_lne#_stat1 */ union cvmx_ilk_rx_lnex_stat1 { u64 u64; struct cvmx_ilk_rx_lnex_stat1_s { u64 reserved_18_63 : 46; u64 bdry_sync_loss_cnt : 18; } s; struct cvmx_ilk_rx_lnex_stat1_s cn68xx; struct cvmx_ilk_rx_lnex_stat1_s cn68xxp1; struct cvmx_ilk_rx_lnex_stat1_s cn78xx; struct cvmx_ilk_rx_lnex_stat1_s cn78xxp1; }; typedef union cvmx_ilk_rx_lnex_stat1 cvmx_ilk_rx_lnex_stat1_t; /** * cvmx_ilk_rx_lne#_stat10 */ union cvmx_ilk_rx_lnex_stat10 { u64 u64; struct cvmx_ilk_rx_lnex_stat10_s { u64 reserved_43_63 : 21; u64 prbs_bad : 11; u64 reserved_11_31 : 21; u64 prbs_good : 11; } s; struct cvmx_ilk_rx_lnex_stat10_s cn78xx; struct cvmx_ilk_rx_lnex_stat10_s cn78xxp1; }; typedef union cvmx_ilk_rx_lnex_stat10 cvmx_ilk_rx_lnex_stat10_t; /** * cvmx_ilk_rx_lne#_stat2 */ union cvmx_ilk_rx_lnex_stat2 { u64 u64; struct cvmx_ilk_rx_lnex_stat2_s { u64 reserved_50_63 : 14; u64 syncw_good_cnt : 18; u64 reserved_18_31 : 14; u64 syncw_bad_cnt : 18; } s; struct cvmx_ilk_rx_lnex_stat2_s cn68xx; struct cvmx_ilk_rx_lnex_stat2_s cn68xxp1; struct cvmx_ilk_rx_lnex_stat2_s cn78xx; struct cvmx_ilk_rx_lnex_stat2_s cn78xxp1; }; typedef union cvmx_ilk_rx_lnex_stat2 cvmx_ilk_rx_lnex_stat2_t; /** * cvmx_ilk_rx_lne#_stat3 */ union cvmx_ilk_rx_lnex_stat3 { u64 u64; struct cvmx_ilk_rx_lnex_stat3_s { u64 reserved_18_63 : 46; u64 bad_64b67b_cnt : 18; } s; struct cvmx_ilk_rx_lnex_stat3_s cn68xx; struct cvmx_ilk_rx_lnex_stat3_s cn68xxp1; struct cvmx_ilk_rx_lnex_stat3_s cn78xx; struct cvmx_ilk_rx_lnex_stat3_s cn78xxp1; }; typedef union cvmx_ilk_rx_lnex_stat3 cvmx_ilk_rx_lnex_stat3_t; /** * cvmx_ilk_rx_lne#_stat4 */ union cvmx_ilk_rx_lnex_stat4 { u64 u64; struct cvmx_ilk_rx_lnex_stat4_s { u64 reserved_59_63 : 5; u64 cntl_word_cnt : 27; u64 reserved_27_31 : 5; u64 data_word_cnt : 27; } s; struct cvmx_ilk_rx_lnex_stat4_s cn68xx; struct cvmx_ilk_rx_lnex_stat4_s cn68xxp1; struct cvmx_ilk_rx_lnex_stat4_s cn78xx; struct cvmx_ilk_rx_lnex_stat4_s cn78xxp1; }; typedef union cvmx_ilk_rx_lnex_stat4 cvmx_ilk_rx_lnex_stat4_t; /** * cvmx_ilk_rx_lne#_stat5 */ union cvmx_ilk_rx_lnex_stat5 { u64 u64; struct cvmx_ilk_rx_lnex_stat5_s { u64 reserved_18_63 : 46; u64 unkwn_word_cnt : 18; } s; struct cvmx_ilk_rx_lnex_stat5_s cn68xx; struct cvmx_ilk_rx_lnex_stat5_s cn68xxp1; struct cvmx_ilk_rx_lnex_stat5_s cn78xx; struct cvmx_ilk_rx_lnex_stat5_s cn78xxp1; }; typedef union cvmx_ilk_rx_lnex_stat5 cvmx_ilk_rx_lnex_stat5_t; /** * cvmx_ilk_rx_lne#_stat6 */ union cvmx_ilk_rx_lnex_stat6 { u64 u64; struct cvmx_ilk_rx_lnex_stat6_s { u64 reserved_18_63 : 46; u64 scrm_sync_loss_cnt : 18; } s; struct cvmx_ilk_rx_lnex_stat6_s cn68xx; struct cvmx_ilk_rx_lnex_stat6_s cn68xxp1; struct cvmx_ilk_rx_lnex_stat6_s cn78xx; struct cvmx_ilk_rx_lnex_stat6_s cn78xxp1; }; typedef union cvmx_ilk_rx_lnex_stat6 cvmx_ilk_rx_lnex_stat6_t; /** * cvmx_ilk_rx_lne#_stat7 */ union cvmx_ilk_rx_lnex_stat7 { u64 u64; struct cvmx_ilk_rx_lnex_stat7_s { u64 reserved_18_63 : 46; u64 scrm_match_cnt : 18; } s; struct cvmx_ilk_rx_lnex_stat7_s cn68xx; struct cvmx_ilk_rx_lnex_stat7_s cn68xxp1; struct cvmx_ilk_rx_lnex_stat7_s cn78xx; struct cvmx_ilk_rx_lnex_stat7_s cn78xxp1; }; typedef union cvmx_ilk_rx_lnex_stat7 cvmx_ilk_rx_lnex_stat7_t; /** * cvmx_ilk_rx_lne#_stat8 */ union cvmx_ilk_rx_lnex_stat8 { u64 u64; struct cvmx_ilk_rx_lnex_stat8_s { u64 reserved_18_63 : 46; u64 skipw_good_cnt : 18; } s; struct cvmx_ilk_rx_lnex_stat8_s cn68xx; struct cvmx_ilk_rx_lnex_stat8_s cn68xxp1; struct cvmx_ilk_rx_lnex_stat8_s cn78xx; struct cvmx_ilk_rx_lnex_stat8_s cn78xxp1; }; typedef union cvmx_ilk_rx_lnex_stat8 cvmx_ilk_rx_lnex_stat8_t; /** * cvmx_ilk_rx_lne#_stat9 */ union cvmx_ilk_rx_lnex_stat9 { u64 u64; struct cvmx_ilk_rx_lnex_stat9_s { u64 reserved_50_63 : 14; u64 crc32_err_cnt : 18; u64 reserved_27_31 : 5; u64 crc32_match_cnt : 27; } s; struct cvmx_ilk_rx_lnex_stat9_s cn68xx; struct cvmx_ilk_rx_lnex_stat9_s cn68xxp1; struct cvmx_ilk_rx_lnex_stat9_s cn78xx; struct cvmx_ilk_rx_lnex_stat9_s cn78xxp1; }; typedef union cvmx_ilk_rx_lnex_stat9 cvmx_ilk_rx_lnex_stat9_t; /** * cvmx_ilk_rxf_idx_pmap */ union cvmx_ilk_rxf_idx_pmap { u64 u64; struct cvmx_ilk_rxf_idx_pmap_s { u64 reserved_25_63 : 39; u64 inc : 9; u64 reserved_9_15 : 7; u64 index : 9; } s; struct cvmx_ilk_rxf_idx_pmap_s cn68xx; struct cvmx_ilk_rxf_idx_pmap_s cn68xxp1; }; typedef union cvmx_ilk_rxf_idx_pmap cvmx_ilk_rxf_idx_pmap_t; /** * cvmx_ilk_rxf_mem_pmap */ union cvmx_ilk_rxf_mem_pmap { u64 u64; struct cvmx_ilk_rxf_mem_pmap_s { u64 reserved_6_63 : 58; u64 port_kind : 6; } s; struct cvmx_ilk_rxf_mem_pmap_s cn68xx; struct cvmx_ilk_rxf_mem_pmap_s cn68xxp1; }; typedef union cvmx_ilk_rxf_mem_pmap cvmx_ilk_rxf_mem_pmap_t; /** * cvmx_ilk_ser_cfg */ union cvmx_ilk_ser_cfg { u64 u64; struct cvmx_ilk_ser_cfg_s { u64 reserved_57_63 : 7; u64 ser_rxpol_auto : 1; u64 ser_rxpol : 16; u64 ser_txpol : 16; u64 ser_reset_n : 16; u64 ser_pwrup : 4; u64 ser_haul : 4; } s; struct cvmx_ilk_ser_cfg_cn68xx { u64 reserved_57_63 : 7; u64 ser_rxpol_auto : 1; u64 reserved_48_55 : 8; u64 ser_rxpol : 8; u64 reserved_32_39 : 8; u64 ser_txpol : 8; u64 reserved_16_23 : 8; u64 ser_reset_n : 8; u64 reserved_6_7 : 2; u64 ser_pwrup : 2; u64 reserved_2_3 : 2; u64 ser_haul : 2; } cn68xx; struct cvmx_ilk_ser_cfg_cn68xx cn68xxp1; struct cvmx_ilk_ser_cfg_s cn78xx; struct cvmx_ilk_ser_cfg_s cn78xxp1; }; typedef union cvmx_ilk_ser_cfg cvmx_ilk_ser_cfg_t; /** * cvmx_ilk_tx#_byte_cnt# */ union cvmx_ilk_txx_byte_cntx { u64 u64; struct cvmx_ilk_txx_byte_cntx_s { u64 reserved_40_63 : 24; u64 tx_bytes : 40; } s; struct cvmx_ilk_txx_byte_cntx_s cn78xx; struct cvmx_ilk_txx_byte_cntx_s cn78xxp1; }; typedef union cvmx_ilk_txx_byte_cntx cvmx_ilk_txx_byte_cntx_t; /** * cvmx_ilk_tx#_cal_entry# */ union cvmx_ilk_txx_cal_entryx { u64 u64; struct cvmx_ilk_txx_cal_entryx_s { u64 reserved_34_63 : 30; u64 ctl : 2; u64 reserved_8_31 : 24; u64 channel : 8; } s; struct cvmx_ilk_txx_cal_entryx_s cn78xx; struct cvmx_ilk_txx_cal_entryx_s cn78xxp1; }; typedef union cvmx_ilk_txx_cal_entryx cvmx_ilk_txx_cal_entryx_t; /** * cvmx_ilk_tx#_cfg0 */ union cvmx_ilk_txx_cfg0 { u64 u64; struct cvmx_ilk_txx_cfg0_s { u64 ext_lpbk_fc : 1; u64 ext_lpbk : 1; u64 int_lpbk : 1; u64 txf_byp_dis : 1; u64 reserved_57_59 : 3; u64 ptrn_mode : 1; u64 lnk_stats_rdclr : 1; u64 lnk_stats_ena : 1; u64 mltuse_fc_ena : 1; u64 cal_ena : 1; u64 mfrm_len : 13; u64 brst_shrt : 7; u64 lane_rev : 1; u64 brst_max : 5; u64 reserved_25_25 : 1; u64 cal_depth : 9; u64 lane_ena : 16; } s; struct cvmx_ilk_txx_cfg0_cn68xx { u64 ext_lpbk_fc : 1; u64 ext_lpbk : 1; u64 int_lpbk : 1; u64 reserved_57_60 : 4; u64 ptrn_mode : 1; u64 reserved_55_55 : 1; u64 lnk_stats_ena : 1; u64 mltuse_fc_ena : 1; u64 cal_ena : 1; u64 mfrm_len : 13; u64 brst_shrt : 7; u64 lane_rev : 1; u64 brst_max : 5; u64 reserved_25_25 : 1; u64 cal_depth : 9; u64 reserved_8_15 : 8; u64 lane_ena : 8; } cn68xx; struct cvmx_ilk_txx_cfg0_cn68xx cn68xxp1; struct cvmx_ilk_txx_cfg0_s cn78xx; struct cvmx_ilk_txx_cfg0_s cn78xxp1; }; typedef union cvmx_ilk_txx_cfg0 cvmx_ilk_txx_cfg0_t; /** * cvmx_ilk_tx#_cfg1 */ union cvmx_ilk_txx_cfg1 { u64 u64; struct cvmx_ilk_txx_cfg1_s { u64 ser_low : 4; u64 reserved_53_59 : 7; u64 brst_min : 5; u64 reserved_43_47 : 5; u64 ser_limit : 10; u64 pkt_busy : 1; u64 pipe_crd_dis : 1; u64 ptp_delay : 5; u64 skip_cnt : 4; u64 pkt_flush : 1; u64 pkt_ena : 1; u64 la_mode : 1; u64 tx_link_fc : 1; u64 rx_link_fc : 1; u64 reserved_12_16 : 5; u64 tx_link_fc_jam : 1; u64 rx_link_fc_pkt : 1; u64 rx_link_fc_ign : 1; u64 rmatch : 1; u64 tx_mltuse : 8; } s; struct cvmx_ilk_txx_cfg1_cn68xx { u64 reserved_33_63 : 31; u64 pkt_busy : 1; u64 pipe_crd_dis : 1; u64 ptp_delay : 5; u64 skip_cnt : 4; u64 pkt_flush : 1; u64 pkt_ena : 1; u64 la_mode : 1; u64 tx_link_fc : 1; u64 rx_link_fc : 1; u64 reserved_12_16 : 5; u64 tx_link_fc_jam : 1; u64 rx_link_fc_pkt : 1; u64 rx_link_fc_ign : 1; u64 rmatch : 1; u64 tx_mltuse : 8; } cn68xx; struct cvmx_ilk_txx_cfg1_cn68xxp1 { u64 reserved_32_63 : 32; u64 pipe_crd_dis : 1; u64 ptp_delay : 5; u64 skip_cnt : 4; u64 pkt_flush : 1; u64 pkt_ena : 1; u64 la_mode : 1; u64 tx_link_fc : 1; u64 rx_link_fc : 1; u64 reserved_12_16 : 5; u64 tx_link_fc_jam : 1; u64 rx_link_fc_pkt : 1; u64 rx_link_fc_ign : 1; u64 rmatch : 1; u64 tx_mltuse : 8; } cn68xxp1; struct cvmx_ilk_txx_cfg1_s cn78xx; struct cvmx_ilk_txx_cfg1_s cn78xxp1; }; typedef union cvmx_ilk_txx_cfg1 cvmx_ilk_txx_cfg1_t; /** * cvmx_ilk_tx#_cha_xon# */ union cvmx_ilk_txx_cha_xonx { u64 u64; struct cvmx_ilk_txx_cha_xonx_s { u64 status : 64; } s; struct cvmx_ilk_txx_cha_xonx_s cn78xx; struct cvmx_ilk_txx_cha_xonx_s cn78xxp1; }; typedef union cvmx_ilk_txx_cha_xonx cvmx_ilk_txx_cha_xonx_t; /** * cvmx_ilk_tx#_dbg */ union cvmx_ilk_txx_dbg { u64 u64; struct cvmx_ilk_txx_dbg_s { u64 reserved_29_63 : 35; u64 data_rate : 13; u64 low_delay : 6; u64 reserved_3_9 : 7; u64 tx_bad_crc24 : 1; u64 tx_bad_ctlw2 : 1; u64 tx_bad_ctlw1 : 1; } s; struct cvmx_ilk_txx_dbg_cn68xx { u64 reserved_3_63 : 61; u64 tx_bad_crc24 : 1; u64 tx_bad_ctlw2 : 1; u64 tx_bad_ctlw1 : 1; } cn68xx; struct cvmx_ilk_txx_dbg_cn68xx cn68xxp1; struct cvmx_ilk_txx_dbg_s cn78xx; struct cvmx_ilk_txx_dbg_s cn78xxp1; }; typedef union cvmx_ilk_txx_dbg cvmx_ilk_txx_dbg_t; /** * cvmx_ilk_tx#_err_cfg */ union cvmx_ilk_txx_err_cfg { u64 u64; struct cvmx_ilk_txx_err_cfg_s { u64 reserved_20_63 : 44; u64 fwc_flip : 2; u64 txf_flip : 2; u64 reserved_2_15 : 14; u64 fwc_cor_dis : 1; u64 txf_cor_dis : 1; } s; struct cvmx_ilk_txx_err_cfg_s cn78xx; struct cvmx_ilk_txx_err_cfg_s cn78xxp1; }; typedef union cvmx_ilk_txx_err_cfg cvmx_ilk_txx_err_cfg_t; /** * cvmx_ilk_tx#_flow_ctl0 */ union cvmx_ilk_txx_flow_ctl0 { u64 u64; struct cvmx_ilk_txx_flow_ctl0_s { u64 status : 64; } s; struct cvmx_ilk_txx_flow_ctl0_s cn68xx; struct cvmx_ilk_txx_flow_ctl0_s cn68xxp1; }; typedef union cvmx_ilk_txx_flow_ctl0 cvmx_ilk_txx_flow_ctl0_t; /** * cvmx_ilk_tx#_flow_ctl1 * * Notes: * Do not publish. * */ union cvmx_ilk_txx_flow_ctl1 { u64 u64; struct cvmx_ilk_txx_flow_ctl1_s { u64 reserved_0_63 : 64; } s; struct cvmx_ilk_txx_flow_ctl1_s cn68xx; struct cvmx_ilk_txx_flow_ctl1_s cn68xxp1; }; typedef union cvmx_ilk_txx_flow_ctl1 cvmx_ilk_txx_flow_ctl1_t; /** * cvmx_ilk_tx#_idx_cal */ union cvmx_ilk_txx_idx_cal { u64 u64; struct cvmx_ilk_txx_idx_cal_s { u64 reserved_14_63 : 50; u64 inc : 6; u64 reserved_6_7 : 2; u64 index : 6; } s; struct cvmx_ilk_txx_idx_cal_s cn68xx; struct cvmx_ilk_txx_idx_cal_s cn68xxp1; }; typedef union cvmx_ilk_txx_idx_cal cvmx_ilk_txx_idx_cal_t; /** * cvmx_ilk_tx#_idx_pmap */ union cvmx_ilk_txx_idx_pmap { u64 u64; struct cvmx_ilk_txx_idx_pmap_s { u64 reserved_23_63 : 41; u64 inc : 7; u64 reserved_7_15 : 9; u64 index : 7; } s; struct cvmx_ilk_txx_idx_pmap_s cn68xx; struct cvmx_ilk_txx_idx_pmap_s cn68xxp1; }; typedef union cvmx_ilk_txx_idx_pmap cvmx_ilk_txx_idx_pmap_t; /** * cvmx_ilk_tx#_idx_stat0 */ union cvmx_ilk_txx_idx_stat0 { u64 u64; struct cvmx_ilk_txx_idx_stat0_s { u64 reserved_32_63 : 32; u64 clr : 1; u64 reserved_24_30 : 7; u64 inc : 8; u64 reserved_8_15 : 8; u64 index : 8; } s; struct cvmx_ilk_txx_idx_stat0_s cn68xx; struct cvmx_ilk_txx_idx_stat0_s cn68xxp1; }; typedef union cvmx_ilk_txx_idx_stat0 cvmx_ilk_txx_idx_stat0_t; /** * cvmx_ilk_tx#_idx_stat1 */ union cvmx_ilk_txx_idx_stat1 { u64 u64; struct cvmx_ilk_txx_idx_stat1_s { u64 reserved_32_63 : 32; u64 clr : 1; u64 reserved_24_30 : 7; u64 inc : 8; u64 reserved_8_15 : 8; u64 index : 8; } s; struct cvmx_ilk_txx_idx_stat1_s cn68xx; struct cvmx_ilk_txx_idx_stat1_s cn68xxp1; }; typedef union cvmx_ilk_txx_idx_stat1 cvmx_ilk_txx_idx_stat1_t; /** * cvmx_ilk_tx#_int */ union cvmx_ilk_txx_int { u64 u64; struct cvmx_ilk_txx_int_s { u64 reserved_8_63 : 56; u64 fwc_dbe : 1; u64 fwc_sbe : 1; u64 txf_dbe : 1; u64 txf_sbe : 1; u64 stat_cnt_ovfl : 1; u64 bad_pipe : 1; u64 bad_seq : 1; u64 txf_err : 1; } s; struct cvmx_ilk_txx_int_cn68xx { u64 reserved_4_63 : 60; u64 stat_cnt_ovfl : 1; u64 bad_pipe : 1; u64 bad_seq : 1; u64 txf_err : 1; } cn68xx; struct cvmx_ilk_txx_int_cn68xx cn68xxp1; struct cvmx_ilk_txx_int_s cn78xx; struct cvmx_ilk_txx_int_s cn78xxp1; }; typedef union cvmx_ilk_txx_int cvmx_ilk_txx_int_t; /** * cvmx_ilk_tx#_int_en */ union cvmx_ilk_txx_int_en { u64 u64; struct cvmx_ilk_txx_int_en_s { u64 reserved_4_63 : 60; u64 stat_cnt_ovfl : 1; u64 bad_pipe : 1; u64 bad_seq : 1; u64 txf_err : 1; } s; struct cvmx_ilk_txx_int_en_s cn68xx; struct cvmx_ilk_txx_int_en_s cn68xxp1; }; typedef union cvmx_ilk_txx_int_en cvmx_ilk_txx_int_en_t; /** * cvmx_ilk_tx#_mem_cal0 * * Notes: * Software must always read ILK_TXx_MEM_CAL0 then ILK_TXx_MEM_CAL1. Software * must never read them in reverse order or read one without reading the * other. * * Software must always write ILK_TXx_MEM_CAL0 then ILK_TXx_MEM_CAL1. * Software must never write them in reverse order or write one without * writing the other. */ union cvmx_ilk_txx_mem_cal0 { u64 u64; struct cvmx_ilk_txx_mem_cal0_s { u64 reserved_36_63 : 28; u64 entry_ctl3 : 2; u64 reserved_33_33 : 1; u64 bpid3 : 6; u64 entry_ctl2 : 2; u64 reserved_24_24 : 1; u64 bpid2 : 6; u64 entry_ctl1 : 2; u64 reserved_15_15 : 1; u64 bpid1 : 6; u64 entry_ctl0 : 2; u64 reserved_6_6 : 1; u64 bpid0 : 6; } s; struct cvmx_ilk_txx_mem_cal0_s cn68xx; struct cvmx_ilk_txx_mem_cal0_s cn68xxp1; }; typedef union cvmx_ilk_txx_mem_cal0 cvmx_ilk_txx_mem_cal0_t; /** * cvmx_ilk_tx#_mem_cal1 * * Notes: * Software must always read ILK_TXx_MEM_CAL0 then ILK_TXx_MEM_CAL1. Software * must never read them in reverse order or read one without reading the * other. * * Software must always write ILK_TXx_MEM_CAL0 then ILK_TXx_MEM_CAL1. * Software must never write them in reverse order or write one without * writing the other. */ union cvmx_ilk_txx_mem_cal1 { u64 u64; struct cvmx_ilk_txx_mem_cal1_s { u64 reserved_36_63 : 28; u64 entry_ctl7 : 2; u64 reserved_33_33 : 1; u64 bpid7 : 6; u64 entry_ctl6 : 2; u64 reserved_24_24 : 1; u64 bpid6 : 6; u64 entry_ctl5 : 2; u64 reserved_15_15 : 1; u64 bpid5 : 6; u64 entry_ctl4 : 2; u64 reserved_6_6 : 1; u64 bpid4 : 6; } s; struct cvmx_ilk_txx_mem_cal1_s cn68xx; struct cvmx_ilk_txx_mem_cal1_s cn68xxp1; }; typedef union cvmx_ilk_txx_mem_cal1 cvmx_ilk_txx_mem_cal1_t; /** * cvmx_ilk_tx#_mem_pmap */ union cvmx_ilk_txx_mem_pmap { u64 u64; struct cvmx_ilk_txx_mem_pmap_s { u64 reserved_17_63 : 47; u64 remap : 1; u64 reserved_8_15 : 8; u64 channel : 8; } s; struct cvmx_ilk_txx_mem_pmap_s cn68xx; struct cvmx_ilk_txx_mem_pmap_cn68xxp1 { u64 reserved_8_63 : 56; u64 channel : 8; } cn68xxp1; }; typedef union cvmx_ilk_txx_mem_pmap cvmx_ilk_txx_mem_pmap_t; /** * cvmx_ilk_tx#_mem_stat0 */ union cvmx_ilk_txx_mem_stat0 { u64 u64; struct cvmx_ilk_txx_mem_stat0_s { u64 reserved_28_63 : 36; u64 tx_pkt : 28; } s; struct cvmx_ilk_txx_mem_stat0_s cn68xx; struct cvmx_ilk_txx_mem_stat0_s cn68xxp1; }; typedef union cvmx_ilk_txx_mem_stat0 cvmx_ilk_txx_mem_stat0_t; /** * cvmx_ilk_tx#_mem_stat1 */ union cvmx_ilk_txx_mem_stat1 { u64 u64; struct cvmx_ilk_txx_mem_stat1_s { u64 reserved_36_63 : 28; u64 tx_bytes : 36; } s; struct cvmx_ilk_txx_mem_stat1_s cn68xx; struct cvmx_ilk_txx_mem_stat1_s cn68xxp1; }; typedef union cvmx_ilk_txx_mem_stat1 cvmx_ilk_txx_mem_stat1_t; /** * cvmx_ilk_tx#_pipe */ union cvmx_ilk_txx_pipe { u64 u64; struct cvmx_ilk_txx_pipe_s { u64 reserved_24_63 : 40; u64 nump : 8; u64 reserved_7_15 : 9; u64 base : 7; } s; struct cvmx_ilk_txx_pipe_s cn68xx; struct cvmx_ilk_txx_pipe_s cn68xxp1; }; typedef union cvmx_ilk_txx_pipe cvmx_ilk_txx_pipe_t; /** * cvmx_ilk_tx#_pkt_cnt# */ union cvmx_ilk_txx_pkt_cntx { u64 u64; struct cvmx_ilk_txx_pkt_cntx_s { u64 reserved_34_63 : 30; u64 tx_pkt : 34; } s; struct cvmx_ilk_txx_pkt_cntx_s cn78xx; struct cvmx_ilk_txx_pkt_cntx_s cn78xxp1; }; typedef union cvmx_ilk_txx_pkt_cntx cvmx_ilk_txx_pkt_cntx_t; /** * cvmx_ilk_tx#_rmatch */ union cvmx_ilk_txx_rmatch { u64 u64; struct cvmx_ilk_txx_rmatch_s { u64 reserved_50_63 : 14; u64 grnlrty : 2; u64 brst_limit : 16; u64 time_limit : 16; u64 rate_limit : 16; } s; struct cvmx_ilk_txx_rmatch_s cn68xx; struct cvmx_ilk_txx_rmatch_s cn68xxp1; struct cvmx_ilk_txx_rmatch_s cn78xx; struct cvmx_ilk_txx_rmatch_s cn78xxp1; }; typedef union cvmx_ilk_txx_rmatch cvmx_ilk_txx_rmatch_t; #endif