diff options
Diffstat (limited to 'drivers/net/ethernet/intel/igc/igc_defines.h')
| -rw-r--r-- | drivers/net/ethernet/intel/igc/igc_defines.h | 91 | 
1 files changed, 86 insertions, 5 deletions
| diff --git a/drivers/net/ethernet/intel/igc/igc_defines.h b/drivers/net/ethernet/intel/igc/igc_defines.h index c3a5a5518790..a4bbee748798 100644 --- a/drivers/net/ethernet/intel/igc/igc_defines.h +++ b/drivers/net/ethernet/intel/igc/igc_defines.h @@ -17,11 +17,22 @@  #define IGC_WUC_PME_EN	0x00000002 /* PME Enable */  /* Wake Up Filter Control */ -#define IGC_WUFC_LNKC	0x00000001 /* Link Status Change Wakeup Enable */ -#define IGC_WUFC_MAG	0x00000002 /* Magic Packet Wakeup Enable */ -#define IGC_WUFC_EX	0x00000004 /* Directed Exact Wakeup Enable */ -#define IGC_WUFC_MC	0x00000008 /* Directed Multicast Wakeup Enable */ -#define IGC_WUFC_BC	0x00000010 /* Broadcast Wakeup Enable */ +#define IGC_WUFC_LNKC		0x00000001 /* Link Status Change Wakeup Enable */ +#define IGC_WUFC_MAG		0x00000002 /* Magic Packet Wakeup Enable */ +#define IGC_WUFC_EX		0x00000004 /* Directed Exact Wakeup Enable */ +#define IGC_WUFC_MC		0x00000008 /* Directed Multicast Wakeup Enable */ +#define IGC_WUFC_BC		0x00000010 /* Broadcast Wakeup Enable */ +#define IGC_WUFC_FLEX_HQ	BIT(14)	   /* Flex Filters Host Queuing */ +#define IGC_WUFC_FLX0		BIT(16)	   /* Flexible Filter 0 Enable */ +#define IGC_WUFC_FLX1		BIT(17)	   /* Flexible Filter 1 Enable */ +#define IGC_WUFC_FLX2		BIT(18)	   /* Flexible Filter 2 Enable */ +#define IGC_WUFC_FLX3		BIT(19)	   /* Flexible Filter 3 Enable */ +#define IGC_WUFC_FLX4		BIT(20)	   /* Flexible Filter 4 Enable */ +#define IGC_WUFC_FLX5		BIT(21)	   /* Flexible Filter 5 Enable */ +#define IGC_WUFC_FLX6		BIT(22)	   /* Flexible Filter 6 Enable */ +#define IGC_WUFC_FLX7		BIT(23)	   /* Flexible Filter 7 Enable */ + +#define IGC_WUFC_FILTER_MASK GENMASK(23, 14)  #define IGC_CTRL_ADVD3WUC	0x00100000  /* D3 WUC */ @@ -46,6 +57,37 @@  /* Wake Up Packet Memory stores the first 128 bytes of the wake up packet */  #define IGC_WUPM_BYTES	128 +/* Wakeup Filter Control Extended */ +#define IGC_WUFC_EXT_FLX8	BIT(8)	/* Flexible Filter 8 Enable */ +#define IGC_WUFC_EXT_FLX9	BIT(9)	/* Flexible Filter 9 Enable */ +#define IGC_WUFC_EXT_FLX10	BIT(10)	/* Flexible Filter 10 Enable */ +#define IGC_WUFC_EXT_FLX11	BIT(11)	/* Flexible Filter 11 Enable */ +#define IGC_WUFC_EXT_FLX12	BIT(12)	/* Flexible Filter 12 Enable */ +#define IGC_WUFC_EXT_FLX13	BIT(13)	/* Flexible Filter 13 Enable */ +#define IGC_WUFC_EXT_FLX14	BIT(14)	/* Flexible Filter 14 Enable */ +#define IGC_WUFC_EXT_FLX15	BIT(15)	/* Flexible Filter 15 Enable */ +#define IGC_WUFC_EXT_FLX16	BIT(16)	/* Flexible Filter 16 Enable */ +#define IGC_WUFC_EXT_FLX17	BIT(17)	/* Flexible Filter 17 Enable */ +#define IGC_WUFC_EXT_FLX18	BIT(18)	/* Flexible Filter 18 Enable */ +#define IGC_WUFC_EXT_FLX19	BIT(19)	/* Flexible Filter 19 Enable */ +#define IGC_WUFC_EXT_FLX20	BIT(20)	/* Flexible Filter 20 Enable */ +#define IGC_WUFC_EXT_FLX21	BIT(21)	/* Flexible Filter 21 Enable */ +#define IGC_WUFC_EXT_FLX22	BIT(22)	/* Flexible Filter 22 Enable */ +#define IGC_WUFC_EXT_FLX23	BIT(23)	/* Flexible Filter 23 Enable */ +#define IGC_WUFC_EXT_FLX24	BIT(24)	/* Flexible Filter 24 Enable */ +#define IGC_WUFC_EXT_FLX25	BIT(25)	/* Flexible Filter 25 Enable */ +#define IGC_WUFC_EXT_FLX26	BIT(26)	/* Flexible Filter 26 Enable */ +#define IGC_WUFC_EXT_FLX27	BIT(27)	/* Flexible Filter 27 Enable */ +#define IGC_WUFC_EXT_FLX28	BIT(28)	/* Flexible Filter 28 Enable */ +#define IGC_WUFC_EXT_FLX29	BIT(29)	/* Flexible Filter 29 Enable */ +#define IGC_WUFC_EXT_FLX30	BIT(30)	/* Flexible Filter 30 Enable */ +#define IGC_WUFC_EXT_FLX31	BIT(31)	/* Flexible Filter 31 Enable */ + +#define IGC_WUFC_EXT_FILTER_MASK GENMASK(31, 8) + +/* Physical Func Reset Done Indication */ +#define IGC_CTRL_EXT_LINK_MODE_MASK	0x00C00000 +  /* Loop limit on how long we wait for auto-negotiation to complete */  #define COPPER_LINK_UP_LIMIT		10  #define PHY_AUTO_NEG_LIMIT		45 @@ -476,11 +518,50 @@  #define IGC_TXQCTL_QUEUE_MODE_LAUNCHT	0x00000001  #define IGC_TXQCTL_STRICT_CYCLE		0x00000002  #define IGC_TXQCTL_STRICT_END		0x00000004 +#define IGC_TXQCTL_QAV_SEL_MASK		0x000000C0 +#define IGC_TXQCTL_QAV_SEL_CBS0		0x00000080 +#define IGC_TXQCTL_QAV_SEL_CBS1		0x000000C0 + +#define IGC_TQAVCC_IDLESLOPE_MASK	0xFFFF +#define IGC_TQAVCC_KEEP_CREDITS		BIT(30) + +#define IGC_MAX_SR_QUEUES		2  /* Receive Checksum Control */  #define IGC_RXCSUM_CRCOFL	0x00000800   /* CRC32 offload enable */  #define IGC_RXCSUM_PCSD		0x00002000   /* packet checksum disabled */ +/* PCIe PTM Control */ +#define IGC_PTM_CTRL_START_NOW	BIT(29) /* Start PTM Now */ +#define IGC_PTM_CTRL_EN		BIT(30) /* Enable PTM */ +#define IGC_PTM_CTRL_TRIG	BIT(31) /* PTM Cycle trigger */ +#define IGC_PTM_CTRL_SHRT_CYC(usec)	(((usec) & 0x2f) << 2) +#define IGC_PTM_CTRL_PTM_TO(usec)	(((usec) & 0xff) << 8) + +#define IGC_PTM_SHORT_CYC_DEFAULT	10  /* Default Short/interrupted cycle interval */ +#define IGC_PTM_CYC_TIME_DEFAULT	5   /* Default PTM cycle time */ +#define IGC_PTM_TIMEOUT_DEFAULT		255 /* Default timeout for PTM errors */ + +/* PCIe Digital Delay */ +#define IGC_PCIE_DIG_DELAY_DEFAULT	0x01440000 + +/* PCIe PHY Delay */ +#define IGC_PCIE_PHY_DELAY_DEFAULT	0x40900000 + +#define IGC_TIMADJ_ADJUST_METH		0x40000000 + +/* PCIe PTM Status */ +#define IGC_PTM_STAT_VALID		BIT(0) /* PTM Status */ +#define IGC_PTM_STAT_RET_ERR		BIT(1) /* Root port timeout */ +#define IGC_PTM_STAT_BAD_PTM_RES	BIT(2) /* PTM Response msg instead of PTM Response Data */ +#define IGC_PTM_STAT_T4M1_OVFL		BIT(3) /* T4 minus T1 overflow */ +#define IGC_PTM_STAT_ADJUST_1ST		BIT(4) /* 1588 timer adjusted during 1st PTM cycle */ +#define IGC_PTM_STAT_ADJUST_CYC		BIT(5) /* 1588 timer adjusted during non-1st PTM cycle */ + +/* PCIe PTM Cycle Control */ +#define IGC_PTM_CYCLE_CTRL_CYC_TIME(msec)	((msec) & 0x3ff) /* PTM Cycle Time (msec) */ +#define IGC_PTM_CYCLE_CTRL_AUTO_CYC_EN		BIT(31) /* PTM Cycle Control */ +  /* GPY211 - I225 defines */  #define GPY_MMD_MASK		0xFFFF0000  #define GPY_MMD_SHIFT		16 |