New upstream version 18.02
[deb_dpdk.git] / drivers / net / ixgbe / base / ixgbe_type.h
index bda8558..6e03089 100644 (file)
@@ -123,9 +123,11 @@ POSSIBILITY OF SUCH DAMAGE.
 #define IXGBE_DEV_ID_82599_VF                  0x10ED
 #define IXGBE_DEV_ID_82599_VF_HV               0x152E
 #define IXGBE_DEV_ID_82599_LS                  0x154F
+#define IXGBE_DEV_ID_82599_BYPASS              0x155D
 #define IXGBE_DEV_ID_X540T                     0x1528
 #define IXGBE_DEV_ID_X540_VF                   0x1515
 #define IXGBE_DEV_ID_X540_VF_HV                        0x1530
+#define IXGBE_DEV_ID_X540_BYPASS               0x155C
 #define IXGBE_DEV_ID_X540T1                    0x1560
 #define IXGBE_DEV_ID_X550T                     0x1563
 #define IXGBE_DEV_ID_X550T1                    0x15D1
@@ -271,7 +273,6 @@ POSSIBILITY OF SUCH DAMAGE.
 #define IXGBE_I2C_BB_EN_X550           0x00000100
 #define IXGBE_I2C_BB_EN_X550EM_x       IXGBE_I2C_BB_EN_X550
 #define IXGBE_I2C_BB_EN_X550EM_a       IXGBE_I2C_BB_EN_X550
-
 #define IXGBE_I2C_BB_EN_BY_MAC(_hw)    IXGBE_BY_MAC((_hw), I2C_BB_EN)
 
 #define IXGBE_I2C_CLK_OE_N_EN          0
@@ -303,6 +304,47 @@ struct ixgbe_thermal_sensor_data {
        struct ixgbe_thermal_diode_data sensor[IXGBE_MAX_SENSORS];
 };
 
+
+#define NVM_OROM_OFFSET                0x17
+#define NVM_OROM_BLK_LOW       0x83
+#define NVM_OROM_BLK_HI                0x84
+#define NVM_OROM_PATCH_MASK    0xFF
+#define NVM_OROM_SHIFT         8
+
+#define NVM_VER_MASK           0x00FF /* version mask */
+#define NVM_VER_SHIFT          8     /* version bit shift */
+#define NVM_OEM_PROD_VER_PTR   0x1B  /* OEM Product version block pointer */
+#define NVM_OEM_PROD_VER_CAP_OFF 0x1  /* OEM Product version format offset */
+#define NVM_OEM_PROD_VER_OFF_L 0x2   /* OEM Product version offset low */
+#define NVM_OEM_PROD_VER_OFF_H 0x3   /* OEM Product version offset high */
+#define NVM_OEM_PROD_VER_CAP_MASK 0xF /* OEM Product version cap mask */
+#define NVM_OEM_PROD_VER_MOD_LEN 0x3  /* OEM Product version module length */
+#define NVM_ETK_OFF_LOW                0x2D  /* version low order word */
+#define NVM_ETK_OFF_HI         0x2E  /* version high order word */
+#define NVM_ETK_SHIFT          16    /* high version word shift */
+#define NVM_VER_INVALID                0xFFFF
+#define NVM_ETK_VALID          0x8000
+#define NVM_INVALID_PTR                0xFFFF
+#define NVM_VER_SIZE           32    /* version sting size */
+
+struct ixgbe_nvm_version {
+       u32 etk_id;
+       u8  nvm_major;
+       u16 nvm_minor;
+       u8  nvm_id;
+
+       bool oem_valid;
+       u8   oem_major;
+       u8   oem_minor;
+       u16  oem_release;
+
+       bool or_valid;
+       u8  or_major;
+       u16 or_build;
+       u8  or_patch;
+
+};
+
 /* Interrupt Registers */
 #define IXGBE_EICR             0x00800
 #define IXGBE_EICS             0x00808
@@ -570,7 +612,6 @@ struct ixgbe_thermal_sensor_data {
 #define IXGBE_VXLANCTRL_VXLAN_UDPPORT_MASK     0x0000ffff /* VXLAN port */
 #define IXGBE_VXLANCTRL_GENEVE_UDPPORT_MASK    0xffff0000 /* GENEVE port */
 #define IXGBE_VXLANCTRL_ALL_UDPPORT_MASK       0xffffffff /* GENEVE/VXLAN */
-
 #define IXGBE_VXLANCTRL_GENEVE_UDPPORT_SHIFT   16
 
 #define IXGBE_FHFT(_n) (0x09000 + ((_n) * 0x100)) /* Flex host filter table */
@@ -580,7 +621,6 @@ struct ixgbe_thermal_sensor_data {
 
 /* Four Flexible Filters are supported */
 #define IXGBE_FLEXIBLE_FILTER_COUNT_MAX                4
-
 /* Six Flexible Filters are supported */
 #define IXGBE_FLEXIBLE_FILTER_COUNT_MAX_6      6
 /* Eight Flexible Filters are supported */
@@ -728,8 +768,6 @@ struct ixgbe_dmac_config {
 #define IXGBE_EEE_RX_LPI_STATUS                0x40000000 /* RX Link in LPI status */
 #define IXGBE_EEE_TX_LPI_STATUS                0x80000000 /* TX Link in LPI status */
 
-
-
 /* Security Control Registers */
 #define IXGBE_SECTXCTRL                0x08800
 #define IXGBE_SECTXSTAT                0x08804
@@ -867,7 +905,6 @@ struct ixgbe_dmac_config {
 #define IXGBE_RTTBCNRTT        0x05150
 #define IXGBE_RTTBCNRD 0x0498C
 
-
 /* FCoE DMA Context Registers */
 /* FCoE Direct DMA Context */
 #define IXGBE_FCDDC(_i, _j)    (0x20000 + ((_i) * 0x4) + ((_j) * 0x10))
@@ -2422,6 +2459,16 @@ enum {
 #define IXGBE_FW_LESM_PARAMETERS_PTR           0x2
 #define IXGBE_FW_LESM_STATE_1                  0x1
 #define IXGBE_FW_LESM_STATE_ENABLED            0x8000 /* LESM Enable bit */
+#define IXGBE_FW_LESM_2_STATES_ENABLED_MASK    0x1F
+#define IXGBE_FW_LESM_2_STATES_ENABLED         0x12
+#define IXGBE_FW_LESM_STATE0_10G_ENABLED       0x6FFF
+#define IXGBE_FW_LESM_STATE1_10G_ENABLED       0x4FFF
+#define IXGBE_FW_LESM_STATE0_10G_DISABLED      0x0FFF
+#define IXGBE_FW_LESM_STATE1_10G_DISABLED      0x2FFF
+#define IXGBE_FW_LESM_PORT0_STATE0_OFFSET      0x2
+#define IXGBE_FW_LESM_PORT0_STATE1_OFFSET      0x3
+#define IXGBE_FW_LESM_PORT1_STATE0_OFFSET      0x6
+#define IXGBE_FW_LESM_PORT1_STATE1_OFFSET      0x7
 #define IXGBE_FW_PASSTHROUGH_PATCH_CONFIG_PTR  0x4
 #define IXGBE_FW_PATCH_VERSION_4               0x7
 #define IXGBE_FCOE_IBA_CAPS_BLK_PTR            0x33 /* iSCSI/FCOE block */
@@ -3708,6 +3755,7 @@ enum ixgbe_sfp_type {
 enum ixgbe_media_type {
        ixgbe_media_type_unknown = 0,
        ixgbe_media_type_fiber,
+       ixgbe_media_type_fiber_fixed,
        ixgbe_media_type_fiber_qsfp,
        ixgbe_media_type_fiber_lco,
        ixgbe_media_type_copper,
@@ -4222,7 +4270,6 @@ struct ixgbe_hw {
 
 #define IXGBE_NOT_IMPLEMENTED                  0x7FFFFFFF
 
-
 #define IXGBE_FUSES0_GROUP(_i)         (0x11158 + ((_i) * 4))
 #define IXGBE_FUSES0_300MHZ            (1 << 5)
 #define IXGBE_FUSES0_REV_MASK          (3 << 6)