aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/bnx2x_hsi.h
diff options
context:
space:
mode:
authorEilon Greenstein <eilong@broadcom.com>2009-08-13 01:53:28 -0400
committerDavid S. Miller <davem@davemloft.net>2009-08-13 01:53:28 -0400
commitca00392cb8f5227c67ff52c656d91a764d022ab9 (patch)
tree007d82074e49d25d1ee6bfb484392032d463be91 /drivers/net/bnx2x_hsi.h
parent6200f09036ee6f12822a9133dba7ed011b179c69 (diff)
bnx2x: Using the new FW
The new FW improves the packets per second rate. It required a lot of change in the FW which implies many changes in the driver to support it. It is now also possible for the driver to use a separate MSI-X vector for Rx and Tx - this also add some to the complicity of this change. All things said - after this patch, practically all performance matrixes show improvement. Though Vladislav Zolotarov is not signed on this patch, he did most of the job and deserves credit for that. Signed-off-by: Eilon Greenstein <eilong@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/bnx2x_hsi.h')
-rw-r--r--drivers/net/bnx2x_hsi.h361
1 files changed, 260 insertions, 101 deletions
diff --git a/drivers/net/bnx2x_hsi.h b/drivers/net/bnx2x_hsi.h
index 7de83c4a557a..da62cc5608d3 100644
--- a/drivers/net/bnx2x_hsi.h
+++ b/drivers/net/bnx2x_hsi.h
@@ -1218,9 +1218,9 @@ struct host_func_stats {
1218}; 1218};
1219 1219
1220 1220
1221#define BCM_5710_FW_MAJOR_VERSION 4 1221#define BCM_5710_FW_MAJOR_VERSION 5
1222#define BCM_5710_FW_MINOR_VERSION 8 1222#define BCM_5710_FW_MINOR_VERSION 0
1223#define BCM_5710_FW_REVISION_VERSION 53 1223#define BCM_5710_FW_REVISION_VERSION 21
1224#define BCM_5710_FW_ENGINEERING_VERSION 0 1224#define BCM_5710_FW_ENGINEERING_VERSION 0
1225#define BCM_5710_FW_COMPILE_FLAGS 1 1225#define BCM_5710_FW_COMPILE_FLAGS 1
1226 1226
@@ -1270,6 +1270,22 @@ struct doorbell {
1270 1270
1271 1271
1272/* 1272/*
1273 * doorbell message sent to the chip
1274 */
1275struct doorbell_set_prod {
1276#if defined(__BIG_ENDIAN)
1277 u16 prod;
1278 u8 zero_fill1;
1279 struct doorbell_hdr header;
1280#elif defined(__LITTLE_ENDIAN)
1281 struct doorbell_hdr header;
1282 u8 zero_fill1;
1283 u16 prod;
1284#endif
1285};
1286
1287
1288/*
1273 * IGU driver acknowledgement register 1289 * IGU driver acknowledgement register
1274 */ 1290 */
1275struct igu_ack_register { 1291struct igu_ack_register {
@@ -1304,6 +1320,62 @@ struct igu_ack_register {
1304 1320
1305 1321
1306/* 1322/*
1323 * IGU driver acknowledgement register
1324 */
1325struct igu_backward_compatible {
1326 u32 sb_id_and_flags;
1327#define IGU_BACKWARD_COMPATIBLE_SB_INDEX (0xFFFF<<0)
1328#define IGU_BACKWARD_COMPATIBLE_SB_INDEX_SHIFT 0
1329#define IGU_BACKWARD_COMPATIBLE_SB_SELECT (0x1F<<16)
1330#define IGU_BACKWARD_COMPATIBLE_SB_SELECT_SHIFT 16
1331#define IGU_BACKWARD_COMPATIBLE_SEGMENT_ACCESS (0x7<<21)
1332#define IGU_BACKWARD_COMPATIBLE_SEGMENT_ACCESS_SHIFT 21
1333#define IGU_BACKWARD_COMPATIBLE_BUPDATE (0x1<<24)
1334#define IGU_BACKWARD_COMPATIBLE_BUPDATE_SHIFT 24
1335#define IGU_BACKWARD_COMPATIBLE_ENABLE_INT (0x3<<25)
1336#define IGU_BACKWARD_COMPATIBLE_ENABLE_INT_SHIFT 25
1337#define IGU_BACKWARD_COMPATIBLE_RESERVED_0 (0x1F<<27)
1338#define IGU_BACKWARD_COMPATIBLE_RESERVED_0_SHIFT 27
1339 u32 reserved_2;
1340};
1341
1342
1343/*
1344 * IGU driver acknowledgement register
1345 */
1346struct igu_regular {
1347 u32 sb_id_and_flags;
1348#define IGU_REGULAR_SB_INDEX (0xFFFFF<<0)
1349#define IGU_REGULAR_SB_INDEX_SHIFT 0
1350#define IGU_REGULAR_RESERVED0 (0x1<<20)
1351#define IGU_REGULAR_RESERVED0_SHIFT 20
1352#define IGU_REGULAR_SEGMENT_ACCESS (0x7<<21)
1353#define IGU_REGULAR_SEGMENT_ACCESS_SHIFT 21
1354#define IGU_REGULAR_BUPDATE (0x1<<24)
1355#define IGU_REGULAR_BUPDATE_SHIFT 24
1356#define IGU_REGULAR_ENABLE_INT (0x3<<25)
1357#define IGU_REGULAR_ENABLE_INT_SHIFT 25
1358#define IGU_REGULAR_RESERVED_1 (0x1<<27)
1359#define IGU_REGULAR_RESERVED_1_SHIFT 27
1360#define IGU_REGULAR_CLEANUP_TYPE (0x3<<28)
1361#define IGU_REGULAR_CLEANUP_TYPE_SHIFT 28
1362#define IGU_REGULAR_CLEANUP_SET (0x1<<30)
1363#define IGU_REGULAR_CLEANUP_SET_SHIFT 30
1364#define IGU_REGULAR_BCLEANUP (0x1<<31)
1365#define IGU_REGULAR_BCLEANUP_SHIFT 31
1366 u32 reserved_2;
1367};
1368
1369/*
1370 * IGU driver acknowledgement register
1371 */
1372union igu_consprod_reg {
1373 struct igu_regular regular;
1374 struct igu_backward_compatible backward_compatible;
1375};
1376
1377
1378/*
1307 * Parser parsing flags field 1379 * Parser parsing flags field
1308 */ 1380 */
1309struct parsing_flags { 1381struct parsing_flags {
@@ -1434,12 +1506,10 @@ struct ustorm_eth_st_context_config {
1434#define USTORM_ETH_ST_CONTEXT_CONFIG_ENABLE_DYNAMIC_HC_SHIFT 1 1506#define USTORM_ETH_ST_CONTEXT_CONFIG_ENABLE_DYNAMIC_HC_SHIFT 1
1435#define USTORM_ETH_ST_CONTEXT_CONFIG_ENABLE_TPA (0x1<<2) 1507#define USTORM_ETH_ST_CONTEXT_CONFIG_ENABLE_TPA (0x1<<2)
1436#define USTORM_ETH_ST_CONTEXT_CONFIG_ENABLE_TPA_SHIFT 2 1508#define USTORM_ETH_ST_CONTEXT_CONFIG_ENABLE_TPA_SHIFT 2
1437#define USTORM_ETH_ST_CONTEXT_CONFIG_ENABLE_SGE_RING (0x1<<3) 1509#define USTORM_ETH_ST_CONTEXT_CONFIG_ENABLE_STATISTICS (0x1<<3)
1438#define USTORM_ETH_ST_CONTEXT_CONFIG_ENABLE_SGE_RING_SHIFT 3 1510#define USTORM_ETH_ST_CONTEXT_CONFIG_ENABLE_STATISTICS_SHIFT 3
1439#define USTORM_ETH_ST_CONTEXT_CONFIG_ENABLE_STATISTICS (0x1<<4) 1511#define __USTORM_ETH_ST_CONTEXT_CONFIG_RESERVED0 (0xF<<4)
1440#define USTORM_ETH_ST_CONTEXT_CONFIG_ENABLE_STATISTICS_SHIFT 4 1512#define __USTORM_ETH_ST_CONTEXT_CONFIG_RESERVED0_SHIFT 4
1441#define __USTORM_ETH_ST_CONTEXT_CONFIG_RESERVED0 (0x7<<5)
1442#define __USTORM_ETH_ST_CONTEXT_CONFIG_RESERVED0_SHIFT 5
1443 u8 status_block_id; 1513 u8 status_block_id;
1444 u8 clientId; 1514 u8 clientId;
1445 u8 sb_index_numbers; 1515 u8 sb_index_numbers;
@@ -1462,12 +1532,10 @@ struct ustorm_eth_st_context_config {
1462#define USTORM_ETH_ST_CONTEXT_CONFIG_ENABLE_DYNAMIC_HC_SHIFT 1 1532#define USTORM_ETH_ST_CONTEXT_CONFIG_ENABLE_DYNAMIC_HC_SHIFT 1
1463#define USTORM_ETH_ST_CONTEXT_CONFIG_ENABLE_TPA (0x1<<2) 1533#define USTORM_ETH_ST_CONTEXT_CONFIG_ENABLE_TPA (0x1<<2)
1464#define USTORM_ETH_ST_CONTEXT_CONFIG_ENABLE_TPA_SHIFT 2 1534#define USTORM_ETH_ST_CONTEXT_CONFIG_ENABLE_TPA_SHIFT 2
1465#define USTORM_ETH_ST_CONTEXT_CONFIG_ENABLE_SGE_RING (0x1<<3) 1535#define USTORM_ETH_ST_CONTEXT_CONFIG_ENABLE_STATISTICS (0x1<<3)
1466#define USTORM_ETH_ST_CONTEXT_CONFIG_ENABLE_SGE_RING_SHIFT 3 1536#define USTORM_ETH_ST_CONTEXT_CONFIG_ENABLE_STATISTICS_SHIFT 3
1467#define USTORM_ETH_ST_CONTEXT_CONFIG_ENABLE_STATISTICS (0x1<<4) 1537#define __USTORM_ETH_ST_CONTEXT_CONFIG_RESERVED0 (0xF<<4)
1468#define USTORM_ETH_ST_CONTEXT_CONFIG_ENABLE_STATISTICS_SHIFT 4 1538#define __USTORM_ETH_ST_CONTEXT_CONFIG_RESERVED0_SHIFT 4
1469#define __USTORM_ETH_ST_CONTEXT_CONFIG_RESERVED0 (0x7<<5)
1470#define __USTORM_ETH_ST_CONTEXT_CONFIG_RESERVED0_SHIFT 5
1471#endif 1539#endif
1472#if defined(__BIG_ENDIAN) 1540#if defined(__BIG_ENDIAN)
1473 u16 bd_buff_size; 1541 u16 bd_buff_size;
@@ -1487,11 +1555,36 @@ struct ustorm_eth_st_context_config {
1487 u8 __local_bd_prod; 1555 u8 __local_bd_prod;
1488 u8 __local_sge_prod; 1556 u8 __local_sge_prod;
1489#endif 1557#endif
1490 u32 reserved; 1558#if defined(__BIG_ENDIAN)
1559 u16 __sdm_bd_expected_counter;
1560 u8 cstorm_agg_int;
1561 u8 __expected_bds_on_ram;
1562#elif defined(__LITTLE_ENDIAN)
1563 u8 __expected_bds_on_ram;
1564 u8 cstorm_agg_int;
1565 u16 __sdm_bd_expected_counter;
1566#endif
1567#if defined(__BIG_ENDIAN)
1568 u16 __ring_data_ram_addr;
1569 u16 __hc_cstorm_ram_addr;
1570#elif defined(__LITTLE_ENDIAN)
1571 u16 __hc_cstorm_ram_addr;
1572 u16 __ring_data_ram_addr;
1573#endif
1574#if defined(__BIG_ENDIAN)
1575 u8 reserved1;
1576 u8 max_sges_for_packet;
1577 u16 __bd_ring_ram_addr;
1578#elif defined(__LITTLE_ENDIAN)
1579 u16 __bd_ring_ram_addr;
1580 u8 max_sges_for_packet;
1581 u8 reserved1;
1582#endif
1491 u32 bd_page_base_lo; 1583 u32 bd_page_base_lo;
1492 u32 bd_page_base_hi; 1584 u32 bd_page_base_hi;
1493 u32 sge_page_base_lo; 1585 u32 sge_page_base_lo;
1494 u32 sge_page_base_hi; 1586 u32 sge_page_base_hi;
1587 struct regpair reserved2;
1495}; 1588};
1496 1589
1497/* 1590/*
@@ -1514,8 +1607,8 @@ struct eth_rx_sge {
1514 * Local BDs and SGEs rings (in ETH) 1607 * Local BDs and SGEs rings (in ETH)
1515 */ 1608 */
1516struct eth_local_rx_rings { 1609struct eth_local_rx_rings {
1517 struct eth_rx_bd __local_bd_ring[16]; 1610 struct eth_rx_bd __local_bd_ring[8];
1518 struct eth_rx_sge __local_sge_ring[12]; 1611 struct eth_rx_sge __local_sge_ring[10];
1519}; 1612};
1520 1613
1521/* 1614/*
@@ -1607,13 +1700,13 @@ struct xstorm_eth_extra_ag_context_section {
1607 */ 1700 */
1608struct xstorm_eth_ag_context { 1701struct xstorm_eth_ag_context {
1609#if defined(__BIG_ENDIAN) 1702#if defined(__BIG_ENDIAN)
1610 u16 __bd_prod; 1703 u16 agg_val1;
1611 u8 __agg_vars1; 1704 u8 __agg_vars1;
1612 u8 __state; 1705 u8 __state;
1613#elif defined(__LITTLE_ENDIAN) 1706#elif defined(__LITTLE_ENDIAN)
1614 u8 __state; 1707 u8 __state;
1615 u8 __agg_vars1; 1708 u8 __agg_vars1;
1616 u16 __bd_prod; 1709 u16 agg_val1;
1617#endif 1710#endif
1618#if defined(__BIG_ENDIAN) 1711#if defined(__BIG_ENDIAN)
1619 u8 cdu_reserved; 1712 u8 cdu_reserved;
@@ -1626,7 +1719,7 @@ struct xstorm_eth_ag_context {
1626 u8 __agg_vars4; 1719 u8 __agg_vars4;
1627 u8 cdu_reserved; 1720 u8 cdu_reserved;
1628#endif 1721#endif
1629 u32 __more_packets_to_send; 1722 u32 __bd_prod;
1630#if defined(__BIG_ENDIAN) 1723#if defined(__BIG_ENDIAN)
1631 u16 __agg_vars5; 1724 u16 __agg_vars5;
1632 u16 __agg_val4_th; 1725 u16 __agg_val4_th;
@@ -1892,8 +1985,8 @@ struct eth_tx_bd_flags {
1892#define ETH_TX_BD_FLAGS_VLAN_TAG_SHIFT 0 1985#define ETH_TX_BD_FLAGS_VLAN_TAG_SHIFT 0
1893#define ETH_TX_BD_FLAGS_IP_CSUM (0x1<<1) 1986#define ETH_TX_BD_FLAGS_IP_CSUM (0x1<<1)
1894#define ETH_TX_BD_FLAGS_IP_CSUM_SHIFT 1 1987#define ETH_TX_BD_FLAGS_IP_CSUM_SHIFT 1
1895#define ETH_TX_BD_FLAGS_TCP_CSUM (0x1<<2) 1988#define ETH_TX_BD_FLAGS_L4_CSUM (0x1<<2)
1896#define ETH_TX_BD_FLAGS_TCP_CSUM_SHIFT 2 1989#define ETH_TX_BD_FLAGS_L4_CSUM_SHIFT 2
1897#define ETH_TX_BD_FLAGS_END_BD (0x1<<3) 1990#define ETH_TX_BD_FLAGS_END_BD (0x1<<3)
1898#define ETH_TX_BD_FLAGS_END_BD_SHIFT 3 1991#define ETH_TX_BD_FLAGS_END_BD_SHIFT 3
1899#define ETH_TX_BD_FLAGS_START_BD (0x1<<4) 1992#define ETH_TX_BD_FLAGS_START_BD (0x1<<4)
@@ -1909,7 +2002,7 @@ struct eth_tx_bd_flags {
1909/* 2002/*
1910 * The eth Tx Buffer Descriptor 2003 * The eth Tx Buffer Descriptor
1911 */ 2004 */
1912struct eth_tx_bd { 2005struct eth_tx_start_bd {
1913 __le32 addr_lo; 2006 __le32 addr_lo;
1914 __le32 addr_hi; 2007 __le32 addr_hi;
1915 __le16 nbd; 2008 __le16 nbd;
@@ -1917,10 +2010,21 @@ struct eth_tx_bd {
1917 __le16 vlan; 2010 __le16 vlan;
1918 struct eth_tx_bd_flags bd_flags; 2011 struct eth_tx_bd_flags bd_flags;
1919 u8 general_data; 2012 u8 general_data;
1920#define ETH_TX_BD_HDR_NBDS (0x3F<<0) 2013#define ETH_TX_START_BD_HDR_NBDS (0x3F<<0)
1921#define ETH_TX_BD_HDR_NBDS_SHIFT 0 2014#define ETH_TX_START_BD_HDR_NBDS_SHIFT 0
1922#define ETH_TX_BD_ETH_ADDR_TYPE (0x3<<6) 2015#define ETH_TX_START_BD_ETH_ADDR_TYPE (0x3<<6)
1923#define ETH_TX_BD_ETH_ADDR_TYPE_SHIFT 6 2016#define ETH_TX_START_BD_ETH_ADDR_TYPE_SHIFT 6
2017};
2018
2019/*
2020 * Tx regular BD structure
2021 */
2022struct eth_tx_bd {
2023 u32 addr_lo;
2024 u32 addr_hi;
2025 u16 total_pkt_bytes;
2026 u16 nbytes;
2027 u8 reserved[4];
1924}; 2028};
1925 2029
1926/* 2030/*
@@ -1930,8 +2034,8 @@ struct eth_tx_parse_bd {
1930 u8 global_data; 2034 u8 global_data;
1931#define ETH_TX_PARSE_BD_IP_HDR_START_OFFSET (0xF<<0) 2035#define ETH_TX_PARSE_BD_IP_HDR_START_OFFSET (0xF<<0)
1932#define ETH_TX_PARSE_BD_IP_HDR_START_OFFSET_SHIFT 0 2036#define ETH_TX_PARSE_BD_IP_HDR_START_OFFSET_SHIFT 0
1933#define ETH_TX_PARSE_BD_CS_ANY_FLG (0x1<<4) 2037#define ETH_TX_PARSE_BD_UDP_CS_FLG (0x1<<4)
1934#define ETH_TX_PARSE_BD_CS_ANY_FLG_SHIFT 4 2038#define ETH_TX_PARSE_BD_UDP_CS_FLG_SHIFT 4
1935#define ETH_TX_PARSE_BD_PSEUDO_CS_WITHOUT_LEN (0x1<<5) 2039#define ETH_TX_PARSE_BD_PSEUDO_CS_WITHOUT_LEN (0x1<<5)
1936#define ETH_TX_PARSE_BD_PSEUDO_CS_WITHOUT_LEN_SHIFT 5 2040#define ETH_TX_PARSE_BD_PSEUDO_CS_WITHOUT_LEN_SHIFT 5
1937#define ETH_TX_PARSE_BD_LLC_SNAP_EN (0x1<<6) 2041#define ETH_TX_PARSE_BD_LLC_SNAP_EN (0x1<<6)
@@ -1956,10 +2060,10 @@ struct eth_tx_parse_bd {
1956#define ETH_TX_PARSE_BD_CWR_FLG (0x1<<7) 2060#define ETH_TX_PARSE_BD_CWR_FLG (0x1<<7)
1957#define ETH_TX_PARSE_BD_CWR_FLG_SHIFT 7 2061#define ETH_TX_PARSE_BD_CWR_FLG_SHIFT 7
1958 u8 ip_hlen; 2062 u8 ip_hlen;
1959 s8 cs_offset; 2063 s8 reserved;
1960 __le16 total_hlen; 2064 __le16 total_hlen;
1961 __le16 lso_mss;
1962 __le16 tcp_pseudo_csum; 2065 __le16 tcp_pseudo_csum;
2066 __le16 lso_mss;
1963 __le16 ip_id; 2067 __le16 ip_id;
1964 __le32 tcp_send_seq; 2068 __le32 tcp_send_seq;
1965}; 2069};
@@ -1968,15 +2072,16 @@ struct eth_tx_parse_bd {
1968 * The last BD in the BD memory will hold a pointer to the next BD memory 2072 * The last BD in the BD memory will hold a pointer to the next BD memory
1969 */ 2073 */
1970struct eth_tx_next_bd { 2074struct eth_tx_next_bd {
1971 u32 addr_lo; 2075 __le32 addr_lo;
1972 u32 addr_hi; 2076 __le32 addr_hi;
1973 u8 reserved[8]; 2077 u8 reserved[8];
1974}; 2078};
1975 2079
1976/* 2080/*
1977 * union for 3 Bd types 2081 * union for 4 Bd types
1978 */ 2082 */
1979union eth_tx_bd_types { 2083union eth_tx_bd_types {
2084 struct eth_tx_start_bd start_bd;
1980 struct eth_tx_bd reg_bd; 2085 struct eth_tx_bd reg_bd;
1981 struct eth_tx_parse_bd parse_bd; 2086 struct eth_tx_parse_bd parse_bd;
1982 struct eth_tx_next_bd next_bd; 2087 struct eth_tx_next_bd next_bd;
@@ -2005,11 +2110,35 @@ struct xstorm_eth_st_context {
2005#define XSTORM_ETH_ST_CONTEXT_STATISTICS_ENABLE_SHIFT 7 2110#define XSTORM_ETH_ST_CONTEXT_STATISTICS_ENABLE_SHIFT 7
2006 u16 tx_bd_cons; 2111 u16 tx_bd_cons;
2007#endif 2112#endif
2008 u32 db_data_addr_lo; 2113 u32 __reserved1;
2009 u32 db_data_addr_hi; 2114 u32 __reserved2;
2010 u32 __pkt_cons; 2115#if defined(__BIG_ENDIAN)
2011 u32 __gso_next; 2116 u8 __ram_cache_index;
2012 u32 is_eth_conn_1b; 2117 u8 __double_buffer_client;
2118 u16 __pkt_cons;
2119#elif defined(__LITTLE_ENDIAN)
2120 u16 __pkt_cons;
2121 u8 __double_buffer_client;
2122 u8 __ram_cache_index;
2123#endif
2124#if defined(__BIG_ENDIAN)
2125 u16 __statistics_address;
2126 u16 __gso_next;
2127#elif defined(__LITTLE_ENDIAN)
2128 u16 __gso_next;
2129 u16 __statistics_address;
2130#endif
2131#if defined(__BIG_ENDIAN)
2132 u8 __local_tx_bd_cons;
2133 u8 safc_group_num;
2134 u8 safc_group_en;
2135 u8 __is_eth_conn;
2136#elif defined(__LITTLE_ENDIAN)
2137 u8 __is_eth_conn;
2138 u8 safc_group_en;
2139 u8 safc_group_num;
2140 u8 __local_tx_bd_cons;
2141#endif
2013 union eth_tx_bd_types __bds[13]; 2142 union eth_tx_bd_types __bds[13];
2014}; 2143};
2015 2144
@@ -2074,9 +2203,9 @@ struct eth_tx_doorbell {
2074 2203
2075 2204
2076/* 2205/*
2077 * ustorm status block 2206 * cstorm default status block, generated by ustorm
2078 */ 2207 */
2079struct ustorm_def_status_block { 2208struct cstorm_def_status_block_u {
2080 __le16 index_values[HC_USTORM_DEF_SB_NUM_INDICES]; 2209 __le16 index_values[HC_USTORM_DEF_SB_NUM_INDICES];
2081 __le16 status_block_index; 2210 __le16 status_block_index;
2082 u8 func; 2211 u8 func;
@@ -2085,9 +2214,9 @@ struct ustorm_def_status_block {
2085}; 2214};
2086 2215
2087/* 2216/*
2088 * cstorm status block 2217 * cstorm default status block, generated by cstorm
2089 */ 2218 */
2090struct cstorm_def_status_block { 2219struct cstorm_def_status_block_c {
2091 __le16 index_values[HC_CSTORM_DEF_SB_NUM_INDICES]; 2220 __le16 index_values[HC_CSTORM_DEF_SB_NUM_INDICES];
2092 __le16 status_block_index; 2221 __le16 status_block_index;
2093 u8 func; 2222 u8 func;
@@ -2122,17 +2251,17 @@ struct tstorm_def_status_block {
2122 */ 2251 */
2123struct host_def_status_block { 2252struct host_def_status_block {
2124 struct atten_def_status_block atten_status_block; 2253 struct atten_def_status_block atten_status_block;
2125 struct ustorm_def_status_block u_def_status_block; 2254 struct cstorm_def_status_block_u u_def_status_block;
2126 struct cstorm_def_status_block c_def_status_block; 2255 struct cstorm_def_status_block_c c_def_status_block;
2127 struct xstorm_def_status_block x_def_status_block; 2256 struct xstorm_def_status_block x_def_status_block;
2128 struct tstorm_def_status_block t_def_status_block; 2257 struct tstorm_def_status_block t_def_status_block;
2129}; 2258};
2130 2259
2131 2260
2132/* 2261/*
2133 * ustorm status block 2262 * cstorm status block, generated by ustorm
2134 */ 2263 */
2135struct ustorm_status_block { 2264struct cstorm_status_block_u {
2136 __le16 index_values[HC_USTORM_SB_NUM_INDICES]; 2265 __le16 index_values[HC_USTORM_SB_NUM_INDICES];
2137 __le16 status_block_index; 2266 __le16 status_block_index;
2138 u8 func; 2267 u8 func;
@@ -2141,9 +2270,9 @@ struct ustorm_status_block {
2141}; 2270};
2142 2271
2143/* 2272/*
2144 * cstorm status block 2273 * cstorm status block, generated by cstorm
2145 */ 2274 */
2146struct cstorm_status_block { 2275struct cstorm_status_block_c {
2147 __le16 index_values[HC_CSTORM_SB_NUM_INDICES]; 2276 __le16 index_values[HC_CSTORM_SB_NUM_INDICES];
2148 __le16 status_block_index; 2277 __le16 status_block_index;
2149 u8 func; 2278 u8 func;
@@ -2155,8 +2284,8 @@ struct cstorm_status_block {
2155 * host status block 2284 * host status block
2156 */ 2285 */
2157struct host_status_block { 2286struct host_status_block {
2158 struct ustorm_status_block u_status_block; 2287 struct cstorm_status_block_u u_status_block;
2159 struct cstorm_status_block c_status_block; 2288 struct cstorm_status_block_c c_status_block;
2160}; 2289};
2161 2290
2162 2291
@@ -2172,15 +2301,6 @@ struct eth_client_setup_ramrod_data {
2172 2301
2173 2302
2174/* 2303/*
2175 * L2 dynamic host coalescing init parameters
2176 */
2177struct eth_dynamic_hc_config {
2178 u32 threshold[3];
2179 u8 hc_timeout[4];
2180};
2181
2182
2183/*
2184 * regular eth FP CQE parameters struct 2304 * regular eth FP CQE parameters struct
2185 */ 2305 */
2186struct eth_fast_path_rx_cqe { 2306struct eth_fast_path_rx_cqe {
@@ -2344,12 +2464,10 @@ struct eth_spe {
2344 2464
2345 2465
2346/* 2466/*
2347 * doorbell data in host memory 2467 * array of 13 bds as appears in the eth xstorm context
2348 */ 2468 */
2349struct eth_tx_db_data { 2469struct eth_tx_bds_array {
2350 __le32 packets_prod; 2470 union eth_tx_bd_types bds[13];
2351 __le16 bds_prod;
2352 __le16 reserved;
2353}; 2471};
2354 2472
2355 2473
@@ -2377,8 +2495,10 @@ struct tstorm_eth_function_common_config {
2377#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_VLAN_IN_CAM_SHIFT 8 2495#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_VLAN_IN_CAM_SHIFT 8
2378#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_E1HOV_IN_CAM (0x1<<9) 2496#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_E1HOV_IN_CAM (0x1<<9)
2379#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_E1HOV_IN_CAM_SHIFT 9 2497#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_E1HOV_IN_CAM_SHIFT 9
2380#define __TSTORM_ETH_FUNCTION_COMMON_CONFIG_RESERVED0 (0x3F<<10) 2498#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_ENABLE_TPA (0x1<<10)
2381#define __TSTORM_ETH_FUNCTION_COMMON_CONFIG_RESERVED0_SHIFT 10 2499#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_ENABLE_TPA_SHIFT 10
2500#define __TSTORM_ETH_FUNCTION_COMMON_CONFIG_RESERVED0 (0x1F<<11)
2501#define __TSTORM_ETH_FUNCTION_COMMON_CONFIG_RESERVED0_SHIFT 11
2382#elif defined(__LITTLE_ENDIAN) 2502#elif defined(__LITTLE_ENDIAN)
2383 u16 config_flags; 2503 u16 config_flags;
2384#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_RSS_IPV4_CAPABILITY (0x1<<0) 2504#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_RSS_IPV4_CAPABILITY (0x1<<0)
@@ -2397,8 +2517,10 @@ struct tstorm_eth_function_common_config {
2397#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_VLAN_IN_CAM_SHIFT 8 2517#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_VLAN_IN_CAM_SHIFT 8
2398#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_E1HOV_IN_CAM (0x1<<9) 2518#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_E1HOV_IN_CAM (0x1<<9)
2399#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_E1HOV_IN_CAM_SHIFT 9 2519#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_E1HOV_IN_CAM_SHIFT 9
2400#define __TSTORM_ETH_FUNCTION_COMMON_CONFIG_RESERVED0 (0x3F<<10) 2520#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_ENABLE_TPA (0x1<<10)
2401#define __TSTORM_ETH_FUNCTION_COMMON_CONFIG_RESERVED0_SHIFT 10 2521#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_ENABLE_TPA_SHIFT 10
2522#define __TSTORM_ETH_FUNCTION_COMMON_CONFIG_RESERVED0 (0x1F<<11)
2523#define __TSTORM_ETH_FUNCTION_COMMON_CONFIG_RESERVED0_SHIFT 11
2402 u8 rss_result_mask; 2524 u8 rss_result_mask;
2403 u8 leading_client_id; 2525 u8 leading_client_id;
2404#endif 2526#endif
@@ -2406,11 +2528,38 @@ struct tstorm_eth_function_common_config {
2406}; 2528};
2407 2529
2408/* 2530/*
2531 * RSS idirection table update configuration
2532 */
2533struct rss_update_config {
2534#if defined(__BIG_ENDIAN)
2535 u16 toe_rss_bitmap;
2536 u16 flags;
2537#define RSS_UPDATE_CONFIG_ETH_UPDATE_ENABLE (0x1<<0)
2538#define RSS_UPDATE_CONFIG_ETH_UPDATE_ENABLE_SHIFT 0
2539#define RSS_UPDATE_CONFIG_TOE_UPDATE_ENABLE (0x1<<1)
2540#define RSS_UPDATE_CONFIG_TOE_UPDATE_ENABLE_SHIFT 1
2541#define __RSS_UPDATE_CONFIG_RESERVED0 (0x3FFF<<2)
2542#define __RSS_UPDATE_CONFIG_RESERVED0_SHIFT 2
2543#elif defined(__LITTLE_ENDIAN)
2544 u16 flags;
2545#define RSS_UPDATE_CONFIG_ETH_UPDATE_ENABLE (0x1<<0)
2546#define RSS_UPDATE_CONFIG_ETH_UPDATE_ENABLE_SHIFT 0
2547#define RSS_UPDATE_CONFIG_TOE_UPDATE_ENABLE (0x1<<1)
2548#define RSS_UPDATE_CONFIG_TOE_UPDATE_ENABLE_SHIFT 1
2549#define __RSS_UPDATE_CONFIG_RESERVED0 (0x3FFF<<2)
2550#define __RSS_UPDATE_CONFIG_RESERVED0_SHIFT 2
2551 u16 toe_rss_bitmap;
2552#endif
2553 u32 reserved1;
2554};
2555
2556/*
2409 * parameters for eth update ramrod 2557 * parameters for eth update ramrod
2410 */ 2558 */
2411struct eth_update_ramrod_data { 2559struct eth_update_ramrod_data {
2412 struct tstorm_eth_function_common_config func_config; 2560 struct tstorm_eth_function_common_config func_config;
2413 u8 indirectionTable[128]; 2561 u8 indirectionTable[128];
2562 struct rss_update_config rss_config;
2414}; 2563};
2415 2564
2416 2565
@@ -2455,8 +2604,9 @@ struct tstorm_cam_target_table_entry {
2455#define TSTORM_CAM_TARGET_TABLE_ENTRY_RDMA_MAC_SHIFT 3 2604#define TSTORM_CAM_TARGET_TABLE_ENTRY_RDMA_MAC_SHIFT 3
2456#define TSTORM_CAM_TARGET_TABLE_ENTRY_RESERVED0 (0xF<<4) 2605#define TSTORM_CAM_TARGET_TABLE_ENTRY_RESERVED0 (0xF<<4)
2457#define TSTORM_CAM_TARGET_TABLE_ENTRY_RESERVED0_SHIFT 4 2606#define TSTORM_CAM_TARGET_TABLE_ENTRY_RESERVED0_SHIFT 4
2458 u8 client_id; 2607 u8 reserved1;
2459 u16 vlan_id; 2608 u16 vlan_id;
2609 u32 clients_bit_vector;
2460}; 2610};
2461 2611
2462/* 2612/*
@@ -2485,7 +2635,7 @@ struct mac_configuration_entry_e1h {
2485 __le16 msb_mac_addr; 2635 __le16 msb_mac_addr;
2486 __le16 vlan_id; 2636 __le16 vlan_id;
2487 __le16 e1hov_id; 2637 __le16 e1hov_id;
2488 u8 client_id; 2638 u8 reserved0;
2489 u8 flags; 2639 u8 flags;
2490#define MAC_CONFIGURATION_ENTRY_E1H_PORT (0x1<<0) 2640#define MAC_CONFIGURATION_ENTRY_E1H_PORT (0x1<<0)
2491#define MAC_CONFIGURATION_ENTRY_E1H_PORT_SHIFT 0 2641#define MAC_CONFIGURATION_ENTRY_E1H_PORT_SHIFT 0
@@ -2493,8 +2643,9 @@ struct mac_configuration_entry_e1h {
2493#define MAC_CONFIGURATION_ENTRY_E1H_ACTION_TYPE_SHIFT 1 2643#define MAC_CONFIGURATION_ENTRY_E1H_ACTION_TYPE_SHIFT 1
2494#define MAC_CONFIGURATION_ENTRY_E1H_RDMA_MAC (0x1<<2) 2644#define MAC_CONFIGURATION_ENTRY_E1H_RDMA_MAC (0x1<<2)
2495#define MAC_CONFIGURATION_ENTRY_E1H_RDMA_MAC_SHIFT 2 2645#define MAC_CONFIGURATION_ENTRY_E1H_RDMA_MAC_SHIFT 2
2496#define MAC_CONFIGURATION_ENTRY_E1H_RESERVED0 (0x1F<<3) 2646#define MAC_CONFIGURATION_ENTRY_E1H_RESERVED1 (0x1F<<3)
2497#define MAC_CONFIGURATION_ENTRY_E1H_RESERVED0_SHIFT 3 2647#define MAC_CONFIGURATION_ENTRY_E1H_RESERVED1_SHIFT 3
2648 u32 clients_bit_vector;
2498}; 2649};
2499 2650
2500/* 2651/*
@@ -2519,13 +2670,13 @@ struct tstorm_eth_approximate_match_multicast_filtering {
2519 */ 2670 */
2520struct tstorm_eth_client_config { 2671struct tstorm_eth_client_config {
2521#if defined(__BIG_ENDIAN) 2672#if defined(__BIG_ENDIAN)
2522 u8 max_sges_for_packet; 2673 u8 reserved0;
2523 u8 statistics_counter_id; 2674 u8 statistics_counter_id;
2524 u16 mtu; 2675 u16 mtu;
2525#elif defined(__LITTLE_ENDIAN) 2676#elif defined(__LITTLE_ENDIAN)
2526 u16 mtu; 2677 u16 mtu;
2527 u8 statistics_counter_id; 2678 u8 statistics_counter_id;
2528 u8 max_sges_for_packet; 2679 u8 reserved0;
2529#endif 2680#endif
2530#if defined(__BIG_ENDIAN) 2681#if defined(__BIG_ENDIAN)
2531 u16 drop_flags; 2682 u16 drop_flags;
@@ -2537,8 +2688,8 @@ struct tstorm_eth_client_config {
2537#define TSTORM_ETH_CLIENT_CONFIG_DROP_TTL0_SHIFT 2 2688#define TSTORM_ETH_CLIENT_CONFIG_DROP_TTL0_SHIFT 2
2538#define TSTORM_ETH_CLIENT_CONFIG_DROP_UDP_CS_ERR (0x1<<3) 2689#define TSTORM_ETH_CLIENT_CONFIG_DROP_UDP_CS_ERR (0x1<<3)
2539#define TSTORM_ETH_CLIENT_CONFIG_DROP_UDP_CS_ERR_SHIFT 3 2690#define TSTORM_ETH_CLIENT_CONFIG_DROP_UDP_CS_ERR_SHIFT 3
2540#define __TSTORM_ETH_CLIENT_CONFIG_RESERVED1 (0xFFF<<4) 2691#define __TSTORM_ETH_CLIENT_CONFIG_RESERVED2 (0xFFF<<4)
2541#define __TSTORM_ETH_CLIENT_CONFIG_RESERVED1_SHIFT 4 2692#define __TSTORM_ETH_CLIENT_CONFIG_RESERVED2_SHIFT 4
2542 u16 config_flags; 2693 u16 config_flags;
2543#define TSTORM_ETH_CLIENT_CONFIG_VLAN_REM_ENABLE (0x1<<0) 2694#define TSTORM_ETH_CLIENT_CONFIG_VLAN_REM_ENABLE (0x1<<0)
2544#define TSTORM_ETH_CLIENT_CONFIG_VLAN_REM_ENABLE_SHIFT 0 2695#define TSTORM_ETH_CLIENT_CONFIG_VLAN_REM_ENABLE_SHIFT 0
@@ -2546,10 +2697,8 @@ struct tstorm_eth_client_config {
2546#define TSTORM_ETH_CLIENT_CONFIG_E1HOV_REM_ENABLE_SHIFT 1 2697#define TSTORM_ETH_CLIENT_CONFIG_E1HOV_REM_ENABLE_SHIFT 1
2547#define TSTORM_ETH_CLIENT_CONFIG_STATSITICS_ENABLE (0x1<<2) 2698#define TSTORM_ETH_CLIENT_CONFIG_STATSITICS_ENABLE (0x1<<2)
2548#define TSTORM_ETH_CLIENT_CONFIG_STATSITICS_ENABLE_SHIFT 2 2699#define TSTORM_ETH_CLIENT_CONFIG_STATSITICS_ENABLE_SHIFT 2
2549#define TSTORM_ETH_CLIENT_CONFIG_ENABLE_SGE_RING (0x1<<3) 2700#define __TSTORM_ETH_CLIENT_CONFIG_RESERVED1 (0x1FFF<<3)
2550#define TSTORM_ETH_CLIENT_CONFIG_ENABLE_SGE_RING_SHIFT 3 2701#define __TSTORM_ETH_CLIENT_CONFIG_RESERVED1_SHIFT 3
2551#define __TSTORM_ETH_CLIENT_CONFIG_RESERVED0 (0xFFF<<4)
2552#define __TSTORM_ETH_CLIENT_CONFIG_RESERVED0_SHIFT 4
2553#elif defined(__LITTLE_ENDIAN) 2702#elif defined(__LITTLE_ENDIAN)
2554 u16 config_flags; 2703 u16 config_flags;
2555#define TSTORM_ETH_CLIENT_CONFIG_VLAN_REM_ENABLE (0x1<<0) 2704#define TSTORM_ETH_CLIENT_CONFIG_VLAN_REM_ENABLE (0x1<<0)
@@ -2558,10 +2707,8 @@ struct tstorm_eth_client_config {
2558#define TSTORM_ETH_CLIENT_CONFIG_E1HOV_REM_ENABLE_SHIFT 1 2707#define TSTORM_ETH_CLIENT_CONFIG_E1HOV_REM_ENABLE_SHIFT 1
2559#define TSTORM_ETH_CLIENT_CONFIG_STATSITICS_ENABLE (0x1<<2) 2708#define TSTORM_ETH_CLIENT_CONFIG_STATSITICS_ENABLE (0x1<<2)
2560#define TSTORM_ETH_CLIENT_CONFIG_STATSITICS_ENABLE_SHIFT 2 2709#define TSTORM_ETH_CLIENT_CONFIG_STATSITICS_ENABLE_SHIFT 2
2561#define TSTORM_ETH_CLIENT_CONFIG_ENABLE_SGE_RING (0x1<<3) 2710#define __TSTORM_ETH_CLIENT_CONFIG_RESERVED1 (0x1FFF<<3)
2562#define TSTORM_ETH_CLIENT_CONFIG_ENABLE_SGE_RING_SHIFT 3 2711#define __TSTORM_ETH_CLIENT_CONFIG_RESERVED1_SHIFT 3
2563#define __TSTORM_ETH_CLIENT_CONFIG_RESERVED0 (0xFFF<<4)
2564#define __TSTORM_ETH_CLIENT_CONFIG_RESERVED0_SHIFT 4
2565 u16 drop_flags; 2712 u16 drop_flags;
2566#define TSTORM_ETH_CLIENT_CONFIG_DROP_IP_CS_ERR (0x1<<0) 2713#define TSTORM_ETH_CLIENT_CONFIG_DROP_IP_CS_ERR (0x1<<0)
2567#define TSTORM_ETH_CLIENT_CONFIG_DROP_IP_CS_ERR_SHIFT 0 2714#define TSTORM_ETH_CLIENT_CONFIG_DROP_IP_CS_ERR_SHIFT 0
@@ -2571,8 +2718,8 @@ struct tstorm_eth_client_config {
2571#define TSTORM_ETH_CLIENT_CONFIG_DROP_TTL0_SHIFT 2 2718#define TSTORM_ETH_CLIENT_CONFIG_DROP_TTL0_SHIFT 2
2572#define TSTORM_ETH_CLIENT_CONFIG_DROP_UDP_CS_ERR (0x1<<3) 2719#define TSTORM_ETH_CLIENT_CONFIG_DROP_UDP_CS_ERR (0x1<<3)
2573#define TSTORM_ETH_CLIENT_CONFIG_DROP_UDP_CS_ERR_SHIFT 3 2720#define TSTORM_ETH_CLIENT_CONFIG_DROP_UDP_CS_ERR_SHIFT 3
2574#define __TSTORM_ETH_CLIENT_CONFIG_RESERVED1 (0xFFF<<4) 2721#define __TSTORM_ETH_CLIENT_CONFIG_RESERVED2 (0xFFF<<4)
2575#define __TSTORM_ETH_CLIENT_CONFIG_RESERVED1_SHIFT 4 2722#define __TSTORM_ETH_CLIENT_CONFIG_RESERVED2_SHIFT 4
2576#endif 2723#endif
2577}; 2724};
2578 2725
@@ -2695,7 +2842,6 @@ struct rate_shaping_vars_per_port {
2695 u32 rs_threshold; 2842 u32 rs_threshold;
2696}; 2843};
2697 2844
2698
2699/* 2845/*
2700 * per-port fairness variables 2846 * per-port fairness variables
2701 */ 2847 */
@@ -2705,7 +2851,6 @@ struct fairness_vars_per_port {
2705 u32 fairness_timeout; 2851 u32 fairness_timeout;
2706}; 2852};
2707 2853
2708
2709/* 2854/*
2710 * per-port SAFC variables 2855 * per-port SAFC variables
2711 */ 2856 */
@@ -2722,7 +2867,6 @@ struct safc_struct_per_port {
2722 u16 cos_to_pause_mask[NUM_OF_SAFC_BITS]; 2867 u16 cos_to_pause_mask[NUM_OF_SAFC_BITS];
2723}; 2868};
2724 2869
2725
2726/* 2870/*
2727 * Per-port congestion management variables 2871 * Per-port congestion management variables
2728 */ 2872 */
@@ -2735,11 +2879,23 @@ struct cmng_struct_per_port {
2735 2879
2736 2880
2737/* 2881/*
2882 * Dynamic host coalescing init parameters
2883 */
2884struct dynamic_hc_config {
2885 u32 threshold[3];
2886 u8 shift_per_protocol[HC_USTORM_SB_NUM_INDICES];
2887 u8 hc_timeout0[HC_USTORM_SB_NUM_INDICES];
2888 u8 hc_timeout1[HC_USTORM_SB_NUM_INDICES];
2889 u8 hc_timeout2[HC_USTORM_SB_NUM_INDICES];
2890 u8 hc_timeout3[HC_USTORM_SB_NUM_INDICES];
2891};
2892
2893
2894/*
2738 * Protocol-common statistics collected by the Xstorm (per client) 2895 * Protocol-common statistics collected by the Xstorm (per client)
2739 */ 2896 */
2740struct xstorm_per_client_stats { 2897struct xstorm_per_client_stats {
2741 struct regpair total_sent_bytes; 2898 __le32 reserved0;
2742 __le32 total_sent_pkts;
2743 __le32 unicast_pkts_sent; 2899 __le32 unicast_pkts_sent;
2744 struct regpair unicast_bytes_sent; 2900 struct regpair unicast_bytes_sent;
2745 struct regpair multicast_bytes_sent; 2901 struct regpair multicast_bytes_sent;
@@ -2747,11 +2903,10 @@ struct xstorm_per_client_stats {
2747 __le32 broadcast_pkts_sent; 2903 __le32 broadcast_pkts_sent;
2748 struct regpair broadcast_bytes_sent; 2904 struct regpair broadcast_bytes_sent;
2749 __le16 stats_counter; 2905 __le16 stats_counter;
2750 __le16 reserved0; 2906 __le16 reserved1;
2751 __le32 reserved1; 2907 __le32 reserved2;
2752}; 2908};
2753 2909
2754
2755/* 2910/*
2756 * Common statistics collected by the Xstorm (per port) 2911 * Common statistics collected by the Xstorm (per port)
2757 */ 2912 */
@@ -2759,7 +2914,6 @@ struct xstorm_common_stats {
2759 struct xstorm_per_client_stats client_statistics[MAX_X_STAT_COUNTER_ID]; 2914 struct xstorm_per_client_stats client_statistics[MAX_X_STAT_COUNTER_ID];
2760}; 2915};
2761 2916
2762
2763/* 2917/*
2764 * Protocol-common statistics collected by the Tstorm (per port) 2918 * Protocol-common statistics collected by the Tstorm (per port)
2765 */ 2919 */
@@ -2770,19 +2924,16 @@ struct tstorm_per_port_stats {
2770 __le32 mac_discard; 2924 __le32 mac_discard;
2771}; 2925};
2772 2926
2773
2774/* 2927/*
2775 * Protocol-common statistics collected by the Tstorm (per client) 2928 * Protocol-common statistics collected by the Tstorm (per client)
2776 */ 2929 */
2777struct tstorm_per_client_stats { 2930struct tstorm_per_client_stats {
2778 struct regpair total_rcv_bytes;
2779 struct regpair rcv_unicast_bytes; 2931 struct regpair rcv_unicast_bytes;
2780 struct regpair rcv_broadcast_bytes; 2932 struct regpair rcv_broadcast_bytes;
2781 struct regpair rcv_multicast_bytes; 2933 struct regpair rcv_multicast_bytes;
2782 struct regpair rcv_error_bytes; 2934 struct regpair rcv_error_bytes;
2783 __le32 checksum_discard; 2935 __le32 checksum_discard;
2784 __le32 packets_too_big_discard; 2936 __le32 packets_too_big_discard;
2785 __le32 total_rcv_pkts;
2786 __le32 rcv_unicast_pkts; 2937 __le32 rcv_unicast_pkts;
2787 __le32 rcv_broadcast_pkts; 2938 __le32 rcv_broadcast_pkts;
2788 __le32 rcv_multicast_pkts; 2939 __le32 rcv_multicast_pkts;
@@ -2790,7 +2941,6 @@ struct tstorm_per_client_stats {
2790 __le32 ttl0_discard; 2941 __le32 ttl0_discard;
2791 __le16 stats_counter; 2942 __le16 stats_counter;
2792 __le16 reserved0; 2943 __le16 reserved0;
2793 __le32 reserved1;
2794}; 2944};
2795 2945
2796/* 2946/*
@@ -2893,6 +3043,15 @@ struct pram_fw_version {
2893 3043
2894 3044
2895/* 3045/*
3046 * The send queue element
3047 */
3048struct protocol_common_spe {
3049 struct spe_hdr hdr;
3050 struct regpair phy_address;
3051};
3052
3053
3054/*
2896 * a single rate shaping counter. can be used as protocol or vnic counter 3055 * a single rate shaping counter. can be used as protocol or vnic counter
2897 */ 3056 */
2898struct rate_shaping_counter { 3057struct rate_shaping_counter {