I225 expands wakeup and proxy capabilities compared to previous
generations. The new capabilities are exposed via additional registers.

Signed-off-by: Dima Ruinskiy <dima.ruins...@intel.com>
Signed-off-by: Guinan Sun <guinanx....@intel.com>
---
 drivers/net/e1000/base/e1000_defines.h | 18 +++++++++++++++++-
 drivers/net/e1000/base/e1000_regs.h    | 11 +++++++++++
 2 files changed, 28 insertions(+), 1 deletion(-)

diff --git a/drivers/net/e1000/base/e1000_defines.h 
b/drivers/net/e1000/base/e1000_defines.h
index d9ed3a52f..141cdcc60 100644
--- a/drivers/net/e1000/base/e1000_defines.h
+++ b/drivers/net/e1000/base/e1000_defines.h
@@ -1515,8 +1515,23 @@
 #define E1000_INVM_DEFAULT_AL          0x202F
 #define E1000_INVM_AUTOLOAD            0x0A
 #define E1000_INVM_PLL_WO_VAL          0x0010
-
 #endif /* NO_I225_SUPPORT */
+/* Proxy Filter Control Extended */
+#define E1000_PROXYFCEX_MDNS           0x00000001 /* mDNS */
+#define E1000_PROXYFCEX_MDNS_M         0x00000002 /* mDNS Multicast */
+#define E1000_PROXYFCEX_MDNS_U         0x00000004 /* mDNS Unicast */
+#define E1000_PROXYFCEX_IPV4_M         0x00000008 /* IPv4 Multicast */
+#define E1000_PROXYFCEX_IPV6_M         0x00000010 /* IPv6 Multicast */
+#define E1000_PROXYFCEX_IGMP           0x00000020 /* IGMP */
+#define E1000_PROXYFCEX_IGMP_M         0x00000040 /* IGMP Multicast */
+#define E1000_PROXYFCEX_ARPRES         0x00000080 /* ARP Response */
+#define E1000_PROXYFCEX_ARPRES_D       0x00000100 /* ARP Response Directed */
+#define E1000_PROXYFCEX_ICMPV4         0x00000200 /* ICMPv4 */
+#define E1000_PROXYFCEX_ICMPV4_D       0x00000400 /* ICMPv4 Directed */
+#define E1000_PROXYFCEX_ICMPV6         0x00000800 /* ICMPv6 */
+#define E1000_PROXYFCEX_ICMPV6_D       0x00001000 /* ICMPv6 Directed */
+#define E1000_PROXYFCEX_DNS                    0x00002000 /* DNS */
+
 /* Proxy Filter Control */
 #define E1000_PROXYFC_D0               0x00000001 /* Enable offload in D0 */
 #define E1000_PROXYFC_EX               0x00000004 /* Directed exact proxy */
@@ -1526,6 +1541,7 @@
 #define E1000_PROXYFC_IPV4             0x00000040 /* Directed IPv4 Enable */
 #define E1000_PROXYFC_IPV6             0x00000080 /* Directed IPv6 Enable */
 #define E1000_PROXYFC_NS               0x00000200 /* IPv6 Neighbor 
Solicitation */
+#define E1000_PROXYFC_NS_DIRECTED      0x00000400 /* Directed NS Proxy Ena */
 #define E1000_PROXYFC_ARP              0x00000800 /* ARP Request Proxy Ena */
 /* Proxy Status */
 #define E1000_PROXYS_CLEAR             0xFFFFFFFF /* Clear */
diff --git a/drivers/net/e1000/base/e1000_regs.h 
b/drivers/net/e1000/base/e1000_regs.h
index 1f8736f35..ef131af18 100644
--- a/drivers/net/e1000/base/e1000_regs.h
+++ b/drivers/net/e1000/base/e1000_regs.h
@@ -476,6 +476,17 @@
 #define E1000_IP6AT    0x05880  /* IPv6 Address Table - RW Array */
 #define E1000_WUPL     0x05900  /* Wakeup Packet Length - RW */
 #define E1000_WUPM     0x05A00  /* Wakeup Packet Memory - RO A */
+#define E1000_WUPM_EXT 0x0B800  /* Wakeup Packet Memory Extended - RO Array */
+#define E1000_WUFC_EXT 0x0580C  /* Wakeup Filter Control Extended - RW */
+#define E1000_WUS_EXT  0x05814  /* Wakeup Status Extended - RW1C */
+#define E1000_FHFTSL   0x05804  /* Flex Filter Indirect Table Select - RW */
+#define E1000_PROXYFCEX        0x05590  /* Proxy Filter Control Extended - 
RW1C */
+#define E1000_PROXYEXS 0x05594  /* Proxy Extended Status - RO */
+#define E1000_WFUTPF   0x05500  /* Wake Flex UDP TCP Port Filter - RW Array */
+#define E1000_RFUTPF   0x05580  /* Range Flex UDP TCP Port Filter - RW */
+#define E1000_RWPFC    0x05584  /* Range Wake Port Filter Control - RW */
+#define E1000_WFUTPS   0x05588  /* Wake Filter UDP TCP Status - RW1C */
+#define E1000_WCS      0x0558C  /* Wake Control Status - RW1C */
 #define E1000_PBACL    0x05B68  /* MSIx PBA Clear - Read/Write 1's to clear */
 #define E1000_FFLT     0x05F00  /* Flexible Filter Length Table - RW Array */
 #define E1000_HOST_IF  0x08800  /* Host Interface */
-- 
2.17.1

Reply via email to