aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/broadcom/bnx2x/bnx2x.h
diff options
context:
space:
mode:
authorDmitry Kravkov <dmitry@broadcom.com>2012-02-20 04:59:08 -0500
committerDavid S. Miller <davem@davemloft.net>2012-02-20 19:34:07 -0500
commit621b4d66b27e70ba9a0e8fa4676d9c4f916c8343 (patch)
tree41ebada1c68d784b97ca792b74a73a2f72ac4876 /drivers/net/ethernet/broadcom/bnx2x/bnx2x.h
parent2b68c18194b078489a84023564bcf7464b6c7b37 (diff)
use FW 7.2.16
The patch integrates FW 7.2.16 HSI and implements driver part of GRO flow. FW 7.2.16 adds the ability to aggregate packets for GRO (and not just LRO) and also fixes some bugs. 1. Added new aggregation mode: GRO. In this mode packets are aggregated such that the original packets can be reconstructed by the OS. 2. 57712 HW bug workaround - initialized all CAM TM registers to 0x32. 3. Adding the FCoE statistics structures to the BNX2X HSI. 4. Wrong configuration of TX HW input buffer size may cause theoretical performance effect. Performed configuration fix. 5. FCOE - Arrival of packets beyond task IO size can lead to crash. Fix firmware data-in flow. 6. iSCSI - In rare cases of on-chip termination the graceful termination timer hangs, and the termination doesn't complete. Firmware fix to MSL timer tolerance. 7. iSCSI - Chip hangs when target sends FIN out-of-order or with isles open at the initiator side. Firmware implementation corrected to drop FIN received out-of-order or with isles still open. 8. iSCSI - Chip hangs when in case of retransmission not aligned to 4-bytes from the beginning of iSCSI PDU. Firmware implementation corrected to support arbitrary aligned retransmissions. 9. iSCSI - Arrival of target-initiated NOP-IN during intense ISCSI traffic might lead to crash. Firmware fix to relevant flow. Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com> Signed-off-by: Eilon Greenstein <eilong@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/broadcom/bnx2x/bnx2x.h')
-rw-r--r--drivers/net/ethernet/broadcom/bnx2x/bnx2x.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x.h b/drivers/net/ethernet/broadcom/bnx2x/bnx2x.h
index 604060ab8872..3cf9df833cb4 100644
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x.h
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x.h
@@ -445,6 +445,8 @@ struct bnx2x_agg_info {
445 u16 vlan_tag; 445 u16 vlan_tag;
446 u16 len_on_bd; 446 u16 len_on_bd;
447 u32 rxhash; 447 u32 rxhash;
448 u16 gro_size;
449 u16 full_page;
448}; 450};
449 451
450#define Q_STATS_OFFSET32(stat_name) \ 452#define Q_STATS_OFFSET32(stat_name) \
@@ -473,6 +475,11 @@ struct bnx2x_fp_txdata {
473 int txq_index; 475 int txq_index;
474}; 476};
475 477
478enum bnx2x_tpa_mode_t {
479 TPA_MODE_LRO,
480 TPA_MODE_GRO
481};
482
476struct bnx2x_fastpath { 483struct bnx2x_fastpath {
477 struct bnx2x *bp; /* parent */ 484 struct bnx2x *bp; /* parent */
478 485
@@ -489,6 +496,8 @@ struct bnx2x_fastpath {
489 496
490 dma_addr_t status_blk_mapping; 497 dma_addr_t status_blk_mapping;
491 498
499 enum bnx2x_tpa_mode_t mode;
500
492 u8 max_cos; /* actual number of active tx coses */ 501 u8 max_cos; /* actual number of active tx coses */
493 struct bnx2x_fp_txdata txdata[BNX2X_MULTI_TX_COS]; 502 struct bnx2x_fp_txdata txdata[BNX2X_MULTI_TX_COS];
494 503
@@ -1199,6 +1208,8 @@ struct bnx2x {
1199#define ETH_MIN_PACKET_SIZE 60 1208#define ETH_MIN_PACKET_SIZE 60
1200#define ETH_MAX_PACKET_SIZE 1500 1209#define ETH_MAX_PACKET_SIZE 1500
1201#define ETH_MAX_JUMBO_PACKET_SIZE 9600 1210#define ETH_MAX_JUMBO_PACKET_SIZE 9600
1211/* TCP with Timestamp Option (32) + IPv6 (40) */
1212#define ETH_MAX_TPA_HEADER_SIZE 72
1202 1213
1203 /* Max supported alignment is 256 (8 shift) */ 1214 /* Max supported alignment is 256 (8 shift) */
1204#define BNX2X_RX_ALIGN_SHIFT min(8, L1_CACHE_SHIFT) 1215#define BNX2X_RX_ALIGN_SHIFT min(8, L1_CACHE_SHIFT)
@@ -1269,6 +1280,7 @@ struct bnx2x {
1269#define NO_MCP_FLAG (1 << 9) 1280#define NO_MCP_FLAG (1 << 9)
1270 1281
1271#define BP_NOMCP(bp) (bp->flags & NO_MCP_FLAG) 1282#define BP_NOMCP(bp) (bp->flags & NO_MCP_FLAG)
1283#define GRO_ENABLE_FLAG (1 << 10)
1272#define MF_FUNC_DIS (1 << 11) 1284#define MF_FUNC_DIS (1 << 11)
1273#define OWN_CNIC_IRQ (1 << 12) 1285#define OWN_CNIC_IRQ (1 << 12)
1274#define NO_ISCSI_OOO_FLAG (1 << 13) 1286#define NO_ISCSI_OOO_FLAG (1 << 13)