aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/igb/e1000_82575.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/igb/e1000_82575.h')
-rw-r--r--drivers/net/igb/e1000_82575.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/drivers/net/igb/e1000_82575.h b/drivers/net/igb/e1000_82575.h
index ebd146fd4e15..fbe1c99c193c 100644
--- a/drivers/net/igb/e1000_82575.h
+++ b/drivers/net/igb/e1000_82575.h
@@ -29,6 +29,8 @@
29#define _E1000_82575_H_ 29#define _E1000_82575_H_
30 30
31extern void igb_shutdown_serdes_link_82575(struct e1000_hw *hw); 31extern void igb_shutdown_serdes_link_82575(struct e1000_hw *hw);
32extern void igb_power_up_serdes_link_82575(struct e1000_hw *hw);
33extern void igb_power_down_phy_copper_82575(struct e1000_hw *hw);
32extern void igb_rx_fifo_flush_82575(struct e1000_hw *hw); 34extern void igb_rx_fifo_flush_82575(struct e1000_hw *hw);
33 35
34#define ID_LED_DEFAULT_82575_SERDES ((ID_LED_DEF1_DEF2 << 12) | \ 36#define ID_LED_DEFAULT_82575_SERDES ((ID_LED_DEF1_DEF2 << 12) | \
@@ -38,6 +40,11 @@ extern void igb_rx_fifo_flush_82575(struct e1000_hw *hw);
38 40
39#define E1000_RAR_ENTRIES_82575 16 41#define E1000_RAR_ENTRIES_82575 16
40#define E1000_RAR_ENTRIES_82576 24 42#define E1000_RAR_ENTRIES_82576 24
43#define E1000_RAR_ENTRIES_82580 24
44
45#define E1000_SW_SYNCH_MB 0x00000100
46#define E1000_STAT_DEV_RST_SET 0x00100000
47#define E1000_CTRL_DEV_RST 0x20000000
41 48
42/* SRRCTL bit definitions */ 49/* SRRCTL bit definitions */
43#define E1000_SRRCTL_BSIZEPKT_SHIFT 10 /* Shift _right_ */ 50#define E1000_SRRCTL_BSIZEPKT_SHIFT 10 /* Shift _right_ */
@@ -66,6 +73,8 @@ extern void igb_rx_fifo_flush_82575(struct e1000_hw *hw);
66 E1000_EICR_RX_QUEUE3) 73 E1000_EICR_RX_QUEUE3)
67 74
68/* Immediate Interrupt Rx (A.K.A. Low Latency Interrupt) */ 75/* Immediate Interrupt Rx (A.K.A. Low Latency Interrupt) */
76#define E1000_IMIREXT_SIZE_BP 0x00001000 /* Packet size bypass */
77#define E1000_IMIREXT_CTRL_BP 0x00080000 /* Bypass check of ctrl bits */
69 78
70/* Receive Descriptor - Advanced */ 79/* Receive Descriptor - Advanced */
71union e1000_adv_rx_desc { 80union e1000_adv_rx_desc {
@@ -98,6 +107,7 @@ union e1000_adv_rx_desc {
98 107
99#define E1000_RXDADV_HDRBUFLEN_MASK 0x7FE0 108#define E1000_RXDADV_HDRBUFLEN_MASK 0x7FE0
100#define E1000_RXDADV_HDRBUFLEN_SHIFT 5 109#define E1000_RXDADV_HDRBUFLEN_SHIFT 5
110#define E1000_RXDADV_STAT_TS 0x10000 /* Pkt was time stamped */
101 111
102/* Transmit Descriptor - Advanced */ 112/* Transmit Descriptor - Advanced */
103union e1000_adv_tx_desc { 113union e1000_adv_tx_desc {
@@ -167,6 +177,18 @@ struct e1000_adv_tx_context_desc {
167#define E1000_DCA_TXCTRL_CPUID_SHIFT 24 /* Tx CPUID now in the last byte */ 177#define E1000_DCA_TXCTRL_CPUID_SHIFT 24 /* Tx CPUID now in the last byte */
168#define E1000_DCA_RXCTRL_CPUID_SHIFT 24 /* Rx CPUID now in the last byte */ 178#define E1000_DCA_RXCTRL_CPUID_SHIFT 24 /* Rx CPUID now in the last byte */
169 179
180/* ETQF register bit definitions */
181#define E1000_ETQF_FILTER_ENABLE (1 << 26)
182#define E1000_ETQF_1588 (1 << 30)
183
184/* FTQF register bit definitions */
185#define E1000_FTQF_VF_BP 0x00008000
186#define E1000_FTQF_1588_TIME_STAMP 0x08000000
187#define E1000_FTQF_MASK 0xF0000000
188#define E1000_FTQF_MASK_PROTO_BP 0x10000000
189#define E1000_FTQF_MASK_SOURCE_PORT_BP 0x80000000
190
191#define E1000_NVM_APME_82575 0x0400
170#define MAX_NUM_VFS 8 192#define MAX_NUM_VFS 8
171 193
172#define E1000_DTXSWC_VMDQ_LOOPBACK_EN (1 << 31) /* global VF LB enable */ 194#define E1000_DTXSWC_VMDQ_LOOPBACK_EN (1 << 31) /* global VF LB enable */
@@ -199,12 +221,27 @@ struct e1000_adv_tx_context_desc {
199#define E1000_VLVF_LVLAN 0x00100000 221#define E1000_VLVF_LVLAN 0x00100000
200#define E1000_VLVF_VLANID_ENABLE 0x80000000 222#define E1000_VLVF_VLANID_ENABLE 0x80000000
201 223
224#define E1000_VMVIR_VLANA_DEFAULT 0x40000000 /* Always use default VLAN */
225#define E1000_VMVIR_VLANA_NEVER 0x80000000 /* Never insert VLAN tag */
226
202#define E1000_IOVCTL 0x05BBC 227#define E1000_IOVCTL 0x05BBC
203#define E1000_IOVCTL_REUSE_VFQ 0x00000001 228#define E1000_IOVCTL_REUSE_VFQ 0x00000001
204 229
230#define E1000_RPLOLR_STRVLAN 0x40000000
231#define E1000_RPLOLR_STRCRC 0x80000000
232
233#define E1000_DTXCTL_8023LL 0x0004
234#define E1000_DTXCTL_VLAN_ADDED 0x0008
235#define E1000_DTXCTL_OOS_ENABLE 0x0010
236#define E1000_DTXCTL_MDP_EN 0x0020
237#define E1000_DTXCTL_SPOOF_INT 0x0040
238
205#define ALL_QUEUES 0xFFFF 239#define ALL_QUEUES 0xFFFF
206 240
241/* RX packet buffer size defines */
242#define E1000_RXPBS_SIZE_MASK_82576 0x0000007F
207void igb_vmdq_set_loopback_pf(struct e1000_hw *, bool); 243void igb_vmdq_set_loopback_pf(struct e1000_hw *, bool);
208void igb_vmdq_set_replication_pf(struct e1000_hw *, bool); 244void igb_vmdq_set_replication_pf(struct e1000_hw *, bool);
245u16 igb_rxpbs_adjust_82580(u32 data);
209 246
210#endif 247#endif