18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */
28c2ecf20Sopenharmony_ci/****************************************************************************
38c2ecf20Sopenharmony_ci * Driver for Solarflare network controllers and boards
48c2ecf20Sopenharmony_ci * Copyright 2012-2017 Solarflare Communications Inc.
58c2ecf20Sopenharmony_ci */
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_ci#ifndef EFX_EF10_REGS_H
88c2ecf20Sopenharmony_ci#define EFX_EF10_REGS_H
98c2ecf20Sopenharmony_ci
108c2ecf20Sopenharmony_ci/* EF10 hardware architecture definitions have a name prefix following
118c2ecf20Sopenharmony_ci * the format:
128c2ecf20Sopenharmony_ci *
138c2ecf20Sopenharmony_ci *     E<type>_<min-rev><max-rev>_
148c2ecf20Sopenharmony_ci *
158c2ecf20Sopenharmony_ci * The following <type> strings are used:
168c2ecf20Sopenharmony_ci *
178c2ecf20Sopenharmony_ci *             MMIO register  Host memory structure
188c2ecf20Sopenharmony_ci * -------------------------------------------------------------
198c2ecf20Sopenharmony_ci * Address     R
208c2ecf20Sopenharmony_ci * Bitfield    RF             SF
218c2ecf20Sopenharmony_ci * Enumerator  FE             SE
228c2ecf20Sopenharmony_ci *
238c2ecf20Sopenharmony_ci * <min-rev> is the first revision to which the definition applies:
248c2ecf20Sopenharmony_ci *
258c2ecf20Sopenharmony_ci *     D: Huntington A0
268c2ecf20Sopenharmony_ci *
278c2ecf20Sopenharmony_ci * If the definition has been changed or removed in later revisions
288c2ecf20Sopenharmony_ci * then <max-rev> is the last revision to which the definition applies;
298c2ecf20Sopenharmony_ci * otherwise it is "Z".
308c2ecf20Sopenharmony_ci */
318c2ecf20Sopenharmony_ci
328c2ecf20Sopenharmony_ci/**************************************************************************
338c2ecf20Sopenharmony_ci *
348c2ecf20Sopenharmony_ci * EF10 registers and descriptors
358c2ecf20Sopenharmony_ci *
368c2ecf20Sopenharmony_ci **************************************************************************
378c2ecf20Sopenharmony_ci */
388c2ecf20Sopenharmony_ci
398c2ecf20Sopenharmony_ci/* BIU_HW_REV_ID_REG:  */
408c2ecf20Sopenharmony_ci#define	ER_DZ_BIU_HW_REV_ID 0x00000000
418c2ecf20Sopenharmony_ci#define	ERF_DZ_HW_REV_ID_LBN 0
428c2ecf20Sopenharmony_ci#define	ERF_DZ_HW_REV_ID_WIDTH 32
438c2ecf20Sopenharmony_ci
448c2ecf20Sopenharmony_ci/* BIU_MC_SFT_STATUS_REG:  */
458c2ecf20Sopenharmony_ci#define	ER_DZ_BIU_MC_SFT_STATUS 0x00000010
468c2ecf20Sopenharmony_ci#define	ER_DZ_BIU_MC_SFT_STATUS_STEP 4
478c2ecf20Sopenharmony_ci#define	ER_DZ_BIU_MC_SFT_STATUS_ROWS 8
488c2ecf20Sopenharmony_ci#define	ERF_DZ_MC_SFT_STATUS_LBN 0
498c2ecf20Sopenharmony_ci#define	ERF_DZ_MC_SFT_STATUS_WIDTH 32
508c2ecf20Sopenharmony_ci
518c2ecf20Sopenharmony_ci/* BIU_INT_ISR_REG:  */
528c2ecf20Sopenharmony_ci#define	ER_DZ_BIU_INT_ISR 0x00000090
538c2ecf20Sopenharmony_ci#define	ERF_DZ_ISR_REG_LBN 0
548c2ecf20Sopenharmony_ci#define	ERF_DZ_ISR_REG_WIDTH 32
558c2ecf20Sopenharmony_ci
568c2ecf20Sopenharmony_ci/* MC_DB_LWRD_REG:  */
578c2ecf20Sopenharmony_ci#define	ER_DZ_MC_DB_LWRD 0x00000200
588c2ecf20Sopenharmony_ci#define	ERF_DZ_MC_DOORBELL_L_LBN 0
598c2ecf20Sopenharmony_ci#define	ERF_DZ_MC_DOORBELL_L_WIDTH 32
608c2ecf20Sopenharmony_ci
618c2ecf20Sopenharmony_ci/* MC_DB_HWRD_REG:  */
628c2ecf20Sopenharmony_ci#define	ER_DZ_MC_DB_HWRD 0x00000204
638c2ecf20Sopenharmony_ci#define	ERF_DZ_MC_DOORBELL_H_LBN 0
648c2ecf20Sopenharmony_ci#define	ERF_DZ_MC_DOORBELL_H_WIDTH 32
658c2ecf20Sopenharmony_ci
668c2ecf20Sopenharmony_ci/* EVQ_RPTR_REG:  */
678c2ecf20Sopenharmony_ci#define	ER_DZ_EVQ_RPTR 0x00000400
688c2ecf20Sopenharmony_ci#define	ER_DZ_EVQ_RPTR_STEP 8192
698c2ecf20Sopenharmony_ci#define	ER_DZ_EVQ_RPTR_ROWS 2048
708c2ecf20Sopenharmony_ci#define	ERF_DZ_EVQ_RPTR_VLD_LBN 15
718c2ecf20Sopenharmony_ci#define	ERF_DZ_EVQ_RPTR_VLD_WIDTH 1
728c2ecf20Sopenharmony_ci#define	ERF_DZ_EVQ_RPTR_LBN 0
738c2ecf20Sopenharmony_ci#define	ERF_DZ_EVQ_RPTR_WIDTH 15
748c2ecf20Sopenharmony_ci
758c2ecf20Sopenharmony_ci/* EVQ_TMR_REG:  */
768c2ecf20Sopenharmony_ci#define	ER_DZ_EVQ_TMR 0x00000420
778c2ecf20Sopenharmony_ci#define	ER_DZ_EVQ_TMR_STEP 8192
788c2ecf20Sopenharmony_ci#define	ER_DZ_EVQ_TMR_ROWS 2048
798c2ecf20Sopenharmony_ci#define	ERF_FZ_TC_TMR_REL_VAL_LBN 16
808c2ecf20Sopenharmony_ci#define	ERF_FZ_TC_TMR_REL_VAL_WIDTH 14
818c2ecf20Sopenharmony_ci#define	ERF_DZ_TC_TIMER_MODE_LBN 14
828c2ecf20Sopenharmony_ci#define	ERF_DZ_TC_TIMER_MODE_WIDTH 2
838c2ecf20Sopenharmony_ci#define	ERF_DZ_TC_TIMER_VAL_LBN 0
848c2ecf20Sopenharmony_ci#define	ERF_DZ_TC_TIMER_VAL_WIDTH 14
858c2ecf20Sopenharmony_ci
868c2ecf20Sopenharmony_ci/* RX_DESC_UPD_REG:  */
878c2ecf20Sopenharmony_ci#define	ER_DZ_RX_DESC_UPD 0x00000830
888c2ecf20Sopenharmony_ci#define	ER_DZ_RX_DESC_UPD_STEP 8192
898c2ecf20Sopenharmony_ci#define	ER_DZ_RX_DESC_UPD_ROWS 2048
908c2ecf20Sopenharmony_ci#define	ERF_DZ_RX_DESC_WPTR_LBN 0
918c2ecf20Sopenharmony_ci#define	ERF_DZ_RX_DESC_WPTR_WIDTH 12
928c2ecf20Sopenharmony_ci
938c2ecf20Sopenharmony_ci/* TX_DESC_UPD_REG:  */
948c2ecf20Sopenharmony_ci#define	ER_DZ_TX_DESC_UPD 0x00000a10
958c2ecf20Sopenharmony_ci#define	ER_DZ_TX_DESC_UPD_STEP 8192
968c2ecf20Sopenharmony_ci#define	ER_DZ_TX_DESC_UPD_ROWS 2048
978c2ecf20Sopenharmony_ci#define	ERF_DZ_RSVD_LBN 76
988c2ecf20Sopenharmony_ci#define	ERF_DZ_RSVD_WIDTH 20
998c2ecf20Sopenharmony_ci#define	ERF_DZ_TX_DESC_WPTR_LBN 64
1008c2ecf20Sopenharmony_ci#define	ERF_DZ_TX_DESC_WPTR_WIDTH 12
1018c2ecf20Sopenharmony_ci#define	ERF_DZ_TX_DESC_HWORD_LBN 32
1028c2ecf20Sopenharmony_ci#define	ERF_DZ_TX_DESC_HWORD_WIDTH 32
1038c2ecf20Sopenharmony_ci#define	ERF_DZ_TX_DESC_LWORD_LBN 0
1048c2ecf20Sopenharmony_ci#define	ERF_DZ_TX_DESC_LWORD_WIDTH 32
1058c2ecf20Sopenharmony_ci
1068c2ecf20Sopenharmony_ci/* DRIVER_EV */
1078c2ecf20Sopenharmony_ci#define	ESF_DZ_DRV_CODE_LBN 60
1088c2ecf20Sopenharmony_ci#define	ESF_DZ_DRV_CODE_WIDTH 4
1098c2ecf20Sopenharmony_ci#define	ESF_DZ_DRV_SUB_CODE_LBN 56
1108c2ecf20Sopenharmony_ci#define	ESF_DZ_DRV_SUB_CODE_WIDTH 4
1118c2ecf20Sopenharmony_ci#define	ESE_DZ_DRV_TIMER_EV 3
1128c2ecf20Sopenharmony_ci#define	ESE_DZ_DRV_START_UP_EV 2
1138c2ecf20Sopenharmony_ci#define	ESE_DZ_DRV_WAKE_UP_EV 1
1148c2ecf20Sopenharmony_ci#define	ESF_DZ_DRV_SUB_DATA_LBN 0
1158c2ecf20Sopenharmony_ci#define	ESF_DZ_DRV_SUB_DATA_WIDTH 56
1168c2ecf20Sopenharmony_ci#define	ESF_DZ_DRV_EVQ_ID_LBN 0
1178c2ecf20Sopenharmony_ci#define	ESF_DZ_DRV_EVQ_ID_WIDTH 14
1188c2ecf20Sopenharmony_ci#define	ESF_DZ_DRV_TMR_ID_LBN 0
1198c2ecf20Sopenharmony_ci#define	ESF_DZ_DRV_TMR_ID_WIDTH 14
1208c2ecf20Sopenharmony_ci
1218c2ecf20Sopenharmony_ci/* EVENT_ENTRY */
1228c2ecf20Sopenharmony_ci#define	ESF_DZ_EV_CODE_LBN 60
1238c2ecf20Sopenharmony_ci#define	ESF_DZ_EV_CODE_WIDTH 4
1248c2ecf20Sopenharmony_ci#define	ESE_DZ_EV_CODE_MCDI_EV 12
1258c2ecf20Sopenharmony_ci#define	ESE_DZ_EV_CODE_DRIVER_EV 5
1268c2ecf20Sopenharmony_ci#define	ESE_DZ_EV_CODE_TX_EV 2
1278c2ecf20Sopenharmony_ci#define	ESE_DZ_EV_CODE_RX_EV 0
1288c2ecf20Sopenharmony_ci#define	ESE_DZ_OTHER other
1298c2ecf20Sopenharmony_ci#define	ESF_DZ_EV_DATA_LBN 0
1308c2ecf20Sopenharmony_ci#define	ESF_DZ_EV_DATA_WIDTH 60
1318c2ecf20Sopenharmony_ci
1328c2ecf20Sopenharmony_ci/* MC_EVENT */
1338c2ecf20Sopenharmony_ci#define	ESF_DZ_MC_CODE_LBN 60
1348c2ecf20Sopenharmony_ci#define	ESF_DZ_MC_CODE_WIDTH 4
1358c2ecf20Sopenharmony_ci#define	ESF_DZ_MC_OVERRIDE_HOLDOFF_LBN 59
1368c2ecf20Sopenharmony_ci#define	ESF_DZ_MC_OVERRIDE_HOLDOFF_WIDTH 1
1378c2ecf20Sopenharmony_ci#define	ESF_DZ_MC_DROP_EVENT_LBN 58
1388c2ecf20Sopenharmony_ci#define	ESF_DZ_MC_DROP_EVENT_WIDTH 1
1398c2ecf20Sopenharmony_ci#define	ESF_DZ_MC_SOFT_LBN 0
1408c2ecf20Sopenharmony_ci#define	ESF_DZ_MC_SOFT_WIDTH 58
1418c2ecf20Sopenharmony_ci
1428c2ecf20Sopenharmony_ci/* RX_EVENT */
1438c2ecf20Sopenharmony_ci#define	ESF_DZ_RX_CODE_LBN 60
1448c2ecf20Sopenharmony_ci#define	ESF_DZ_RX_CODE_WIDTH 4
1458c2ecf20Sopenharmony_ci#define	ESF_DZ_RX_OVERRIDE_HOLDOFF_LBN 59
1468c2ecf20Sopenharmony_ci#define	ESF_DZ_RX_OVERRIDE_HOLDOFF_WIDTH 1
1478c2ecf20Sopenharmony_ci#define	ESF_DZ_RX_DROP_EVENT_LBN 58
1488c2ecf20Sopenharmony_ci#define	ESF_DZ_RX_DROP_EVENT_WIDTH 1
1498c2ecf20Sopenharmony_ci#define	ESF_DD_RX_EV_RSVD2_LBN 54
1508c2ecf20Sopenharmony_ci#define	ESF_DD_RX_EV_RSVD2_WIDTH 4
1518c2ecf20Sopenharmony_ci#define	ESF_EZ_RX_TCP_UDP_INNER_CHKSUM_ERR_LBN 57
1528c2ecf20Sopenharmony_ci#define	ESF_EZ_RX_TCP_UDP_INNER_CHKSUM_ERR_WIDTH 1
1538c2ecf20Sopenharmony_ci#define	ESF_EZ_RX_IP_INNER_CHKSUM_ERR_LBN 56
1548c2ecf20Sopenharmony_ci#define	ESF_EZ_RX_IP_INNER_CHKSUM_ERR_WIDTH 1
1558c2ecf20Sopenharmony_ci#define	ESF_EZ_RX_EV_RSVD2_LBN 54
1568c2ecf20Sopenharmony_ci#define	ESF_EZ_RX_EV_RSVD2_WIDTH 2
1578c2ecf20Sopenharmony_ci#define	ESF_DZ_RX_EV_SOFT2_LBN 52
1588c2ecf20Sopenharmony_ci#define	ESF_DZ_RX_EV_SOFT2_WIDTH 2
1598c2ecf20Sopenharmony_ci#define	ESF_DZ_RX_DSC_PTR_LBITS_LBN 48
1608c2ecf20Sopenharmony_ci#define	ESF_DZ_RX_DSC_PTR_LBITS_WIDTH 4
1618c2ecf20Sopenharmony_ci#define	ESF_DE_RX_L4_CLASS_LBN 45
1628c2ecf20Sopenharmony_ci#define	ESF_DE_RX_L4_CLASS_WIDTH 3
1638c2ecf20Sopenharmony_ci#define	ESE_DE_L4_CLASS_RSVD7 7
1648c2ecf20Sopenharmony_ci#define	ESE_DE_L4_CLASS_RSVD6 6
1658c2ecf20Sopenharmony_ci#define	ESE_DE_L4_CLASS_RSVD5 5
1668c2ecf20Sopenharmony_ci#define	ESE_DE_L4_CLASS_RSVD4 4
1678c2ecf20Sopenharmony_ci#define	ESE_DE_L4_CLASS_RSVD3 3
1688c2ecf20Sopenharmony_ci#define	ESE_DE_L4_CLASS_UDP 2
1698c2ecf20Sopenharmony_ci#define	ESE_DE_L4_CLASS_TCP 1
1708c2ecf20Sopenharmony_ci#define	ESE_DE_L4_CLASS_UNKNOWN 0
1718c2ecf20Sopenharmony_ci#define	ESF_FZ_RX_FASTPD_INDCTR_LBN 47
1728c2ecf20Sopenharmony_ci#define	ESF_FZ_RX_FASTPD_INDCTR_WIDTH 1
1738c2ecf20Sopenharmony_ci#define	ESF_FZ_RX_L4_CLASS_LBN 45
1748c2ecf20Sopenharmony_ci#define	ESF_FZ_RX_L4_CLASS_WIDTH 2
1758c2ecf20Sopenharmony_ci#define	ESE_FZ_L4_CLASS_RSVD3 3
1768c2ecf20Sopenharmony_ci#define	ESE_FZ_L4_CLASS_UDP 2
1778c2ecf20Sopenharmony_ci#define	ESE_FZ_L4_CLASS_TCP 1
1788c2ecf20Sopenharmony_ci#define	ESE_FZ_L4_CLASS_UNKNOWN 0
1798c2ecf20Sopenharmony_ci#define	ESF_DZ_RX_L3_CLASS_LBN 42
1808c2ecf20Sopenharmony_ci#define	ESF_DZ_RX_L3_CLASS_WIDTH 3
1818c2ecf20Sopenharmony_ci#define	ESE_DZ_L3_CLASS_RSVD7 7
1828c2ecf20Sopenharmony_ci#define	ESE_DZ_L3_CLASS_IP6_FRAG 6
1838c2ecf20Sopenharmony_ci#define	ESE_DZ_L3_CLASS_ARP 5
1848c2ecf20Sopenharmony_ci#define	ESE_DZ_L3_CLASS_IP4_FRAG 4
1858c2ecf20Sopenharmony_ci#define	ESE_DZ_L3_CLASS_FCOE 3
1868c2ecf20Sopenharmony_ci#define	ESE_DZ_L3_CLASS_IP6 2
1878c2ecf20Sopenharmony_ci#define	ESE_DZ_L3_CLASS_IP4 1
1888c2ecf20Sopenharmony_ci#define	ESE_DZ_L3_CLASS_UNKNOWN 0
1898c2ecf20Sopenharmony_ci#define	ESF_DZ_RX_ETH_TAG_CLASS_LBN 39
1908c2ecf20Sopenharmony_ci#define	ESF_DZ_RX_ETH_TAG_CLASS_WIDTH 3
1918c2ecf20Sopenharmony_ci#define	ESE_DZ_ETH_TAG_CLASS_RSVD7 7
1928c2ecf20Sopenharmony_ci#define	ESE_DZ_ETH_TAG_CLASS_RSVD6 6
1938c2ecf20Sopenharmony_ci#define	ESE_DZ_ETH_TAG_CLASS_RSVD5 5
1948c2ecf20Sopenharmony_ci#define	ESE_DZ_ETH_TAG_CLASS_RSVD4 4
1958c2ecf20Sopenharmony_ci#define	ESE_DZ_ETH_TAG_CLASS_RSVD3 3
1968c2ecf20Sopenharmony_ci#define	ESE_DZ_ETH_TAG_CLASS_VLAN2 2
1978c2ecf20Sopenharmony_ci#define	ESE_DZ_ETH_TAG_CLASS_VLAN1 1
1988c2ecf20Sopenharmony_ci#define	ESE_DZ_ETH_TAG_CLASS_NONE 0
1998c2ecf20Sopenharmony_ci#define	ESF_DZ_RX_ETH_BASE_CLASS_LBN 36
2008c2ecf20Sopenharmony_ci#define	ESF_DZ_RX_ETH_BASE_CLASS_WIDTH 3
2018c2ecf20Sopenharmony_ci#define	ESE_DZ_ETH_BASE_CLASS_LLC_SNAP 2
2028c2ecf20Sopenharmony_ci#define	ESE_DZ_ETH_BASE_CLASS_LLC 1
2038c2ecf20Sopenharmony_ci#define	ESE_DZ_ETH_BASE_CLASS_ETH2 0
2048c2ecf20Sopenharmony_ci#define	ESF_DZ_RX_MAC_CLASS_LBN 35
2058c2ecf20Sopenharmony_ci#define	ESF_DZ_RX_MAC_CLASS_WIDTH 1
2068c2ecf20Sopenharmony_ci#define	ESE_DZ_MAC_CLASS_MCAST 1
2078c2ecf20Sopenharmony_ci#define	ESE_DZ_MAC_CLASS_UCAST 0
2088c2ecf20Sopenharmony_ci#define	ESF_DD_RX_EV_SOFT1_LBN 32
2098c2ecf20Sopenharmony_ci#define	ESF_DD_RX_EV_SOFT1_WIDTH 3
2108c2ecf20Sopenharmony_ci#define	ESF_EZ_RX_EV_SOFT1_LBN 34
2118c2ecf20Sopenharmony_ci#define	ESF_EZ_RX_EV_SOFT1_WIDTH 1
2128c2ecf20Sopenharmony_ci#define	ESF_EZ_RX_ENCAP_HDR_LBN 32
2138c2ecf20Sopenharmony_ci#define	ESF_EZ_RX_ENCAP_HDR_WIDTH 2
2148c2ecf20Sopenharmony_ci#define	ESE_EZ_ENCAP_HDR_GRE 2
2158c2ecf20Sopenharmony_ci#define	ESE_EZ_ENCAP_HDR_VXLAN 1
2168c2ecf20Sopenharmony_ci#define	ESE_EZ_ENCAP_HDR_NONE 0
2178c2ecf20Sopenharmony_ci#define	ESF_DD_RX_EV_RSVD1_LBN 30
2188c2ecf20Sopenharmony_ci#define	ESF_DD_RX_EV_RSVD1_WIDTH 2
2198c2ecf20Sopenharmony_ci#define	ESF_EZ_RX_EV_RSVD1_LBN 31
2208c2ecf20Sopenharmony_ci#define	ESF_EZ_RX_EV_RSVD1_WIDTH 1
2218c2ecf20Sopenharmony_ci#define	ESF_EZ_RX_ABORT_LBN 30
2228c2ecf20Sopenharmony_ci#define	ESF_EZ_RX_ABORT_WIDTH 1
2238c2ecf20Sopenharmony_ci#define	ESF_DZ_RX_ECC_ERR_LBN 29
2248c2ecf20Sopenharmony_ci#define	ESF_DZ_RX_ECC_ERR_WIDTH 1
2258c2ecf20Sopenharmony_ci#define	ESF_DZ_RX_TRUNC_ERR_LBN 29
2268c2ecf20Sopenharmony_ci#define	ESF_DZ_RX_TRUNC_ERR_WIDTH 1
2278c2ecf20Sopenharmony_ci#define	ESF_DZ_RX_CRC1_ERR_LBN 28
2288c2ecf20Sopenharmony_ci#define	ESF_DZ_RX_CRC1_ERR_WIDTH 1
2298c2ecf20Sopenharmony_ci#define	ESF_DZ_RX_CRC0_ERR_LBN 27
2308c2ecf20Sopenharmony_ci#define	ESF_DZ_RX_CRC0_ERR_WIDTH 1
2318c2ecf20Sopenharmony_ci#define	ESF_DZ_RX_TCPUDP_CKSUM_ERR_LBN 26
2328c2ecf20Sopenharmony_ci#define	ESF_DZ_RX_TCPUDP_CKSUM_ERR_WIDTH 1
2338c2ecf20Sopenharmony_ci#define	ESF_DZ_RX_IPCKSUM_ERR_LBN 25
2348c2ecf20Sopenharmony_ci#define	ESF_DZ_RX_IPCKSUM_ERR_WIDTH 1
2358c2ecf20Sopenharmony_ci#define	ESF_DZ_RX_ECRC_ERR_LBN 24
2368c2ecf20Sopenharmony_ci#define	ESF_DZ_RX_ECRC_ERR_WIDTH 1
2378c2ecf20Sopenharmony_ci#define	ESF_DZ_RX_QLABEL_LBN 16
2388c2ecf20Sopenharmony_ci#define	ESF_DZ_RX_QLABEL_WIDTH 5
2398c2ecf20Sopenharmony_ci#define	ESF_DZ_RX_PARSE_INCOMPLETE_LBN 15
2408c2ecf20Sopenharmony_ci#define	ESF_DZ_RX_PARSE_INCOMPLETE_WIDTH 1
2418c2ecf20Sopenharmony_ci#define	ESF_DZ_RX_CONT_LBN 14
2428c2ecf20Sopenharmony_ci#define	ESF_DZ_RX_CONT_WIDTH 1
2438c2ecf20Sopenharmony_ci#define	ESF_DZ_RX_BYTES_LBN 0
2448c2ecf20Sopenharmony_ci#define	ESF_DZ_RX_BYTES_WIDTH 14
2458c2ecf20Sopenharmony_ci
2468c2ecf20Sopenharmony_ci/* RX_KER_DESC */
2478c2ecf20Sopenharmony_ci#define	ESF_DZ_RX_KER_RESERVED_LBN 62
2488c2ecf20Sopenharmony_ci#define	ESF_DZ_RX_KER_RESERVED_WIDTH 2
2498c2ecf20Sopenharmony_ci#define	ESF_DZ_RX_KER_BYTE_CNT_LBN 48
2508c2ecf20Sopenharmony_ci#define	ESF_DZ_RX_KER_BYTE_CNT_WIDTH 14
2518c2ecf20Sopenharmony_ci#define	ESF_DZ_RX_KER_BUF_ADDR_LBN 0
2528c2ecf20Sopenharmony_ci#define	ESF_DZ_RX_KER_BUF_ADDR_WIDTH 48
2538c2ecf20Sopenharmony_ci
2548c2ecf20Sopenharmony_ci/* TX_CSUM_TSTAMP_DESC */
2558c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_DESC_IS_OPT_LBN 63
2568c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_DESC_IS_OPT_WIDTH 1
2578c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_OPTION_TYPE_LBN 60
2588c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_OPTION_TYPE_WIDTH 3
2598c2ecf20Sopenharmony_ci#define	ESE_DZ_TX_OPTION_DESC_TSO 7
2608c2ecf20Sopenharmony_ci#define	ESE_DZ_TX_OPTION_DESC_VLAN 6
2618c2ecf20Sopenharmony_ci#define	ESE_DZ_TX_OPTION_DESC_CRC_CSUM 0
2628c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_OPTION_TS_AT_TXDP_LBN 8
2638c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_OPTION_TS_AT_TXDP_WIDTH 1
2648c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_OPTION_INNER_UDP_TCP_CSUM_LBN 7
2658c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_OPTION_INNER_UDP_TCP_CSUM_WIDTH 1
2668c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_OPTION_INNER_IP_CSUM_LBN 6
2678c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_OPTION_INNER_IP_CSUM_WIDTH 1
2688c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_TIMESTAMP_LBN 5
2698c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_TIMESTAMP_WIDTH 1
2708c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_OPTION_CRC_MODE_LBN 2
2718c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_OPTION_CRC_MODE_WIDTH 3
2728c2ecf20Sopenharmony_ci#define	ESE_DZ_TX_OPTION_CRC_FCOIP_MPA 5
2738c2ecf20Sopenharmony_ci#define	ESE_DZ_TX_OPTION_CRC_FCOIP_FCOE 4
2748c2ecf20Sopenharmony_ci#define	ESE_DZ_TX_OPTION_CRC_ISCSI_HDR_AND_PYLD 3
2758c2ecf20Sopenharmony_ci#define	ESE_DZ_TX_OPTION_CRC_ISCSI_HDR 2
2768c2ecf20Sopenharmony_ci#define	ESE_DZ_TX_OPTION_CRC_FCOE 1
2778c2ecf20Sopenharmony_ci#define	ESE_DZ_TX_OPTION_CRC_OFF 0
2788c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_OPTION_UDP_TCP_CSUM_LBN 1
2798c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_OPTION_UDP_TCP_CSUM_WIDTH 1
2808c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_OPTION_IP_CSUM_LBN 0
2818c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_OPTION_IP_CSUM_WIDTH 1
2828c2ecf20Sopenharmony_ci
2838c2ecf20Sopenharmony_ci/* TX_EVENT */
2848c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_CODE_LBN 60
2858c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_CODE_WIDTH 4
2868c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_OVERRIDE_HOLDOFF_LBN 59
2878c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_OVERRIDE_HOLDOFF_WIDTH 1
2888c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_DROP_EVENT_LBN 58
2898c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_DROP_EVENT_WIDTH 1
2908c2ecf20Sopenharmony_ci#define	ESF_DD_TX_EV_RSVD_LBN 48
2918c2ecf20Sopenharmony_ci#define	ESF_DD_TX_EV_RSVD_WIDTH 10
2928c2ecf20Sopenharmony_ci#define	ESF_EZ_TCP_UDP_INNER_CHKSUM_ERR_LBN 57
2938c2ecf20Sopenharmony_ci#define	ESF_EZ_TCP_UDP_INNER_CHKSUM_ERR_WIDTH 1
2948c2ecf20Sopenharmony_ci#define	ESF_EZ_IP_INNER_CHKSUM_ERR_LBN 56
2958c2ecf20Sopenharmony_ci#define	ESF_EZ_IP_INNER_CHKSUM_ERR_WIDTH 1
2968c2ecf20Sopenharmony_ci#define	ESF_EZ_TX_EV_RSVD_LBN 48
2978c2ecf20Sopenharmony_ci#define	ESF_EZ_TX_EV_RSVD_WIDTH 8
2988c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_SOFT2_LBN 32
2998c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_SOFT2_WIDTH 16
3008c2ecf20Sopenharmony_ci#define	ESF_DD_TX_SOFT1_LBN 24
3018c2ecf20Sopenharmony_ci#define	ESF_DD_TX_SOFT1_WIDTH 8
3028c2ecf20Sopenharmony_ci#define	ESF_EZ_TX_CAN_MERGE_LBN 31
3038c2ecf20Sopenharmony_ci#define	ESF_EZ_TX_CAN_MERGE_WIDTH 1
3048c2ecf20Sopenharmony_ci#define	ESF_EZ_TX_SOFT1_LBN 24
3058c2ecf20Sopenharmony_ci#define	ESF_EZ_TX_SOFT1_WIDTH 7
3068c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_QLABEL_LBN 16
3078c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_QLABEL_WIDTH 5
3088c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_DESCR_INDX_LBN 0
3098c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_DESCR_INDX_WIDTH 16
3108c2ecf20Sopenharmony_ci
3118c2ecf20Sopenharmony_ci/* TX_KER_DESC */
3128c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_KER_TYPE_LBN 63
3138c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_KER_TYPE_WIDTH 1
3148c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_KER_CONT_LBN 62
3158c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_KER_CONT_WIDTH 1
3168c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_KER_BYTE_CNT_LBN 48
3178c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_KER_BYTE_CNT_WIDTH 14
3188c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_KER_BUF_ADDR_LBN 0
3198c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_KER_BUF_ADDR_WIDTH 48
3208c2ecf20Sopenharmony_ci
3218c2ecf20Sopenharmony_ci/* TX_PIO_DESC */
3228c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_PIO_TYPE_LBN 63
3238c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_PIO_TYPE_WIDTH 1
3248c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_PIO_OPT_LBN 60
3258c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_PIO_OPT_WIDTH 3
3268c2ecf20Sopenharmony_ci#define	ESE_DZ_TX_OPTION_DESC_PIO 1
3278c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_PIO_CONT_LBN 59
3288c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_PIO_CONT_WIDTH 1
3298c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_PIO_BYTE_CNT_LBN 32
3308c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_PIO_BYTE_CNT_WIDTH 12
3318c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_PIO_BUF_ADDR_LBN 0
3328c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_PIO_BUF_ADDR_WIDTH 12
3338c2ecf20Sopenharmony_ci
3348c2ecf20Sopenharmony_ci/* TX_TSO_DESC */
3358c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_DESC_IS_OPT_LBN 63
3368c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_DESC_IS_OPT_WIDTH 1
3378c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_OPTION_TYPE_LBN 60
3388c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_OPTION_TYPE_WIDTH 3
3398c2ecf20Sopenharmony_ci#define	ESE_DZ_TX_OPTION_DESC_TSO 7
3408c2ecf20Sopenharmony_ci#define	ESE_DZ_TX_OPTION_DESC_VLAN 6
3418c2ecf20Sopenharmony_ci#define	ESE_DZ_TX_OPTION_DESC_CRC_CSUM 0
3428c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_TSO_OPTION_TYPE_LBN 56
3438c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_TSO_OPTION_TYPE_WIDTH 4
3448c2ecf20Sopenharmony_ci#define	ESE_DZ_TX_TSO_OPTION_DESC_FATSO2B 3
3458c2ecf20Sopenharmony_ci#define	ESE_DZ_TX_TSO_OPTION_DESC_FATSO2A 2
3468c2ecf20Sopenharmony_ci#define	ESE_DZ_TX_TSO_OPTION_DESC_ENCAP 1
3478c2ecf20Sopenharmony_ci#define	ESE_DZ_TX_TSO_OPTION_DESC_NORMAL 0
3488c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_TSO_TCP_FLAGS_LBN 48
3498c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_TSO_TCP_FLAGS_WIDTH 8
3508c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_TSO_IP_ID_LBN 32
3518c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_TSO_IP_ID_WIDTH 16
3528c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_TSO_TCP_SEQNO_LBN 0
3538c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_TSO_TCP_SEQNO_WIDTH 32
3548c2ecf20Sopenharmony_ci
3558c2ecf20Sopenharmony_ci/* TX_TSO_V2_DESC_A */
3568c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_DESC_IS_OPT_LBN 63
3578c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_DESC_IS_OPT_WIDTH 1
3588c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_OPTION_TYPE_LBN 60
3598c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_OPTION_TYPE_WIDTH 3
3608c2ecf20Sopenharmony_ci#define	ESE_DZ_TX_OPTION_DESC_TSO 7
3618c2ecf20Sopenharmony_ci#define	ESE_DZ_TX_OPTION_DESC_VLAN 6
3628c2ecf20Sopenharmony_ci#define	ESE_DZ_TX_OPTION_DESC_CRC_CSUM 0
3638c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_TSO_OPTION_TYPE_LBN 56
3648c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_TSO_OPTION_TYPE_WIDTH 4
3658c2ecf20Sopenharmony_ci#define	ESE_DZ_TX_TSO_OPTION_DESC_FATSO2B 3
3668c2ecf20Sopenharmony_ci#define	ESE_DZ_TX_TSO_OPTION_DESC_FATSO2A 2
3678c2ecf20Sopenharmony_ci#define	ESE_DZ_TX_TSO_OPTION_DESC_ENCAP 1
3688c2ecf20Sopenharmony_ci#define	ESE_DZ_TX_TSO_OPTION_DESC_NORMAL 0
3698c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_TSO_IP_ID_LBN 32
3708c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_TSO_IP_ID_WIDTH 16
3718c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_TSO_TCP_SEQNO_LBN 0
3728c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_TSO_TCP_SEQNO_WIDTH 32
3738c2ecf20Sopenharmony_ci
3748c2ecf20Sopenharmony_ci/* TX_TSO_V2_DESC_B */
3758c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_DESC_IS_OPT_LBN 63
3768c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_DESC_IS_OPT_WIDTH 1
3778c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_OPTION_TYPE_LBN 60
3788c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_OPTION_TYPE_WIDTH 3
3798c2ecf20Sopenharmony_ci#define	ESE_DZ_TX_OPTION_DESC_TSO 7
3808c2ecf20Sopenharmony_ci#define	ESE_DZ_TX_OPTION_DESC_VLAN 6
3818c2ecf20Sopenharmony_ci#define	ESE_DZ_TX_OPTION_DESC_CRC_CSUM 0
3828c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_TSO_OPTION_TYPE_LBN 56
3838c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_TSO_OPTION_TYPE_WIDTH 4
3848c2ecf20Sopenharmony_ci#define	ESE_DZ_TX_TSO_OPTION_DESC_FATSO2B 3
3858c2ecf20Sopenharmony_ci#define	ESE_DZ_TX_TSO_OPTION_DESC_FATSO2A 2
3868c2ecf20Sopenharmony_ci#define	ESE_DZ_TX_TSO_OPTION_DESC_ENCAP 1
3878c2ecf20Sopenharmony_ci#define	ESE_DZ_TX_TSO_OPTION_DESC_NORMAL 0
3888c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_TSO_TCP_MSS_LBN 32
3898c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_TSO_TCP_MSS_WIDTH 16
3908c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_TSO_OUTER_IPID_LBN 0
3918c2ecf20Sopenharmony_ci#define	ESF_DZ_TX_TSO_OUTER_IPID_WIDTH 16
3928c2ecf20Sopenharmony_ci
3938c2ecf20Sopenharmony_ci/*************************************************************************/
3948c2ecf20Sopenharmony_ci
3958c2ecf20Sopenharmony_ci/* TX_DESC_UPD_REG: Transmit descriptor update register.
3968c2ecf20Sopenharmony_ci * We may write just one dword of these registers.
3978c2ecf20Sopenharmony_ci */
3988c2ecf20Sopenharmony_ci#define ER_DZ_TX_DESC_UPD_DWORD		(ER_DZ_TX_DESC_UPD + 2 * 4)
3998c2ecf20Sopenharmony_ci#define ERF_DZ_TX_DESC_WPTR_DWORD_LBN	(ERF_DZ_TX_DESC_WPTR_LBN - 2 * 32)
4008c2ecf20Sopenharmony_ci#define ERF_DZ_TX_DESC_WPTR_DWORD_WIDTH	ERF_DZ_TX_DESC_WPTR_WIDTH
4018c2ecf20Sopenharmony_ci
4028c2ecf20Sopenharmony_ci/* The workaround for bug 35388 requires multiplexing writes through
4038c2ecf20Sopenharmony_ci * the TX_DESC_UPD_DWORD address.
4048c2ecf20Sopenharmony_ci * TX_DESC_UPD: 0ppppppppppp               (bit 11 lost)
4058c2ecf20Sopenharmony_ci * EVQ_RPTR:    1000hhhhhhhh, 1001llllllll (split into high and low bits)
4068c2ecf20Sopenharmony_ci * EVQ_TMR:     11mmvvvvvvvv               (bits 8:13 of value lost)
4078c2ecf20Sopenharmony_ci */
4088c2ecf20Sopenharmony_ci#define ER_DD_EVQ_INDIRECT		ER_DZ_TX_DESC_UPD_DWORD
4098c2ecf20Sopenharmony_ci#define ERF_DD_EVQ_IND_RPTR_FLAGS_LBN	8
4108c2ecf20Sopenharmony_ci#define ERF_DD_EVQ_IND_RPTR_FLAGS_WIDTH	4
4118c2ecf20Sopenharmony_ci#define EFE_DD_EVQ_IND_RPTR_FLAGS_HIGH	8
4128c2ecf20Sopenharmony_ci#define EFE_DD_EVQ_IND_RPTR_FLAGS_LOW	9
4138c2ecf20Sopenharmony_ci#define ERF_DD_EVQ_IND_RPTR_LBN		0
4148c2ecf20Sopenharmony_ci#define ERF_DD_EVQ_IND_RPTR_WIDTH	8
4158c2ecf20Sopenharmony_ci#define ERF_DD_EVQ_IND_TIMER_FLAGS_LBN	10
4168c2ecf20Sopenharmony_ci#define ERF_DD_EVQ_IND_TIMER_FLAGS_WIDTH 2
4178c2ecf20Sopenharmony_ci#define EFE_DD_EVQ_IND_TIMER_FLAGS	3
4188c2ecf20Sopenharmony_ci#define ERF_DD_EVQ_IND_TIMER_MODE_LBN	8
4198c2ecf20Sopenharmony_ci#define ERF_DD_EVQ_IND_TIMER_MODE_WIDTH	2
4208c2ecf20Sopenharmony_ci#define ERF_DD_EVQ_IND_TIMER_VAL_LBN	0
4218c2ecf20Sopenharmony_ci#define ERF_DD_EVQ_IND_TIMER_VAL_WIDTH	8
4228c2ecf20Sopenharmony_ci
4238c2ecf20Sopenharmony_ci/* TX_PIOBUF
4248c2ecf20Sopenharmony_ci * PIO buffer aperture (paged)
4258c2ecf20Sopenharmony_ci */
4268c2ecf20Sopenharmony_ci#define ER_DZ_TX_PIOBUF 4096
4278c2ecf20Sopenharmony_ci#define ER_DZ_TX_PIOBUF_SIZE 2048
4288c2ecf20Sopenharmony_ci
4298c2ecf20Sopenharmony_ci/* RX packet prefix */
4308c2ecf20Sopenharmony_ci#define ES_DZ_RX_PREFIX_HASH_OFST 0
4318c2ecf20Sopenharmony_ci#define ES_DZ_RX_PREFIX_VLAN1_OFST 4
4328c2ecf20Sopenharmony_ci#define ES_DZ_RX_PREFIX_VLAN2_OFST 6
4338c2ecf20Sopenharmony_ci#define ES_DZ_RX_PREFIX_PKTLEN_OFST 8
4348c2ecf20Sopenharmony_ci#define ES_DZ_RX_PREFIX_TSTAMP_OFST 10
4358c2ecf20Sopenharmony_ci#define ES_DZ_RX_PREFIX_SIZE 14
4368c2ecf20Sopenharmony_ci
4378c2ecf20Sopenharmony_ci#endif /* EFX_EF10_REGS_H */
438