em(4)/emx(4): Update to Intel's 7.1.7
[dragonfly.git] / sys / dev / netif / emx / if_emx.h
index d7471f3..af52c83 100644 (file)
@@ -88,8 +88,8 @@
  */
 #define EMX_TX_TIMEOUT                 5
 
-/* One for TX csum offloading desc, the other is reserved */
-#define EMX_TX_RESERVED                        2
+/* One for TX csum offloading desc, the other 2 are reserved */
+#define EMX_TX_RESERVED                        3
 
 /* Large enough for 16K jumbo frame */
 #define EMX_TX_SPARE                   8
 #define EMX_RETA_RINGIDX_SHIFT         7
 
 #define EMX_NRX_RING                   2
+#define EMX_NSERIALIZE                 4
 
 typedef union e1000_rx_desc_extended   emx_rxdesc_t;
 
@@ -190,7 +191,16 @@ typedef union e1000_rx_desc_extended       emx_rxdesc_t;
 #define rxd_mrq                wb.lower.mrq            /* 32bits */
 #define rxd_rss                wb.lower.hi_dword.rss   /* 32bits */
 
+#define EMX_RXDMRQ_RSSTYPE_MASK        0xf
+#define EMX_RXDMRQ_NO_HASH     0
+#define EMX_RXDMRQ_IPV4_TCP    1
+#define EMX_RXDMRQ_IPV4                2
+#define EMX_RXDMRQ_IPV6_TCP    3
+#define EMX_RXDMRQ_IPV6                5
+
 struct emx_rxdata {
+       struct lwkt_serialize   rx_serialize;
+
        /*
         * Receive definitions
         *
@@ -220,7 +230,7 @@ struct emx_rxdata {
        bus_dma_tag_t           rx_desc_dtag;
        bus_dmamap_t            rx_desc_dmap;
        bus_addr_t              rx_desc_paddr;
-};
+} __cachealign;
 
 struct emx_softc {
        struct arpcom           arpcom;
@@ -252,6 +262,11 @@ struct emx_softc {
        /* Management and WOL features */
        int                     wol;
        int                     has_manage;
+       int                     has_amt;
+       int                     control_hw;
+
+       /* Multicast array memory */
+       uint8_t                 *mta;
 
        /* Info about the board itself */
        uint8_t                 link_active;
@@ -260,6 +275,10 @@ struct emx_softc {
        uint32_t                smartspeed;
        int                     int_throttle_ceil;
 
+       struct lwkt_serialize   main_serialize;
+       struct lwkt_serialize   tx_serialize;
+       struct lwkt_serialize   *serializes[EMX_NSERIALIZE];
+
        /*
         * Transmit definitions
         *