diff options
author | Eilon Greenstein <eilong@broadcom.com> | 2009-08-13 01:53:28 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-08-13 01:53:28 -0400 |
commit | ca00392cb8f5227c67ff52c656d91a764d022ab9 (patch) | |
tree | 007d82074e49d25d1ee6bfb484392032d463be91 /drivers/net/bnx2x_hsi.h | |
parent | 6200f09036ee6f12822a9133dba7ed011b179c69 (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.h | 361 |
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 | */ | ||
1275 | struct 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 | */ |
1275 | struct igu_ack_register { | 1291 | struct igu_ack_register { |
@@ -1304,6 +1320,62 @@ struct igu_ack_register { | |||
1304 | 1320 | ||
1305 | 1321 | ||
1306 | /* | 1322 | /* |
1323 | * IGU driver acknowledgement register | ||
1324 | */ | ||
1325 | struct 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 | */ | ||
1346 | struct 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 | */ | ||
1372 | union 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 | */ |
1309 | struct parsing_flags { | 1381 | struct 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 | */ |
1516 | struct eth_local_rx_rings { | 1609 | struct 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 | */ |
1608 | struct xstorm_eth_ag_context { | 1701 | struct 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 | */ |
1912 | struct eth_tx_bd { | 2005 | struct 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 | */ | ||
2022 | struct 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 | */ |
1970 | struct eth_tx_next_bd { | 2074 | struct 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 | */ |
1979 | union eth_tx_bd_types { | 2083 | union 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 | */ |
2079 | struct ustorm_def_status_block { | 2208 | struct 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 | */ |
2090 | struct cstorm_def_status_block { | 2219 | struct 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 | */ |
2123 | struct host_def_status_block { | 2252 | struct 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 | */ |
2135 | struct ustorm_status_block { | 2264 | struct 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 | */ |
2146 | struct cstorm_status_block { | 2275 | struct 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 | */ |
2157 | struct host_status_block { | 2286 | struct 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 | */ | ||
2177 | struct 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 | */ |
2186 | struct eth_fast_path_rx_cqe { | 2306 | struct 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 | */ |
2349 | struct eth_tx_db_data { | 2469 | struct 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 | */ | ||
2533 | struct 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 | */ |
2411 | struct eth_update_ramrod_data { | 2559 | struct 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 | */ |
2520 | struct tstorm_eth_client_config { | 2671 | struct 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 | */ | ||
2884 | struct 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 | */ |
2740 | struct xstorm_per_client_stats { | 2897 | struct 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 | */ |
2777 | struct tstorm_per_client_stats { | 2930 | struct 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 | */ | ||
3048 | struct 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 | */ |
2898 | struct rate_shaping_counter { | 3057 | struct rate_shaping_counter { |