Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-only */
0002 /****************************************************************************
0003  * Driver for Solarflare network controllers and boards
0004  * Copyright 2012-2017 Solarflare Communications Inc.
0005  */
0006 
0007 #ifndef EFX_EF10_REGS_H
0008 #define EFX_EF10_REGS_H
0009 
0010 /* EF10 hardware architecture definitions have a name prefix following
0011  * the format:
0012  *
0013  *     E<type>_<min-rev><max-rev>_
0014  *
0015  * The following <type> strings are used:
0016  *
0017  *             MMIO register  Host memory structure
0018  * -------------------------------------------------------------
0019  * Address     R
0020  * Bitfield    RF             SF
0021  * Enumerator  FE             SE
0022  *
0023  * <min-rev> is the first revision to which the definition applies:
0024  *
0025  *     D: Huntington A0
0026  *
0027  * If the definition has been changed or removed in later revisions
0028  * then <max-rev> is the last revision to which the definition applies;
0029  * otherwise it is "Z".
0030  */
0031 
0032 /**************************************************************************
0033  *
0034  * EF10 registers and descriptors
0035  *
0036  **************************************************************************
0037  */
0038 
0039 /* BIU_HW_REV_ID_REG:  */
0040 #define ER_DZ_BIU_HW_REV_ID 0x00000000
0041 #define ERF_DZ_HW_REV_ID_LBN 0
0042 #define ERF_DZ_HW_REV_ID_WIDTH 32
0043 
0044 /* BIU_MC_SFT_STATUS_REG:  */
0045 #define ER_DZ_BIU_MC_SFT_STATUS 0x00000010
0046 #define ER_DZ_BIU_MC_SFT_STATUS_STEP 4
0047 #define ER_DZ_BIU_MC_SFT_STATUS_ROWS 8
0048 #define ERF_DZ_MC_SFT_STATUS_LBN 0
0049 #define ERF_DZ_MC_SFT_STATUS_WIDTH 32
0050 
0051 /* BIU_INT_ISR_REG:  */
0052 #define ER_DZ_BIU_INT_ISR 0x00000090
0053 #define ERF_DZ_ISR_REG_LBN 0
0054 #define ERF_DZ_ISR_REG_WIDTH 32
0055 
0056 /* MC_DB_LWRD_REG:  */
0057 #define ER_DZ_MC_DB_LWRD 0x00000200
0058 #define ERF_DZ_MC_DOORBELL_L_LBN 0
0059 #define ERF_DZ_MC_DOORBELL_L_WIDTH 32
0060 
0061 /* MC_DB_HWRD_REG:  */
0062 #define ER_DZ_MC_DB_HWRD 0x00000204
0063 #define ERF_DZ_MC_DOORBELL_H_LBN 0
0064 #define ERF_DZ_MC_DOORBELL_H_WIDTH 32
0065 
0066 /* EVQ_RPTR_REG:  */
0067 #define ER_DZ_EVQ_RPTR 0x00000400
0068 #define ER_DZ_EVQ_RPTR_STEP 8192
0069 #define ER_DZ_EVQ_RPTR_ROWS 2048
0070 #define ERF_DZ_EVQ_RPTR_VLD_LBN 15
0071 #define ERF_DZ_EVQ_RPTR_VLD_WIDTH 1
0072 #define ERF_DZ_EVQ_RPTR_LBN 0
0073 #define ERF_DZ_EVQ_RPTR_WIDTH 15
0074 
0075 /* EVQ_TMR_REG:  */
0076 #define ER_DZ_EVQ_TMR 0x00000420
0077 #define ER_DZ_EVQ_TMR_STEP 8192
0078 #define ER_DZ_EVQ_TMR_ROWS 2048
0079 #define ERF_FZ_TC_TMR_REL_VAL_LBN 16
0080 #define ERF_FZ_TC_TMR_REL_VAL_WIDTH 14
0081 #define ERF_DZ_TC_TIMER_MODE_LBN 14
0082 #define ERF_DZ_TC_TIMER_MODE_WIDTH 2
0083 #define ERF_DZ_TC_TIMER_VAL_LBN 0
0084 #define ERF_DZ_TC_TIMER_VAL_WIDTH 14
0085 
0086 /* RX_DESC_UPD_REG:  */
0087 #define ER_DZ_RX_DESC_UPD 0x00000830
0088 #define ER_DZ_RX_DESC_UPD_STEP 8192
0089 #define ER_DZ_RX_DESC_UPD_ROWS 2048
0090 #define ERF_DZ_RX_DESC_WPTR_LBN 0
0091 #define ERF_DZ_RX_DESC_WPTR_WIDTH 12
0092 
0093 /* TX_DESC_UPD_REG:  */
0094 #define ER_DZ_TX_DESC_UPD 0x00000a10
0095 #define ER_DZ_TX_DESC_UPD_STEP 8192
0096 #define ER_DZ_TX_DESC_UPD_ROWS 2048
0097 #define ERF_DZ_RSVD_LBN 76
0098 #define ERF_DZ_RSVD_WIDTH 20
0099 #define ERF_DZ_TX_DESC_WPTR_LBN 64
0100 #define ERF_DZ_TX_DESC_WPTR_WIDTH 12
0101 #define ERF_DZ_TX_DESC_HWORD_LBN 32
0102 #define ERF_DZ_TX_DESC_HWORD_WIDTH 32
0103 #define ERF_DZ_TX_DESC_LWORD_LBN 0
0104 #define ERF_DZ_TX_DESC_LWORD_WIDTH 32
0105 
0106 /* DRIVER_EV */
0107 #define ESF_DZ_DRV_CODE_LBN 60
0108 #define ESF_DZ_DRV_CODE_WIDTH 4
0109 #define ESF_DZ_DRV_SUB_CODE_LBN 56
0110 #define ESF_DZ_DRV_SUB_CODE_WIDTH 4
0111 #define ESE_DZ_DRV_TIMER_EV 3
0112 #define ESE_DZ_DRV_START_UP_EV 2
0113 #define ESE_DZ_DRV_WAKE_UP_EV 1
0114 #define ESF_DZ_DRV_SUB_DATA_LBN 0
0115 #define ESF_DZ_DRV_SUB_DATA_WIDTH 56
0116 #define ESF_DZ_DRV_EVQ_ID_LBN 0
0117 #define ESF_DZ_DRV_EVQ_ID_WIDTH 14
0118 #define ESF_DZ_DRV_TMR_ID_LBN 0
0119 #define ESF_DZ_DRV_TMR_ID_WIDTH 14
0120 
0121 /* EVENT_ENTRY */
0122 #define ESF_DZ_EV_CODE_LBN 60
0123 #define ESF_DZ_EV_CODE_WIDTH 4
0124 #define ESE_DZ_EV_CODE_MCDI_EV 12
0125 #define ESE_DZ_EV_CODE_DRIVER_EV 5
0126 #define ESE_DZ_EV_CODE_TX_EV 2
0127 #define ESE_DZ_EV_CODE_RX_EV 0
0128 #define ESE_DZ_OTHER other
0129 #define ESF_DZ_EV_DATA_LBN 0
0130 #define ESF_DZ_EV_DATA_WIDTH 60
0131 
0132 /* MC_EVENT */
0133 #define ESF_DZ_MC_CODE_LBN 60
0134 #define ESF_DZ_MC_CODE_WIDTH 4
0135 #define ESF_DZ_MC_OVERRIDE_HOLDOFF_LBN 59
0136 #define ESF_DZ_MC_OVERRIDE_HOLDOFF_WIDTH 1
0137 #define ESF_DZ_MC_DROP_EVENT_LBN 58
0138 #define ESF_DZ_MC_DROP_EVENT_WIDTH 1
0139 #define ESF_DZ_MC_SOFT_LBN 0
0140 #define ESF_DZ_MC_SOFT_WIDTH 58
0141 
0142 /* RX_EVENT */
0143 #define ESF_DZ_RX_CODE_LBN 60
0144 #define ESF_DZ_RX_CODE_WIDTH 4
0145 #define ESF_DZ_RX_OVERRIDE_HOLDOFF_LBN 59
0146 #define ESF_DZ_RX_OVERRIDE_HOLDOFF_WIDTH 1
0147 #define ESF_DZ_RX_DROP_EVENT_LBN 58
0148 #define ESF_DZ_RX_DROP_EVENT_WIDTH 1
0149 #define ESF_DD_RX_EV_RSVD2_LBN 54
0150 #define ESF_DD_RX_EV_RSVD2_WIDTH 4
0151 #define ESF_EZ_RX_TCP_UDP_INNER_CHKSUM_ERR_LBN 57
0152 #define ESF_EZ_RX_TCP_UDP_INNER_CHKSUM_ERR_WIDTH 1
0153 #define ESF_EZ_RX_IP_INNER_CHKSUM_ERR_LBN 56
0154 #define ESF_EZ_RX_IP_INNER_CHKSUM_ERR_WIDTH 1
0155 #define ESF_EZ_RX_EV_RSVD2_LBN 54
0156 #define ESF_EZ_RX_EV_RSVD2_WIDTH 2
0157 #define ESF_DZ_RX_EV_SOFT2_LBN 52
0158 #define ESF_DZ_RX_EV_SOFT2_WIDTH 2
0159 #define ESF_DZ_RX_DSC_PTR_LBITS_LBN 48
0160 #define ESF_DZ_RX_DSC_PTR_LBITS_WIDTH 4
0161 #define ESF_DE_RX_L4_CLASS_LBN 45
0162 #define ESF_DE_RX_L4_CLASS_WIDTH 3
0163 #define ESE_DE_L4_CLASS_RSVD7 7
0164 #define ESE_DE_L4_CLASS_RSVD6 6
0165 #define ESE_DE_L4_CLASS_RSVD5 5
0166 #define ESE_DE_L4_CLASS_RSVD4 4
0167 #define ESE_DE_L4_CLASS_RSVD3 3
0168 #define ESE_DE_L4_CLASS_UDP 2
0169 #define ESE_DE_L4_CLASS_TCP 1
0170 #define ESE_DE_L4_CLASS_UNKNOWN 0
0171 #define ESF_FZ_RX_FASTPD_INDCTR_LBN 47
0172 #define ESF_FZ_RX_FASTPD_INDCTR_WIDTH 1
0173 #define ESF_FZ_RX_L4_CLASS_LBN 45
0174 #define ESF_FZ_RX_L4_CLASS_WIDTH 2
0175 #define ESE_FZ_L4_CLASS_RSVD3 3
0176 #define ESE_FZ_L4_CLASS_UDP 2
0177 #define ESE_FZ_L4_CLASS_TCP 1
0178 #define ESE_FZ_L4_CLASS_UNKNOWN 0
0179 #define ESF_DZ_RX_L3_CLASS_LBN 42
0180 #define ESF_DZ_RX_L3_CLASS_WIDTH 3
0181 #define ESE_DZ_L3_CLASS_RSVD7 7
0182 #define ESE_DZ_L3_CLASS_IP6_FRAG 6
0183 #define ESE_DZ_L3_CLASS_ARP 5
0184 #define ESE_DZ_L3_CLASS_IP4_FRAG 4
0185 #define ESE_DZ_L3_CLASS_FCOE 3
0186 #define ESE_DZ_L3_CLASS_IP6 2
0187 #define ESE_DZ_L3_CLASS_IP4 1
0188 #define ESE_DZ_L3_CLASS_UNKNOWN 0
0189 #define ESF_DZ_RX_ETH_TAG_CLASS_LBN 39
0190 #define ESF_DZ_RX_ETH_TAG_CLASS_WIDTH 3
0191 #define ESE_DZ_ETH_TAG_CLASS_RSVD7 7
0192 #define ESE_DZ_ETH_TAG_CLASS_RSVD6 6
0193 #define ESE_DZ_ETH_TAG_CLASS_RSVD5 5
0194 #define ESE_DZ_ETH_TAG_CLASS_RSVD4 4
0195 #define ESE_DZ_ETH_TAG_CLASS_RSVD3 3
0196 #define ESE_DZ_ETH_TAG_CLASS_VLAN2 2
0197 #define ESE_DZ_ETH_TAG_CLASS_VLAN1 1
0198 #define ESE_DZ_ETH_TAG_CLASS_NONE 0
0199 #define ESF_DZ_RX_ETH_BASE_CLASS_LBN 36
0200 #define ESF_DZ_RX_ETH_BASE_CLASS_WIDTH 3
0201 #define ESE_DZ_ETH_BASE_CLASS_LLC_SNAP 2
0202 #define ESE_DZ_ETH_BASE_CLASS_LLC 1
0203 #define ESE_DZ_ETH_BASE_CLASS_ETH2 0
0204 #define ESF_DZ_RX_MAC_CLASS_LBN 35
0205 #define ESF_DZ_RX_MAC_CLASS_WIDTH 1
0206 #define ESE_DZ_MAC_CLASS_MCAST 1
0207 #define ESE_DZ_MAC_CLASS_UCAST 0
0208 #define ESF_DD_RX_EV_SOFT1_LBN 32
0209 #define ESF_DD_RX_EV_SOFT1_WIDTH 3
0210 #define ESF_EZ_RX_EV_SOFT1_LBN 34
0211 #define ESF_EZ_RX_EV_SOFT1_WIDTH 1
0212 #define ESF_EZ_RX_ENCAP_HDR_LBN 32
0213 #define ESF_EZ_RX_ENCAP_HDR_WIDTH 2
0214 #define ESE_EZ_ENCAP_HDR_GRE 2
0215 #define ESE_EZ_ENCAP_HDR_VXLAN 1
0216 #define ESE_EZ_ENCAP_HDR_NONE 0
0217 #define ESF_DD_RX_EV_RSVD1_LBN 30
0218 #define ESF_DD_RX_EV_RSVD1_WIDTH 2
0219 #define ESF_EZ_RX_EV_RSVD1_LBN 31
0220 #define ESF_EZ_RX_EV_RSVD1_WIDTH 1
0221 #define ESF_EZ_RX_ABORT_LBN 30
0222 #define ESF_EZ_RX_ABORT_WIDTH 1
0223 #define ESF_DZ_RX_ECC_ERR_LBN 29
0224 #define ESF_DZ_RX_ECC_ERR_WIDTH 1
0225 #define ESF_DZ_RX_TRUNC_ERR_LBN 29
0226 #define ESF_DZ_RX_TRUNC_ERR_WIDTH 1
0227 #define ESF_DZ_RX_CRC1_ERR_LBN 28
0228 #define ESF_DZ_RX_CRC1_ERR_WIDTH 1
0229 #define ESF_DZ_RX_CRC0_ERR_LBN 27
0230 #define ESF_DZ_RX_CRC0_ERR_WIDTH 1
0231 #define ESF_DZ_RX_TCPUDP_CKSUM_ERR_LBN 26
0232 #define ESF_DZ_RX_TCPUDP_CKSUM_ERR_WIDTH 1
0233 #define ESF_DZ_RX_IPCKSUM_ERR_LBN 25
0234 #define ESF_DZ_RX_IPCKSUM_ERR_WIDTH 1
0235 #define ESF_DZ_RX_ECRC_ERR_LBN 24
0236 #define ESF_DZ_RX_ECRC_ERR_WIDTH 1
0237 #define ESF_DZ_RX_QLABEL_LBN 16
0238 #define ESF_DZ_RX_QLABEL_WIDTH 5
0239 #define ESF_DZ_RX_PARSE_INCOMPLETE_LBN 15
0240 #define ESF_DZ_RX_PARSE_INCOMPLETE_WIDTH 1
0241 #define ESF_DZ_RX_CONT_LBN 14
0242 #define ESF_DZ_RX_CONT_WIDTH 1
0243 #define ESF_DZ_RX_BYTES_LBN 0
0244 #define ESF_DZ_RX_BYTES_WIDTH 14
0245 
0246 /* RX_KER_DESC */
0247 #define ESF_DZ_RX_KER_RESERVED_LBN 62
0248 #define ESF_DZ_RX_KER_RESERVED_WIDTH 2
0249 #define ESF_DZ_RX_KER_BYTE_CNT_LBN 48
0250 #define ESF_DZ_RX_KER_BYTE_CNT_WIDTH 14
0251 #define ESF_DZ_RX_KER_BUF_ADDR_LBN 0
0252 #define ESF_DZ_RX_KER_BUF_ADDR_WIDTH 48
0253 
0254 /* TX_CSUM_TSTAMP_DESC */
0255 #define ESF_DZ_TX_DESC_IS_OPT_LBN 63
0256 #define ESF_DZ_TX_DESC_IS_OPT_WIDTH 1
0257 #define ESF_DZ_TX_OPTION_TYPE_LBN 60
0258 #define ESF_DZ_TX_OPTION_TYPE_WIDTH 3
0259 #define ESE_DZ_TX_OPTION_DESC_TSO 7
0260 #define ESE_DZ_TX_OPTION_DESC_VLAN 6
0261 #define ESE_DZ_TX_OPTION_DESC_CRC_CSUM 0
0262 #define ESF_DZ_TX_OPTION_TS_AT_TXDP_LBN 8
0263 #define ESF_DZ_TX_OPTION_TS_AT_TXDP_WIDTH 1
0264 #define ESF_DZ_TX_OPTION_INNER_UDP_TCP_CSUM_LBN 7
0265 #define ESF_DZ_TX_OPTION_INNER_UDP_TCP_CSUM_WIDTH 1
0266 #define ESF_DZ_TX_OPTION_INNER_IP_CSUM_LBN 6
0267 #define ESF_DZ_TX_OPTION_INNER_IP_CSUM_WIDTH 1
0268 #define ESF_DZ_TX_TIMESTAMP_LBN 5
0269 #define ESF_DZ_TX_TIMESTAMP_WIDTH 1
0270 #define ESF_DZ_TX_OPTION_CRC_MODE_LBN 2
0271 #define ESF_DZ_TX_OPTION_CRC_MODE_WIDTH 3
0272 #define ESE_DZ_TX_OPTION_CRC_FCOIP_MPA 5
0273 #define ESE_DZ_TX_OPTION_CRC_FCOIP_FCOE 4
0274 #define ESE_DZ_TX_OPTION_CRC_ISCSI_HDR_AND_PYLD 3
0275 #define ESE_DZ_TX_OPTION_CRC_ISCSI_HDR 2
0276 #define ESE_DZ_TX_OPTION_CRC_FCOE 1
0277 #define ESE_DZ_TX_OPTION_CRC_OFF 0
0278 #define ESF_DZ_TX_OPTION_UDP_TCP_CSUM_LBN 1
0279 #define ESF_DZ_TX_OPTION_UDP_TCP_CSUM_WIDTH 1
0280 #define ESF_DZ_TX_OPTION_IP_CSUM_LBN 0
0281 #define ESF_DZ_TX_OPTION_IP_CSUM_WIDTH 1
0282 
0283 /* TX_EVENT */
0284 #define ESF_DZ_TX_CODE_LBN 60
0285 #define ESF_DZ_TX_CODE_WIDTH 4
0286 #define ESF_DZ_TX_OVERRIDE_HOLDOFF_LBN 59
0287 #define ESF_DZ_TX_OVERRIDE_HOLDOFF_WIDTH 1
0288 #define ESF_DZ_TX_DROP_EVENT_LBN 58
0289 #define ESF_DZ_TX_DROP_EVENT_WIDTH 1
0290 #define ESF_DD_TX_EV_RSVD_LBN 48
0291 #define ESF_DD_TX_EV_RSVD_WIDTH 10
0292 #define ESF_EZ_TCP_UDP_INNER_CHKSUM_ERR_LBN 57
0293 #define ESF_EZ_TCP_UDP_INNER_CHKSUM_ERR_WIDTH 1
0294 #define ESF_EZ_IP_INNER_CHKSUM_ERR_LBN 56
0295 #define ESF_EZ_IP_INNER_CHKSUM_ERR_WIDTH 1
0296 #define ESF_EZ_TX_EV_RSVD_LBN 48
0297 #define ESF_EZ_TX_EV_RSVD_WIDTH 8
0298 #define ESF_DZ_TX_SOFT2_LBN 32
0299 #define ESF_DZ_TX_SOFT2_WIDTH 16
0300 #define ESF_DD_TX_SOFT1_LBN 24
0301 #define ESF_DD_TX_SOFT1_WIDTH 8
0302 #define ESF_EZ_TX_CAN_MERGE_LBN 31
0303 #define ESF_EZ_TX_CAN_MERGE_WIDTH 1
0304 #define ESF_EZ_TX_SOFT1_LBN 24
0305 #define ESF_EZ_TX_SOFT1_WIDTH 7
0306 #define ESF_DZ_TX_QLABEL_LBN 16
0307 #define ESF_DZ_TX_QLABEL_WIDTH 5
0308 #define ESF_DZ_TX_DESCR_INDX_LBN 0
0309 #define ESF_DZ_TX_DESCR_INDX_WIDTH 16
0310 
0311 /* TX_KER_DESC */
0312 #define ESF_DZ_TX_KER_TYPE_LBN 63
0313 #define ESF_DZ_TX_KER_TYPE_WIDTH 1
0314 #define ESF_DZ_TX_KER_CONT_LBN 62
0315 #define ESF_DZ_TX_KER_CONT_WIDTH 1
0316 #define ESF_DZ_TX_KER_BYTE_CNT_LBN 48
0317 #define ESF_DZ_TX_KER_BYTE_CNT_WIDTH 14
0318 #define ESF_DZ_TX_KER_BUF_ADDR_LBN 0
0319 #define ESF_DZ_TX_KER_BUF_ADDR_WIDTH 48
0320 
0321 /* TX_PIO_DESC */
0322 #define ESF_DZ_TX_PIO_TYPE_LBN 63
0323 #define ESF_DZ_TX_PIO_TYPE_WIDTH 1
0324 #define ESF_DZ_TX_PIO_OPT_LBN 60
0325 #define ESF_DZ_TX_PIO_OPT_WIDTH 3
0326 #define ESE_DZ_TX_OPTION_DESC_PIO 1
0327 #define ESF_DZ_TX_PIO_CONT_LBN 59
0328 #define ESF_DZ_TX_PIO_CONT_WIDTH 1
0329 #define ESF_DZ_TX_PIO_BYTE_CNT_LBN 32
0330 #define ESF_DZ_TX_PIO_BYTE_CNT_WIDTH 12
0331 #define ESF_DZ_TX_PIO_BUF_ADDR_LBN 0
0332 #define ESF_DZ_TX_PIO_BUF_ADDR_WIDTH 12
0333 
0334 /* TX_TSO_DESC */
0335 #define ESF_DZ_TX_DESC_IS_OPT_LBN 63
0336 #define ESF_DZ_TX_DESC_IS_OPT_WIDTH 1
0337 #define ESF_DZ_TX_OPTION_TYPE_LBN 60
0338 #define ESF_DZ_TX_OPTION_TYPE_WIDTH 3
0339 #define ESE_DZ_TX_OPTION_DESC_TSO 7
0340 #define ESE_DZ_TX_OPTION_DESC_VLAN 6
0341 #define ESE_DZ_TX_OPTION_DESC_CRC_CSUM 0
0342 #define ESF_DZ_TX_TSO_OPTION_TYPE_LBN 56
0343 #define ESF_DZ_TX_TSO_OPTION_TYPE_WIDTH 4
0344 #define ESE_DZ_TX_TSO_OPTION_DESC_FATSO2B 3
0345 #define ESE_DZ_TX_TSO_OPTION_DESC_FATSO2A 2
0346 #define ESE_DZ_TX_TSO_OPTION_DESC_ENCAP 1
0347 #define ESE_DZ_TX_TSO_OPTION_DESC_NORMAL 0
0348 #define ESF_DZ_TX_TSO_TCP_FLAGS_LBN 48
0349 #define ESF_DZ_TX_TSO_TCP_FLAGS_WIDTH 8
0350 #define ESF_DZ_TX_TSO_IP_ID_LBN 32
0351 #define ESF_DZ_TX_TSO_IP_ID_WIDTH 16
0352 #define ESF_DZ_TX_TSO_TCP_SEQNO_LBN 0
0353 #define ESF_DZ_TX_TSO_TCP_SEQNO_WIDTH 32
0354 
0355 /* TX_TSO_V2_DESC_A */
0356 #define ESF_DZ_TX_DESC_IS_OPT_LBN 63
0357 #define ESF_DZ_TX_DESC_IS_OPT_WIDTH 1
0358 #define ESF_DZ_TX_OPTION_TYPE_LBN 60
0359 #define ESF_DZ_TX_OPTION_TYPE_WIDTH 3
0360 #define ESE_DZ_TX_OPTION_DESC_TSO 7
0361 #define ESE_DZ_TX_OPTION_DESC_VLAN 6
0362 #define ESE_DZ_TX_OPTION_DESC_CRC_CSUM 0
0363 #define ESF_DZ_TX_TSO_OPTION_TYPE_LBN 56
0364 #define ESF_DZ_TX_TSO_OPTION_TYPE_WIDTH 4
0365 #define ESE_DZ_TX_TSO_OPTION_DESC_FATSO2B 3
0366 #define ESE_DZ_TX_TSO_OPTION_DESC_FATSO2A 2
0367 #define ESE_DZ_TX_TSO_OPTION_DESC_ENCAP 1
0368 #define ESE_DZ_TX_TSO_OPTION_DESC_NORMAL 0
0369 #define ESF_DZ_TX_TSO_IP_ID_LBN 32
0370 #define ESF_DZ_TX_TSO_IP_ID_WIDTH 16
0371 #define ESF_DZ_TX_TSO_TCP_SEQNO_LBN 0
0372 #define ESF_DZ_TX_TSO_TCP_SEQNO_WIDTH 32
0373 
0374 /* TX_TSO_V2_DESC_B */
0375 #define ESF_DZ_TX_DESC_IS_OPT_LBN 63
0376 #define ESF_DZ_TX_DESC_IS_OPT_WIDTH 1
0377 #define ESF_DZ_TX_OPTION_TYPE_LBN 60
0378 #define ESF_DZ_TX_OPTION_TYPE_WIDTH 3
0379 #define ESE_DZ_TX_OPTION_DESC_TSO 7
0380 #define ESE_DZ_TX_OPTION_DESC_VLAN 6
0381 #define ESE_DZ_TX_OPTION_DESC_CRC_CSUM 0
0382 #define ESF_DZ_TX_TSO_OPTION_TYPE_LBN 56
0383 #define ESF_DZ_TX_TSO_OPTION_TYPE_WIDTH 4
0384 #define ESE_DZ_TX_TSO_OPTION_DESC_FATSO2B 3
0385 #define ESE_DZ_TX_TSO_OPTION_DESC_FATSO2A 2
0386 #define ESE_DZ_TX_TSO_OPTION_DESC_ENCAP 1
0387 #define ESE_DZ_TX_TSO_OPTION_DESC_NORMAL 0
0388 #define ESF_DZ_TX_TSO_TCP_MSS_LBN 32
0389 #define ESF_DZ_TX_TSO_TCP_MSS_WIDTH 16
0390 #define ESF_DZ_TX_TSO_OUTER_IPID_LBN 0
0391 #define ESF_DZ_TX_TSO_OUTER_IPID_WIDTH 16
0392 
0393 /*************************************************************************/
0394 
0395 /* TX_DESC_UPD_REG: Transmit descriptor update register.
0396  * We may write just one dword of these registers.
0397  */
0398 #define ER_DZ_TX_DESC_UPD_DWORD     (ER_DZ_TX_DESC_UPD + 2 * 4)
0399 #define ERF_DZ_TX_DESC_WPTR_DWORD_LBN   (ERF_DZ_TX_DESC_WPTR_LBN - 2 * 32)
0400 #define ERF_DZ_TX_DESC_WPTR_DWORD_WIDTH ERF_DZ_TX_DESC_WPTR_WIDTH
0401 
0402 /* The workaround for bug 35388 requires multiplexing writes through
0403  * the TX_DESC_UPD_DWORD address.
0404  * TX_DESC_UPD: 0ppppppppppp               (bit 11 lost)
0405  * EVQ_RPTR:    1000hhhhhhhh, 1001llllllll (split into high and low bits)
0406  * EVQ_TMR:     11mmvvvvvvvv               (bits 8:13 of value lost)
0407  */
0408 #define ER_DD_EVQ_INDIRECT      ER_DZ_TX_DESC_UPD_DWORD
0409 #define ERF_DD_EVQ_IND_RPTR_FLAGS_LBN   8
0410 #define ERF_DD_EVQ_IND_RPTR_FLAGS_WIDTH 4
0411 #define EFE_DD_EVQ_IND_RPTR_FLAGS_HIGH  8
0412 #define EFE_DD_EVQ_IND_RPTR_FLAGS_LOW   9
0413 #define ERF_DD_EVQ_IND_RPTR_LBN     0
0414 #define ERF_DD_EVQ_IND_RPTR_WIDTH   8
0415 #define ERF_DD_EVQ_IND_TIMER_FLAGS_LBN  10
0416 #define ERF_DD_EVQ_IND_TIMER_FLAGS_WIDTH 2
0417 #define EFE_DD_EVQ_IND_TIMER_FLAGS  3
0418 #define ERF_DD_EVQ_IND_TIMER_MODE_LBN   8
0419 #define ERF_DD_EVQ_IND_TIMER_MODE_WIDTH 2
0420 #define ERF_DD_EVQ_IND_TIMER_VAL_LBN    0
0421 #define ERF_DD_EVQ_IND_TIMER_VAL_WIDTH  8
0422 
0423 /* TX_PIOBUF
0424  * PIO buffer aperture (paged)
0425  */
0426 #define ER_DZ_TX_PIOBUF 4096
0427 #define ER_DZ_TX_PIOBUF_SIZE 2048
0428 
0429 /* RX packet prefix */
0430 #define ES_DZ_RX_PREFIX_HASH_OFST 0
0431 #define ES_DZ_RX_PREFIX_VLAN1_OFST 4
0432 #define ES_DZ_RX_PREFIX_VLAN2_OFST 6
0433 #define ES_DZ_RX_PREFIX_PKTLEN_OFST 8
0434 #define ES_DZ_RX_PREFIX_TSTAMP_OFST 10
0435 #define ES_DZ_RX_PREFIX_SIZE 14
0436 
0437 #endif /* EFX_EF10_REGS_H */