net/ice/base: add IP fragment flags
[dpdk.git] / drivers / net / ice / base / ice_adminq_cmd.h
index 17fd418..6b662b3 100644 (file)
@@ -1,5 +1,5 @@
 /* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2001-2020 Intel Corporation
+ * Copyright(c) 2001-2021 Intel Corporation
  */
 
 #ifndef _ICE_ADMINQ_CMD_H_
@@ -111,6 +111,7 @@ struct ice_aqc_list_caps_elem {
 #define ICE_AQC_CAPS_MAX_MTU                           0x0047
 #define ICE_AQC_CAPS_IWARP                             0x0051
 #define ICE_AQC_CAPS_PCIE_RESET_AVOIDANCE              0x0076
+#define ICE_AQC_CAPS_POST_UPDATE_RESET_RESTRICT                0x0077
 #define ICE_AQC_CAPS_NVM_MGMT                          0x0080
 
        u8 major_ver;
@@ -227,6 +228,27 @@ struct ice_aqc_get_sw_cfg_resp_elem {
 #define ICE_AQC_GET_SW_CONF_RESP_IS_VF         BIT(15)
 };
 
+/* Set Port parameters, (direct, 0x0203) */
+struct ice_aqc_set_port_params {
+       __le16 cmd_flags;
+#define ICE_AQC_SET_P_PARAMS_SAVE_BAD_PACKETS  BIT(0)
+#define ICE_AQC_SET_P_PARAMS_PAD_SHORT_PACKETS BIT(1)
+#define ICE_AQC_SET_P_PARAMS_DOUBLE_VLAN_ENA   BIT(2)
+       __le16 bad_frame_vsi;
+#define ICE_AQC_SET_P_PARAMS_VSI_S     0
+#define ICE_AQC_SET_P_PARAMS_VSI_M     (0x3FF << ICE_AQC_SET_P_PARAMS_VSI_S)
+#define ICE_AQC_SET_P_PARAMS_VSI_VALID BIT(15)
+       __le16 swid;
+#define ICE_AQC_SET_P_PARAMS_SWID_S    0
+#define ICE_AQC_SET_P_PARAMS_SWID_M    (0xFF << ICE_AQC_SET_P_PARAMS_SWID_S)
+#define ICE_AQC_SET_P_PARAMS_LOGI_PORT_ID_S    8
+#define ICE_AQC_SET_P_PARAMS_LOGI_PORT_ID_M    \
+                               (0x3F << ICE_AQC_SET_P_PARAMS_LOGI_PORT_ID_S)
+#define ICE_AQC_SET_P_PARAMS_IS_LOGI_PORT      BIT(14)
+#define ICE_AQC_SET_P_PARAMS_SWID_VALID                BIT(15)
+       u8 reserved[10];
+};
+
 /* These resource type defines are used for all switch resource
  * commands where a resource type is required, such as:
  * Get Resource Allocation command (indirect 0x0204)
@@ -337,6 +359,40 @@ struct ice_aqc_get_allocd_res_desc {
        __le32 addr_low;
 };
 
+/* Request buffer for Set VLAN Mode AQ command (indirect 0x020C) */
+struct ice_aqc_set_vlan_mode {
+       u8 reserved;
+       u8 l2tag_prio_tagging;
+#define ICE_AQ_VLAN_PRIO_TAG_S                 0
+#define ICE_AQ_VLAN_PRIO_TAG_M                 (0x7 << ICE_AQ_VLAN_PRIO_TAG_S)
+#define ICE_AQ_VLAN_PRIO_TAG_NOT_SUPPORTED     0x0
+#define ICE_AQ_VLAN_PRIO_TAG_STAG              0x1
+#define ICE_AQ_VLAN_PRIO_TAG_OUTER_CTAG                0x2
+#define ICE_AQ_VLAN_PRIO_TAG_OUTER_VLAN                0x3
+#define ICE_AQ_VLAN_PRIO_TAG_INNER_CTAG                0x4
+#define ICE_AQ_VLAN_PRIO_TAG_MAX               0x4
+#define ICE_AQ_VLAN_PRIO_TAG_ERROR             0x7
+       u8 l2tag_reserved[64];
+       u8 rdma_packet;
+#define ICE_AQ_VLAN_RDMA_TAG_S                 0
+#define ICE_AQ_VLAN_RDMA_TAG_M                 (0x3F << ICE_AQ_VLAN_RDMA_TAG_S)
+#define ICE_AQ_SVM_VLAN_RDMA_PKT_FLAG_SETTING  0x10
+#define ICE_AQ_DVM_VLAN_RDMA_PKT_FLAG_SETTING  0x1A
+       u8 rdma_reserved[2];
+       u8 mng_vlan_prot_id;
+#define ICE_AQ_VLAN_MNG_PROTOCOL_ID_OUTER      0x10
+#define ICE_AQ_VLAN_MNG_PROTOCOL_ID_INNER      0x11
+       u8 prot_id_reserved[30];
+};
+
+/* Response buffer for Get VLAN Mode AQ command (indirect 0x020D) */
+struct ice_aqc_get_vlan_mode {
+       u8 vlan_mode;
+#define ICE_AQ_VLAN_MODE_DVM_ENA       BIT(0)
+       u8 l2tag_prio_tagging;
+       u8 reserved[98];
+};
+
 /* Add VSI (indirect 0x0210)
  * Update VSI (indirect 0x0211)
  * Get VSI (indirect 0x0212)
@@ -411,144 +467,151 @@ struct ice_aqc_vsi_props {
 #define ICE_AQ_VSI_SW_FLAG_SRC_PRUNE           BIT(7)
        u8 sw_flags2;
 #define ICE_AQ_VSI_SW_FLAG_RX_PRUNE_EN_S       0
-#define ICE_AQ_VSI_SW_FLAG_RX_PRUNE_EN_M       \
-                               (0xF << ICE_AQ_VSI_SW_FLAG_RX_PRUNE_EN_S)
+#define ICE_AQ_VSI_SW_FLAG_RX_PRUNE_EN_M       (0xF << ICE_AQ_VSI_SW_FLAG_RX_PRUNE_EN_S)
 #define ICE_AQ_VSI_SW_FLAG_RX_VLAN_PRUNE_ENA   BIT(0)
 #define ICE_AQ_VSI_SW_FLAG_LAN_ENA             BIT(4)
        u8 veb_stat_id;
 #define ICE_AQ_VSI_SW_VEB_STAT_ID_S            0
-#define ICE_AQ_VSI_SW_VEB_STAT_ID_M    (0x1F << ICE_AQ_VSI_SW_VEB_STAT_ID_S)
+#define ICE_AQ_VSI_SW_VEB_STAT_ID_M            (0x1F << ICE_AQ_VSI_SW_VEB_STAT_ID_S)
 #define ICE_AQ_VSI_SW_VEB_STAT_ID_VALID                BIT(5)
        /* security section */
        u8 sec_flags;
 #define ICE_AQ_VSI_SEC_FLAG_ALLOW_DEST_OVRD    BIT(0)
 #define ICE_AQ_VSI_SEC_FLAG_ENA_MAC_ANTI_SPOOF BIT(2)
-#define ICE_AQ_VSI_SEC_TX_PRUNE_ENA_S  4
-#define ICE_AQ_VSI_SEC_TX_PRUNE_ENA_M  (0xF << ICE_AQ_VSI_SEC_TX_PRUNE_ENA_S)
+#define ICE_AQ_VSI_SEC_TX_PRUNE_ENA_S          4
+#define ICE_AQ_VSI_SEC_TX_PRUNE_ENA_M          (0xF << ICE_AQ_VSI_SEC_TX_PRUNE_ENA_S)
 #define ICE_AQ_VSI_SEC_TX_VLAN_PRUNE_ENA       BIT(0)
        u8 sec_reserved;
        /* VLAN section */
-       __le16 pvid; /* VLANS include priority bits */
-       u8 pvlan_reserved[2];
-       u8 vlan_flags;
-#define ICE_AQ_VSI_VLAN_MODE_S 0
-#define ICE_AQ_VSI_VLAN_MODE_M (0x3 << ICE_AQ_VSI_VLAN_MODE_S)
-#define ICE_AQ_VSI_VLAN_MODE_UNTAGGED  0x1
-#define ICE_AQ_VSI_VLAN_MODE_TAGGED    0x2
-#define ICE_AQ_VSI_VLAN_MODE_ALL       0x3
-#define ICE_AQ_VSI_PVLAN_INSERT_PVID   BIT(2)
-#define ICE_AQ_VSI_VLAN_EMOD_S         3
-#define ICE_AQ_VSI_VLAN_EMOD_M         (0x3 << ICE_AQ_VSI_VLAN_EMOD_S)
-#define ICE_AQ_VSI_VLAN_EMOD_STR_BOTH  (0x0 << ICE_AQ_VSI_VLAN_EMOD_S)
-#define ICE_AQ_VSI_VLAN_EMOD_STR_UP    (0x1 << ICE_AQ_VSI_VLAN_EMOD_S)
-#define ICE_AQ_VSI_VLAN_EMOD_STR       (0x2 << ICE_AQ_VSI_VLAN_EMOD_S)
-#define ICE_AQ_VSI_VLAN_EMOD_NOTHING   (0x3 << ICE_AQ_VSI_VLAN_EMOD_S)
-       u8 pvlan_reserved2[3];
+       __le16 port_based_inner_vlan; /* VLANS include priority bits */
+       u8 inner_vlan_reserved[2];
+       u8 inner_vlan_flags;
+#define ICE_AQ_VSI_INNER_VLAN_TX_MODE_S                0
+#define ICE_AQ_VSI_INNER_VLAN_TX_MODE_M                (0x3 << ICE_AQ_VSI_INNER_VLAN_TX_MODE_S)
+#define ICE_AQ_VSI_INNER_VLAN_TX_MODE_ACCEPTUNTAGGED   0x1
+#define ICE_AQ_VSI_INNER_VLAN_TX_MODE_ACCEPTTAGGED     0x2
+#define ICE_AQ_VSI_INNER_VLAN_TX_MODE_ALL      0x3
+#define ICE_AQ_VSI_INNER_VLAN_INSERT_PVID      BIT(2)
+#define ICE_AQ_VSI_INNER_VLAN_EMODE_S          3
+#define ICE_AQ_VSI_INNER_VLAN_EMODE_M          (0x3 << ICE_AQ_VSI_INNER_VLAN_EMODE_S)
+#define ICE_AQ_VSI_INNER_VLAN_EMODE_STR_BOTH   (0x0 << ICE_AQ_VSI_INNER_VLAN_EMODE_S)
+#define ICE_AQ_VSI_INNER_VLAN_EMODE_STR_UP     (0x1 << ICE_AQ_VSI_INNER_VLAN_EMODE_S)
+#define ICE_AQ_VSI_INNER_VLAN_EMODE_STR                (0x2 << ICE_AQ_VSI_INNER_VLAN_EMODE_S)
+#define ICE_AQ_VSI_INNER_VLAN_EMODE_NOTHING    (0x3 << ICE_AQ_VSI_INNER_VLAN_EMODE_S)
+#define ICE_AQ_VSI_INNER_VLAN_BLOCK_TX_DESC    BIT(5)
+       u8 inner_vlan_reserved2[3];
        /* ingress egress up sections */
        __le32 ingress_table; /* bitmap, 3 bits per up */
-#define ICE_AQ_VSI_UP_TABLE_UP0_S      0
-#define ICE_AQ_VSI_UP_TABLE_UP0_M      (0x7 << ICE_AQ_VSI_UP_TABLE_UP0_S)
-#define ICE_AQ_VSI_UP_TABLE_UP1_S      3
-#define ICE_AQ_VSI_UP_TABLE_UP1_M      (0x7 << ICE_AQ_VSI_UP_TABLE_UP1_S)
-#define ICE_AQ_VSI_UP_TABLE_UP2_S      6
-#define ICE_AQ_VSI_UP_TABLE_UP2_M      (0x7 << ICE_AQ_VSI_UP_TABLE_UP2_S)
-#define ICE_AQ_VSI_UP_TABLE_UP3_S      9
-#define ICE_AQ_VSI_UP_TABLE_UP3_M      (0x7 << ICE_AQ_VSI_UP_TABLE_UP3_S)
-#define ICE_AQ_VSI_UP_TABLE_UP4_S      12
-#define ICE_AQ_VSI_UP_TABLE_UP4_M      (0x7 << ICE_AQ_VSI_UP_TABLE_UP4_S)
-#define ICE_AQ_VSI_UP_TABLE_UP5_S      15
-#define ICE_AQ_VSI_UP_TABLE_UP5_M      (0x7 << ICE_AQ_VSI_UP_TABLE_UP5_S)
-#define ICE_AQ_VSI_UP_TABLE_UP6_S      18
-#define ICE_AQ_VSI_UP_TABLE_UP6_M      (0x7 << ICE_AQ_VSI_UP_TABLE_UP6_S)
-#define ICE_AQ_VSI_UP_TABLE_UP7_S      21
-#define ICE_AQ_VSI_UP_TABLE_UP7_M      (0x7 << ICE_AQ_VSI_UP_TABLE_UP7_S)
+#define ICE_AQ_VSI_UP_TABLE_UP0_S              0
+#define ICE_AQ_VSI_UP_TABLE_UP0_M              (0x7 << ICE_AQ_VSI_UP_TABLE_UP0_S)
+#define ICE_AQ_VSI_UP_TABLE_UP1_S              3
+#define ICE_AQ_VSI_UP_TABLE_UP1_M              (0x7 << ICE_AQ_VSI_UP_TABLE_UP1_S)
+#define ICE_AQ_VSI_UP_TABLE_UP2_S              6
+#define ICE_AQ_VSI_UP_TABLE_UP2_M              (0x7 << ICE_AQ_VSI_UP_TABLE_UP2_S)
+#define ICE_AQ_VSI_UP_TABLE_UP3_S              9
+#define ICE_AQ_VSI_UP_TABLE_UP3_M              (0x7 << ICE_AQ_VSI_UP_TABLE_UP3_S)
+#define ICE_AQ_VSI_UP_TABLE_UP4_S              12
+#define ICE_AQ_VSI_UP_TABLE_UP4_M              (0x7 << ICE_AQ_VSI_UP_TABLE_UP4_S)
+#define ICE_AQ_VSI_UP_TABLE_UP5_S              15
+#define ICE_AQ_VSI_UP_TABLE_UP5_M              (0x7 << ICE_AQ_VSI_UP_TABLE_UP5_S)
+#define ICE_AQ_VSI_UP_TABLE_UP6_S              18
+#define ICE_AQ_VSI_UP_TABLE_UP6_M              (0x7 << ICE_AQ_VSI_UP_TABLE_UP6_S)
+#define ICE_AQ_VSI_UP_TABLE_UP7_S              21
+#define ICE_AQ_VSI_UP_TABLE_UP7_M              (0x7 << ICE_AQ_VSI_UP_TABLE_UP7_S)
        __le32 egress_table;   /* same defines as for ingress table */
        /* outer tags section */
-       __le16 outer_tag;
-       u8 outer_tag_flags;
-#define ICE_AQ_VSI_OUTER_TAG_MODE_S    0
-#define ICE_AQ_VSI_OUTER_TAG_MODE_M    (0x3 << ICE_AQ_VSI_OUTER_TAG_MODE_S)
-#define ICE_AQ_VSI_OUTER_TAG_NOTHING   0x0
-#define ICE_AQ_VSI_OUTER_TAG_REMOVE    0x1
-#define ICE_AQ_VSI_OUTER_TAG_COPY      0x2
-#define ICE_AQ_VSI_OUTER_TAG_TYPE_S    2
-#define ICE_AQ_VSI_OUTER_TAG_TYPE_M    (0x3 << ICE_AQ_VSI_OUTER_TAG_TYPE_S)
-#define ICE_AQ_VSI_OUTER_TAG_NONE      0x0
-#define ICE_AQ_VSI_OUTER_TAG_STAG      0x1
-#define ICE_AQ_VSI_OUTER_TAG_VLAN_8100 0x2
-#define ICE_AQ_VSI_OUTER_TAG_VLAN_9100 0x3
-#define ICE_AQ_VSI_OUTER_TAG_INSERT    BIT(4)
-#define ICE_AQ_VSI_OUTER_TAG_ACCEPT_HOST BIT(6)
-       u8 outer_tag_reserved;
+       __le16 port_based_outer_vlan;
+       u8 outer_vlan_flags;
+#define ICE_AQ_VSI_OUTER_VLAN_EMODE_S          0
+#define ICE_AQ_VSI_OUTER_VLAN_EMODE_M          (0x3 << ICE_AQ_VSI_OUTER_VLAN_EMODE_S)
+#define ICE_AQ_VSI_OUTER_VLAN_EMODE_SHOW_BOTH  0x0
+#define ICE_AQ_VSI_OUTER_VLAN_EMODE_SHOW_UP    0x1
+#define ICE_AQ_VSI_OUTER_VLAN_EMODE_SHOW       0x2
+#define ICE_AQ_VSI_OUTER_VLAN_EMODE_NOTHING    0x3
+#define ICE_AQ_VSI_OUTER_TAG_TYPE_S            2
+#define ICE_AQ_VSI_OUTER_TAG_TYPE_M            (0x3 << ICE_AQ_VSI_OUTER_TAG_TYPE_S)
+#define ICE_AQ_VSI_OUTER_TAG_NONE              0x0
+#define ICE_AQ_VSI_OUTER_TAG_STAG              0x1
+#define ICE_AQ_VSI_OUTER_TAG_VLAN_8100         0x2
+#define ICE_AQ_VSI_OUTER_TAG_VLAN_9100         0x3
+#define ICE_AQ_VSI_OUTER_VLAN_PORT_BASED_INSERT                BIT(4)
+#define ICE_AQ_VSI_OUTER_VLAN_PORT_BASED_ACCEPT_HOST   BIT(6)
+#define ICE_AQ_VSI_OUTER_VLAN_TX_MODE_S                        5
+#define ICE_AQ_VSI_OUTER_VLAN_TX_MODE_M                        (0x3 << ICE_AQ_VSI_OUTER_VLAN_TX_MODE_S)
+#define ICE_AQ_VSI_OUTER_VLAN_TX_MODE_ACCEPTUNTAGGED   0x1
+#define ICE_AQ_VSI_OUTER_VLAN_TX_MODE_ACCEPTTAGGED     0x2
+#define ICE_AQ_VSI_OUTER_VLAN_TX_MODE_ALL              0x3
+#define ICE_AQ_VSI_OUTER_VLAN_BLOCK_TX_DESC            BIT(7)
+       u8 outer_vlan_reserved;
        /* queue mapping section */
        __le16 mapping_flags;
-#define ICE_AQ_VSI_Q_MAP_CONTIG        0x0
-#define ICE_AQ_VSI_Q_MAP_NONCONTIG     BIT(0)
+#define ICE_AQ_VSI_Q_MAP_CONTIG                        0x0
+#define ICE_AQ_VSI_Q_MAP_NONCONTIG             BIT(0)
        __le16 q_mapping[16];
-#define ICE_AQ_VSI_Q_S         0
-#define ICE_AQ_VSI_Q_M         (0x7FF << ICE_AQ_VSI_Q_S)
+#define ICE_AQ_VSI_Q_S                         0
+#define ICE_AQ_VSI_Q_M                         (0x7FF << ICE_AQ_VSI_Q_S)
        __le16 tc_mapping[8];
-#define ICE_AQ_VSI_TC_Q_OFFSET_S       0
-#define ICE_AQ_VSI_TC_Q_OFFSET_M       (0x7FF << ICE_AQ_VSI_TC_Q_OFFSET_S)
-#define ICE_AQ_VSI_TC_Q_NUM_S          11
-#define ICE_AQ_VSI_TC_Q_NUM_M          (0xF << ICE_AQ_VSI_TC_Q_NUM_S)
+#define ICE_AQ_VSI_TC_Q_OFFSET_S               0
+#define ICE_AQ_VSI_TC_Q_OFFSET_M               (0x7FF << ICE_AQ_VSI_TC_Q_OFFSET_S)
+#define ICE_AQ_VSI_TC_Q_NUM_S                  11
+#define ICE_AQ_VSI_TC_Q_NUM_M                  (0xF << ICE_AQ_VSI_TC_Q_NUM_S)
        /* queueing option section */
        u8 q_opt_rss;
-#define ICE_AQ_VSI_Q_OPT_RSS_LUT_S     0
-#define ICE_AQ_VSI_Q_OPT_RSS_LUT_M     (0x3 << ICE_AQ_VSI_Q_OPT_RSS_LUT_S)
-#define ICE_AQ_VSI_Q_OPT_RSS_LUT_VSI   0x0
-#define ICE_AQ_VSI_Q_OPT_RSS_LUT_PF    0x2
-#define ICE_AQ_VSI_Q_OPT_RSS_LUT_GBL   0x3
-#define ICE_AQ_VSI_Q_OPT_RSS_GBL_LUT_S 2
-#define ICE_AQ_VSI_Q_OPT_RSS_GBL_LUT_M (0xF << ICE_AQ_VSI_Q_OPT_RSS_GBL_LUT_S)
-#define ICE_AQ_VSI_Q_OPT_RSS_HASH_S    6
-#define ICE_AQ_VSI_Q_OPT_RSS_HASH_M    (0x3 << ICE_AQ_VSI_Q_OPT_RSS_HASH_S)
-#define ICE_AQ_VSI_Q_OPT_RSS_TPLZ      (0x0 << ICE_AQ_VSI_Q_OPT_RSS_HASH_S)
-#define ICE_AQ_VSI_Q_OPT_RSS_SYM_TPLZ  (0x1 << ICE_AQ_VSI_Q_OPT_RSS_HASH_S)
-#define ICE_AQ_VSI_Q_OPT_RSS_XOR       (0x2 << ICE_AQ_VSI_Q_OPT_RSS_HASH_S)
-#define ICE_AQ_VSI_Q_OPT_RSS_JHASH     (0x3 << ICE_AQ_VSI_Q_OPT_RSS_HASH_S)
+#define ICE_AQ_VSI_Q_OPT_RSS_LUT_S             0
+#define ICE_AQ_VSI_Q_OPT_RSS_LUT_M             (0x3 << ICE_AQ_VSI_Q_OPT_RSS_LUT_S)
+#define ICE_AQ_VSI_Q_OPT_RSS_LUT_VSI           0x0
+#define ICE_AQ_VSI_Q_OPT_RSS_LUT_PF            0x2
+#define ICE_AQ_VSI_Q_OPT_RSS_LUT_GBL           0x3
+#define ICE_AQ_VSI_Q_OPT_RSS_GBL_LUT_S         2
+#define ICE_AQ_VSI_Q_OPT_RSS_GBL_LUT_M         (0xF << ICE_AQ_VSI_Q_OPT_RSS_GBL_LUT_S)
+#define ICE_AQ_VSI_Q_OPT_RSS_HASH_S            6
+#define ICE_AQ_VSI_Q_OPT_RSS_HASH_M            (0x3 << ICE_AQ_VSI_Q_OPT_RSS_HASH_S)
+#define ICE_AQ_VSI_Q_OPT_RSS_TPLZ              (0x0 << ICE_AQ_VSI_Q_OPT_RSS_HASH_S)
+#define ICE_AQ_VSI_Q_OPT_RSS_SYM_TPLZ          (0x1 << ICE_AQ_VSI_Q_OPT_RSS_HASH_S)
+#define ICE_AQ_VSI_Q_OPT_RSS_XOR               (0x2 << ICE_AQ_VSI_Q_OPT_RSS_HASH_S)
+#define ICE_AQ_VSI_Q_OPT_RSS_JHASH             (0x3 << ICE_AQ_VSI_Q_OPT_RSS_HASH_S)
        u8 q_opt_tc;
-#define ICE_AQ_VSI_Q_OPT_TC_OVR_S      0
-#define ICE_AQ_VSI_Q_OPT_TC_OVR_M      (0x1F << ICE_AQ_VSI_Q_OPT_TC_OVR_S)
-#define ICE_AQ_VSI_Q_OPT_PROF_TC_OVR   BIT(7)
+#define ICE_AQ_VSI_Q_OPT_TC_OVR_S              0
+#define ICE_AQ_VSI_Q_OPT_TC_OVR_M              (0x1F << ICE_AQ_VSI_Q_OPT_TC_OVR_S)
+#define ICE_AQ_VSI_Q_OPT_PROF_TC_OVR           BIT(7)
        u8 q_opt_flags;
-#define ICE_AQ_VSI_Q_OPT_PE_FLTR_EN    BIT(0)
+#define ICE_AQ_VSI_Q_OPT_PE_FLTR_EN            BIT(0)
        u8 q_opt_reserved[3];
        /* outer up section */
        __le32 outer_up_table; /* same structure and defines as ingress tbl */
        /* ACL section */
        __le16 acl_def_act;
-#define ICE_AQ_VSI_ACL_DEF_RX_PROF_S   0
-#define ICE_AQ_VSI_ACL_DEF_RX_PROF_M   (0xF << ICE_AQ_VSI_ACL_DEF_RX_PROF_S)
-#define ICE_AQ_VSI_ACL_DEF_RX_TABLE_S  4
-#define ICE_AQ_VSI_ACL_DEF_RX_TABLE_M  (0xF << ICE_AQ_VSI_ACL_DEF_RX_TABLE_S)
-#define ICE_AQ_VSI_ACL_DEF_TX_PROF_S   8
-#define ICE_AQ_VSI_ACL_DEF_TX_PROF_M   (0xF << ICE_AQ_VSI_ACL_DEF_TX_PROF_S)
-#define ICE_AQ_VSI_ACL_DEF_TX_TABLE_S  12
-#define ICE_AQ_VSI_ACL_DEF_TX_TABLE_M  (0xF << ICE_AQ_VSI_ACL_DEF_TX_TABLE_S)
+#define ICE_AQ_VSI_ACL_DEF_RX_PROF_S           0
+#define ICE_AQ_VSI_ACL_DEF_RX_PROF_M           (0xF << ICE_AQ_VSI_ACL_DEF_RX_PROF_S)
+#define ICE_AQ_VSI_ACL_DEF_RX_TABLE_S          4
+#define ICE_AQ_VSI_ACL_DEF_RX_TABLE_M          (0xF << ICE_AQ_VSI_ACL_DEF_RX_TABLE_S)
+#define ICE_AQ_VSI_ACL_DEF_TX_PROF_S           8
+#define ICE_AQ_VSI_ACL_DEF_TX_PROF_M           (0xF << ICE_AQ_VSI_ACL_DEF_TX_PROF_S)
+#define ICE_AQ_VSI_ACL_DEF_TX_TABLE_S          12
+#define ICE_AQ_VSI_ACL_DEF_TX_TABLE_M          (0xF << ICE_AQ_VSI_ACL_DEF_TX_TABLE_S)
        /* flow director section */
        __le16 fd_options;
-#define ICE_AQ_VSI_FD_ENABLE           BIT(0)
-#define ICE_AQ_VSI_FD_TX_AUTO_ENABLE   BIT(1)
-#define ICE_AQ_VSI_FD_PROG_ENABLE      BIT(3)
+#define ICE_AQ_VSI_FD_ENABLE                   BIT(0)
+#define ICE_AQ_VSI_FD_TX_AUTO_ENABLE           BIT(1)
+#define ICE_AQ_VSI_FD_PROG_ENABLE              BIT(3)
        __le16 max_fd_fltr_dedicated;
        __le16 max_fd_fltr_shared;
        __le16 fd_def_q;
-#define ICE_AQ_VSI_FD_DEF_Q_S          0
-#define ICE_AQ_VSI_FD_DEF_Q_M          (0x7FF << ICE_AQ_VSI_FD_DEF_Q_S)
-#define ICE_AQ_VSI_FD_DEF_GRP_S        12
-#define ICE_AQ_VSI_FD_DEF_GRP_M        (0x7 << ICE_AQ_VSI_FD_DEF_GRP_S)
+#define ICE_AQ_VSI_FD_DEF_Q_S                  0
+#define ICE_AQ_VSI_FD_DEF_Q_M                  (0x7FF << ICE_AQ_VSI_FD_DEF_Q_S)
+#define ICE_AQ_VSI_FD_DEF_GRP_S                        12
+#define ICE_AQ_VSI_FD_DEF_GRP_M                        (0x7 << ICE_AQ_VSI_FD_DEF_GRP_S)
        __le16 fd_report_opt;
-#define ICE_AQ_VSI_FD_REPORT_Q_S       0
-#define ICE_AQ_VSI_FD_REPORT_Q_M       (0x7FF << ICE_AQ_VSI_FD_REPORT_Q_S)
-#define ICE_AQ_VSI_FD_DEF_PRIORITY_S   12
-#define ICE_AQ_VSI_FD_DEF_PRIORITY_M   (0x7 << ICE_AQ_VSI_FD_DEF_PRIORITY_S)
-#define ICE_AQ_VSI_FD_DEF_DROP         BIT(15)
+#define ICE_AQ_VSI_FD_REPORT_Q_S               0
+#define ICE_AQ_VSI_FD_REPORT_Q_M               (0x7FF << ICE_AQ_VSI_FD_REPORT_Q_S)
+#define ICE_AQ_VSI_FD_DEF_PRIORITY_S           12
+#define ICE_AQ_VSI_FD_DEF_PRIORITY_M           (0x7 << ICE_AQ_VSI_FD_DEF_PRIORITY_S)
+#define ICE_AQ_VSI_FD_DEF_DROP                 BIT(15)
        /* PASID section */
        __le32 pasid_id;
-#define ICE_AQ_VSI_PASID_ID_S          0
-#define ICE_AQ_VSI_PASID_ID_M          (0xFFFFF << ICE_AQ_VSI_PASID_ID_S)
-#define ICE_AQ_VSI_PASID_ID_VALID      BIT(31)
+#define ICE_AQ_VSI_PASID_ID_S                  0
+#define ICE_AQ_VSI_PASID_ID_M                  (0xFFFFF << ICE_AQ_VSI_PASID_ID_S)
+#define ICE_AQ_VSI_PASID_ID_VALID              BIT(31)
        u8 reserved[24];
 };
 
@@ -987,7 +1050,8 @@ struct ice_aqc_txsched_move_grp_info_hdr {
        __le32 src_parent_teid;
        __le32 dest_parent_teid;
        __le16 num_elems;
-       __le16 reserved;
+       u8 flags;
+       u8 reserved;
 };
 
 struct ice_aqc_move_elem {
@@ -1192,16 +1256,18 @@ struct ice_aqc_get_phy_caps {
        __le16 param0;
        /* 18.0 - Report qualified modules */
 #define ICE_AQC_GET_PHY_RQM            BIT(0)
-       /* 18.1 - 18.2 : Report mode
-        * 00b - Report NVM capabilities
-        * 01b - Report topology capabilities
-        * 10b - Report SW configured
+       /* 18.1 - 18.3 : Report mode
+        * 000b - Report NVM capabilities
+        * 001b - Report topology capabilities
+        * 010b - Report SW configured
+        * 100b - Report default capabilities
         */
-#define ICE_AQC_REPORT_MODE_S          1
-#define ICE_AQC_REPORT_MODE_M          (3 << ICE_AQC_REPORT_MODE_S)
-#define ICE_AQC_REPORT_NVM_CAP         0
-#define ICE_AQC_REPORT_TOPO_CAP                BIT(1)
-#define ICE_AQC_REPORT_SW_CFG          BIT(2)
+#define ICE_AQC_REPORT_MODE_S                  1
+#define ICE_AQC_REPORT_MODE_M                  (7 << ICE_AQC_REPORT_MODE_S)
+#define ICE_AQC_REPORT_TOPO_CAP_NO_MEDIA       0
+#define ICE_AQC_REPORT_TOPO_CAP_MEDIA          BIT(1)
+#define ICE_AQC_REPORT_ACTIVE_CFG              BIT(2)
+#define ICE_AQC_REPORT_DFLT_CFG                        BIT(3)
        __le32 reserved1;
        __le32 addr_high;
        __le32 addr_low;
@@ -1441,11 +1507,13 @@ struct ice_aqc_get_link_status_data {
 #define ICE_AQ_LINK_TOPO_UNDRUTIL_MEDIA        BIT(6)
 #define ICE_AQ_LINK_TOPO_UNSUPP_MEDIA  BIT(7)
        u8 link_cfg_err;
-#define ICE_AQ_LINK_CFG_ERR            BIT(0)
-#define ICE_AQ_LINK_ACT_PORT_OPT_INVAL BIT(2)
+#define ICE_AQ_LINK_CFG_ERR                    BIT(0)
+#define ICE_AQ_LINK_ACT_PORT_OPT_INVAL         BIT(2)
 #define ICE_AQ_LINK_FEAT_ID_OR_CONFIG_ID_INVAL BIT(3)
 #define ICE_AQ_LINK_TOPO_CRITICAL_SDP_ERR      BIT(4)
 #define ICE_AQ_LINK_MODULE_POWER_UNSUPPORTED   BIT(5)
+#define ICE_AQ_LINK_EXTERNAL_PHY_LOAD_FAILURE  BIT(6)
+#define ICE_AQ_LINK_INVAL_MAX_POWER_LIMIT      BIT(7)
        u8 link_info;
 #define ICE_AQ_LINK_UP                 BIT(0)  /* Link Status */
 #define ICE_AQ_LINK_FAULT              BIT(1)
@@ -1597,6 +1665,31 @@ struct ice_aqc_get_link_topo {
        u8 rsvd[9];
 };
 
+/* Read/Write I2C (direct, 0x06E2/0x06E3) */
+struct ice_aqc_i2c {
+       struct ice_aqc_link_topo_addr topo_addr;
+       __le16 i2c_addr;
+       u8 i2c_params;
+#define ICE_AQC_I2C_DATA_SIZE_S                0
+#define ICE_AQC_I2C_DATA_SIZE_M                (0xF << ICE_AQC_I2C_DATA_SIZE_S)
+#define ICE_AQC_I2C_ADDR_TYPE_M                BIT(4)
+#define ICE_AQC_I2C_ADDR_TYPE_7BIT     0
+#define ICE_AQC_I2C_ADDR_TYPE_10BIT    ICE_AQC_I2C_ADDR_TYPE_M
+#define ICE_AQC_I2C_DATA_OFFSET_S      5
+#define ICE_AQC_I2C_DATA_OFFSET_M      (0x3 << ICE_AQC_I2C_DATA_OFFSET_S)
+#define ICE_AQC_I2C_USE_REPEATED_START BIT(7)
+       u8 rsvd;
+       __le16 i2c_bus_addr;
+#define ICE_AQC_I2C_ADDR_7BIT_MASK     0x7F
+#define ICE_AQC_I2C_ADDR_10BIT_MASK    0x3FF
+       u8 i2c_data[4]; /* Used only by write command, reserved in read. */
+};
+
+/* Read I2C Response (direct, 0x06E2) */
+struct ice_aqc_read_i2c_resp {
+       u8 i2c_data[16];
+};
+
 /* Set Port Identification LED (direct, 0x06E9) */
 struct ice_aqc_set_port_id_led {
        u8 lport_num;
@@ -1608,6 +1701,16 @@ struct ice_aqc_set_port_id_led {
        u8 rsvd[13];
 };
 
+/* Set/Get GPIO (direct, 0x06EC/0x06ED) */
+struct ice_aqc_gpio {
+       __le16 gpio_ctrl_handle;
+#define ICE_AQC_GPIO_HANDLE_S  0
+#define ICE_AQC_GPIO_HANDLE_M  (0x3FF << ICE_AQC_GPIO_HANDLE_S)
+       u8 gpio_num;
+       u8 gpio_val;
+       u8 rsvd[12];
+};
+
 /* Read/Write SFF EEPROM command (indirect 0x06EE) */
 struct ice_aqc_sff_eeprom {
        u8 lport_num;
@@ -1651,6 +1754,25 @@ struct ice_aqc_sw_gpio {
        u8 rsvd[12];
 };
 
+/* Program topology device NVM (direct, 0x06F2) */
+struct ice_aqc_program_topology_device_nvm {
+       u8 lport_num;
+       u8 lport_num_valid;
+       u8 node_type_ctx;
+       u8 index;
+       u8 rsvd[12];
+};
+
+/* Read topology device NVM (indirect, 0x06F3) */
+struct ice_aqc_read_topology_device_nvm {
+       u8 lport_num;
+       u8 lport_num_valid;
+       u8 node_type_ctx;
+       u8 index;
+       __le32 start_address;
+       u8 data_read[8];
+};
+
 /* NVM Read command (indirect 0x0701)
  * NVM Erase commands (direct 0x0702)
  * NVM Write commands (indirect 0x0703)
@@ -1680,6 +1802,7 @@ struct ice_aqc_nvm {
 #define ICE_AQC_NVM_POR_FLAG   0       /* Used by NVM Write completion on ARQ */
 #define ICE_AQC_NVM_PERST_FLAG 1
 #define ICE_AQC_NVM_EMPR_FLAG  2
+#define ICE_AQC_NVM_EMPR_ENA           BIT(0)
        __le16 module_typeid;
        __le16 length;
 #define ICE_AQC_NVM_ERASE_LEN  0xFFFF
@@ -2601,6 +2724,35 @@ struct ice_aqc_set_health_status_config {
        u8 reserved[15];
 };
 
+#define ICE_AQC_HEALTH_STATUS_ERR_UNKNOWN_MOD_STRICT           0x101
+#define ICE_AQC_HEALTH_STATUS_ERR_MOD_TYPE                     0x102
+#define ICE_AQC_HEALTH_STATUS_ERR_MOD_QUAL                     0x103
+#define ICE_AQC_HEALTH_STATUS_ERR_MOD_COMM                     0x104
+#define ICE_AQC_HEALTH_STATUS_ERR_MOD_CONFLICT                 0x105
+#define ICE_AQC_HEALTH_STATUS_ERR_MOD_NOT_PRESENT              0x106
+#define ICE_AQC_HEALTH_STATUS_INFO_MOD_UNDERUTILIZED           0x107
+#define ICE_AQC_HEALTH_STATUS_ERR_UNKNOWN_MOD_LENIENT          0x108
+#define ICE_AQC_HEALTH_STATUS_ERR_INVALID_LINK_CFG             0x10B
+#define ICE_AQC_HEALTH_STATUS_ERR_PORT_ACCESS                  0x10C
+#define ICE_AQC_HEALTH_STATUS_ERR_PORT_UNREACHABLE             0x10D
+#define ICE_AQC_HEALTH_STATUS_INFO_PORT_SPEED_MOD_LIMITED      0x10F
+#define ICE_AQC_HEALTH_STATUS_ERR_PARALLEL_FAULT               0x110
+#define ICE_AQC_HEALTH_STATUS_INFO_PORT_SPEED_PHY_LIMITED      0x111
+#define ICE_AQC_HEALTH_STATUS_ERR_NETLIST_TOPO                 0x112
+#define ICE_AQC_HEALTH_STATUS_ERR_NETLIST                      0x113
+#define ICE_AQC_HEALTH_STATUS_ERR_TOPO_CONFLICT                        0x114
+#define ICE_AQC_HEALTH_STATUS_ERR_LINK_HW_ACCESS               0x115
+#define ICE_AQC_HEALTH_STATUS_ERR_LINK_RUNTIME                 0x116
+#define ICE_AQC_HEALTH_STATUS_ERR_DNL_INIT                     0x117
+#define ICE_AQC_HEALTH_STATUS_INFO_RECOVERY                    0x500
+#define ICE_AQC_HEALTH_STATUS_ERR_FLASH_ACCESS                 0x501
+#define ICE_AQC_HEALTH_STATUS_ERR_NVM_AUTH                     0x502
+#define ICE_AQC_HEALTH_STATUS_ERR_OROM_AUTH                    0x503
+#define ICE_AQC_HEALTH_STATUS_ERR_DDP_AUTH                     0x504
+#define ICE_AQC_HEALTH_STATUS_ERR_NVM_COMPAT                   0x505
+#define ICE_AQC_HEALTH_STATUS_ERR_OROM_COMPAT                  0x506
+#define ICE_AQC_HEALTH_STATUS_ERR_DCB_MIB                      0x509
+
 /* Get Health Status codes (indirect 0xFF21) */
 struct ice_aqc_get_supported_health_status_codes {
        __le16 health_code_count;
@@ -2636,6 +2788,50 @@ struct ice_aqc_clear_health_status {
        __le32 reserved[4];
 };
 
+/* Set FW Logging configuration (indirect 0xFF30)
+ * Register for FW Logging (indirect 0xFF31)
+ * Query FW Logging (indirect 0xFF32)
+ * FW Log Event (indirect 0xFF33)
+ * Get FW Log (indirect 0xFF34)
+ * Clear FW Log (indirect 0xFF35)
+ */
+
+struct ice_aqc_fw_log {
+       u8 cmd_flags;
+#define ICE_AQC_FW_LOG_CONF_UART_EN    BIT(0)
+#define ICE_AQC_FW_LOG_CONF_AQ_EN      BIT(1)
+#define ICE_AQC_FW_LOG_CONF_SET_VALID  BIT(3)
+#define ICE_AQC_FW_LOG_AQ_REGISTER     BIT(0)
+#define ICE_AQC_FW_LOG_AQ_QUERY                BIT(2)
+#define ICE_AQC_FW_LOG_PERSISTENT      BIT(0)
+       u8 rsp_flag;
+#define ICE_AQC_FW_LOG_MORE_DATA       BIT(1)
+       __le16 fw_rt_msb;
+       union {
+               struct {
+                       __le32 fw_rt_lsb;
+               } sync;
+               struct {
+                       __le16 log_resolution;
+#define ICE_AQC_FW_LOG_MIN_RESOLUTION          (1)
+#define ICE_AQC_FW_LOG_MAX_RESOLUTION          (128)
+                       __le16 mdl_cnt;
+               } cfg;
+       } ops;
+       __le32 addr_high;
+       __le32 addr_low;
+};
+
+/* Response Buffer for:
+ *    Set Firmware Logging Configuration (0xFF30)
+ *    Query FW Logging (0xFF32)
+ */
+struct ice_aqc_fw_log_cfg_resp {
+       __le16 module_identifier;
+       u8 log_level;
+       u8 rsvd0;
+};
+
 /**
  * struct ice_aq_desc - Admin Queue (AQ) descriptor
  * @flags: ICE_AQ_FLAG_* flags
@@ -2677,9 +2873,13 @@ struct ice_aq_desc {
                struct ice_aqc_get_phy_caps get_phy;
                struct ice_aqc_set_phy_cfg set_phy;
                struct ice_aqc_restart_an restart_an;
+               struct ice_aqc_i2c read_write_i2c;
+               struct ice_aqc_read_i2c_resp read_i2c_resp;
+               struct ice_aqc_gpio read_write_gpio;
                struct ice_aqc_sff_eeprom read_write_sff_param;
                struct ice_aqc_set_port_id_led set_port_id_led;
                struct ice_aqc_get_sw_cfg get_sw_conf;
+               struct ice_aqc_set_port_params set_port_params;
                struct ice_aqc_sw_rules sw_rules;
                struct ice_aqc_storm_cfg storm_conf;
                struct ice_aqc_add_get_recipe add_get_recipe;
@@ -2843,12 +3043,15 @@ enum ice_adminq_opc {
 
        /* internal switch commands */
        ice_aqc_opc_get_sw_cfg                          = 0x0200,
+       ice_aqc_opc_set_port_params                     = 0x0203,
 
        /* Alloc/Free/Get Resources */
        ice_aqc_opc_get_res_alloc                       = 0x0204,
        ice_aqc_opc_alloc_res                           = 0x0208,
        ice_aqc_opc_free_res                            = 0x0209,
        ice_aqc_opc_get_allocd_res_desc                 = 0x020A,
+       ice_aqc_opc_set_vlan_mode_parameters            = 0x020C,
+       ice_aqc_opc_get_vlan_mode_parameters            = 0x020D,
 
        /* VSI commands */
        ice_aqc_opc_add_vsi                             = 0x0210,
@@ -2909,6 +3112,8 @@ enum ice_adminq_opc {
        ice_aqc_opc_set_event_mask                      = 0x0613,
        ice_aqc_opc_set_mac_lb                          = 0x0620,
        ice_aqc_opc_get_link_topo                       = 0x06E0,
+       ice_aqc_opc_read_i2c                            = 0x06E2,
+       ice_aqc_opc_write_i2c                           = 0x06E3,
        ice_aqc_opc_set_port_id_led                     = 0x06E9,
        ice_aqc_opc_get_port_options                    = 0x06EA,
        ice_aqc_opc_set_port_option                     = 0x06EB,
@@ -2917,6 +3122,8 @@ enum ice_adminq_opc {
        ice_aqc_opc_sff_eeprom                          = 0x06EE,
        ice_aqc_opc_sw_set_gpio                         = 0x06EF,
        ice_aqc_opc_sw_get_gpio                         = 0x06F0,
+       ice_aqc_opc_program_topology_device_nvm         = 0x06F2,
+       ice_aqc_opc_read_topology_device_nvm            = 0x06F3,
 
        /* NVM commands */
        ice_aqc_opc_nvm_read                            = 0x0701,
@@ -2992,7 +3199,15 @@ enum ice_adminq_opc {
        ice_aqc_opc_set_health_status_config            = 0xFF20,
        ice_aqc_opc_get_supported_health_status_codes   = 0xFF21,
        ice_aqc_opc_get_health_status                   = 0xFF22,
-       ice_aqc_opc_clear_health_status                 = 0xFF23
+       ice_aqc_opc_clear_health_status                 = 0xFF23,
+
+       /* FW Logging Commands */
+       ice_aqc_opc_fw_logs_config                      = 0xFF30,
+       ice_aqc_opc_fw_logs_register                    = 0xFF31,
+       ice_aqc_opc_fw_logs_query                       = 0xFF32,
+       ice_aqc_opc_fw_logs_event                       = 0xFF33,
+       ice_aqc_opc_fw_logs_get                         = 0xFF34,
+       ice_aqc_opc_fw_logs_clear                       = 0xFF35
 };
 
 #endif /* _ICE_ADMINQ_CMD_H_ */