aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/bnx2.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/bnx2.h')
-rw-r--r--drivers/net/bnx2.h65
1 files changed, 57 insertions, 8 deletions
diff --git a/drivers/net/bnx2.h b/drivers/net/bnx2.h
index 878eee58f12a..bd6288d6350f 100644
--- a/drivers/net/bnx2.h
+++ b/drivers/net/bnx2.h
@@ -1,6 +1,6 @@
1/* bnx2.h: Broadcom NX2 network driver. 1/* bnx2.h: Broadcom NX2 network driver.
2 * 2 *
3 * Copyright (c) 2004, 2005, 2006 Broadcom Corporation 3 * Copyright (c) 2004-2007 Broadcom Corporation
4 * 4 *
5 * This program is free software; you can redistribute it and/or modify 5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by 6 * it under the terms of the GNU General Public License as published by
@@ -24,8 +24,11 @@ struct tx_bd {
24 u32 tx_bd_haddr_hi; 24 u32 tx_bd_haddr_hi;
25 u32 tx_bd_haddr_lo; 25 u32 tx_bd_haddr_lo;
26 u32 tx_bd_mss_nbytes; 26 u32 tx_bd_mss_nbytes;
27 #define TX_BD_TCP6_OFF2_SHL (14)
27 u32 tx_bd_vlan_tag_flags; 28 u32 tx_bd_vlan_tag_flags;
28 #define TX_BD_FLAGS_CONN_FAULT (1<<0) 29 #define TX_BD_FLAGS_CONN_FAULT (1<<0)
30 #define TX_BD_FLAGS_TCP6_OFF0_MSK (3<<1)
31 #define TX_BD_FLAGS_TCP6_OFF0_SHL (1)
29 #define TX_BD_FLAGS_TCP_UDP_CKSUM (1<<1) 32 #define TX_BD_FLAGS_TCP_UDP_CKSUM (1<<1)
30 #define TX_BD_FLAGS_IP_CKSUM (1<<2) 33 #define TX_BD_FLAGS_IP_CKSUM (1<<2)
31 #define TX_BD_FLAGS_VLAN_TAG (1<<3) 34 #define TX_BD_FLAGS_VLAN_TAG (1<<3)
@@ -34,6 +37,7 @@ struct tx_bd {
34 #define TX_BD_FLAGS_END (1<<6) 37 #define TX_BD_FLAGS_END (1<<6)
35 #define TX_BD_FLAGS_START (1<<7) 38 #define TX_BD_FLAGS_START (1<<7)
36 #define TX_BD_FLAGS_SW_OPTION_WORD (0x1f<<8) 39 #define TX_BD_FLAGS_SW_OPTION_WORD (0x1f<<8)
40 #define TX_BD_FLAGS_TCP6_OFF4_SHL (12)
37 #define TX_BD_FLAGS_SW_FLAGS (1<<13) 41 #define TX_BD_FLAGS_SW_FLAGS (1<<13)
38 #define TX_BD_FLAGS_SW_SNAP (1<<14) 42 #define TX_BD_FLAGS_SW_SNAP (1<<14)
39 #define TX_BD_FLAGS_SW_LSO (1<<15) 43 #define TX_BD_FLAGS_SW_LSO (1<<15)
@@ -6292,6 +6296,41 @@ struct l2_fhdr {
6292#define MII_BNX2_DSP_ADDRESS 0x17 6296#define MII_BNX2_DSP_ADDRESS 0x17
6293#define MII_BNX2_DSP_EXPAND_REG 0x0f00 6297#define MII_BNX2_DSP_EXPAND_REG 0x0f00
6294 6298
6299#define MII_BNX2_BLK_ADDR 0x1f
6300#define MII_BNX2_BLK_ADDR_IEEE0 0x0000
6301#define MII_BNX2_BLK_ADDR_GP_STATUS 0x8120
6302#define MII_BNX2_GP_TOP_AN_STATUS1 0x1b
6303#define MII_BNX2_GP_TOP_AN_SPEED_MSK 0x3f00
6304#define MII_BNX2_GP_TOP_AN_SPEED_10 0x0000
6305#define MII_BNX2_GP_TOP_AN_SPEED_100 0x0100
6306#define MII_BNX2_GP_TOP_AN_SPEED_1G 0x0200
6307#define MII_BNX2_GP_TOP_AN_SPEED_2_5G 0x0300
6308#define MII_BNX2_GP_TOP_AN_SPEED_1GKV 0x0d00
6309#define MII_BNX2_GP_TOP_AN_FD 0x8
6310#define MII_BNX2_BLK_ADDR_SERDES_DIG 0x8300
6311#define MII_BNX2_SERDES_DIG_1000XCTL1 0x10
6312#define MII_BNX2_SD_1000XCTL1_FIBER 0x01
6313#define MII_BNX2_SD_1000XCTL1_AUTODET 0x10
6314#define MII_BNX2_SERDES_DIG_MISC1 0x18
6315#define MII_BNX2_SD_MISC1_FORCE_MSK 0xf
6316#define MII_BNX2_SD_MISC1_FORCE_2_5G 0x0
6317#define MII_BNX2_SD_MISC1_FORCE 0x10
6318#define MII_BNX2_BLK_ADDR_OVER1G 0x8320
6319#define MII_BNX2_OVER1G_UP1 0x19
6320#define MII_BNX2_BLK_ADDR_BAM_NXTPG 0x8350
6321#define MII_BNX2_BAM_NXTPG_CTL 0x10
6322#define MII_BNX2_NXTPG_CTL_BAM 0x1
6323#define MII_BNX2_NXTPG_CTL_T2 0x2
6324#define MII_BNX2_BLK_ADDR_CL73_USERB0 0x8370
6325#define MII_BNX2_CL73_BAM_CTL1 0x12
6326#define MII_BNX2_CL73_BAM_EN 0x8000
6327#define MII_BNX2_CL73_BAM_STA_MGR_EN 0x4000
6328#define MII_BNX2_CL73_BAM_NP_AFT_BP_EN 0x2000
6329#define MII_BNX2_BLK_ADDR_AER 0xffd0
6330#define MII_BNX2_AER_AER 0x1e
6331#define MII_BNX2_AER_AER_AN_MMD 0x3800
6332#define MII_BNX2_BLK_ADDR_COMBO_IEEEB0 0xffe0
6333
6295#define MIN_ETHERNET_PACKET_SIZE 60 6334#define MIN_ETHERNET_PACKET_SIZE 60
6296#define MAX_ETHERNET_PACKET_SIZE 1514 6335#define MAX_ETHERNET_PACKET_SIZE 1514
6297#define MAX_ETHERNET_JUMBO_PACKET_SIZE 9014 6336#define MAX_ETHERNET_JUMBO_PACKET_SIZE 9014
@@ -6429,13 +6468,15 @@ struct bnx2 {
6429 u32 last_status_idx; 6468 u32 last_status_idx;
6430 6469
6431 u32 flags; 6470 u32 flags;
6432#define PCIX_FLAG 1 6471#define PCIX_FLAG 0x00000001
6433#define PCI_32BIT_FLAG 2 6472#define PCI_32BIT_FLAG 0x00000002
6434#define ONE_TDMA_FLAG 4 /* no longer used */ 6473#define ONE_TDMA_FLAG 0x00000004 /* no longer used */
6435#define NO_WOL_FLAG 8 6474#define NO_WOL_FLAG 0x00000008
6436#define USING_DAC_FLAG 0x10 6475#define USING_MSI_FLAG 0x00000020
6437#define USING_MSI_FLAG 0x20 6476#define ASF_ENABLE_FLAG 0x00000040
6438#define ASF_ENABLE_FLAG 0x40 6477#define MSI_CAP_FLAG 0x00000080
6478#define ONE_SHOT_MSI_FLAG 0x00000100
6479#define PCIE_FLAG 0x00000200
6439 6480
6440 /* Put tx producer and consumer fields in separate cache lines. */ 6481 /* Put tx producer and consumer fields in separate cache lines. */
6441 6482
@@ -6484,6 +6525,7 @@ struct bnx2 {
6484 6525
6485 /* Used to synchronize phy accesses. */ 6526 /* Used to synchronize phy accesses. */
6486 spinlock_t phy_lock; 6527 spinlock_t phy_lock;
6528 spinlock_t indirect_lock;
6487 6529
6488 u32 phy_flags; 6530 u32 phy_flags;
6489#define PHY_SERDES_FLAG 1 6531#define PHY_SERDES_FLAG 1
@@ -6495,6 +6537,13 @@ struct bnx2 {
6495#define PHY_INT_MODE_LINK_READY_FLAG 0x200 6537#define PHY_INT_MODE_LINK_READY_FLAG 0x200
6496#define PHY_DIS_EARLY_DAC_FLAG 0x400 6538#define PHY_DIS_EARLY_DAC_FLAG 0x400
6497 6539
6540 u32 mii_bmcr;
6541 u32 mii_bmsr;
6542 u32 mii_bmsr1;
6543 u32 mii_adv;
6544 u32 mii_lpa;
6545 u32 mii_up1;
6546
6498 u32 chip_id; 6547 u32 chip_id;
6499 /* chip num:16-31, rev:12-15, metal:4-11, bond_id:0-3 */ 6548 /* chip num:16-31, rev:12-15, metal:4-11, bond_id:0-3 */
6500#define CHIP_NUM(bp) (((bp)->chip_id) & 0xffff0000) 6549#define CHIP_NUM(bp) (((bp)->chip_id) & 0xffff0000)