doc: adapt features tables header height
[dpdk.git] / lib / librte_eal / linuxapp / kni / ethtool / igb / e1000_hw.h
index 800a13b..ed43ef5 100644 (file)
@@ -1,23 +1,8 @@
+/* SPDX-License-Identifier: GPL-2.0 */
 /*******************************************************************************
 
   Intel(R) Gigabit Ethernet Linux driver
-  Copyright(c) 2007-2012 Intel Corporation.
-
-  This program is free software; you can redistribute it and/or modify it
-  under the terms and conditions of the GNU General Public License,
-  version 2, as published by the Free Software Foundation.
-
-  This program is distributed in the hope it will be useful, but WITHOUT
-  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
-  more details.
-
-  You should have received a copy of the GNU General Public License along with
-  this program; if not, write to the Free Software Foundation, Inc.,
-  51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
-
-  The full GNU General Public License is included in this distribution in
-  the file called "COPYING".
+  Copyright(c) 2007-2013 Intel Corporation.
 
   Contact Information:
   e1000-devel Mailing List <e1000-devel@lists.sourceforge.net>
@@ -56,10 +41,23 @@ struct e1000_hw;
 #define E1000_DEV_ID_I350_SERDES               0x1523
 #define E1000_DEV_ID_I350_SGMII                        0x1524
 #define E1000_DEV_ID_I350_DA4                  0x1546
+#define E1000_DEV_ID_I210_COPPER               0x1533
+#define E1000_DEV_ID_I210_COPPER_OEM1          0x1534
+#define E1000_DEV_ID_I210_COPPER_IT            0x1535
+#define E1000_DEV_ID_I210_FIBER                        0x1536
+#define E1000_DEV_ID_I210_SERDES               0x1537
+#define E1000_DEV_ID_I210_SGMII                        0x1538
+#define E1000_DEV_ID_I210_COPPER_FLASHLESS     0x157B
+#define E1000_DEV_ID_I210_SERDES_FLASHLESS     0x157C
+#define E1000_DEV_ID_I211_COPPER               0x1539
+#define E1000_DEV_ID_I354_BACKPLANE_1GBPS      0x1F40
+#define E1000_DEV_ID_I354_SGMII                        0x1F41
+#define E1000_DEV_ID_I354_BACKPLANE_2_5GBPS    0x1F45
 #define E1000_DEV_ID_DH89XXCC_SGMII            0x0438
 #define E1000_DEV_ID_DH89XXCC_SERDES           0x043A
 #define E1000_DEV_ID_DH89XXCC_BACKPLANE                0x043C
 #define E1000_DEV_ID_DH89XXCC_SFP              0x0440
+
 #define E1000_REVISION_0       0
 #define E1000_REVISION_1       1
 #define E1000_REVISION_2       2
@@ -82,6 +80,9 @@ enum e1000_mac_type {
        e1000_82576,
        e1000_82580,
        e1000_i350,
+       e1000_i354,
+       e1000_i210,
+       e1000_i211,
        e1000_num_macs  /* List is 1-based, so subtract 1 for true count. */
 };
 
@@ -98,6 +99,7 @@ enum e1000_nvm_type {
        e1000_nvm_none,
        e1000_nvm_eeprom_spi,
        e1000_nvm_flash_hw,
+       e1000_nvm_invm,
        e1000_nvm_flash_sw
 };
 
@@ -118,6 +120,7 @@ enum e1000_phy_type {
        e1000_phy_ife,
        e1000_phy_82580,
        e1000_phy_vf,
+       e1000_phy_i210,
 };
 
 enum e1000_bus_type {
@@ -236,6 +239,10 @@ union e1000_rx_desc_extended {
 };
 
 #define MAX_PS_BUFFERS 4
+
+/* Number of packet split data buffers (not including the header buffer) */
+#define PS_PAGE_BUFFERS        (MAX_PS_BUFFERS - 1)
+
 /* Receive Descriptor - Packet Split */
 union e1000_rx_desc_packet_split {
        struct {
@@ -260,7 +267,8 @@ union e1000_rx_desc_packet_split {
                } middle;
                struct {
                        __le16 header_status;
-                       __le16 length[3];     /* length of buffers 1-3 */
+                       /* length of buffers 1-3 */
+                       __le16 length[PS_PAGE_BUFFERS];
                } upper;
                __le64 reserved;
        } wb; /* writeback */
@@ -473,13 +481,13 @@ struct e1000_host_mng_command_info {
 #include "e1000_manage.h"
 #include "e1000_mbx.h"
 
+/* Function pointers for the MAC. */
 struct e1000_mac_operations {
-       /* Function pointers for the MAC. */
        s32  (*init_params)(struct e1000_hw *);
        s32  (*id_led_init)(struct e1000_hw *);
        s32  (*blink_led)(struct e1000_hw *);
+       bool (*check_mng_mode)(struct e1000_hw *);
        s32  (*check_for_link)(struct e1000_hw *);
-       bool (*check_mng_mode)(struct e1000_hw *hw);
        s32  (*cleanup_led)(struct e1000_hw *);
        void (*clear_hw_cntrs)(struct e1000_hw *);
        void (*clear_vfta)(struct e1000_hw *);
@@ -501,19 +509,13 @@ struct e1000_mac_operations {
        void (*rar_set)(struct e1000_hw *, u8*, u32);
        s32  (*read_mac_addr)(struct e1000_hw *);
        s32  (*validate_mdi_setting)(struct e1000_hw *);
-       s32  (*mng_host_if_write)(struct e1000_hw *, u8*, u16, u16, u8*);
-       s32  (*mng_write_cmd_header)(struct e1000_hw *hw,
-                                    struct e1000_host_mng_command_header*);
-       s32  (*mng_enable_host_if)(struct e1000_hw *);
-       s32  (*wait_autoneg)(struct e1000_hw *);
        s32 (*get_thermal_sensor_data)(struct e1000_hw *);
        s32 (*init_thermal_sensor_thresh)(struct e1000_hw *);
        s32  (*acquire_swfw_sync)(struct e1000_hw *, u16);
        void (*release_swfw_sync)(struct e1000_hw *, u16);
 };
 
-/*
- * When to use various PHY register access functions:
+/* When to use various PHY register access functions:
  *
  *                 Func   Caller
  *   Function      Does   Does    When to use
@@ -554,6 +556,7 @@ struct e1000_phy_operations {
        s32 (*write_i2c_byte)(struct e1000_hw *, u8, u8, u8);
 };
 
+/* Function pointers for the NVM. */
 struct e1000_nvm_operations {
        s32  (*init_params)(struct e1000_hw *);
        s32  (*acquire)(struct e1000_hw *);
@@ -725,7 +728,11 @@ struct e1000_dev_spec_82575 {
        bool global_device_reset;
        bool eee_disable;
        bool module_plugged;
+       bool clear_semaphore_once;
        u32 mtu;
+       struct sfp_e1000_flags eth_flags;
+       u8 media_port;
+       bool media_changed;
 };
 
 struct e1000_dev_spec_vf {
@@ -762,6 +769,7 @@ struct e1000_hw {
 };
 
 #include "e1000_82575.h"
+#include "e1000_i210.h"
 
 /* These functions must be implemented by drivers */
 s32  e1000_read_pcie_cap_reg(struct e1000_hw *hw, u32 reg, u16 *value);