]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - drivers/net/tg3.h
net: Move flow control definitions to mii.h
[net-next-2.6.git] / drivers / net / tg3.h
index be252abe8985faf0fb2d7c75bec2d10095ef4f7c..0880cfacdcba16ce5e033f7c7cd7624610e05d1d 100644 (file)
 #define  TG3PCI_DEVICE_TIGON3_2                 0x1645 /* BCM5701 */
 #define  TG3PCI_DEVICE_TIGON3_3                 0x1646 /* BCM5702 */
 #define  TG3PCI_DEVICE_TIGON3_4                 0x1647 /* BCM5703 */
+#define  TG3PCI_DEVICE_TIGON3_5761S     0x1688
+#define  TG3PCI_DEVICE_TIGON3_5761SE    0x1689
+#define  TG3PCI_DEVICE_TIGON3_57780     0x1692
+#define  TG3PCI_DEVICE_TIGON3_57760     0x1690
+#define  TG3PCI_DEVICE_TIGON3_57790     0x1694
+#define  TG3PCI_DEVICE_TIGON3_57720     0x168c
 #define TG3PCI_COMMAND                 0x00000004
 #define TG3PCI_STATUS                  0x00000006
 #define TG3PCI_CCREVID                 0x00000008
 #define   ASIC_REV_5784                         0x5784
 #define   ASIC_REV_5761                         0x5761
 #define   ASIC_REV_5785                         0x5785
+#define   ASIC_REV_57780                0x57780
 #define  GET_CHIP_REV(CHIP_REV_ID)     ((CHIP_REV_ID) >> 8)
 #define   CHIPREV_5700_AX               0x70
 #define   CHIPREV_5700_BX               0x71
 #define  MAC_MODE_TDE_ENABLE            0x00200000
 #define  MAC_MODE_RDE_ENABLE            0x00400000
 #define  MAC_MODE_FHDE_ENABLE           0x00800000
+#define  MAC_MODE_KEEP_FRAME_IN_WOL     0x01000000
 #define  MAC_MODE_APE_RX_EN             0x08000000
 #define  MAC_MODE_APE_TX_EN             0x10000000
 #define MAC_STATUS                     0x00000404
 #define  MI_COM_DATA_MASK               0x0000ffff
 #define MAC_MI_STAT                    0x00000450
 #define  MAC_MI_STAT_LNKSTAT_ATTN_ENAB  0x00000001
+#define  MAC_MI_STAT_10MBPS_MODE        0x00000002
 #define MAC_MI_MODE                    0x00000454
 #define  MAC_MI_MODE_CLK_10MHZ          0x00000001
 #define  MAC_MI_MODE_SHORT_PREAMBLE     0x00000002
 #define  MAC_PHYCFG1_TXC_DRV            0x20000000
 #define MAC_PHYCFG2                    0x000005a4
 #define  MAC_PHYCFG2_INBAND_ENABLE      0x00000001
+#define  MAC_PHYCFG2_EMODE_MASK_MASK    0x000001c0
+#define  MAC_PHYCFG2_EMODE_MASK_AC131   0x000000c0
+#define  MAC_PHYCFG2_EMODE_MASK_50610   0x00000100
+#define  MAC_PHYCFG2_EMODE_MASK_RT8211  0x00000000
+#define  MAC_PHYCFG2_EMODE_MASK_RT8201  0x000001c0
+#define  MAC_PHYCFG2_EMODE_COMP_MASK    0x00000e00
+#define  MAC_PHYCFG2_EMODE_COMP_AC131   0x00000600
+#define  MAC_PHYCFG2_EMODE_COMP_50610   0x00000400
+#define  MAC_PHYCFG2_EMODE_COMP_RT8211  0x00000800
+#define  MAC_PHYCFG2_EMODE_COMP_RT8201  0x00000000
+#define  MAC_PHYCFG2_FMODE_MASK_MASK    0x00007000
+#define  MAC_PHYCFG2_FMODE_MASK_AC131   0x00006000
+#define  MAC_PHYCFG2_FMODE_MASK_50610   0x00004000
+#define  MAC_PHYCFG2_FMODE_MASK_RT8211  0x00000000
+#define  MAC_PHYCFG2_FMODE_MASK_RT8201  0x00007000
+#define  MAC_PHYCFG2_FMODE_COMP_MASK    0x00038000
+#define  MAC_PHYCFG2_FMODE_COMP_AC131   0x00030000
+#define  MAC_PHYCFG2_FMODE_COMP_50610   0x00008000
+#define  MAC_PHYCFG2_FMODE_COMP_RT8211  0x00038000
+#define  MAC_PHYCFG2_FMODE_COMP_RT8201  0x00000000
+#define  MAC_PHYCFG2_GMODE_MASK_MASK    0x001c0000
+#define  MAC_PHYCFG2_GMODE_MASK_AC131   0x001c0000
+#define  MAC_PHYCFG2_GMODE_MASK_50610   0x00100000
+#define  MAC_PHYCFG2_GMODE_MASK_RT8211  0x00000000
+#define  MAC_PHYCFG2_GMODE_MASK_RT8201  0x001c0000
+#define  MAC_PHYCFG2_GMODE_COMP_MASK    0x00e00000
+#define  MAC_PHYCFG2_GMODE_COMP_AC131   0x00e00000
+#define  MAC_PHYCFG2_GMODE_COMP_50610   0x00000000
+#define  MAC_PHYCFG2_GMODE_COMP_RT8211  0x00200000
+#define  MAC_PHYCFG2_GMODE_COMP_RT8201  0x00000000
+#define  MAC_PHYCFG2_ACT_MASK_MASK      0x03000000
+#define  MAC_PHYCFG2_ACT_MASK_AC131     0x03000000
+#define  MAC_PHYCFG2_ACT_MASK_50610     0x01000000
+#define  MAC_PHYCFG2_ACT_MASK_RT8211    0x03000000
+#define  MAC_PHYCFG2_ACT_MASK_RT8201    0x01000000
+#define  MAC_PHYCFG2_ACT_COMP_MASK      0x0c000000
+#define  MAC_PHYCFG2_ACT_COMP_AC131     0x00000000
+#define  MAC_PHYCFG2_ACT_COMP_50610     0x00000000
+#define  MAC_PHYCFG2_ACT_COMP_RT8211    0x00000000
+#define  MAC_PHYCFG2_ACT_COMP_RT8201    0x08000000
+#define  MAC_PHYCFG2_QUAL_MASK_MASK     0x30000000
+#define  MAC_PHYCFG2_QUAL_MASK_AC131    0x30000000
+#define  MAC_PHYCFG2_QUAL_MASK_50610    0x30000000
+#define  MAC_PHYCFG2_QUAL_MASK_RT8211   0x30000000
+#define  MAC_PHYCFG2_QUAL_MASK_RT8201   0x30000000
+#define  MAC_PHYCFG2_QUAL_COMP_MASK     0xc0000000
+#define  MAC_PHYCFG2_QUAL_COMP_AC131    0x00000000
+#define  MAC_PHYCFG2_QUAL_COMP_50610    0x00000000
+#define  MAC_PHYCFG2_QUAL_COMP_RT8211   0x00000000
+#define  MAC_PHYCFG2_QUAL_COMP_RT8201   0x00000000
+#define MAC_PHYCFG2_50610_LED_MODES \
+       (MAC_PHYCFG2_EMODE_MASK_50610 | \
+        MAC_PHYCFG2_EMODE_COMP_50610 | \
+        MAC_PHYCFG2_FMODE_MASK_50610 | \
+        MAC_PHYCFG2_FMODE_COMP_50610 | \
+        MAC_PHYCFG2_GMODE_MASK_50610 | \
+        MAC_PHYCFG2_GMODE_COMP_50610 | \
+        MAC_PHYCFG2_ACT_MASK_50610 | \
+        MAC_PHYCFG2_ACT_COMP_50610 | \
+        MAC_PHYCFG2_QUAL_MASK_50610 | \
+        MAC_PHYCFG2_QUAL_COMP_50610)
+#define MAC_PHYCFG2_AC131_LED_MODES \
+       (MAC_PHYCFG2_EMODE_MASK_AC131 | \
+        MAC_PHYCFG2_EMODE_COMP_AC131 | \
+        MAC_PHYCFG2_FMODE_MASK_AC131 | \
+        MAC_PHYCFG2_FMODE_COMP_AC131 | \
+        MAC_PHYCFG2_GMODE_MASK_AC131 | \
+        MAC_PHYCFG2_GMODE_COMP_AC131 | \
+        MAC_PHYCFG2_ACT_MASK_AC131 | \
+        MAC_PHYCFG2_ACT_COMP_AC131 | \
+        MAC_PHYCFG2_QUAL_MASK_AC131 | \
+        MAC_PHYCFG2_QUAL_COMP_AC131)
+#define MAC_PHYCFG2_RTL8211C_LED_MODES \
+       (MAC_PHYCFG2_EMODE_MASK_RT8211 | \
+        MAC_PHYCFG2_EMODE_COMP_RT8211 | \
+        MAC_PHYCFG2_FMODE_MASK_RT8211 | \
+        MAC_PHYCFG2_FMODE_COMP_RT8211 | \
+        MAC_PHYCFG2_GMODE_MASK_RT8211 | \
+        MAC_PHYCFG2_GMODE_COMP_RT8211 | \
+        MAC_PHYCFG2_ACT_MASK_RT8211 | \
+        MAC_PHYCFG2_ACT_COMP_RT8211 | \
+        MAC_PHYCFG2_QUAL_MASK_RT8211 | \
+        MAC_PHYCFG2_QUAL_COMP_RT8211)
+#define MAC_PHYCFG2_RTL8201E_LED_MODES \
+       (MAC_PHYCFG2_EMODE_MASK_RT8201 | \
+        MAC_PHYCFG2_EMODE_COMP_RT8201 | \
+        MAC_PHYCFG2_FMODE_MASK_RT8201 | \
+        MAC_PHYCFG2_FMODE_COMP_RT8201 | \
+        MAC_PHYCFG2_GMODE_MASK_RT8201 | \
+        MAC_PHYCFG2_GMODE_COMP_RT8201 | \
+        MAC_PHYCFG2_ACT_MASK_RT8201 | \
+        MAC_PHYCFG2_ACT_COMP_RT8201 | \
+        MAC_PHYCFG2_QUAL_MASK_RT8201 | \
+        MAC_PHYCFG2_QUAL_COMP_RT8201)
 #define MAC_EXT_RGMII_MODE             0x000005a8
 #define  MAC_RGMII_MODE_TX_ENABLE       0x00000001
 #define  MAC_RGMII_MODE_TX_LOWPWR       0x00000002
 #define  FLASH_5761VENDOR_ST_A_M45PE40  0x02000000
 #define  FLASH_5761VENDOR_ST_A_M45PE80  0x02000002
 #define  FLASH_5761VENDOR_ST_A_M45PE16  0x02000003
+#define  FLASH_57780VENDOR_ATMEL_AT45DB011D 0x00400000
+#define  FLASH_57780VENDOR_ATMEL_AT45DB011B 0x03400000
+#define  FLASH_57780VENDOR_ATMEL_AT45DB021D 0x00400002
+#define  FLASH_57780VENDOR_ATMEL_AT45DB021B 0x03400002
+#define  FLASH_57780VENDOR_ATMEL_AT45DB041D 0x00400001
+#define  FLASH_57780VENDOR_ATMEL_AT45DB041B 0x03400001
 #define  NVRAM_CFG1_5752PAGE_SIZE_MASK  0x70000000
 #define  FLASH_5752PAGE_SIZE_256        0x00000000
 #define  FLASH_5752PAGE_SIZE_512        0x10000000
 #define  FLASH_5752PAGE_SIZE_2K                 0x30000000
 #define  FLASH_5752PAGE_SIZE_4K                 0x40000000
 #define  FLASH_5752PAGE_SIZE_264        0x50000000
+#define  FLASH_5752PAGE_SIZE_528        0x60000000
 #define NVRAM_CFG2                     0x00007018
 #define NVRAM_CFG3                     0x0000701c
 #define NVRAM_SWARB                    0x00007020
 #define TG3_NVM_DIRTYPE_SHIFT          24
 #define TG3_NVM_DIRTYPE_ASFINI         1
 
+#define TG3_EEPROM_SB_F1R0_EDH_OFF     0x10
+#define TG3_EEPROM_SB_F1R2_EDH_OFF     0x14
+#define TG3_EEPROM_SB_F1R2_MBA_OFF     0x10
+#define TG3_EEPROM_SB_F1R3_EDH_OFF     0x18
+#define TG3_EEPROM_SB_EDH_MAJ_MASK     0x00000700
+#define TG3_EEPROM_SB_EDH_MAJ_SHFT     8
+#define TG3_EEPROM_SB_EDH_MIN_MASK     0x000000ff
+#define TG3_EEPROM_SB_EDH_BLD_MASK     0x0000f800
+#define TG3_EEPROM_SB_EDH_BLD_SHFT     11
+
+
 /* 32K Window into NIC internal memory */
 #define NIC_SRAM_WIN_BASE              0x00008000
 
 
 #define NIC_SRAM_DATA_CFG_2            0x00000d38
 
+#define  NIC_SRAM_DATA_CFG_2_APD_EN     0x00000400
 #define  SHASTA_EXT_LED_MODE_MASK       0x00018000
 #define  SHASTA_EXT_LED_LEGACY          0x00000000
 #define  SHASTA_EXT_LED_SHARED          0x00008000
 
 #define MII_TG3_AUX_CTRL               0x18 /* auxilliary control register */
 
+#define MII_TG3_AUXCTL_PCTL_100TX_LPWR 0x0010
+#define MII_TG3_AUXCTL_PCTL_SPR_ISOLATE        0x0020
+#define MII_TG3_AUXCTL_PCTL_VREG_11V   0x0180
+#define MII_TG3_AUXCTL_SHDWSEL_PWRCTL  0x0002
+
 #define MII_TG3_AUXCTL_MISC_WREN       0x8000
 #define MII_TG3_AUXCTL_MISC_FORCE_AMDIX        0x0200
 #define MII_TG3_AUXCTL_MISC_RDSEL_MISC 0x7000
@@ -2211,8 +2338,6 @@ struct tg3_link_config {
        u8                              duplex;
        u8                              autoneg;
        u8                              flowctrl;
-#define TG3_FLOW_CTRL_TX               0x01
-#define TG3_FLOW_CTRL_RX               0x02
 
        /* Describes what we actually have. */
        u8                              active_flowctrl;
@@ -2507,7 +2632,6 @@ struct tg3 {
        u32                             tg3_flags3;
 #define TG3_FLG3_NO_NVRAM_ADDR_TRANS   0x00000001
 #define TG3_FLG3_ENABLE_APE            0x00000002
-#define TG3_FLG3_5761_5784_AX_FIXES    0x00000004
 #define TG3_FLG3_5701_DMA_BUG          0x00000008
 #define TG3_FLG3_USE_PHYLIB            0x00000010
 #define TG3_FLG3_MDIOBUS_INITED                0x00000020
@@ -2516,6 +2640,9 @@ struct tg3 {
 #define TG3_FLG3_RGMII_STD_IBND_DISABLE        0x00000100
 #define TG3_FLG3_RGMII_EXT_IBND_RX_EN  0x00000200
 #define TG3_FLG3_RGMII_EXT_IBND_TX_EN  0x00000400
+#define TG3_FLG3_CLKREQ_BUG            0x00000800
+#define TG3_FLG3_PHY_ENABLE_APD                0x00001000
+#define TG3_FLG3_5755_PLUS             0x00002000
 
        struct timer_list               timer;
        u16                             timer_counter;
@@ -2554,7 +2681,10 @@ struct tg3 {
 
        int                             pm_cap;
        int                             msi_cap;
+       union {
        int                             pcix_cap;
+       int                             pcie_cap;
+       };
 
        struct mii_bus                  *mdio_bus;
        int                             mdio_irq[PHY_MAX_ADDR];
@@ -2588,7 +2718,13 @@ struct tg3 {
 #define PHY_REV_BCM5411_X0             0x1 /* Found on Netgear GA302T */
 #define TG3_PHY_ID_BCM50610            0x143bd60
 #define TG3_PHY_ID_BCMAC131            0x143bc70
-
+#define TG3_PHY_ID_RTL8211C            0x001cc910
+#define TG3_PHY_ID_RTL8201E            0x00008200
+#define TG3_PHY_ID_BCM57780            0x03625d90
+#define TG3_PHY_OUI_MASK               0xfffffc00
+#define TG3_PHY_OUI_1                  0x00206000
+#define TG3_PHY_OUI_2                  0x0143bc00
+#define TG3_PHY_OUI_3                  0x03625c00
 
        u32                             led_ctrl;
        u32                             phy_otp;