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

ef10_regs.h (14633B)


      1/* SPDX-License-Identifier: GPL-2.0-only */
      2/****************************************************************************
      3 * Driver for Solarflare network controllers and boards
      4 * Copyright 2012-2017 Solarflare Communications Inc.
      5 */
      6
      7#ifndef EFX_EF10_REGS_H
      8#define EFX_EF10_REGS_H
      9
     10/* EF10 hardware architecture definitions have a name prefix following
     11 * the format:
     12 *
     13 *     E<type>_<min-rev><max-rev>_
     14 *
     15 * The following <type> strings are used:
     16 *
     17 *             MMIO register  Host memory structure
     18 * -------------------------------------------------------------
     19 * Address     R
     20 * Bitfield    RF             SF
     21 * Enumerator  FE             SE
     22 *
     23 * <min-rev> is the first revision to which the definition applies:
     24 *
     25 *     D: Huntington A0
     26 *
     27 * If the definition has been changed or removed in later revisions
     28 * then <max-rev> is the last revision to which the definition applies;
     29 * otherwise it is "Z".
     30 */
     31
     32/**************************************************************************
     33 *
     34 * EF10 registers and descriptors
     35 *
     36 **************************************************************************
     37 */
     38
     39/* BIU_HW_REV_ID_REG:  */
     40#define	ER_DZ_BIU_HW_REV_ID 0x00000000
     41#define	ERF_DZ_HW_REV_ID_LBN 0
     42#define	ERF_DZ_HW_REV_ID_WIDTH 32
     43
     44/* BIU_MC_SFT_STATUS_REG:  */
     45#define	ER_DZ_BIU_MC_SFT_STATUS 0x00000010
     46#define	ER_DZ_BIU_MC_SFT_STATUS_STEP 4
     47#define	ER_DZ_BIU_MC_SFT_STATUS_ROWS 8
     48#define	ERF_DZ_MC_SFT_STATUS_LBN 0
     49#define	ERF_DZ_MC_SFT_STATUS_WIDTH 32
     50
     51/* BIU_INT_ISR_REG:  */
     52#define	ER_DZ_BIU_INT_ISR 0x00000090
     53#define	ERF_DZ_ISR_REG_LBN 0
     54#define	ERF_DZ_ISR_REG_WIDTH 32
     55
     56/* MC_DB_LWRD_REG:  */
     57#define	ER_DZ_MC_DB_LWRD 0x00000200
     58#define	ERF_DZ_MC_DOORBELL_L_LBN 0
     59#define	ERF_DZ_MC_DOORBELL_L_WIDTH 32
     60
     61/* MC_DB_HWRD_REG:  */
     62#define	ER_DZ_MC_DB_HWRD 0x00000204
     63#define	ERF_DZ_MC_DOORBELL_H_LBN 0
     64#define	ERF_DZ_MC_DOORBELL_H_WIDTH 32
     65
     66/* EVQ_RPTR_REG:  */
     67#define	ER_DZ_EVQ_RPTR 0x00000400
     68#define	ER_DZ_EVQ_RPTR_STEP 8192
     69#define	ER_DZ_EVQ_RPTR_ROWS 2048
     70#define	ERF_DZ_EVQ_RPTR_VLD_LBN 15
     71#define	ERF_DZ_EVQ_RPTR_VLD_WIDTH 1
     72#define	ERF_DZ_EVQ_RPTR_LBN 0
     73#define	ERF_DZ_EVQ_RPTR_WIDTH 15
     74
     75/* EVQ_TMR_REG:  */
     76#define	ER_DZ_EVQ_TMR 0x00000420
     77#define	ER_DZ_EVQ_TMR_STEP 8192
     78#define	ER_DZ_EVQ_TMR_ROWS 2048
     79#define	ERF_FZ_TC_TMR_REL_VAL_LBN 16
     80#define	ERF_FZ_TC_TMR_REL_VAL_WIDTH 14
     81#define	ERF_DZ_TC_TIMER_MODE_LBN 14
     82#define	ERF_DZ_TC_TIMER_MODE_WIDTH 2
     83#define	ERF_DZ_TC_TIMER_VAL_LBN 0
     84#define	ERF_DZ_TC_TIMER_VAL_WIDTH 14
     85
     86/* RX_DESC_UPD_REG:  */
     87#define	ER_DZ_RX_DESC_UPD 0x00000830
     88#define	ER_DZ_RX_DESC_UPD_STEP 8192
     89#define	ER_DZ_RX_DESC_UPD_ROWS 2048
     90#define	ERF_DZ_RX_DESC_WPTR_LBN 0
     91#define	ERF_DZ_RX_DESC_WPTR_WIDTH 12
     92
     93/* TX_DESC_UPD_REG:  */
     94#define	ER_DZ_TX_DESC_UPD 0x00000a10
     95#define	ER_DZ_TX_DESC_UPD_STEP 8192
     96#define	ER_DZ_TX_DESC_UPD_ROWS 2048
     97#define	ERF_DZ_RSVD_LBN 76
     98#define	ERF_DZ_RSVD_WIDTH 20
     99#define	ERF_DZ_TX_DESC_WPTR_LBN 64
    100#define	ERF_DZ_TX_DESC_WPTR_WIDTH 12
    101#define	ERF_DZ_TX_DESC_HWORD_LBN 32
    102#define	ERF_DZ_TX_DESC_HWORD_WIDTH 32
    103#define	ERF_DZ_TX_DESC_LWORD_LBN 0
    104#define	ERF_DZ_TX_DESC_LWORD_WIDTH 32
    105
    106/* DRIVER_EV */
    107#define	ESF_DZ_DRV_CODE_LBN 60
    108#define	ESF_DZ_DRV_CODE_WIDTH 4
    109#define	ESF_DZ_DRV_SUB_CODE_LBN 56
    110#define	ESF_DZ_DRV_SUB_CODE_WIDTH 4
    111#define	ESE_DZ_DRV_TIMER_EV 3
    112#define	ESE_DZ_DRV_START_UP_EV 2
    113#define	ESE_DZ_DRV_WAKE_UP_EV 1
    114#define	ESF_DZ_DRV_SUB_DATA_LBN 0
    115#define	ESF_DZ_DRV_SUB_DATA_WIDTH 56
    116#define	ESF_DZ_DRV_EVQ_ID_LBN 0
    117#define	ESF_DZ_DRV_EVQ_ID_WIDTH 14
    118#define	ESF_DZ_DRV_TMR_ID_LBN 0
    119#define	ESF_DZ_DRV_TMR_ID_WIDTH 14
    120
    121/* EVENT_ENTRY */
    122#define	ESF_DZ_EV_CODE_LBN 60
    123#define	ESF_DZ_EV_CODE_WIDTH 4
    124#define	ESE_DZ_EV_CODE_MCDI_EV 12
    125#define	ESE_DZ_EV_CODE_DRIVER_EV 5
    126#define	ESE_DZ_EV_CODE_TX_EV 2
    127#define	ESE_DZ_EV_CODE_RX_EV 0
    128#define	ESE_DZ_OTHER other
    129#define	ESF_DZ_EV_DATA_LBN 0
    130#define	ESF_DZ_EV_DATA_WIDTH 60
    131
    132/* MC_EVENT */
    133#define	ESF_DZ_MC_CODE_LBN 60
    134#define	ESF_DZ_MC_CODE_WIDTH 4
    135#define	ESF_DZ_MC_OVERRIDE_HOLDOFF_LBN 59
    136#define	ESF_DZ_MC_OVERRIDE_HOLDOFF_WIDTH 1
    137#define	ESF_DZ_MC_DROP_EVENT_LBN 58
    138#define	ESF_DZ_MC_DROP_EVENT_WIDTH 1
    139#define	ESF_DZ_MC_SOFT_LBN 0
    140#define	ESF_DZ_MC_SOFT_WIDTH 58
    141
    142/* RX_EVENT */
    143#define	ESF_DZ_RX_CODE_LBN 60
    144#define	ESF_DZ_RX_CODE_WIDTH 4
    145#define	ESF_DZ_RX_OVERRIDE_HOLDOFF_LBN 59
    146#define	ESF_DZ_RX_OVERRIDE_HOLDOFF_WIDTH 1
    147#define	ESF_DZ_RX_DROP_EVENT_LBN 58
    148#define	ESF_DZ_RX_DROP_EVENT_WIDTH 1
    149#define	ESF_DD_RX_EV_RSVD2_LBN 54
    150#define	ESF_DD_RX_EV_RSVD2_WIDTH 4
    151#define	ESF_EZ_RX_TCP_UDP_INNER_CHKSUM_ERR_LBN 57
    152#define	ESF_EZ_RX_TCP_UDP_INNER_CHKSUM_ERR_WIDTH 1
    153#define	ESF_EZ_RX_IP_INNER_CHKSUM_ERR_LBN 56
    154#define	ESF_EZ_RX_IP_INNER_CHKSUM_ERR_WIDTH 1
    155#define	ESF_EZ_RX_EV_RSVD2_LBN 54
    156#define	ESF_EZ_RX_EV_RSVD2_WIDTH 2
    157#define	ESF_DZ_RX_EV_SOFT2_LBN 52
    158#define	ESF_DZ_RX_EV_SOFT2_WIDTH 2
    159#define	ESF_DZ_RX_DSC_PTR_LBITS_LBN 48
    160#define	ESF_DZ_RX_DSC_PTR_LBITS_WIDTH 4
    161#define	ESF_DE_RX_L4_CLASS_LBN 45
    162#define	ESF_DE_RX_L4_CLASS_WIDTH 3
    163#define	ESE_DE_L4_CLASS_RSVD7 7
    164#define	ESE_DE_L4_CLASS_RSVD6 6
    165#define	ESE_DE_L4_CLASS_RSVD5 5
    166#define	ESE_DE_L4_CLASS_RSVD4 4
    167#define	ESE_DE_L4_CLASS_RSVD3 3
    168#define	ESE_DE_L4_CLASS_UDP 2
    169#define	ESE_DE_L4_CLASS_TCP 1
    170#define	ESE_DE_L4_CLASS_UNKNOWN 0
    171#define	ESF_FZ_RX_FASTPD_INDCTR_LBN 47
    172#define	ESF_FZ_RX_FASTPD_INDCTR_WIDTH 1
    173#define	ESF_FZ_RX_L4_CLASS_LBN 45
    174#define	ESF_FZ_RX_L4_CLASS_WIDTH 2
    175#define	ESE_FZ_L4_CLASS_RSVD3 3
    176#define	ESE_FZ_L4_CLASS_UDP 2
    177#define	ESE_FZ_L4_CLASS_TCP 1
    178#define	ESE_FZ_L4_CLASS_UNKNOWN 0
    179#define	ESF_DZ_RX_L3_CLASS_LBN 42
    180#define	ESF_DZ_RX_L3_CLASS_WIDTH 3
    181#define	ESE_DZ_L3_CLASS_RSVD7 7
    182#define	ESE_DZ_L3_CLASS_IP6_FRAG 6
    183#define	ESE_DZ_L3_CLASS_ARP 5
    184#define	ESE_DZ_L3_CLASS_IP4_FRAG 4
    185#define	ESE_DZ_L3_CLASS_FCOE 3
    186#define	ESE_DZ_L3_CLASS_IP6 2
    187#define	ESE_DZ_L3_CLASS_IP4 1
    188#define	ESE_DZ_L3_CLASS_UNKNOWN 0
    189#define	ESF_DZ_RX_ETH_TAG_CLASS_LBN 39
    190#define	ESF_DZ_RX_ETH_TAG_CLASS_WIDTH 3
    191#define	ESE_DZ_ETH_TAG_CLASS_RSVD7 7
    192#define	ESE_DZ_ETH_TAG_CLASS_RSVD6 6
    193#define	ESE_DZ_ETH_TAG_CLASS_RSVD5 5
    194#define	ESE_DZ_ETH_TAG_CLASS_RSVD4 4
    195#define	ESE_DZ_ETH_TAG_CLASS_RSVD3 3
    196#define	ESE_DZ_ETH_TAG_CLASS_VLAN2 2
    197#define	ESE_DZ_ETH_TAG_CLASS_VLAN1 1
    198#define	ESE_DZ_ETH_TAG_CLASS_NONE 0
    199#define	ESF_DZ_RX_ETH_BASE_CLASS_LBN 36
    200#define	ESF_DZ_RX_ETH_BASE_CLASS_WIDTH 3
    201#define	ESE_DZ_ETH_BASE_CLASS_LLC_SNAP 2
    202#define	ESE_DZ_ETH_BASE_CLASS_LLC 1
    203#define	ESE_DZ_ETH_BASE_CLASS_ETH2 0
    204#define	ESF_DZ_RX_MAC_CLASS_LBN 35
    205#define	ESF_DZ_RX_MAC_CLASS_WIDTH 1
    206#define	ESE_DZ_MAC_CLASS_MCAST 1
    207#define	ESE_DZ_MAC_CLASS_UCAST 0
    208#define	ESF_DD_RX_EV_SOFT1_LBN 32
    209#define	ESF_DD_RX_EV_SOFT1_WIDTH 3
    210#define	ESF_EZ_RX_EV_SOFT1_LBN 34
    211#define	ESF_EZ_RX_EV_SOFT1_WIDTH 1
    212#define	ESF_EZ_RX_ENCAP_HDR_LBN 32
    213#define	ESF_EZ_RX_ENCAP_HDR_WIDTH 2
    214#define	ESE_EZ_ENCAP_HDR_GRE 2
    215#define	ESE_EZ_ENCAP_HDR_VXLAN 1
    216#define	ESE_EZ_ENCAP_HDR_NONE 0
    217#define	ESF_DD_RX_EV_RSVD1_LBN 30
    218#define	ESF_DD_RX_EV_RSVD1_WIDTH 2
    219#define	ESF_EZ_RX_EV_RSVD1_LBN 31
    220#define	ESF_EZ_RX_EV_RSVD1_WIDTH 1
    221#define	ESF_EZ_RX_ABORT_LBN 30
    222#define	ESF_EZ_RX_ABORT_WIDTH 1
    223#define	ESF_DZ_RX_ECC_ERR_LBN 29
    224#define	ESF_DZ_RX_ECC_ERR_WIDTH 1
    225#define	ESF_DZ_RX_TRUNC_ERR_LBN 29
    226#define	ESF_DZ_RX_TRUNC_ERR_WIDTH 1
    227#define	ESF_DZ_RX_CRC1_ERR_LBN 28
    228#define	ESF_DZ_RX_CRC1_ERR_WIDTH 1
    229#define	ESF_DZ_RX_CRC0_ERR_LBN 27
    230#define	ESF_DZ_RX_CRC0_ERR_WIDTH 1
    231#define	ESF_DZ_RX_TCPUDP_CKSUM_ERR_LBN 26
    232#define	ESF_DZ_RX_TCPUDP_CKSUM_ERR_WIDTH 1
    233#define	ESF_DZ_RX_IPCKSUM_ERR_LBN 25
    234#define	ESF_DZ_RX_IPCKSUM_ERR_WIDTH 1
    235#define	ESF_DZ_RX_ECRC_ERR_LBN 24
    236#define	ESF_DZ_RX_ECRC_ERR_WIDTH 1
    237#define	ESF_DZ_RX_QLABEL_LBN 16
    238#define	ESF_DZ_RX_QLABEL_WIDTH 5
    239#define	ESF_DZ_RX_PARSE_INCOMPLETE_LBN 15
    240#define	ESF_DZ_RX_PARSE_INCOMPLETE_WIDTH 1
    241#define	ESF_DZ_RX_CONT_LBN 14
    242#define	ESF_DZ_RX_CONT_WIDTH 1
    243#define	ESF_DZ_RX_BYTES_LBN 0
    244#define	ESF_DZ_RX_BYTES_WIDTH 14
    245
    246/* RX_KER_DESC */
    247#define	ESF_DZ_RX_KER_RESERVED_LBN 62
    248#define	ESF_DZ_RX_KER_RESERVED_WIDTH 2
    249#define	ESF_DZ_RX_KER_BYTE_CNT_LBN 48
    250#define	ESF_DZ_RX_KER_BYTE_CNT_WIDTH 14
    251#define	ESF_DZ_RX_KER_BUF_ADDR_LBN 0
    252#define	ESF_DZ_RX_KER_BUF_ADDR_WIDTH 48
    253
    254/* TX_CSUM_TSTAMP_DESC */
    255#define	ESF_DZ_TX_DESC_IS_OPT_LBN 63
    256#define	ESF_DZ_TX_DESC_IS_OPT_WIDTH 1
    257#define	ESF_DZ_TX_OPTION_TYPE_LBN 60
    258#define	ESF_DZ_TX_OPTION_TYPE_WIDTH 3
    259#define	ESE_DZ_TX_OPTION_DESC_TSO 7
    260#define	ESE_DZ_TX_OPTION_DESC_VLAN 6
    261#define	ESE_DZ_TX_OPTION_DESC_CRC_CSUM 0
    262#define	ESF_DZ_TX_OPTION_TS_AT_TXDP_LBN 8
    263#define	ESF_DZ_TX_OPTION_TS_AT_TXDP_WIDTH 1
    264#define	ESF_DZ_TX_OPTION_INNER_UDP_TCP_CSUM_LBN 7
    265#define	ESF_DZ_TX_OPTION_INNER_UDP_TCP_CSUM_WIDTH 1
    266#define	ESF_DZ_TX_OPTION_INNER_IP_CSUM_LBN 6
    267#define	ESF_DZ_TX_OPTION_INNER_IP_CSUM_WIDTH 1
    268#define	ESF_DZ_TX_TIMESTAMP_LBN 5
    269#define	ESF_DZ_TX_TIMESTAMP_WIDTH 1
    270#define	ESF_DZ_TX_OPTION_CRC_MODE_LBN 2
    271#define	ESF_DZ_TX_OPTION_CRC_MODE_WIDTH 3
    272#define	ESE_DZ_TX_OPTION_CRC_FCOIP_MPA 5
    273#define	ESE_DZ_TX_OPTION_CRC_FCOIP_FCOE 4
    274#define	ESE_DZ_TX_OPTION_CRC_ISCSI_HDR_AND_PYLD 3
    275#define	ESE_DZ_TX_OPTION_CRC_ISCSI_HDR 2
    276#define	ESE_DZ_TX_OPTION_CRC_FCOE 1
    277#define	ESE_DZ_TX_OPTION_CRC_OFF 0
    278#define	ESF_DZ_TX_OPTION_UDP_TCP_CSUM_LBN 1
    279#define	ESF_DZ_TX_OPTION_UDP_TCP_CSUM_WIDTH 1
    280#define	ESF_DZ_TX_OPTION_IP_CSUM_LBN 0
    281#define	ESF_DZ_TX_OPTION_IP_CSUM_WIDTH 1
    282
    283/* TX_EVENT */
    284#define	ESF_DZ_TX_CODE_LBN 60
    285#define	ESF_DZ_TX_CODE_WIDTH 4
    286#define	ESF_DZ_TX_OVERRIDE_HOLDOFF_LBN 59
    287#define	ESF_DZ_TX_OVERRIDE_HOLDOFF_WIDTH 1
    288#define	ESF_DZ_TX_DROP_EVENT_LBN 58
    289#define	ESF_DZ_TX_DROP_EVENT_WIDTH 1
    290#define	ESF_DD_TX_EV_RSVD_LBN 48
    291#define	ESF_DD_TX_EV_RSVD_WIDTH 10
    292#define	ESF_EZ_TCP_UDP_INNER_CHKSUM_ERR_LBN 57
    293#define	ESF_EZ_TCP_UDP_INNER_CHKSUM_ERR_WIDTH 1
    294#define	ESF_EZ_IP_INNER_CHKSUM_ERR_LBN 56
    295#define	ESF_EZ_IP_INNER_CHKSUM_ERR_WIDTH 1
    296#define	ESF_EZ_TX_EV_RSVD_LBN 48
    297#define	ESF_EZ_TX_EV_RSVD_WIDTH 8
    298#define	ESF_DZ_TX_SOFT2_LBN 32
    299#define	ESF_DZ_TX_SOFT2_WIDTH 16
    300#define	ESF_DD_TX_SOFT1_LBN 24
    301#define	ESF_DD_TX_SOFT1_WIDTH 8
    302#define	ESF_EZ_TX_CAN_MERGE_LBN 31
    303#define	ESF_EZ_TX_CAN_MERGE_WIDTH 1
    304#define	ESF_EZ_TX_SOFT1_LBN 24
    305#define	ESF_EZ_TX_SOFT1_WIDTH 7
    306#define	ESF_DZ_TX_QLABEL_LBN 16
    307#define	ESF_DZ_TX_QLABEL_WIDTH 5
    308#define	ESF_DZ_TX_DESCR_INDX_LBN 0
    309#define	ESF_DZ_TX_DESCR_INDX_WIDTH 16
    310
    311/* TX_KER_DESC */
    312#define	ESF_DZ_TX_KER_TYPE_LBN 63
    313#define	ESF_DZ_TX_KER_TYPE_WIDTH 1
    314#define	ESF_DZ_TX_KER_CONT_LBN 62
    315#define	ESF_DZ_TX_KER_CONT_WIDTH 1
    316#define	ESF_DZ_TX_KER_BYTE_CNT_LBN 48
    317#define	ESF_DZ_TX_KER_BYTE_CNT_WIDTH 14
    318#define	ESF_DZ_TX_KER_BUF_ADDR_LBN 0
    319#define	ESF_DZ_TX_KER_BUF_ADDR_WIDTH 48
    320
    321/* TX_PIO_DESC */
    322#define	ESF_DZ_TX_PIO_TYPE_LBN 63
    323#define	ESF_DZ_TX_PIO_TYPE_WIDTH 1
    324#define	ESF_DZ_TX_PIO_OPT_LBN 60
    325#define	ESF_DZ_TX_PIO_OPT_WIDTH 3
    326#define	ESE_DZ_TX_OPTION_DESC_PIO 1
    327#define	ESF_DZ_TX_PIO_CONT_LBN 59
    328#define	ESF_DZ_TX_PIO_CONT_WIDTH 1
    329#define	ESF_DZ_TX_PIO_BYTE_CNT_LBN 32
    330#define	ESF_DZ_TX_PIO_BYTE_CNT_WIDTH 12
    331#define	ESF_DZ_TX_PIO_BUF_ADDR_LBN 0
    332#define	ESF_DZ_TX_PIO_BUF_ADDR_WIDTH 12
    333
    334/* TX_TSO_DESC */
    335#define	ESF_DZ_TX_DESC_IS_OPT_LBN 63
    336#define	ESF_DZ_TX_DESC_IS_OPT_WIDTH 1
    337#define	ESF_DZ_TX_OPTION_TYPE_LBN 60
    338#define	ESF_DZ_TX_OPTION_TYPE_WIDTH 3
    339#define	ESE_DZ_TX_OPTION_DESC_TSO 7
    340#define	ESE_DZ_TX_OPTION_DESC_VLAN 6
    341#define	ESE_DZ_TX_OPTION_DESC_CRC_CSUM 0
    342#define	ESF_DZ_TX_TSO_OPTION_TYPE_LBN 56
    343#define	ESF_DZ_TX_TSO_OPTION_TYPE_WIDTH 4
    344#define	ESE_DZ_TX_TSO_OPTION_DESC_FATSO2B 3
    345#define	ESE_DZ_TX_TSO_OPTION_DESC_FATSO2A 2
    346#define	ESE_DZ_TX_TSO_OPTION_DESC_ENCAP 1
    347#define	ESE_DZ_TX_TSO_OPTION_DESC_NORMAL 0
    348#define	ESF_DZ_TX_TSO_TCP_FLAGS_LBN 48
    349#define	ESF_DZ_TX_TSO_TCP_FLAGS_WIDTH 8
    350#define	ESF_DZ_TX_TSO_IP_ID_LBN 32
    351#define	ESF_DZ_TX_TSO_IP_ID_WIDTH 16
    352#define	ESF_DZ_TX_TSO_TCP_SEQNO_LBN 0
    353#define	ESF_DZ_TX_TSO_TCP_SEQNO_WIDTH 32
    354
    355/* TX_TSO_V2_DESC_A */
    356#define	ESF_DZ_TX_DESC_IS_OPT_LBN 63
    357#define	ESF_DZ_TX_DESC_IS_OPT_WIDTH 1
    358#define	ESF_DZ_TX_OPTION_TYPE_LBN 60
    359#define	ESF_DZ_TX_OPTION_TYPE_WIDTH 3
    360#define	ESE_DZ_TX_OPTION_DESC_TSO 7
    361#define	ESE_DZ_TX_OPTION_DESC_VLAN 6
    362#define	ESE_DZ_TX_OPTION_DESC_CRC_CSUM 0
    363#define	ESF_DZ_TX_TSO_OPTION_TYPE_LBN 56
    364#define	ESF_DZ_TX_TSO_OPTION_TYPE_WIDTH 4
    365#define	ESE_DZ_TX_TSO_OPTION_DESC_FATSO2B 3
    366#define	ESE_DZ_TX_TSO_OPTION_DESC_FATSO2A 2
    367#define	ESE_DZ_TX_TSO_OPTION_DESC_ENCAP 1
    368#define	ESE_DZ_TX_TSO_OPTION_DESC_NORMAL 0
    369#define	ESF_DZ_TX_TSO_IP_ID_LBN 32
    370#define	ESF_DZ_TX_TSO_IP_ID_WIDTH 16
    371#define	ESF_DZ_TX_TSO_TCP_SEQNO_LBN 0
    372#define	ESF_DZ_TX_TSO_TCP_SEQNO_WIDTH 32
    373
    374/* TX_TSO_V2_DESC_B */
    375#define	ESF_DZ_TX_DESC_IS_OPT_LBN 63
    376#define	ESF_DZ_TX_DESC_IS_OPT_WIDTH 1
    377#define	ESF_DZ_TX_OPTION_TYPE_LBN 60
    378#define	ESF_DZ_TX_OPTION_TYPE_WIDTH 3
    379#define	ESE_DZ_TX_OPTION_DESC_TSO 7
    380#define	ESE_DZ_TX_OPTION_DESC_VLAN 6
    381#define	ESE_DZ_TX_OPTION_DESC_CRC_CSUM 0
    382#define	ESF_DZ_TX_TSO_OPTION_TYPE_LBN 56
    383#define	ESF_DZ_TX_TSO_OPTION_TYPE_WIDTH 4
    384#define	ESE_DZ_TX_TSO_OPTION_DESC_FATSO2B 3
    385#define	ESE_DZ_TX_TSO_OPTION_DESC_FATSO2A 2
    386#define	ESE_DZ_TX_TSO_OPTION_DESC_ENCAP 1
    387#define	ESE_DZ_TX_TSO_OPTION_DESC_NORMAL 0
    388#define	ESF_DZ_TX_TSO_TCP_MSS_LBN 32
    389#define	ESF_DZ_TX_TSO_TCP_MSS_WIDTH 16
    390#define	ESF_DZ_TX_TSO_OUTER_IPID_LBN 0
    391#define	ESF_DZ_TX_TSO_OUTER_IPID_WIDTH 16
    392
    393/*************************************************************************/
    394
    395/* TX_DESC_UPD_REG: Transmit descriptor update register.
    396 * We may write just one dword of these registers.
    397 */
    398#define ER_DZ_TX_DESC_UPD_DWORD		(ER_DZ_TX_DESC_UPD + 2 * 4)
    399#define ERF_DZ_TX_DESC_WPTR_DWORD_LBN	(ERF_DZ_TX_DESC_WPTR_LBN - 2 * 32)
    400#define ERF_DZ_TX_DESC_WPTR_DWORD_WIDTH	ERF_DZ_TX_DESC_WPTR_WIDTH
    401
    402/* The workaround for bug 35388 requires multiplexing writes through
    403 * the TX_DESC_UPD_DWORD address.
    404 * TX_DESC_UPD: 0ppppppppppp               (bit 11 lost)
    405 * EVQ_RPTR:    1000hhhhhhhh, 1001llllllll (split into high and low bits)
    406 * EVQ_TMR:     11mmvvvvvvvv               (bits 8:13 of value lost)
    407 */
    408#define ER_DD_EVQ_INDIRECT		ER_DZ_TX_DESC_UPD_DWORD
    409#define ERF_DD_EVQ_IND_RPTR_FLAGS_LBN	8
    410#define ERF_DD_EVQ_IND_RPTR_FLAGS_WIDTH	4
    411#define EFE_DD_EVQ_IND_RPTR_FLAGS_HIGH	8
    412#define EFE_DD_EVQ_IND_RPTR_FLAGS_LOW	9
    413#define ERF_DD_EVQ_IND_RPTR_LBN		0
    414#define ERF_DD_EVQ_IND_RPTR_WIDTH	8
    415#define ERF_DD_EVQ_IND_TIMER_FLAGS_LBN	10
    416#define ERF_DD_EVQ_IND_TIMER_FLAGS_WIDTH 2
    417#define EFE_DD_EVQ_IND_TIMER_FLAGS	3
    418#define ERF_DD_EVQ_IND_TIMER_MODE_LBN	8
    419#define ERF_DD_EVQ_IND_TIMER_MODE_WIDTH	2
    420#define ERF_DD_EVQ_IND_TIMER_VAL_LBN	0
    421#define ERF_DD_EVQ_IND_TIMER_VAL_WIDTH	8
    422
    423/* TX_PIOBUF
    424 * PIO buffer aperture (paged)
    425 */
    426#define ER_DZ_TX_PIOBUF 4096
    427#define ER_DZ_TX_PIOBUF_SIZE 2048
    428
    429/* RX packet prefix */
    430#define ES_DZ_RX_PREFIX_HASH_OFST 0
    431#define ES_DZ_RX_PREFIX_VLAN1_OFST 4
    432#define ES_DZ_RX_PREFIX_VLAN2_OFST 6
    433#define ES_DZ_RX_PREFIX_PKTLEN_OFST 8
    434#define ES_DZ_RX_PREFIX_TSTAMP_OFST 10
    435#define ES_DZ_RX_PREFIX_SIZE 14
    436
    437#endif /* EFX_EF10_REGS_H */