diff options
Diffstat (limited to 'drivers/net/tg3.h')
-rw-r--r-- | drivers/net/tg3.h | 256 |
1 files changed, 183 insertions, 73 deletions
diff --git a/drivers/net/tg3.h b/drivers/net/tg3.h index bab7940158e6..574a1cc4d353 100644 --- a/drivers/net/tg3.h +++ b/drivers/net/tg3.h | |||
@@ -4,6 +4,7 @@ | |||
4 | * Copyright (C) 2001, 2002, 2003, 2004 David S. Miller (davem@redhat.com) | 4 | * Copyright (C) 2001, 2002, 2003, 2004 David S. Miller (davem@redhat.com) |
5 | * Copyright (C) 2001 Jeff Garzik (jgarzik@pobox.com) | 5 | * Copyright (C) 2001 Jeff Garzik (jgarzik@pobox.com) |
6 | * Copyright (C) 2004 Sun Microsystems Inc. | 6 | * Copyright (C) 2004 Sun Microsystems Inc. |
7 | * Copyright (C) 2007-2010 Broadcom Corporation. | ||
7 | */ | 8 | */ |
8 | 9 | ||
9 | #ifndef _T3_H | 10 | #ifndef _T3_H |
@@ -46,11 +47,48 @@ | |||
46 | #define TG3PCI_DEVICE_TIGON3_57788 0x1691 | 47 | #define TG3PCI_DEVICE_TIGON3_57788 0x1691 |
47 | #define TG3PCI_DEVICE_TIGON3_5785_G 0x1699 /* GPHY */ | 48 | #define TG3PCI_DEVICE_TIGON3_5785_G 0x1699 /* GPHY */ |
48 | #define TG3PCI_DEVICE_TIGON3_5785_F 0x16a0 /* 10/100 only */ | 49 | #define TG3PCI_DEVICE_TIGON3_5785_F 0x16a0 /* 10/100 only */ |
49 | #define TG3PCI_DEVICE_TIGON3_5717C 0x1655 | 50 | #define TG3PCI_DEVICE_TIGON3_5717 0x1655 |
50 | #define TG3PCI_DEVICE_TIGON3_5717S 0x1656 | 51 | #define TG3PCI_DEVICE_TIGON3_5718 0x1656 |
51 | #define TG3PCI_DEVICE_TIGON3_5718C 0x1665 | 52 | #define TG3PCI_DEVICE_TIGON3_5724 0x165c |
52 | #define TG3PCI_DEVICE_TIGON3_5718S 0x1666 | 53 | #define TG3PCI_DEVICE_TIGON3_57781 0x16b1 |
53 | /* 0x04 --> 0x64 unused */ | 54 | #define TG3PCI_DEVICE_TIGON3_57785 0x16b5 |
55 | #define TG3PCI_DEVICE_TIGON3_57761 0x16b0 | ||
56 | #define TG3PCI_DEVICE_TIGON3_57765 0x16b4 | ||
57 | #define TG3PCI_DEVICE_TIGON3_57791 0x16b2 | ||
58 | #define TG3PCI_DEVICE_TIGON3_57795 0x16b6 | ||
59 | /* 0x04 --> 0x2c unused */ | ||
60 | #define TG3PCI_SUBVENDOR_ID_BROADCOM PCI_VENDOR_ID_BROADCOM | ||
61 | #define TG3PCI_SUBDEVICE_ID_BROADCOM_95700A6 0x1644 | ||
62 | #define TG3PCI_SUBDEVICE_ID_BROADCOM_95701A5 0x0001 | ||
63 | #define TG3PCI_SUBDEVICE_ID_BROADCOM_95700T6 0x0002 | ||
64 | #define TG3PCI_SUBDEVICE_ID_BROADCOM_95700A9 0x0003 | ||
65 | #define TG3PCI_SUBDEVICE_ID_BROADCOM_95701T1 0x0005 | ||
66 | #define TG3PCI_SUBDEVICE_ID_BROADCOM_95701T8 0x0006 | ||
67 | #define TG3PCI_SUBDEVICE_ID_BROADCOM_95701A7 0x0007 | ||
68 | #define TG3PCI_SUBDEVICE_ID_BROADCOM_95701A10 0x0008 | ||
69 | #define TG3PCI_SUBDEVICE_ID_BROADCOM_95701A12 0x8008 | ||
70 | #define TG3PCI_SUBDEVICE_ID_BROADCOM_95703AX1 0x0009 | ||
71 | #define TG3PCI_SUBDEVICE_ID_BROADCOM_95703AX2 0x8009 | ||
72 | #define TG3PCI_SUBVENDOR_ID_3COM PCI_VENDOR_ID_3COM | ||
73 | #define TG3PCI_SUBDEVICE_ID_3COM_3C996T 0x1000 | ||
74 | #define TG3PCI_SUBDEVICE_ID_3COM_3C996BT 0x1006 | ||
75 | #define TG3PCI_SUBDEVICE_ID_3COM_3C996SX 0x1004 | ||
76 | #define TG3PCI_SUBDEVICE_ID_3COM_3C1000T 0x1007 | ||
77 | #define TG3PCI_SUBDEVICE_ID_3COM_3C940BR01 0x1008 | ||
78 | #define TG3PCI_SUBVENDOR_ID_DELL PCI_VENDOR_ID_DELL | ||
79 | #define TG3PCI_SUBDEVICE_ID_DELL_VIPER 0x00d1 | ||
80 | #define TG3PCI_SUBDEVICE_ID_DELL_JAGUAR 0x0106 | ||
81 | #define TG3PCI_SUBDEVICE_ID_DELL_MERLOT 0x0109 | ||
82 | #define TG3PCI_SUBDEVICE_ID_DELL_SLIM_MERLOT 0x010a | ||
83 | #define TG3PCI_SUBVENDOR_ID_COMPAQ PCI_VENDOR_ID_COMPAQ | ||
84 | #define TG3PCI_SUBDEVICE_ID_COMPAQ_BANSHEE 0x007c | ||
85 | #define TG3PCI_SUBDEVICE_ID_COMPAQ_BANSHEE_2 0x009a | ||
86 | #define TG3PCI_SUBDEVICE_ID_COMPAQ_CHANGELING 0x007d | ||
87 | #define TG3PCI_SUBDEVICE_ID_COMPAQ_NC7780 0x0085 | ||
88 | #define TG3PCI_SUBDEVICE_ID_COMPAQ_NC7780_2 0x0099 | ||
89 | #define TG3PCI_SUBVENDOR_ID_IBM PCI_VENDOR_ID_IBM | ||
90 | #define TG3PCI_SUBDEVICE_ID_IBM_5703SAX2 0x0281 | ||
91 | /* 0x30 --> 0x64 unused */ | ||
54 | #define TG3PCI_MSI_DATA 0x00000064 | 92 | #define TG3PCI_MSI_DATA 0x00000064 |
55 | /* 0x66 --> 0x68 unused */ | 93 | /* 0x66 --> 0x68 unused */ |
56 | #define TG3PCI_MISC_HOST_CTRL 0x00000068 | 94 | #define TG3PCI_MISC_HOST_CTRL 0x00000068 |
@@ -103,6 +141,8 @@ | |||
103 | #define CHIPREV_ID_5906_A1 0xc001 | 141 | #define CHIPREV_ID_5906_A1 0xc001 |
104 | #define CHIPREV_ID_57780_A0 0x57780000 | 142 | #define CHIPREV_ID_57780_A0 0x57780000 |
105 | #define CHIPREV_ID_57780_A1 0x57780001 | 143 | #define CHIPREV_ID_57780_A1 0x57780001 |
144 | #define CHIPREV_ID_5717_A0 0x05717000 | ||
145 | #define CHIPREV_ID_57765_A0 0x57785000 | ||
106 | #define GET_ASIC_REV(CHIP_REV_ID) ((CHIP_REV_ID) >> 12) | 146 | #define GET_ASIC_REV(CHIP_REV_ID) ((CHIP_REV_ID) >> 12) |
107 | #define ASIC_REV_5700 0x07 | 147 | #define ASIC_REV_5700 0x07 |
108 | #define ASIC_REV_5701 0x00 | 148 | #define ASIC_REV_5701 0x00 |
@@ -122,6 +162,7 @@ | |||
122 | #define ASIC_REV_5785 0x5785 | 162 | #define ASIC_REV_5785 0x5785 |
123 | #define ASIC_REV_57780 0x57780 | 163 | #define ASIC_REV_57780 0x57780 |
124 | #define ASIC_REV_5717 0x5717 | 164 | #define ASIC_REV_5717 0x5717 |
165 | #define ASIC_REV_57765 0x57785 | ||
125 | #define GET_CHIP_REV(CHIP_REV_ID) ((CHIP_REV_ID) >> 8) | 166 | #define GET_CHIP_REV(CHIP_REV_ID) ((CHIP_REV_ID) >> 8) |
126 | #define CHIPREV_5700_AX 0x70 | 167 | #define CHIPREV_5700_AX 0x70 |
127 | #define CHIPREV_5700_BX 0x71 | 168 | #define CHIPREV_5700_BX 0x71 |
@@ -141,8 +182,7 @@ | |||
141 | #define METAL_REV_B1 0x01 | 182 | #define METAL_REV_B1 0x01 |
142 | #define METAL_REV_B2 0x02 | 183 | #define METAL_REV_B2 0x02 |
143 | #define TG3PCI_DMA_RW_CTRL 0x0000006c | 184 | #define TG3PCI_DMA_RW_CTRL 0x0000006c |
144 | #define DMA_RWCTRL_MIN_DMA 0x000000ff | 185 | #define DMA_RWCTRL_DIS_CACHE_ALIGNMENT 0x00000001 |
145 | #define DMA_RWCTRL_MIN_DMA_SHIFT 0 | ||
146 | #define DMA_RWCTRL_READ_BNDRY_MASK 0x00000700 | 186 | #define DMA_RWCTRL_READ_BNDRY_MASK 0x00000700 |
147 | #define DMA_RWCTRL_READ_BNDRY_DISAB 0x00000000 | 187 | #define DMA_RWCTRL_READ_BNDRY_DISAB 0x00000000 |
148 | #define DMA_RWCTRL_READ_BNDRY_16 0x00000100 | 188 | #define DMA_RWCTRL_READ_BNDRY_16 0x00000100 |
@@ -221,6 +261,7 @@ | |||
221 | /* 0xc0 --> 0xf4 unused */ | 261 | /* 0xc0 --> 0xf4 unused */ |
222 | 262 | ||
223 | #define TG3PCI_GEN2_PRODID_ASICREV 0x000000f4 | 263 | #define TG3PCI_GEN2_PRODID_ASICREV 0x000000f4 |
264 | #define TG3PCI_GEN15_PRODID_ASICREV 0x000000fc | ||
224 | /* 0xf8 --> 0x200 unused */ | 265 | /* 0xf8 --> 0x200 unused */ |
225 | 266 | ||
226 | #define TG3_CORR_ERR_STAT 0x00000110 | 267 | #define TG3_CORR_ERR_STAT 0x00000110 |
@@ -242,7 +283,11 @@ | |||
242 | #define MAILBOX_GENERAL_7 0x00000258 /* 64-bit */ | 283 | #define MAILBOX_GENERAL_7 0x00000258 /* 64-bit */ |
243 | #define MAILBOX_RELOAD_STAT 0x00000260 /* 64-bit */ | 284 | #define MAILBOX_RELOAD_STAT 0x00000260 /* 64-bit */ |
244 | #define MAILBOX_RCV_STD_PROD_IDX 0x00000268 /* 64-bit */ | 285 | #define MAILBOX_RCV_STD_PROD_IDX 0x00000268 /* 64-bit */ |
286 | #define TG3_RX_STD_PROD_IDX_REG (MAILBOX_RCV_STD_PROD_IDX + \ | ||
287 | TG3_64BIT_REG_LOW) | ||
245 | #define MAILBOX_RCV_JUMBO_PROD_IDX 0x00000270 /* 64-bit */ | 288 | #define MAILBOX_RCV_JUMBO_PROD_IDX 0x00000270 /* 64-bit */ |
289 | #define TG3_RX_JMB_PROD_IDX_REG (MAILBOX_RCV_JUMBO_PROD_IDX + \ | ||
290 | TG3_64BIT_REG_LOW) | ||
246 | #define MAILBOX_RCV_MINI_PROD_IDX 0x00000278 /* 64-bit */ | 291 | #define MAILBOX_RCV_MINI_PROD_IDX 0x00000278 /* 64-bit */ |
247 | #define MAILBOX_RCVRET_CON_IDX_0 0x00000280 /* 64-bit */ | 292 | #define MAILBOX_RCVRET_CON_IDX_0 0x00000280 /* 64-bit */ |
248 | #define MAILBOX_RCVRET_CON_IDX_1 0x00000288 /* 64-bit */ | 293 | #define MAILBOX_RCVRET_CON_IDX_1 0x00000288 /* 64-bit */ |
@@ -1043,6 +1088,8 @@ | |||
1043 | #define CPMU_MUTEX_REQ_DRIVER 0x00001000 | 1088 | #define CPMU_MUTEX_REQ_DRIVER 0x00001000 |
1044 | #define TG3_CPMU_MUTEX_GNT 0x00003660 | 1089 | #define TG3_CPMU_MUTEX_GNT 0x00003660 |
1045 | #define CPMU_MUTEX_GNT_DRIVER 0x00001000 | 1090 | #define CPMU_MUTEX_GNT_DRIVER 0x00001000 |
1091 | #define TG3_CPMU_PHY_STRAP 0x00003664 | ||
1092 | #define TG3_CPMU_PHY_STRAP_IS_SERDES 0x00000020 | ||
1046 | /* 0x3664 --> 0x3800 unused */ | 1093 | /* 0x3664 --> 0x3800 unused */ |
1047 | 1094 | ||
1048 | /* Mbuf cluster free registers */ | 1095 | /* Mbuf cluster free registers */ |
@@ -1192,14 +1239,18 @@ | |||
1192 | #define DEFAULT_MB_MACRX_LOW_WATER 0x00000020 | 1239 | #define DEFAULT_MB_MACRX_LOW_WATER 0x00000020 |
1193 | #define DEFAULT_MB_MACRX_LOW_WATER_5705 0x00000010 | 1240 | #define DEFAULT_MB_MACRX_LOW_WATER_5705 0x00000010 |
1194 | #define DEFAULT_MB_MACRX_LOW_WATER_5906 0x00000004 | 1241 | #define DEFAULT_MB_MACRX_LOW_WATER_5906 0x00000004 |
1242 | #define DEFAULT_MB_MACRX_LOW_WATER_57765 0x0000002a | ||
1195 | #define DEFAULT_MB_MACRX_LOW_WATER_JUMBO 0x00000098 | 1243 | #define DEFAULT_MB_MACRX_LOW_WATER_JUMBO 0x00000098 |
1196 | #define DEFAULT_MB_MACRX_LOW_WATER_JUMBO_5780 0x0000004b | 1244 | #define DEFAULT_MB_MACRX_LOW_WATER_JUMBO_5780 0x0000004b |
1245 | #define DEFAULT_MB_MACRX_LOW_WATER_JUMBO_57765 0x0000007e | ||
1197 | #define BUFMGR_MB_HIGH_WATER 0x00004418 | 1246 | #define BUFMGR_MB_HIGH_WATER 0x00004418 |
1198 | #define DEFAULT_MB_HIGH_WATER 0x00000060 | 1247 | #define DEFAULT_MB_HIGH_WATER 0x00000060 |
1199 | #define DEFAULT_MB_HIGH_WATER_5705 0x00000060 | 1248 | #define DEFAULT_MB_HIGH_WATER_5705 0x00000060 |
1200 | #define DEFAULT_MB_HIGH_WATER_5906 0x00000010 | 1249 | #define DEFAULT_MB_HIGH_WATER_5906 0x00000010 |
1250 | #define DEFAULT_MB_HIGH_WATER_57765 0x000000a0 | ||
1201 | #define DEFAULT_MB_HIGH_WATER_JUMBO 0x0000017c | 1251 | #define DEFAULT_MB_HIGH_WATER_JUMBO 0x0000017c |
1202 | #define DEFAULT_MB_HIGH_WATER_JUMBO_5780 0x00000096 | 1252 | #define DEFAULT_MB_HIGH_WATER_JUMBO_5780 0x00000096 |
1253 | #define DEFAULT_MB_HIGH_WATER_JUMBO_57765 0x000000ea | ||
1203 | #define BUFMGR_RX_MB_ALLOC_REQ 0x0000441c | 1254 | #define BUFMGR_RX_MB_ALLOC_REQ 0x0000441c |
1204 | #define BUFMGR_MB_ALLOC_BIT 0x10000000 | 1255 | #define BUFMGR_MB_ALLOC_BIT 0x10000000 |
1205 | #define BUFMGR_RX_MB_ALLOC_RESP 0x00004420 | 1256 | #define BUFMGR_RX_MB_ALLOC_RESP 0x00004420 |
@@ -1239,6 +1290,7 @@ | |||
1239 | #define RDMAC_MODE_MBUF_SBD_CRPT_ENAB 0x00002000 | 1290 | #define RDMAC_MODE_MBUF_SBD_CRPT_ENAB 0x00002000 |
1240 | #define RDMAC_MODE_FIFO_SIZE_128 0x00020000 | 1291 | #define RDMAC_MODE_FIFO_SIZE_128 0x00020000 |
1241 | #define RDMAC_MODE_FIFO_LONG_BURST 0x00030000 | 1292 | #define RDMAC_MODE_FIFO_LONG_BURST 0x00030000 |
1293 | #define RDMAC_MODE_MULT_DMA_RD_DIS 0x01000000 | ||
1242 | #define RDMAC_MODE_IPV4_LSO_EN 0x08000000 | 1294 | #define RDMAC_MODE_IPV4_LSO_EN 0x08000000 |
1243 | #define RDMAC_MODE_IPV6_LSO_EN 0x10000000 | 1295 | #define RDMAC_MODE_IPV6_LSO_EN 0x10000000 |
1244 | #define RDMAC_STATUS 0x00004804 | 1296 | #define RDMAC_STATUS 0x00004804 |
@@ -1264,8 +1316,9 @@ | |||
1264 | #define WDMAC_MODE_FIFOURUN_ENAB 0x00000080 | 1316 | #define WDMAC_MODE_FIFOURUN_ENAB 0x00000080 |
1265 | #define WDMAC_MODE_FIFOOREAD_ENAB 0x00000100 | 1317 | #define WDMAC_MODE_FIFOOREAD_ENAB 0x00000100 |
1266 | #define WDMAC_MODE_LNGREAD_ENAB 0x00000200 | 1318 | #define WDMAC_MODE_LNGREAD_ENAB 0x00000200 |
1267 | #define WDMAC_MODE_RX_ACCEL 0x00000400 | 1319 | #define WDMAC_MODE_RX_ACCEL 0x00000400 |
1268 | #define WDMAC_MODE_STATUS_TAG_FIX 0x20000000 | 1320 | #define WDMAC_MODE_STATUS_TAG_FIX 0x20000000 |
1321 | #define WDMAC_MODE_BURST_ALL_DATA 0xc0000000 | ||
1269 | #define WDMAC_STATUS 0x00004c04 | 1322 | #define WDMAC_STATUS 0x00004c04 |
1270 | #define WDMAC_STATUS_TGTABORT 0x00000004 | 1323 | #define WDMAC_STATUS_TGTABORT 0x00000004 |
1271 | #define WDMAC_STATUS_MSTABORT 0x00000008 | 1324 | #define WDMAC_STATUS_MSTABORT 0x00000008 |
@@ -1528,6 +1581,8 @@ | |||
1528 | #define GRC_MODE_HOST_SENDBDS 0x00020000 | 1581 | #define GRC_MODE_HOST_SENDBDS 0x00020000 |
1529 | #define GRC_MODE_NO_TX_PHDR_CSUM 0x00100000 | 1582 | #define GRC_MODE_NO_TX_PHDR_CSUM 0x00100000 |
1530 | #define GRC_MODE_NVRAM_WR_ENABLE 0x00200000 | 1583 | #define GRC_MODE_NVRAM_WR_ENABLE 0x00200000 |
1584 | #define GRC_MODE_PCIE_TL_SEL 0x00000000 | ||
1585 | #define GRC_MODE_PCIE_PL_SEL 0x00400000 | ||
1531 | #define GRC_MODE_NO_RX_PHDR_CSUM 0x00800000 | 1586 | #define GRC_MODE_NO_RX_PHDR_CSUM 0x00800000 |
1532 | #define GRC_MODE_IRQ_ON_TX_CPU_ATTN 0x01000000 | 1587 | #define GRC_MODE_IRQ_ON_TX_CPU_ATTN 0x01000000 |
1533 | #define GRC_MODE_IRQ_ON_RX_CPU_ATTN 0x02000000 | 1588 | #define GRC_MODE_IRQ_ON_RX_CPU_ATTN 0x02000000 |
@@ -1535,7 +1590,13 @@ | |||
1535 | #define GRC_MODE_IRQ_ON_DMA_ATTN 0x08000000 | 1590 | #define GRC_MODE_IRQ_ON_DMA_ATTN 0x08000000 |
1536 | #define GRC_MODE_IRQ_ON_FLOW_ATTN 0x10000000 | 1591 | #define GRC_MODE_IRQ_ON_FLOW_ATTN 0x10000000 |
1537 | #define GRC_MODE_4X_NIC_SEND_RINGS 0x20000000 | 1592 | #define GRC_MODE_4X_NIC_SEND_RINGS 0x20000000 |
1593 | #define GRC_MODE_PCIE_DL_SEL 0x20000000 | ||
1538 | #define GRC_MODE_MCAST_FRM_ENABLE 0x40000000 | 1594 | #define GRC_MODE_MCAST_FRM_ENABLE 0x40000000 |
1595 | #define GRC_MODE_PCIE_HI_1K_EN 0x80000000 | ||
1596 | #define GRC_MODE_PCIE_PORT_MASK (GRC_MODE_PCIE_TL_SEL | \ | ||
1597 | GRC_MODE_PCIE_PL_SEL | \ | ||
1598 | GRC_MODE_PCIE_DL_SEL | \ | ||
1599 | GRC_MODE_PCIE_HI_1K_EN) | ||
1539 | #define GRC_MISC_CFG 0x00006804 | 1600 | #define GRC_MISC_CFG 0x00006804 |
1540 | #define GRC_MISC_CFG_CORECLK_RESET 0x00000001 | 1601 | #define GRC_MISC_CFG_CORECLK_RESET 0x00000001 |
1541 | #define GRC_MISC_CFG_PRESCALAR_MASK 0x000000fe | 1602 | #define GRC_MISC_CFG_PRESCALAR_MASK 0x000000fe |
@@ -1789,6 +1850,11 @@ | |||
1789 | /* 0x7e74 --> 0x8000 unused */ | 1850 | /* 0x7e74 --> 0x8000 unused */ |
1790 | 1851 | ||
1791 | 1852 | ||
1853 | /* Alternate PCIE definitions */ | ||
1854 | #define TG3_PCIE_TLDLPL_PORT 0x00007c00 | ||
1855 | #define TG3_PCIE_PL_LO_PHYCTL1 0x00000004 | ||
1856 | #define TG3_PCIE_PL_LO_PHYCTL1_L1PLLPD_EN 0x00001000 | ||
1857 | |||
1792 | /* OTP bit definitions */ | 1858 | /* OTP bit definitions */ |
1793 | #define TG3_OTP_AGCTGT_MASK 0x000000e0 | 1859 | #define TG3_OTP_AGCTGT_MASK 0x000000e0 |
1794 | #define TG3_OTP_AGCTGT_SHIFT 1 | 1860 | #define TG3_OTP_AGCTGT_SHIFT 1 |
@@ -1809,6 +1875,11 @@ | |||
1809 | 1875 | ||
1810 | #define TG3_OTP_DEFAULT 0x286c1640 | 1876 | #define TG3_OTP_DEFAULT 0x286c1640 |
1811 | 1877 | ||
1878 | |||
1879 | /* Hardware Legacy NVRAM layout */ | ||
1880 | #define TG3_NVM_VPD_OFF 0x100 | ||
1881 | #define TG3_NVM_VPD_LEN 256 | ||
1882 | |||
1812 | /* Hardware Selfboot NVRAM layout */ | 1883 | /* Hardware Selfboot NVRAM layout */ |
1813 | #define TG3_NVM_HWSB_CFG1 0x00000004 | 1884 | #define TG3_NVM_HWSB_CFG1 0x00000004 |
1814 | #define TG3_NVM_HWSB_CFG1_MAJMSK 0xf8000000 | 1885 | #define TG3_NVM_HWSB_CFG1_MAJMSK 0xf8000000 |
@@ -1825,6 +1896,8 @@ | |||
1825 | #define TG3_EEPROM_SB_REVISION_0 0x00000000 | 1896 | #define TG3_EEPROM_SB_REVISION_0 0x00000000 |
1826 | #define TG3_EEPROM_SB_REVISION_2 0x00020000 | 1897 | #define TG3_EEPROM_SB_REVISION_2 0x00020000 |
1827 | #define TG3_EEPROM_SB_REVISION_3 0x00030000 | 1898 | #define TG3_EEPROM_SB_REVISION_3 0x00030000 |
1899 | #define TG3_EEPROM_SB_REVISION_4 0x00040000 | ||
1900 | #define TG3_EEPROM_SB_REVISION_5 0x00050000 | ||
1828 | #define TG3_EEPROM_MAGIC_HW 0xabcd | 1901 | #define TG3_EEPROM_MAGIC_HW 0xabcd |
1829 | #define TG3_EEPROM_MAGIC_HW_MSK 0xffff | 1902 | #define TG3_EEPROM_MAGIC_HW_MSK 0xffff |
1830 | 1903 | ||
@@ -1842,6 +1915,8 @@ | |||
1842 | #define TG3_EEPROM_SB_F1R2_EDH_OFF 0x14 | 1915 | #define TG3_EEPROM_SB_F1R2_EDH_OFF 0x14 |
1843 | #define TG3_EEPROM_SB_F1R2_MBA_OFF 0x10 | 1916 | #define TG3_EEPROM_SB_F1R2_MBA_OFF 0x10 |
1844 | #define TG3_EEPROM_SB_F1R3_EDH_OFF 0x18 | 1917 | #define TG3_EEPROM_SB_F1R3_EDH_OFF 0x18 |
1918 | #define TG3_EEPROM_SB_F1R4_EDH_OFF 0x1c | ||
1919 | #define TG3_EEPROM_SB_F1R5_EDH_OFF 0x20 | ||
1845 | #define TG3_EEPROM_SB_EDH_MAJ_MASK 0x00000700 | 1920 | #define TG3_EEPROM_SB_EDH_MAJ_MASK 0x00000700 |
1846 | #define TG3_EEPROM_SB_EDH_MAJ_SHFT 8 | 1921 | #define TG3_EEPROM_SB_EDH_MAJ_SHFT 8 |
1847 | #define TG3_EEPROM_SB_EDH_MIN_MASK 0x000000ff | 1922 | #define TG3_EEPROM_SB_EDH_MIN_MASK 0x000000ff |
@@ -1936,7 +2011,7 @@ | |||
1936 | 2011 | ||
1937 | #define NIC_SRAM_DATA_CFG_4 0x00000d60 | 2012 | #define NIC_SRAM_DATA_CFG_4 0x00000d60 |
1938 | #define NIC_SRAM_GMII_MODE 0x00000002 | 2013 | #define NIC_SRAM_GMII_MODE 0x00000002 |
1939 | #define NIC_SRAM_RGMII_STD_IBND_DISABLE 0x00000004 | 2014 | #define NIC_SRAM_RGMII_INBAND_DISABLE 0x00000004 |
1940 | #define NIC_SRAM_RGMII_EXT_IBND_RX_EN 0x00000008 | 2015 | #define NIC_SRAM_RGMII_EXT_IBND_RX_EN 0x00000008 |
1941 | #define NIC_SRAM_RGMII_EXT_IBND_TX_EN 0x00000010 | 2016 | #define NIC_SRAM_RGMII_EXT_IBND_TX_EN 0x00000010 |
1942 | 2017 | ||
@@ -1953,10 +2028,34 @@ | |||
1953 | #define NIC_SRAM_MBUF_POOL_BASE5705 0x00010000 | 2028 | #define NIC_SRAM_MBUF_POOL_BASE5705 0x00010000 |
1954 | #define NIC_SRAM_MBUF_POOL_SIZE5705 0x0000e000 | 2029 | #define NIC_SRAM_MBUF_POOL_SIZE5705 0x0000e000 |
1955 | 2030 | ||
2031 | |||
1956 | /* Currently this is fixed. */ | 2032 | /* Currently this is fixed. */ |
1957 | #define PHY_ADDR 0x01 | 2033 | #define TG3_PHY_PCIE_ADDR 0x00 |
2034 | #define TG3_PHY_MII_ADDR 0x01 | ||
2035 | |||
2036 | |||
2037 | /*** Tigon3 specific PHY PCIE registers. ***/ | ||
2038 | |||
2039 | #define TG3_PCIEPHY_BLOCK_ADDR 0x1f | ||
2040 | #define TG3_PCIEPHY_XGXS_BLK1 0x0801 | ||
2041 | #define TG3_PCIEPHY_TXB_BLK 0x0861 | ||
2042 | #define TG3_PCIEPHY_BLOCK_SHIFT 4 | ||
2043 | |||
2044 | /* TG3_PCIEPHY_TXB_BLK */ | ||
2045 | #define TG3_PCIEPHY_TX0CTRL1 0x15 | ||
2046 | #define TG3_PCIEPHY_TX0CTRL1_TXOCM 0x0003 | ||
2047 | #define TG3_PCIEPHY_TX0CTRL1_RDCTL 0x0008 | ||
2048 | #define TG3_PCIEPHY_TX0CTRL1_TXCMV 0x0030 | ||
2049 | #define TG3_PCIEPHY_TX0CTRL1_TKSEL 0x0040 | ||
2050 | #define TG3_PCIEPHY_TX0CTRL1_NB_EN 0x0400 | ||
2051 | |||
2052 | /* TG3_PCIEPHY_XGXS_BLK1 */ | ||
2053 | #define TG3_PCIEPHY_PWRMGMT4 0x1a | ||
2054 | #define TG3_PCIEPHY_PWRMGMT4_L1PLLPD_EN 0x0038 | ||
2055 | #define TG3_PCIEPHY_PWRMGMT4_LOWPWR_EN 0x4000 | ||
2056 | |||
1958 | 2057 | ||
1959 | /* Tigon3 specific PHY MII registers. */ | 2058 | /*** Tigon3 specific PHY MII registers. ***/ |
1960 | #define TG3_BMCR_SPEED1000 0x0040 | 2059 | #define TG3_BMCR_SPEED1000 0x0040 |
1961 | 2060 | ||
1962 | #define MII_TG3_CTRL 0x09 /* 1000-baseT control register */ | 2061 | #define MII_TG3_CTRL 0x09 /* 1000-baseT control register */ |
@@ -2049,12 +2148,18 @@ | |||
2049 | 2148 | ||
2050 | /* Fast Ethernet Tranceiver definitions */ | 2149 | /* Fast Ethernet Tranceiver definitions */ |
2051 | #define MII_TG3_FET_PTEST 0x17 | 2150 | #define MII_TG3_FET_PTEST 0x17 |
2151 | #define MII_TG3_FET_PTEST_FRC_TX_LINK 0x1000 | ||
2152 | #define MII_TG3_FET_PTEST_FRC_TX_LOCK 0x0800 | ||
2153 | |||
2052 | #define MII_TG3_FET_TEST 0x1f | 2154 | #define MII_TG3_FET_TEST 0x1f |
2053 | #define MII_TG3_FET_SHADOW_EN 0x0080 | 2155 | #define MII_TG3_FET_SHADOW_EN 0x0080 |
2054 | 2156 | ||
2055 | #define MII_TG3_FET_SHDW_MISCCTRL 0x10 | 2157 | #define MII_TG3_FET_SHDW_MISCCTRL 0x10 |
2056 | #define MII_TG3_FET_SHDW_MISCCTRL_MDIX 0x4000 | 2158 | #define MII_TG3_FET_SHDW_MISCCTRL_MDIX 0x4000 |
2057 | 2159 | ||
2160 | #define MII_TG3_FET_SHDW_AUXMODE4 0x1a | ||
2161 | #define MII_TG3_FET_SHDW_AUXMODE4_SBPD 0x0008 | ||
2162 | |||
2058 | #define MII_TG3_FET_SHDW_AUXSTAT2 0x1b | 2163 | #define MII_TG3_FET_SHDW_AUXSTAT2 0x1b |
2059 | #define MII_TG3_FET_SHDW_AUXSTAT2_APD 0x0020 | 2164 | #define MII_TG3_FET_SHDW_AUXSTAT2_APD 0x0020 |
2060 | 2165 | ||
@@ -2410,10 +2515,6 @@ struct ring_info { | |||
2410 | DECLARE_PCI_UNMAP_ADDR(mapping) | 2515 | DECLARE_PCI_UNMAP_ADDR(mapping) |
2411 | }; | 2516 | }; |
2412 | 2517 | ||
2413 | struct tx_ring_info { | ||
2414 | struct sk_buff *skb; | ||
2415 | }; | ||
2416 | |||
2417 | struct tg3_config_info { | 2518 | struct tg3_config_info { |
2418 | u32 flags; | 2519 | u32 flags; |
2419 | }; | 2520 | }; |
@@ -2542,8 +2643,10 @@ struct tg3_ethtool_stats { | |||
2542 | }; | 2643 | }; |
2543 | 2644 | ||
2544 | struct tg3_rx_prodring_set { | 2645 | struct tg3_rx_prodring_set { |
2545 | u32 rx_std_ptr; | 2646 | u32 rx_std_prod_idx; |
2546 | u32 rx_jmb_ptr; | 2647 | u32 rx_std_cons_idx; |
2648 | u32 rx_jmb_prod_idx; | ||
2649 | u32 rx_jmb_cons_idx; | ||
2547 | struct tg3_rx_buffer_desc *rx_std; | 2650 | struct tg3_rx_buffer_desc *rx_std; |
2548 | struct tg3_ext_rx_buffer_desc *rx_jmb; | 2651 | struct tg3_ext_rx_buffer_desc *rx_jmb; |
2549 | struct ring_info *rx_std_buffers; | 2652 | struct ring_info *rx_std_buffers; |
@@ -2571,10 +2674,11 @@ struct tg3_napi { | |||
2571 | u32 consmbox; | 2674 | u32 consmbox; |
2572 | u32 rx_rcb_ptr; | 2675 | u32 rx_rcb_ptr; |
2573 | u16 *rx_rcb_prod_idx; | 2676 | u16 *rx_rcb_prod_idx; |
2677 | struct tg3_rx_prodring_set *prodring; | ||
2574 | 2678 | ||
2575 | struct tg3_rx_buffer_desc *rx_rcb; | 2679 | struct tg3_rx_buffer_desc *rx_rcb; |
2576 | struct tg3_tx_buffer_desc *tx_ring; | 2680 | struct tg3_tx_buffer_desc *tx_ring; |
2577 | struct tx_ring_info *tx_buffers; | 2681 | struct ring_info *tx_buffers; |
2578 | 2682 | ||
2579 | dma_addr_t status_mapping; | 2683 | dma_addr_t status_mapping; |
2580 | dma_addr_t rx_rcb_mapping; | 2684 | dma_addr_t rx_rcb_mapping; |
@@ -2636,6 +2740,7 @@ struct tg3 { | |||
2636 | struct net_device *dev; | 2740 | struct net_device *dev; |
2637 | struct pci_dev *pdev; | 2741 | struct pci_dev *pdev; |
2638 | 2742 | ||
2743 | u32 coal_now; | ||
2639 | u32 msg_enable; | 2744 | u32 msg_enable; |
2640 | 2745 | ||
2641 | /* begin "tx thread" cacheline section */ | 2746 | /* begin "tx thread" cacheline section */ |
@@ -2654,7 +2759,7 @@ struct tg3 { | |||
2654 | struct vlan_group *vlgrp; | 2759 | struct vlan_group *vlgrp; |
2655 | #endif | 2760 | #endif |
2656 | 2761 | ||
2657 | struct tg3_rx_prodring_set prodring[1]; | 2762 | struct tg3_rx_prodring_set prodring[TG3_IRQ_MAX_VECS]; |
2658 | 2763 | ||
2659 | 2764 | ||
2660 | /* begin "everything else" cacheline(s) section */ | 2765 | /* begin "everything else" cacheline(s) section */ |
@@ -2725,7 +2830,7 @@ struct tg3 { | |||
2725 | #define TG3_FLG2_SERDES_PREEMPHASIS 0x00020000 | 2830 | #define TG3_FLG2_SERDES_PREEMPHASIS 0x00020000 |
2726 | #define TG3_FLG2_5705_PLUS 0x00040000 | 2831 | #define TG3_FLG2_5705_PLUS 0x00040000 |
2727 | #define TG3_FLG2_5750_PLUS 0x00080000 | 2832 | #define TG3_FLG2_5750_PLUS 0x00080000 |
2728 | #define TG3_FLG2_PROTECTED_NVRAM 0x00100000 | 2833 | #define TG3_FLG2_HW_TSO_3 0x00100000 |
2729 | #define TG3_FLG2_USING_MSI 0x00200000 | 2834 | #define TG3_FLG2_USING_MSI 0x00200000 |
2730 | #define TG3_FLG2_USING_MSIX 0x00400000 | 2835 | #define TG3_FLG2_USING_MSIX 0x00400000 |
2731 | #define TG3_FLG2_USING_MSI_OR_MSIX (TG3_FLG2_USING_MSI | \ | 2836 | #define TG3_FLG2_USING_MSI_OR_MSIX (TG3_FLG2_USING_MSI | \ |
@@ -2737,7 +2842,9 @@ struct tg3 { | |||
2737 | #define TG3_FLG2_ICH_WORKAROUND 0x02000000 | 2842 | #define TG3_FLG2_ICH_WORKAROUND 0x02000000 |
2738 | #define TG3_FLG2_5780_CLASS 0x04000000 | 2843 | #define TG3_FLG2_5780_CLASS 0x04000000 |
2739 | #define TG3_FLG2_HW_TSO_2 0x08000000 | 2844 | #define TG3_FLG2_HW_TSO_2 0x08000000 |
2740 | #define TG3_FLG2_HW_TSO (TG3_FLG2_HW_TSO_1 | TG3_FLG2_HW_TSO_2) | 2845 | #define TG3_FLG2_HW_TSO (TG3_FLG2_HW_TSO_1 | \ |
2846 | TG3_FLG2_HW_TSO_2 | \ | ||
2847 | TG3_FLG2_HW_TSO_3) | ||
2741 | #define TG3_FLG2_1SHOT_MSI 0x10000000 | 2848 | #define TG3_FLG2_1SHOT_MSI 0x10000000 |
2742 | #define TG3_FLG2_PHY_JITTER_BUG 0x20000000 | 2849 | #define TG3_FLG2_PHY_JITTER_BUG 0x20000000 |
2743 | #define TG3_FLG2_NO_FWARE_REPORTED 0x40000000 | 2850 | #define TG3_FLG2_NO_FWARE_REPORTED 0x40000000 |
@@ -2745,20 +2852,26 @@ struct tg3 { | |||
2745 | u32 tg3_flags3; | 2852 | u32 tg3_flags3; |
2746 | #define TG3_FLG3_NO_NVRAM_ADDR_TRANS 0x00000001 | 2853 | #define TG3_FLG3_NO_NVRAM_ADDR_TRANS 0x00000001 |
2747 | #define TG3_FLG3_ENABLE_APE 0x00000002 | 2854 | #define TG3_FLG3_ENABLE_APE 0x00000002 |
2855 | #define TG3_FLG3_PROTECTED_NVRAM 0x00000004 | ||
2748 | #define TG3_FLG3_5701_DMA_BUG 0x00000008 | 2856 | #define TG3_FLG3_5701_DMA_BUG 0x00000008 |
2749 | #define TG3_FLG3_USE_PHYLIB 0x00000010 | 2857 | #define TG3_FLG3_USE_PHYLIB 0x00000010 |
2750 | #define TG3_FLG3_MDIOBUS_INITED 0x00000020 | 2858 | #define TG3_FLG3_MDIOBUS_INITED 0x00000020 |
2751 | #define TG3_FLG3_PHY_CONNECTED 0x00000080 | 2859 | #define TG3_FLG3_PHY_CONNECTED 0x00000080 |
2752 | #define TG3_FLG3_RGMII_STD_IBND_DISABLE 0x00000100 | 2860 | #define TG3_FLG3_RGMII_INBAND_DISABLE 0x00000100 |
2753 | #define TG3_FLG3_RGMII_EXT_IBND_RX_EN 0x00000200 | 2861 | #define TG3_FLG3_RGMII_EXT_IBND_RX_EN 0x00000200 |
2754 | #define TG3_FLG3_RGMII_EXT_IBND_TX_EN 0x00000400 | 2862 | #define TG3_FLG3_RGMII_EXT_IBND_TX_EN 0x00000400 |
2755 | #define TG3_FLG3_CLKREQ_BUG 0x00000800 | 2863 | #define TG3_FLG3_CLKREQ_BUG 0x00000800 |
2756 | #define TG3_FLG3_PHY_ENABLE_APD 0x00001000 | 2864 | #define TG3_FLG3_PHY_ENABLE_APD 0x00001000 |
2757 | #define TG3_FLG3_5755_PLUS 0x00002000 | 2865 | #define TG3_FLG3_5755_PLUS 0x00002000 |
2758 | #define TG3_FLG3_NO_NVRAM 0x00004000 | 2866 | #define TG3_FLG3_NO_NVRAM 0x00004000 |
2759 | #define TG3_FLG3_TOGGLE_10_100_L1PLLPD 0x00008000 | ||
2760 | #define TG3_FLG3_PHY_IS_FET 0x00010000 | 2867 | #define TG3_FLG3_PHY_IS_FET 0x00010000 |
2761 | #define TG3_FLG3_ENABLE_RSS 0x00020000 | 2868 | #define TG3_FLG3_ENABLE_RSS 0x00020000 |
2869 | #define TG3_FLG3_ENABLE_TSS 0x00040000 | ||
2870 | #define TG3_FLG3_4G_DMA_BNDRY_BUG 0x00080000 | ||
2871 | #define TG3_FLG3_40BIT_DMA_LIMIT_BUG 0x00100000 | ||
2872 | #define TG3_FLG3_SHORT_DMA_BUG 0x00200000 | ||
2873 | #define TG3_FLG3_USE_JUMBO_BDFLAG 0x00400000 | ||
2874 | #define TG3_FLG3_L1PLLPD_EN 0x00800000 | ||
2762 | 2875 | ||
2763 | struct timer_list timer; | 2876 | struct timer_list timer; |
2764 | u16 timer_counter; | 2877 | u16 timer_counter; |
@@ -2808,65 +2921,62 @@ struct tg3 { | |||
2808 | 2921 | ||
2809 | /* PHY info */ | 2922 | /* PHY info */ |
2810 | u32 phy_id; | 2923 | u32 phy_id; |
2811 | #define PHY_ID_MASK 0xfffffff0 | 2924 | #define TG3_PHY_ID_MASK 0xfffffff0 |
2812 | #define PHY_ID_BCM5400 0x60008040 | 2925 | #define TG3_PHY_ID_BCM5400 0x60008040 |
2813 | #define PHY_ID_BCM5401 0x60008050 | 2926 | #define TG3_PHY_ID_BCM5401 0x60008050 |
2814 | #define PHY_ID_BCM5411 0x60008070 | 2927 | #define TG3_PHY_ID_BCM5411 0x60008070 |
2815 | #define PHY_ID_BCM5701 0x60008110 | 2928 | #define TG3_PHY_ID_BCM5701 0x60008110 |
2816 | #define PHY_ID_BCM5703 0x60008160 | 2929 | #define TG3_PHY_ID_BCM5703 0x60008160 |
2817 | #define PHY_ID_BCM5704 0x60008190 | 2930 | #define TG3_PHY_ID_BCM5704 0x60008190 |
2818 | #define PHY_ID_BCM5705 0x600081a0 | 2931 | #define TG3_PHY_ID_BCM5705 0x600081a0 |
2819 | #define PHY_ID_BCM5750 0x60008180 | 2932 | #define TG3_PHY_ID_BCM5750 0x60008180 |
2820 | #define PHY_ID_BCM5752 0x60008100 | 2933 | #define TG3_PHY_ID_BCM5752 0x60008100 |
2821 | #define PHY_ID_BCM5714 0x60008340 | 2934 | #define TG3_PHY_ID_BCM5714 0x60008340 |
2822 | #define PHY_ID_BCM5780 0x60008350 | 2935 | #define TG3_PHY_ID_BCM5780 0x60008350 |
2823 | #define PHY_ID_BCM5755 0xbc050cc0 | 2936 | #define TG3_PHY_ID_BCM5755 0xbc050cc0 |
2824 | #define PHY_ID_BCM5787 0xbc050ce0 | 2937 | #define TG3_PHY_ID_BCM5787 0xbc050ce0 |
2825 | #define PHY_ID_BCM5756 0xbc050ed0 | 2938 | #define TG3_PHY_ID_BCM5756 0xbc050ed0 |
2826 | #define PHY_ID_BCM5784 0xbc050fa0 | 2939 | #define TG3_PHY_ID_BCM5784 0xbc050fa0 |
2827 | #define PHY_ID_BCM5761 0xbc050fd0 | 2940 | #define TG3_PHY_ID_BCM5761 0xbc050fd0 |
2828 | #define PHY_ID_BCM5906 0xdc00ac40 | 2941 | #define TG3_PHY_ID_BCM5718C 0x5c0d8a00 |
2829 | #define PHY_ID_BCM8002 0x60010140 | 2942 | #define TG3_PHY_ID_BCM5718S 0xbc050ff0 |
2830 | #define PHY_ID_INVALID 0xffffffff | 2943 | #define TG3_PHY_ID_BCM57765 0x5c0d8a40 |
2831 | #define PHY_ID_REV_MASK 0x0000000f | 2944 | #define TG3_PHY_ID_BCM5906 0xdc00ac40 |
2832 | #define PHY_REV_BCM5401_B0 0x1 | 2945 | #define TG3_PHY_ID_BCM8002 0x60010140 |
2833 | #define PHY_REV_BCM5401_B2 0x3 | 2946 | #define TG3_PHY_ID_INVALID 0xffffffff |
2834 | #define PHY_REV_BCM5401_C0 0x6 | 2947 | |
2835 | #define PHY_REV_BCM5411_X0 0x1 /* Found on Netgear GA302T */ | 2948 | #define PHY_ID_RTL8211C 0x001cc910 |
2836 | #define TG3_PHY_ID_BCM50610 0x143bd60 | 2949 | #define PHY_ID_RTL8201E 0x00008200 |
2837 | #define TG3_PHY_ID_BCMAC131 0x143bc70 | 2950 | |
2838 | #define TG3_PHY_ID_RTL8211C 0x001cc910 | 2951 | #define TG3_PHY_ID_REV_MASK 0x0000000f |
2839 | #define TG3_PHY_ID_RTL8201E 0x00008200 | 2952 | #define TG3_PHY_REV_BCM5401_B0 0x1 |
2840 | #define TG3_PHY_ID_BCM57780 0x03625d90 | 2953 | |
2841 | #define TG3_PHY_OUI_MASK 0xfffffc00 | 2954 | /* This macro assumes the passed PHY ID is |
2842 | #define TG3_PHY_OUI_1 0x00206000 | 2955 | * already masked with TG3_PHY_ID_MASK. |
2843 | #define TG3_PHY_OUI_2 0x0143bc00 | 2956 | */ |
2844 | #define TG3_PHY_OUI_3 0x03625c00 | 2957 | #define TG3_KNOWN_PHY_ID(X) \ |
2958 | ((X) == TG3_PHY_ID_BCM5400 || (X) == TG3_PHY_ID_BCM5401 || \ | ||
2959 | (X) == TG3_PHY_ID_BCM5411 || (X) == TG3_PHY_ID_BCM5701 || \ | ||
2960 | (X) == TG3_PHY_ID_BCM5703 || (X) == TG3_PHY_ID_BCM5704 || \ | ||
2961 | (X) == TG3_PHY_ID_BCM5705 || (X) == TG3_PHY_ID_BCM5750 || \ | ||
2962 | (X) == TG3_PHY_ID_BCM5752 || (X) == TG3_PHY_ID_BCM5714 || \ | ||
2963 | (X) == TG3_PHY_ID_BCM5780 || (X) == TG3_PHY_ID_BCM5787 || \ | ||
2964 | (X) == TG3_PHY_ID_BCM5755 || (X) == TG3_PHY_ID_BCM5756 || \ | ||
2965 | (X) == TG3_PHY_ID_BCM5906 || (X) == TG3_PHY_ID_BCM5761 || \ | ||
2966 | (X) == TG3_PHY_ID_BCM5718C || (X) == TG3_PHY_ID_BCM5718S || \ | ||
2967 | (X) == TG3_PHY_ID_BCM57765 || (X) == TG3_PHY_ID_BCM8002) | ||
2845 | 2968 | ||
2846 | u32 led_ctrl; | 2969 | u32 led_ctrl; |
2847 | u32 phy_otp; | 2970 | u32 phy_otp; |
2848 | 2971 | ||
2849 | char board_part_number[24]; | 2972 | #define TG3_BPN_SIZE 24 |
2850 | #define TG3_VER_SIZE 32 | 2973 | char board_part_number[TG3_BPN_SIZE]; |
2974 | #define TG3_VER_SIZE ETHTOOL_FWVERS_LEN | ||
2851 | char fw_ver[TG3_VER_SIZE]; | 2975 | char fw_ver[TG3_VER_SIZE]; |
2852 | u32 nic_sram_data_cfg; | 2976 | u32 nic_sram_data_cfg; |
2853 | u32 pci_clock_ctrl; | 2977 | u32 pci_clock_ctrl; |
2854 | struct pci_dev *pdev_peer; | 2978 | struct pci_dev *pdev_peer; |
2855 | 2979 | ||
2856 | /* This macro assumes the passed PHY ID is already masked | ||
2857 | * with PHY_ID_MASK. | ||
2858 | */ | ||
2859 | #define KNOWN_PHY_ID(X) \ | ||
2860 | ((X) == PHY_ID_BCM5400 || (X) == PHY_ID_BCM5401 || \ | ||
2861 | (X) == PHY_ID_BCM5411 || (X) == PHY_ID_BCM5701 || \ | ||
2862 | (X) == PHY_ID_BCM5703 || (X) == PHY_ID_BCM5704 || \ | ||
2863 | (X) == PHY_ID_BCM5705 || (X) == PHY_ID_BCM5750 || \ | ||
2864 | (X) == PHY_ID_BCM5752 || (X) == PHY_ID_BCM5714 || \ | ||
2865 | (X) == PHY_ID_BCM5780 || (X) == PHY_ID_BCM5787 || \ | ||
2866 | (X) == PHY_ID_BCM5755 || (X) == PHY_ID_BCM5756 || \ | ||
2867 | (X) == PHY_ID_BCM5906 || (X) == PHY_ID_BCM5761 || \ | ||
2868 | (X) == PHY_ID_BCM8002) | ||
2869 | |||
2870 | struct tg3_hw_stats *hw_stats; | 2980 | struct tg3_hw_stats *hw_stats; |
2871 | dma_addr_t stats_mapping; | 2981 | dma_addr_t stats_mapping; |
2872 | struct work_struct reset_task; | 2982 | struct work_struct reset_task; |