]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - drivers/net/tg3.h
tg3: Create rx producer ring setup routines
[net-next-2.6.git] / drivers / net / tg3.h
index b3347c41a1a3df0652b119cb3626407f2b71306d..d029b4b9b9299d17b63e6b2072648d2466e08800 100644 (file)
@@ -43,7 +43,9 @@
 #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_DEVICE_TIGON3_57788     0x1691
+#define  TG3PCI_DEVICE_TIGON3_5785_G    0x1699 /* GPHY */
+#define  TG3PCI_DEVICE_TIGON3_5785_F    0x16a0 /* 10/100 only */
 /* 0x04 --> 0x64 unused */
 #define TG3PCI_MSI_DATA                        0x00000064
 /* 0x66 --> 0x68 unused */
 #define  DUAL_MAC_CTRL_ID               0x00000004
 #define TG3PCI_PRODID_ASICREV          0x000000bc
 #define  PROD_ID_ASIC_REV_MASK          0x0fffffff
-/* 0xc0 --> 0x100 unused */
+/* 0xc0 --> 0x110 unused */
 
-/* 0x100 --> 0x200 unused */
+#define TG3_CORR_ERR_STAT              0x00000110
+#define  TG3_CORR_ERR_STAT_CLEAR       0xffffffff
+/* 0x114 --> 0x200 unused */
 
 /* Mailbox registers */
 #define MAILBOX_INTERRUPT_0            0x00000200 /* 64-bit */
 /* 0x598 --> 0x5a0 unused */
 #define MAC_PHYCFG1                    0x000005a0
 #define  MAC_PHYCFG1_RGMII_INT          0x00000001
+#define  MAC_PHYCFG1_RXCLK_TO_MASK      0x00001ff0
+#define  MAC_PHYCFG1_RXCLK_TIMEOUT      0x00001000
+#define  MAC_PHYCFG1_TXCLK_TO_MASK      0x01ff0000
+#define  MAC_PHYCFG1_TXCLK_TIMEOUT      0x01000000
 #define  MAC_PHYCFG1_RGMII_EXT_RX_DEC   0x02000000
 #define  MAC_PHYCFG1_RGMII_SND_STAT_EN  0x04000000
 #define  MAC_PHYCFG1_TXC_DRV            0x20000000
 #define  RCVLPC_STATSCTRL_ENABLE        0x00000001
 #define  RCVLPC_STATSCTRL_FASTUPD       0x00000002
 #define RCVLPC_STATS_ENABLE            0x00002018
+#define  RCVLPC_STATSENAB_ASF_FIX       0x00000002
 #define  RCVLPC_STATSENAB_DACK_FIX      0x00040000
 #define  RCVLPC_STATSENAB_LNGBRST_RFIX  0x00400000
 #define RCVLPC_STATS_INCMASK           0x0000201c
 #define PCIE_TRANSACTION_CFG           0x00007c04
 #define PCIE_TRANS_CFG_1SHOT_MSI        0x20000000
 #define PCIE_TRANS_CFG_LOM              0x00000020
+/* 0x7c08 --> 0x7d28 unused */
 
 #define PCIE_PWR_MGMT_THRESH           0x00007d28
 #define PCIE_PWR_MGMT_L1_THRESH_MSK     0x0000ff00
 #define PCIE_PWR_MGMT_L1_THRESH_4MS     0x0000ff00
 #define PCIE_PWR_MGMT_EXT_ASPM_TMR_EN   0x01000000
+/* 0x7d2c --> 0x7d54 unused */
+
+#define TG3_PCIE_LNKCTL                        0x00007d54
+#define  TG3_PCIE_LNKCTL_L1_PLL_PD_EN   0x00000008
+#define  TG3_PCIE_LNKCTL_L1_PLL_PD_DIS  0x00000080
+/* 0x7d58 --> 0x7e70 unused */
+
+#define TG3_PCIE_EIDLE_DELAY           0x00007e70
+#define  TG3_PCIE_EIDLE_DELAY_MASK      0x0000001f
+#define  TG3_PCIE_EIDLE_DELAY_13_CLKS   0x0000000c
+/* 0x7e74 --> 0x8000 unused */
 
 
 /* OTP bit definitions */
 
 #define MII_TG3_DSP_RW_PORT            0x15 /* DSP coefficient read/write port */
 
-#define MII_TG3_EPHY_PTEST             0x17 /* 5906 PHY register */
 #define MII_TG3_DSP_ADDRESS            0x17 /* DSP address register */
 
 #define MII_TG3_DSP_TAP1               0x0001
 #define MII_TG3_MISC_SHDW_SCR5_LPED    0x0010
 #define MII_TG3_MISC_SHDW_SCR5_SEL     0x1400
 
-
-#define MII_TG3_EPHY_TEST              0x1f /* 5906 PHY register */
-#define MII_TG3_EPHY_SHADOW_EN         0x80
-
-#define MII_TG3_EPHYTST_MISCCTRL       0x10 /* 5906 EPHY misc ctrl shadow register */
-#define MII_TG3_EPHYTST_MISCCTRL_MDIX  0x4000
-
 #define MII_TG3_TEST1                  0x1e
 #define MII_TG3_TEST1_TRIM_EN          0x0010
 #define MII_TG3_TEST1_CRC_EN           0x8000
 
+
+/* Fast Ethernet Tranceiver definitions */
+#define MII_TG3_FET_PTEST              0x17
+#define MII_TG3_FET_TEST               0x1f
+#define  MII_TG3_FET_SHADOW_EN         0x0080
+
+#define MII_TG3_FET_SHDW_MISCCTRL      0x10
+#define  MII_TG3_FET_SHDW_MISCCTRL_MDIX        0x4000
+
+#define MII_TG3_FET_SHDW_AUXSTAT2      0x1b
+#define  MII_TG3_FET_SHDW_AUXSTAT2_APD 0x0020
+
+
 /* APE registers.  Accessible through BAR1 */
 #define TG3_APE_EVENT                  0x000c
 #define  APE_EVENT_1                    0x00000001
@@ -2545,7 +2571,7 @@ struct tg3 {
        struct tg3_rx_buffer_desc       *rx_rcb;
        dma_addr_t                      rx_rcb_mapping;
 
-       u32                             rx_pkt_buf_sz;
+       u32                             rx_pkt_map_sz;
 
        /* begin "everything else" cacheline(s) section */
        struct net_device_stats         net_stats;
@@ -2575,6 +2601,7 @@ struct tg3 {
 #define TG3_FLAG_EEPROM_WRITE_PROT     0x00001000
 #define TG3_FLAG_NVRAM                 0x00002000
 #define TG3_FLAG_NVRAM_BUFFERED                0x00004000
+#define TG3_FLAG_SUPPORT_MSI           0x00008000
 #define TG3_FLAG_PCIX_MODE             0x00020000
 #define TG3_FLAG_PCI_HIGH_SPEED                0x00040000
 #define TG3_FLAG_PCI_32BIT             0x00080000
@@ -2587,7 +2614,7 @@ struct tg3 {
 #define TG3_FLAG_CPMU_PRESENT          0x04000000
 #define TG3_FLAG_40BIT_DMA_BUG         0x08000000
 #define TG3_FLAG_BROKEN_CHECKSUMS      0x10000000
-#define TG3_FLAG_SUPPORT_MSI           0x20000000
+#define TG3_FLAG_JUMBO_CAPABLE         0x20000000
 #define TG3_FLAG_CHIP_RESETTING                0x40000000
 #define TG3_FLAG_INIT_COMPLETE         0x80000000
        u32                             tg3_flags2;
@@ -2613,7 +2640,6 @@ struct tg3 {
 #define TG3_FLG2_5750_PLUS             0x00080000
 #define TG3_FLG2_PROTECTED_NVRAM       0x00100000
 #define TG3_FLG2_USING_MSI             0x00200000
-#define TG3_FLG2_JUMBO_CAPABLE         0x00400000
 #define TG3_FLG2_MII_SERDES            0x00800000
 #define TG3_FLG2_ANY_SERDES            (TG3_FLG2_PHY_SERDES |  \
                                        TG3_FLG2_MII_SERDES)
@@ -2641,6 +2667,8 @@ struct tg3 {
 #define TG3_FLG3_PHY_ENABLE_APD                0x00001000
 #define TG3_FLG3_5755_PLUS             0x00002000
 #define TG3_FLG3_NO_NVRAM              0x00004000
+#define TG3_FLG3_TOGGLE_10_100_L1PLLPD 0x00008000
+#define TG3_FLG3_PHY_IS_FET            0x00010000
 
        struct timer_list               timer;
        u16                             timer_counter;