Loading...
Searching...
No Matches
8#define REQ_TX_DESCRIPTOR_MULTIPLE 8
9#define REQ_RX_DESCRIPTOR_MULTIPLE 8
11#define IGC_CTRL_EXT_DRV_LOAD 0x10000000
15#define IGC_WUC_PME_EN 0x00000002
18#define IGC_WUFC_LNKC 0x00000001
19#define IGC_WUFC_MAG 0x00000002
20#define IGC_WUFC_EX 0x00000004
21#define IGC_WUFC_MC 0x00000008
22#define IGC_WUFC_BC 0x00000010
24#define IGC_CTRL_ADVD3WUC 0x00100000
27#define IGC_WUS_EX 0x00000004
28#define IGC_WUS_ARPD 0x00000020
29#define IGC_WUS_IPV4 0x00000040
30#define IGC_WUS_IPV6 0x00000080
31#define IGC_WUS_NSD 0x00000400
34#define WAKE_PKT_WUS ( \
42#define IGC_WUPL_MASK 0x00000FFF
45#define IGC_WUPM_BYTES 128
48#define COPPER_LINK_UP_LIMIT 10
49#define PHY_AUTO_NEG_LIMIT 45
52#define MASTER_DISABLE_TIMEOUT 800
54#define IGC_CTRL_GIO_MASTER_DISABLE 0x00000004
56#define IGC_STATUS_GIO_MASTER_ENABLE 0x00080000
65#define IGC_RAH_RAH_MASK 0x0000FFFF
66#define IGC_RAH_ASEL_MASK 0x00030000
67#define IGC_RAH_ASEL_SRC_ADDR BIT(16)
68#define IGC_RAH_QSEL_MASK 0x000C0000
69#define IGC_RAH_QSEL_SHIFT 18
70#define IGC_RAH_QSEL_ENABLE BIT(28)
71#define IGC_RAH_AV 0x80000000
73#define IGC_RAL_MAC_ADDR_LEN 4
74#define IGC_RAH_MAC_ADDR_LEN 2
80#define IGC_ERR_CONFIG 3
81#define IGC_ERR_PARAM 4
82#define IGC_ERR_MAC_INIT 5
83#define IGC_ERR_RESET 9
84#define IGC_ERR_MASTER_REQUESTS_PENDING 10
85#define IGC_ERR_BLK_PHY_RESET 12
86#define IGC_ERR_SWFW_SYNC 13
89#define IGC_CTRL_DEV_RST 0x20000000
91#define IGC_CTRL_PHY_RST 0x80000000
92#define IGC_CTRL_SLU 0x00000040
93#define IGC_CTRL_FRCSPD 0x00000800
94#define IGC_CTRL_FRCDPX 0x00001000
96#define IGC_CTRL_RFCE 0x08000000
97#define IGC_CTRL_TFCE 0x10000000
100#define MAX_JUMBO_FRAME_SIZE 0x2600
103#define IGC_PBA_34K 0x0022
106#define IGC_SWSM_SMBI 0x00000001
107#define IGC_SWSM_SWESMBI 0x00000002
110#define IGC_SWFW_EEP_SM 0x1
111#define IGC_SWFW_PHY0_SM 0x2
114#define NWAY_AR_10T_HD_CAPS 0x0020
115#define NWAY_AR_10T_FD_CAPS 0x0040
116#define NWAY_AR_100TX_HD_CAPS 0x0080
117#define NWAY_AR_100TX_FD_CAPS 0x0100
118#define NWAY_AR_PAUSE 0x0400
119#define NWAY_AR_ASM_DIR 0x0800
122#define NWAY_LPAR_PAUSE 0x0400
123#define NWAY_LPAR_ASM_DIR 0x0800
126#define CR_1000T_ASYM_PAUSE 0x0080
127#define CR_1000T_HD_CAPS 0x0100
128#define CR_1000T_FD_CAPS 0x0200
131#define SR_1000T_REMOTE_RX_STATUS 0x1000
132#define SR_1000T_LOCAL_RX_STATUS 0x2000
135#define STANDARD_AN_REG_MASK 0x0007
136#define ANEG_MULTIGBT_AN_CTRL 0x0020
137#define MMD_DEVADDR_SHIFT 16
138#define CR_2500T_FD_CAPS 0x0080
142#define AUTO_READ_DONE_TIMEOUT 10
143#define IGC_EECD_AUTO_RD 0x00000200
144#define IGC_EECD_REQ 0x00000040
145#define IGC_EECD_GNT 0x00000080
147#define IGC_EECD_ADDR_BITS 0x00000400
148#define IGC_NVM_GRANT_ATTEMPTS 1000
149#define IGC_EECD_SIZE_EX_MASK 0x00007800
150#define IGC_EECD_SIZE_EX_SHIFT 11
151#define IGC_EECD_FLUPD_I225 0x00800000
152#define IGC_EECD_FLUDONE_I225 0x04000000
153#define IGC_EECD_FLASH_DETECTED_I225 0x00080000
154#define IGC_FLUDONE_ATTEMPTS 20000
155#define IGC_EERD_EEWR_MAX_COUNT 512
158#define IGC_NVM_RW_REG_DATA 16
159#define IGC_NVM_RW_REG_DONE 2
160#define IGC_NVM_RW_REG_START 1
161#define IGC_NVM_RW_ADDR_SHIFT 2
162#define IGC_NVM_POLL_READ 0
165#define NVM_CHECKSUM_REG 0x003F
168#define NVM_SUM 0xBABA
169#define NVM_WORD_SIZE_BASE_SHIFT 6
172#define IGC_COLLISION_THRESHOLD 15
173#define IGC_CT_SHIFT 4
174#define IGC_COLLISION_DISTANCE 63
175#define IGC_COLD_SHIFT 12
178#define IGC_STATUS_FD 0x00000001
179#define IGC_STATUS_LU 0x00000002
180#define IGC_STATUS_FUNC_MASK 0x0000000C
181#define IGC_STATUS_FUNC_SHIFT 2
182#define IGC_STATUS_FUNC_1 0x00000004
183#define IGC_STATUS_TXOFF 0x00000010
184#define IGC_STATUS_SPEED_100 0x00000040
185#define IGC_STATUS_SPEED_1000 0x00000080
186#define IGC_STATUS_SPEED_2500 0x00400000
190#define SPEED_1000 1000
191#define SPEED_2500 2500
196#define ADVERTISE_10_HALF 0x0001
197#define ADVERTISE_10_FULL 0x0002
198#define ADVERTISE_100_HALF 0x0004
199#define ADVERTISE_100_FULL 0x0008
200#define ADVERTISE_1000_HALF 0x0010
201#define ADVERTISE_1000_FULL 0x0020
202#define ADVERTISE_2500_HALF 0x0040
203#define ADVERTISE_2500_FULL 0x0080
205#define IGC_ALL_SPEED_DUPLEX_2500 ( \
206 ADVERTISE_10_HALF | ADVERTISE_10_FULL | ADVERTISE_100_HALF | \
207 ADVERTISE_100_FULL | ADVERTISE_1000_FULL | ADVERTISE_2500_FULL)
209#define AUTONEG_ADVERTISE_SPEED_DEFAULT_2500 IGC_ALL_SPEED_DUPLEX_2500
212#define IGC_ICR_TXDW BIT(0)
213#define IGC_ICR_TXQE BIT(1)
214#define IGC_ICR_LSC BIT(2)
215#define IGC_ICR_RXSEQ BIT(3)
216#define IGC_ICR_RXDMT0 BIT(4)
217#define IGC_ICR_RXO BIT(6)
218#define IGC_ICR_RXT0 BIT(7)
219#define IGC_ICR_TS BIT(19)
220#define IGC_ICR_DRSTA BIT(30)
223#define IGC_ICR_INT_ASSERTED BIT(31)
225#define IGC_ICS_RXT0 IGC_ICR_RXT0
227#define IMS_ENABLE_MASK ( \
235#define IGC_IMS_TXDW IGC_ICR_TXDW
236#define IGC_IMS_RXSEQ IGC_ICR_RXSEQ
237#define IGC_IMS_LSC IGC_ICR_LSC
238#define IGC_IMS_DOUTSYNC IGC_ICR_DOUTSYNC
239#define IGC_IMS_DRSTA IGC_ICR_DRSTA
240#define IGC_IMS_RXT0 IGC_ICR_RXT0
241#define IGC_IMS_RXDMT0 IGC_ICR_RXDMT0
242#define IGC_IMS_TS IGC_ICR_TS
244#define IGC_QVECTOR_MASK 0x7FFC
245#define IGC_ITR_VAL_MASK 0x04
248#define IGC_ICS_LSC IGC_ICR_LSC
249#define IGC_ICS_RXDMT0 IGC_ICR_RXDMT0
251#define IGC_ICR_DOUTSYNC 0x10000000
252#define IGC_EITR_CNT_IGNR 0x80000000
253#define IGC_IVAR_VALID 0x80
254#define IGC_GPIE_NSICR 0x00000001
255#define IGC_GPIE_MSIX_MODE 0x00000010
256#define IGC_GPIE_EIAME 0x40000000
257#define IGC_GPIE_PBA 0x80000000
260#define IGC_RXD_STAT_DD 0x01
263#define IGC_TXD_DTYP_D 0x00100000
264#define IGC_TXD_DTYP_C 0x00000000
265#define IGC_TXD_POPTS_IXSM 0x01
266#define IGC_TXD_POPTS_TXSM 0x02
267#define IGC_TXD_CMD_EOP 0x01000000
268#define IGC_TXD_CMD_IC 0x04000000
269#define IGC_TXD_CMD_DEXT 0x20000000
270#define IGC_TXD_CMD_VLE 0x40000000
271#define IGC_TXD_STAT_DD 0x00000001
272#define IGC_TXD_CMD_TCP 0x01000000
273#define IGC_TXD_CMD_IP 0x02000000
274#define IGC_TXD_CMD_TSE 0x04000000
275#define IGC_TXD_EXTCMD_TSTAMP 0x00000010
278#define IGC_ADVTXD_L4LEN_SHIFT 8
279#define IGC_ADVTXD_MSS_SHIFT 16
282#define IGC_TCTL_EN 0x00000002
283#define IGC_TCTL_PSP 0x00000008
284#define IGC_TCTL_CT 0x00000ff0
285#define IGC_TCTL_COLD 0x003ff000
286#define IGC_TCTL_RTLC 0x01000000
287#define IGC_TCTL_MULR 0x10000000
290#define FLOW_CONTROL_ADDRESS_LOW 0x00C28001
291#define FLOW_CONTROL_ADDRESS_HIGH 0x00000100
292#define FLOW_CONTROL_TYPE 0x8808
294#define IGC_FCRTL_XONE 0x80000000
297#define IGC_MANC_RCV_TCO_EN 0x00020000
298#define IGC_MANC_BLK_PHY_RST_ON_IDE 0x00040000
301#define IGC_RCTL_RST 0x00000001
302#define IGC_RCTL_EN 0x00000002
303#define IGC_RCTL_SBP 0x00000004
304#define IGC_RCTL_UPE 0x00000008
305#define IGC_RCTL_MPE 0x00000010
306#define IGC_RCTL_LPE 0x00000020
307#define IGC_RCTL_LBM_MAC 0x00000040
308#define IGC_RCTL_LBM_TCVR 0x000000C0
310#define IGC_RCTL_RDMTS_HALF 0x00000000
311#define IGC_RCTL_BAM 0x00008000
314#define IGC_SRRCTL_TIMESTAMP 0x40000000
315#define IGC_SRRCTL_TIMER1SEL(timer) (((timer) & 0x3) << 14)
316#define IGC_SRRCTL_TIMER0SEL(timer) (((timer) & 0x3) << 17)
319#define IGC_RXD_STAT_EOP 0x02
320#define IGC_RXD_STAT_IXSM 0x04
321#define IGC_RXD_STAT_UDPCS 0x10
322#define IGC_RXD_STAT_TCPCS 0x20
325#define IGC_RXDADV_STAT_TSIP 0x08000
327#define IGC_RXDEXT_STATERR_L4E 0x20000000
328#define IGC_RXDEXT_STATERR_IPE 0x40000000
329#define IGC_RXDEXT_STATERR_RXE 0x80000000
331#define IGC_MRQC_RSS_FIELD_IPV4_TCP 0x00010000
332#define IGC_MRQC_RSS_FIELD_IPV4 0x00020000
333#define IGC_MRQC_RSS_FIELD_IPV6_TCP_EX 0x00040000
334#define IGC_MRQC_RSS_FIELD_IPV6 0x00100000
335#define IGC_MRQC_RSS_FIELD_IPV6_TCP 0x00200000
338#define IGC_RFCTL_IPV6_EX_DIS 0x00010000
339#define IGC_RFCTL_LEF 0x00040000
341#define IGC_RCTL_SZ_256 0x00030000
343#define IGC_RCTL_MO_SHIFT 12
344#define IGC_RCTL_CFIEN 0x00080000
345#define IGC_RCTL_DPF 0x00400000
346#define IGC_RCTL_PMCF 0x00800000
347#define IGC_RCTL_SECRC 0x04000000
349#define I225_RXPBSIZE_DEFAULT 0x000000A2
350#define I225_TXPBSIZE_DEFAULT 0x04000014
351#define IGC_RXPBS_CFG_TS_EN 0x80000000
353#define IGC_TXPBSIZE_TSN 0x04145145
355#define IGC_DTXMXPKTSZ_TSN 0x19
356#define IGC_DTXMXPKTSZ_DEFAULT 0x98
359#define IGC_TSICR_SYS_WRAP BIT(0)
360#define IGC_TSICR_TXTS BIT(1)
361#define IGC_TSICR_TT0 BIT(3)
362#define IGC_TSICR_TT1 BIT(4)
363#define IGC_TSICR_AUTT0 BIT(5)
364#define IGC_TSICR_AUTT1 BIT(6)
366#define IGC_TSICR_INTERRUPTS IGC_TSICR_TXTS
368#define IGC_FTQF_VF_BP 0x00008000
369#define IGC_FTQF_1588_TIME_STAMP 0x08000000
370#define IGC_FTQF_MASK 0xF0000000
371#define IGC_FTQF_MASK_PROTO_BP 0x10000000
374#define IGC_TSYNCRXCTL_TYPE_MASK 0x0000000E
375#define IGC_TSYNCRXCTL_TYPE_L2_V2 0x00
376#define IGC_TSYNCRXCTL_TYPE_L4_V1 0x02
377#define IGC_TSYNCRXCTL_TYPE_L2_L4_V2 0x04
378#define IGC_TSYNCRXCTL_TYPE_ALL 0x08
379#define IGC_TSYNCRXCTL_TYPE_EVENT_V2 0x0A
380#define IGC_TSYNCRXCTL_ENABLED 0x00000010
381#define IGC_TSYNCRXCTL_SYSCFI 0x00000020
382#define IGC_TSYNCRXCTL_RXSYNSIG 0x00000400
385#define IGC_TSYNCRXCFG_PTP_V1_CTRLT_MASK 0x000000FF
386#define IGC_TSYNCRXCFG_PTP_V1_SYNC_MESSAGE 0x00
387#define IGC_TSYNCRXCFG_PTP_V1_DELAY_REQ_MESSAGE 0x01
390#define IGC_IMIR_CLEAR_MASK 0xF001FFFF
391#define IGC_IMIR_PORT_BYPASS 0x20000
392#define IGC_IMIR_PRIORITY_SHIFT 29
393#define IGC_IMIREXT_CLEAR_MASK 0x7FFFF
396#define IGC_IMIREXT_CTRL_BP 0x00080000
397#define IGC_IMIREXT_SIZE_BP 0x00001000
400#define IGC_TSYNCTXCTL_TXTT_0 0x00000001
401#define IGC_TSYNCTXCTL_ENABLED 0x00000010
402#define IGC_TSYNCTXCTL_MAX_ALLOWED_DLY_MASK 0x0000F000
403#define IGC_TSYNCTXCTL_SYNC_COMP_ERR 0x20000000
404#define IGC_TSYNCTXCTL_SYNC_COMP 0x40000000
405#define IGC_TSYNCTXCTL_START_SYNC 0x80000000
406#define IGC_TSYNCTXCTL_TXSYNSIG 0x00000020
409#define IGC_TQAVCTRL_TRANSMIT_MODE_TSN 0x00000001
410#define IGC_TQAVCTRL_ENHANCED_QAV 0x00000008
412#define IGC_TXQCTL_QUEUE_MODE_LAUNCHT 0x00000001
413#define IGC_TXQCTL_STRICT_CYCLE 0x00000002
414#define IGC_TXQCTL_STRICT_END 0x00000004
417#define IGC_RXCSUM_CRCOFL 0x00000800
418#define IGC_RXCSUM_PCSD 0x00002000
421#define GPY_MMD_MASK 0xFFFF0000
422#define GPY_MMD_SHIFT 16
423#define GPY_REG_MASK 0x0000FFFF
425#define IGC_MMDAC_FUNC_DATA 0x4000
428#define IGC_FACTPS_MNGCG 0x20000000
429#define IGC_FWSM_MODE_MASK 0xE
430#define IGC_FWSM_MODE_SHIFT 1
433#define IGC_MANC_SMBUS_EN 0x00000001
434#define IGC_MANC_ASF_EN 0x00000002
437#define PHY_REVISION_MASK 0xFFFFFFF0
438#define MAX_PHY_REG_ADDRESS 0x1F
439#define IGC_GEN_POLL_TIMEOUT 1920
442#define MII_CR_FULL_DUPLEX 0x0100
443#define MII_CR_RESTART_AUTO_NEG 0x0200
444#define MII_CR_POWER_DOWN 0x0800
445#define MII_CR_AUTO_NEG_EN 0x1000
446#define MII_CR_LOOPBACK 0x4000
447#define MII_CR_RESET 0x8000
448#define MII_CR_SPEED_1000 0x0040
449#define MII_CR_SPEED_100 0x2000
450#define MII_CR_SPEED_10 0x0000
453#define MII_SR_LINK_STATUS 0x0004
454#define MII_SR_AUTONEG_COMPLETE 0x0020
455#define IGC_PHY_RST_COMP 0x0100
459#define PHY_CONTROL 0x00
460#define PHY_STATUS 0x01
463#define PHY_AUTONEG_ADV 0x04
464#define PHY_LP_ABILITY 0x05
465#define PHY_1000T_CTRL 0x09
466#define PHY_1000T_STATUS 0x0A
469#define I225_I_PHY_ID 0x67C9DC00
472#define IGC_MDIC_DATA_MASK 0x0000FFFF
473#define IGC_MDIC_REG_MASK 0x001F0000
474#define IGC_MDIC_REG_SHIFT 16
475#define IGC_MDIC_PHY_MASK 0x03E00000
476#define IGC_MDIC_PHY_SHIFT 21
477#define IGC_MDIC_OP_WRITE 0x04000000
478#define IGC_MDIC_OP_READ 0x08000000
479#define IGC_MDIC_READY 0x10000000
480#define IGC_MDIC_INT_EN 0x20000000
481#define IGC_MDIC_ERROR 0x40000000
483#define IGC_N0_QUEUE -1
485#define IGC_MAX_MAC_HDR_LEN 127
486#define IGC_MAX_NETWORK_HDR_LEN 511
488#define IGC_VLANPQF_QSEL(_n, q_idx) ((q_idx) << ((_n) * 4))
489#define IGC_VLANPQF_VALID(_n) (0x1 << (3 + (_n) * 4))
490#define IGC_VLANPQF_QUEUE_MASK 0x03
492#define IGC_ADVTXD_MACLEN_SHIFT 9
493#define IGC_ADVTXD_TUCMD_IPV4 0x00000400
494#define IGC_ADVTXD_TUCMD_L4T_TCP 0x00000800
495#define IGC_ADVTXD_TUCMD_L4T_SCTP 0x00001000
498#define MAX_MTA_REG 128
501#define IGC_IPCNFG_EEE_2_5G_AN 0x00000010
502#define IGC_IPCNFG_EEE_1G_AN 0x00000008
503#define IGC_IPCNFG_EEE_100M_AN 0x00000004
504#define IGC_EEER_EEE_NEG 0x20000000
505#define IGC_EEER_TX_LPI_EN 0x00010000
506#define IGC_EEER_RX_LPI_EN 0x00020000
507#define IGC_EEER_LPI_FC 0x00040000
508#define IGC_EEE_SU_LPI_CLK_STP 0x00800000
511#define IGC_LTRC_EEEMS_EN 0x00000020
512#define IGC_RXPBS_SIZE_I225_MASK 0x0000003F
513#define IGC_TW_SYSTEM_1000_MASK 0x000000FF
517#define IGC_TW_SYSTEM_100_MASK 0x0000FF00
518#define IGC_TW_SYSTEM_100_SHIFT 8
519#define IGC_DMACR_DMAC_EN 0x80000000
520#define IGC_DMACR_DMACTHR_MASK 0x00FF0000
521#define IGC_DMACR_DMACTHR_SHIFT 16
523#define IGC_LTRMINV_SCALE_1024 2
525#define IGC_LTRMINV_SCALE_32768 3
527#define IGC_LTRMAXV_SCALE_1024 2
529#define IGC_LTRMAXV_SCALE_32768 3
530#define IGC_LTRMINV_LTRV_MASK 0x000003FF
531#define IGC_LTRMAXV_LTRV_MASK 0x000003FF
532#define IGC_LTRMINV_LSNP_REQ 0x00008000
533#define IGC_LTRMINV_SCALE_SHIFT 10
534#define IGC_LTRMAXV_LSNP_REQ 0x00008000
535#define IGC_LTRMAXV_SCALE_SHIFT 10