net/ice/base: add routine for tunnel port query
[dpdk.git] / drivers / net / ice / base / ice_adminq_cmd.h
index d2ab9ee..9a06359 100644 (file)
@@ -38,12 +38,23 @@ struct ice_aqc_get_ver {
 };
 
 
+/* Send driver version (indirect 0x0002) */
+struct ice_aqc_driver_ver {
+       u8 major_ver;
+       u8 minor_ver;
+       u8 build_ver;
+       u8 subbuild_ver;
+       u8 reserved[4];
+       __le32 addr_high;
+       __le32 addr_low;
+};
+
 
 /* Queue Shutdown (direct 0x0003) */
 struct ice_aqc_q_shutdown {
-       __le32 driver_unloading;
+       u8 driver_unloading;
 #define ICE_AQC_DRIVER_UNLOADING       BIT(0)
-       u8 reserved[12];
+       u8 reserved[15];
 };
 
 
@@ -99,6 +110,7 @@ struct ice_aqc_list_caps {
 struct ice_aqc_list_caps_elem {
        __le16 cap;
 #define ICE_AQC_CAPS_VALID_FUNCTIONS                   0x0005
+#define ICE_AQC_MAX_VALID_FUNCTIONS                    0x8
 #define ICE_AQC_CAPS_VSI                               0x0017
 #define ICE_AQC_CAPS_DCB                               0x0018
 #define ICE_AQC_CAPS_RSS                               0x0040
@@ -130,13 +142,13 @@ struct ice_aqc_manage_mac_read {
 #define ICE_AQC_MAN_MAC_SAN_ADDR_VALID         BIT(5)
 #define ICE_AQC_MAN_MAC_PORT_ADDR_VALID                BIT(6)
 #define ICE_AQC_MAN_MAC_WOL_ADDR_VALID         BIT(7)
+#define ICE_AQC_MAN_MAC_MC_MAG_EN              BIT(8)
+#define ICE_AQC_MAN_MAC_WOL_PRESERVE_ON_PFR    BIT(9)
 #define ICE_AQC_MAN_MAC_READ_S                 4
 #define ICE_AQC_MAN_MAC_READ_M                 (0xF << ICE_AQC_MAN_MAC_READ_S)
-       u8 lport_num;
-       u8 lport_num_valid;
-#define ICE_AQC_MAN_MAC_PORT_NUM_IS_VALID      BIT(0)
+       u8 rsvd[2];
        u8 num_addr; /* Used in response */
-       u8 reserved[3];
+       u8 rsvd1[3];
        __le32 addr_high;
        __le32 addr_low;
 };
@@ -154,7 +166,7 @@ struct ice_aqc_manage_mac_read_resp {
 
 /* Manage MAC address, write command - direct (0x0108) */
 struct ice_aqc_manage_mac_write {
-       u8 port_num;
+       u8 rsvd;
        u8 flags;
 #define ICE_AQC_MAN_MAC_WR_MC_MAG_EN           BIT(0)
 #define ICE_AQC_MAN_MAC_WR_WOL_LAA_PFR_KEEP    BIT(1)
@@ -470,8 +482,8 @@ struct ice_aqc_vsi_props {
 #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_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)
@@ -685,6 +697,73 @@ struct ice_aqc_storm_cfg {
 
 #define ICE_MAX_NUM_RECIPES 64
 
+/* Add/Get Recipe (indirect 0x0290/0x0292)*/
+struct ice_aqc_add_get_recipe {
+       __le16 num_sub_recipes; /* Input in Add cmd, Output in Get cmd */
+       __le16 return_index;    /* Input, used for Get cmd only */
+       u8 reserved[4];
+       __le32 addr_high;
+       __le32 addr_low;
+};
+
+struct ice_aqc_recipe_content {
+       u8 rid;
+#define ICE_AQ_RECIPE_ID_S             0
+#define ICE_AQ_RECIPE_ID_M             (0x3F << ICE_AQ_RECIPE_ID_S)
+#define ICE_AQ_RECIPE_ID_IS_ROOT       BIT(7)
+#define ICE_AQ_SW_ID_LKUP_IDX          0
+       u8 lkup_indx[5];
+#define ICE_AQ_RECIPE_LKUP_DATA_S      0
+#define ICE_AQ_RECIPE_LKUP_DATA_M      (0x3F << ICE_AQ_RECIPE_LKUP_DATA_S)
+#define ICE_AQ_RECIPE_LKUP_IGNORE      BIT(7)
+#define ICE_AQ_SW_ID_LKUP_MASK         0x00FF
+       __le16 mask[5];
+       u8 result_indx;
+#define ICE_AQ_RECIPE_RESULT_DATA_S    0
+#define ICE_AQ_RECIPE_RESULT_DATA_M    (0x3F << ICE_AQ_RECIPE_RESULT_DATA_S)
+#define ICE_AQ_RECIPE_RESULT_EN                BIT(7)
+       u8 rsvd0[3];
+       u8 act_ctrl_join_priority;
+       u8 act_ctrl_fwd_priority;
+#define ICE_AQ_RECIPE_FWD_PRIORITY_S   0
+#define ICE_AQ_RECIPE_FWD_PRIORITY_M   (0xF << ICE_AQ_RECIPE_FWD_PRIORITY_S)
+       u8 act_ctrl;
+#define ICE_AQ_RECIPE_ACT_NEED_PASS_L2 BIT(0)
+#define ICE_AQ_RECIPE_ACT_ALLOW_PASS_L2        BIT(1)
+#define ICE_AQ_RECIPE_ACT_INV_ACT      BIT(2)
+#define ICE_AQ_RECIPE_ACT_PRUNE_INDX_S 4
+#define ICE_AQ_RECIPE_ACT_PRUNE_INDX_M (0x3 << ICE_AQ_RECIPE_ACT_PRUNE_INDX_S)
+       u8 rsvd1;
+       __le32 dflt_act;
+#define ICE_AQ_RECIPE_DFLT_ACT_S       0
+#define ICE_AQ_RECIPE_DFLT_ACT_M       (0x7FFFF << ICE_AQ_RECIPE_DFLT_ACT_S)
+#define ICE_AQ_RECIPE_DFLT_ACT_VALID   BIT(31)
+};
+
+struct ice_aqc_recipe_data_elem {
+       u8 recipe_indx;
+       u8 resp_bits;
+#define ICE_AQ_RECIPE_WAS_UPDATED      BIT(0)
+       u8 rsvd0[2];
+       u8 recipe_bitmap[8];
+       u8 rsvd1[4];
+       struct ice_aqc_recipe_content content;
+       u8 rsvd2[20];
+};
+
+/* This struct contains a number of entries as per the
+ * num_sub_recipes in the command
+ */
+struct ice_aqc_add_get_recipe_data {
+       struct ice_aqc_recipe_data_elem recipe[1];
+};
+
+/* Set/Get Recipes to Profile Association (direct 0x0291/0x0293) */
+struct ice_aqc_recipe_to_profile {
+       __le16 profile_id;
+       u8 rsvd[6];
+       ice_declare_bitmap(recipe_assoc, ICE_MAX_NUM_RECIPES);
+};
 
 /* Add/Update/Remove/Get switch rules (indirect 0x02A0, 0x02A1, 0x02A2, 0x02A3)
  */
@@ -1348,6 +1427,7 @@ struct ice_aqc_get_phy_caps_data {
 #define ICE_AQC_PHY_FEC_25G_RS_CLAUSE91_EN             BIT(6)
 #define ICE_AQC_PHY_FEC_25G_KR_CLAUSE74_EN             BIT(7)
 #define ICE_AQC_PHY_FEC_MASK                           MAKEMASK(0xdf, 0)
+       u8 rsvd1;       /* Byte 35 reserved */
        u8 extended_compliance_code;
 #define ICE_MODULE_TYPE_TOTAL_BYTE                     3
        u8 module_type[ICE_MODULE_TYPE_TOTAL_BYTE];
@@ -1362,13 +1442,14 @@ struct ice_aqc_get_phy_caps_data {
 #define ICE_AQC_MOD_TYPE_BYTE2_SFP_PLUS                        0xA0
 #define ICE_AQC_MOD_TYPE_BYTE2_QSFP_PLUS               0x86
        u8 qualified_module_count;
+       u8 rsvd2[7];    /* Bytes 47:41 reserved */
 #define ICE_AQC_QUAL_MOD_COUNT_MAX                     16
        struct {
                u8 v_oui[3];
                u8 rsvd3;
                u8 v_part[16];
                __le32 v_rev;
-               __le64 rsvd8;
+               __le64 rsvd4;
        } qual_modules[ICE_AQC_QUAL_MOD_COUNT_MAX];
 };
 
@@ -1494,7 +1575,12 @@ struct ice_aqc_get_link_status_data {
 #define ICE_AQ_LINK_TX_ACTIVE          0
 #define ICE_AQ_LINK_TX_DRAINED         1
 #define ICE_AQ_LINK_TX_FLUSHED         3
-       u8 reserved2;
+       u8 lb_status;
+#define ICE_AQ_LINK_LB_PHY_LCL         BIT(0)
+#define ICE_AQ_LINK_LB_PHY_RMT         BIT(1)
+#define ICE_AQ_LINK_LB_MAC_LCL         BIT(2)
+#define ICE_AQ_LINK_LB_PHY_IDX_S       3
+#define ICE_AQ_LINK_LB_PHY_IDX_M       (0x7 << ICE_AQ_LB_PHY_IDX_S)
        __le16 max_frame_size;
        u8 cfg;
 #define ICE_AQ_LINK_25G_KR_FEC_EN      BIT(0)
@@ -1517,6 +1603,7 @@ struct ice_aqc_get_link_status_data {
 #define ICE_AQ_LINK_PWR_QSFP_CLASS_3   2
 #define ICE_AQ_LINK_PWR_QSFP_CLASS_4   3
        __le16 link_speed;
+#define ICE_AQ_LINK_SPEED_M            0x7FF
 #define ICE_AQ_LINK_SPEED_10MB         BIT(0)
 #define ICE_AQ_LINK_SPEED_100MB                BIT(1)
 #define ICE_AQ_LINK_SPEED_1000MB       BIT(2)
@@ -1549,6 +1636,8 @@ struct ice_aqc_set_event_mask {
 #define ICE_AQ_LINK_EVENT_AN_COMPLETED         BIT(7)
 #define ICE_AQ_LINK_EVENT_MODULE_QUAL_FAIL     BIT(8)
 #define ICE_AQ_LINK_EVENT_PORT_TX_SUSPENDED    BIT(9)
+#define ICE_AQ_LINK_EVENT_TOPO_CONFLICT                BIT(10)
+#define ICE_AQ_LINK_EVENT_MEDIA_CONFLICT       BIT(11)
        u8      reserved1[6];
 };
 
@@ -1579,22 +1668,55 @@ struct ice_aqc_set_port_id_led {
 
 
 
+/* Read/Write SFF EEPROM command (indirect 0x06EE) */
+struct ice_aqc_sff_eeprom {
+       u8 lport_num;
+       u8 lport_num_valid;
+#define ICE_AQC_SFF_PORT_NUM_VALID     BIT(0)
+       __le16 i2c_bus_addr;
+#define ICE_AQC_SFF_I2CBUS_7BIT_M      0x7F
+#define ICE_AQC_SFF_I2CBUS_10BIT_M     0x3FF
+#define ICE_AQC_SFF_I2CBUS_TYPE_M      BIT(10)
+#define ICE_AQC_SFF_I2CBUS_TYPE_7BIT   0
+#define ICE_AQC_SFF_I2CBUS_TYPE_10BIT  ICE_AQC_SFF_I2CBUS_TYPE_M
+#define ICE_AQC_SFF_SET_EEPROM_PAGE_S  11
+#define ICE_AQC_SFF_SET_EEPROM_PAGE_M  (0x3 << ICE_AQC_SFF_SET_EEPROM_PAGE_S)
+#define ICE_AQC_SFF_NO_PAGE_CHANGE     0
+#define ICE_AQC_SFF_SET_23_ON_MISMATCH 1
+#define ICE_AQC_SFF_SET_22_ON_MISMATCH 2
+#define ICE_AQC_SFF_IS_WRITE           BIT(15)
+       __le16 i2c_mem_addr;
+       __le16 eeprom_page;
+#define  ICE_AQC_SFF_EEPROM_BANK_S 0
+#define  ICE_AQC_SFF_EEPROM_BANK_M (0xFF << ICE_AQC_SFF_EEPROM_BANK_S)
+#define  ICE_AQC_SFF_EEPROM_PAGE_S 8
+#define  ICE_AQC_SFF_EEPROM_PAGE_M (0xFF << ICE_AQC_SFF_EEPROM_PAGE_S)
+       __le32 addr_high;
+       __le32 addr_low;
+};
+
 /* NVM Read command (indirect 0x0701)
  * NVM Erase commands (direct 0x0702)
- * NVM Update commands (indirect 0x0703)
+ * NVM Write commands (indirect 0x0703)
+ * NVM Write Activate commands (direct 0x0707)
+ * NVM Shadow RAM Dump commands (direct 0x0707)
  */
 struct ice_aqc_nvm {
        __le16 offset_low;
        u8 offset_high;
        u8 cmd_flags;
 #define ICE_AQC_NVM_LAST_CMD           BIT(0)
-#define ICE_AQC_NVM_PCIR_REQ           BIT(0)  /* Used by NVM Update reply */
-#define ICE_AQC_NVM_PRESERVATION_S     1
+#define ICE_AQC_NVM_PCIR_REQ           BIT(0)  /* Used by NVM Write reply */
+#define ICE_AQC_NVM_PRESERVATION_S     1 /* Used by NVM Write Activate only */
 #define ICE_AQC_NVM_PRESERVATION_M     (3 << ICE_AQC_NVM_PRESERVATION_S)
 #define ICE_AQC_NVM_NO_PRESERVATION    (0 << ICE_AQC_NVM_PRESERVATION_S)
 #define ICE_AQC_NVM_PRESERVE_ALL       BIT(1)
 #define ICE_AQC_NVM_FACTORY_DEFAULT    (2 << ICE_AQC_NVM_PRESERVATION_S)
 #define ICE_AQC_NVM_PRESERVE_SELECTED  (3 << ICE_AQC_NVM_PRESERVATION_S)
+#define ICE_AQC_NVM_ACTIV_SEL_NVM      BIT(3) /* Write Activate/SR Dump only */
+#define ICE_AQC_NVM_ACTIV_SEL_OROM     BIT(4)
+#define ICE_AQC_NVM_ACTIV_SEL_NETLIST  BIT(5)
+#define ICE_AQC_NVM_ACTIV_SEL_MASK     MAKEMASK(0x7, 3)
 #define ICE_AQC_NVM_FLASH_ONLY         BIT(7)
        __le16 module_typeid;
        __le16 length;
@@ -1603,6 +1725,28 @@ struct ice_aqc_nvm {
        __le32 addr_low;
 };
 
+/* NVM Module_Type ID, needed offset and read_len for struct ice_aqc_nvm. */
+#define ICE_AQC_NVM_SECTOR_UNIT                        4096 /* In Bytes */
+#define ICE_AQC_NVM_WORD_UNIT                  2 /* In Bytes */
+
+#define ICE_AQC_NVM_START_POINT                        0
+#define ICE_AQC_NVM_EMP_SR_PTR_OFFSET          0x90
+#define ICE_AQC_NVM_EMP_SR_PTR_RD_LEN          2 /* In Bytes */
+#define ICE_AQC_NVM_EMP_SR_PTR_M               MAKEMASK(0x7FFF, 0)
+#define ICE_AQC_NVM_EMP_SR_PTR_TYPE_S          15
+#define ICE_AQC_NVM_EMP_SR_PTR_TYPE_M          BIT(15)
+#define ICE_AQC_NVM_EMP_SR_PTR_TYPE_SECTOR     1
+
+#define ICE_AQC_NVM_LLDP_CFG_PTR_OFFSET                0x46
+#define ICE_AQC_NVM_LLDP_CFG_HEADER_LEN                2 /* In Bytes */
+#define ICE_AQC_NVM_LLDP_CFG_PTR_RD_LEN                2 /* In Bytes */
+
+#define ICE_AQC_NVM_LLDP_PRESERVED_MOD_ID      0x129
+#define ICE_AQC_NVM_CUR_LLDP_PERSIST_RD_OFFSET 2 /* In Bytes */
+#define ICE_AQC_NVM_LLDP_STATUS_M              MAKEMASK(0xF, 0)
+#define ICE_AQC_NVM_LLDP_STATUS_M_LEN          4 /* In Bits */
+#define ICE_AQC_NVM_LLDP_STATUS_RD_LEN         4 /* In Bytes */
+
 
 /* Used for 0x0704 as well as for 0x0705 commands */
 struct ice_aqc_nvm_cfg {
@@ -1754,7 +1898,7 @@ struct ice_aqc_get_cee_dcb_cfg_resp {
 };
 
 /* Set Local LLDP MIB (indirect 0x0A08)
- * Used to replace the local MIB of a given LLDP agent. e.g. DCBx
+ * Used to replace the local MIB of a given LLDP agent. e.g. DCBX
  */
 struct ice_aqc_lldp_set_local_mib {
        u8 type;
@@ -1779,7 +1923,7 @@ struct ice_aqc_lldp_set_local_mib_resp {
 };
 
 /* Stop/Start LLDP Agent (direct 0x0A09)
- * Used for stopping/starting specific LLDP agent. e.g. DCBx.
+ * Used for stopping/starting specific LLDP agent. e.g. DCBX.
  * The same structure is used for the response, with the command field
  * being used as the status field.
  */
@@ -2073,86 +2217,6 @@ struct ice_aqc_event_lan_overflow {
 
 
 
-/* Configure Firmware Logging Command (indirect 0xFF09)
- * Logging Information Read Response (indirect 0xFF10)
- * Note: The 0xFF10 command has no input parameters.
- */
-struct ice_aqc_fw_logging {
-       u8 log_ctrl;
-#define ICE_AQC_FW_LOG_AQ_EN           BIT(0)
-#define ICE_AQC_FW_LOG_UART_EN         BIT(1)
-       u8 rsvd0;
-       u8 log_ctrl_valid; /* Not used by 0xFF10 Response */
-#define ICE_AQC_FW_LOG_AQ_VALID                BIT(0)
-#define ICE_AQC_FW_LOG_UART_VALID      BIT(1)
-       u8 rsvd1[5];
-       __le32 addr_high;
-       __le32 addr_low;
-};
-
-
-enum ice_aqc_fw_logging_mod {
-       ICE_AQC_FW_LOG_ID_GENERAL = 0,
-       ICE_AQC_FW_LOG_ID_CTRL,
-       ICE_AQC_FW_LOG_ID_LINK,
-       ICE_AQC_FW_LOG_ID_LINK_TOPO,
-       ICE_AQC_FW_LOG_ID_DNL,
-       ICE_AQC_FW_LOG_ID_I2C,
-       ICE_AQC_FW_LOG_ID_SDP,
-       ICE_AQC_FW_LOG_ID_MDIO,
-       ICE_AQC_FW_LOG_ID_ADMINQ,
-       ICE_AQC_FW_LOG_ID_HDMA,
-       ICE_AQC_FW_LOG_ID_LLDP,
-       ICE_AQC_FW_LOG_ID_DCBX,
-       ICE_AQC_FW_LOG_ID_DCB,
-       ICE_AQC_FW_LOG_ID_NETPROXY,
-       ICE_AQC_FW_LOG_ID_NVM,
-       ICE_AQC_FW_LOG_ID_AUTH,
-       ICE_AQC_FW_LOG_ID_VPD,
-       ICE_AQC_FW_LOG_ID_IOSF,
-       ICE_AQC_FW_LOG_ID_PARSER,
-       ICE_AQC_FW_LOG_ID_SW,
-       ICE_AQC_FW_LOG_ID_SCHEDULER,
-       ICE_AQC_FW_LOG_ID_TXQ,
-       ICE_AQC_FW_LOG_ID_RSVD,
-       ICE_AQC_FW_LOG_ID_POST,
-       ICE_AQC_FW_LOG_ID_WATCHDOG,
-       ICE_AQC_FW_LOG_ID_TASK_DISPATCH,
-       ICE_AQC_FW_LOG_ID_MNG,
-       ICE_AQC_FW_LOG_ID_MAX,
-};
-
-/* This is the buffer for both of the logging commands.
- * The entry array size depends on the datalen parameter in the descriptor.
- * There will be a total of datalen / 2 entries.
- */
-struct ice_aqc_fw_logging_data {
-       __le16 entry[1];
-#define ICE_AQC_FW_LOG_ID_S            0
-#define ICE_AQC_FW_LOG_ID_M            (0xFFF << ICE_AQC_FW_LOG_ID_S)
-
-#define ICE_AQC_FW_LOG_CONF_SUCCESS    0       /* Used by response */
-#define ICE_AQC_FW_LOG_CONF_BAD_INDX   BIT(12) /* Used by response */
-
-#define ICE_AQC_FW_LOG_EN_S            12
-#define ICE_AQC_FW_LOG_EN_M            (0xF << ICE_AQC_FW_LOG_EN_S)
-#define ICE_AQC_FW_LOG_INFO_EN         BIT(12) /* Used by command */
-#define ICE_AQC_FW_LOG_INIT_EN         BIT(13) /* Used by command */
-#define ICE_AQC_FW_LOG_FLOW_EN         BIT(14) /* Used by command */
-#define ICE_AQC_FW_LOG_ERR_EN          BIT(15) /* Used by command */
-};
-
-
-/* Get/Clear FW Log (indirect 0xFF11) */
-struct ice_aqc_get_clear_fw_log {
-       u8 flags;
-#define ICE_AQC_FW_LOG_CLEAR           BIT(0)
-#define ICE_AQC_FW_LOG_MORE_DATA_AVAIL BIT(1)
-       u8 rsvd1[7];
-       __le32 addr_high;
-       __le32 addr_low;
-};
-
 
 /**
  * struct ice_aq_desc - Admin Queue (AQ) descriptor
@@ -2182,6 +2246,7 @@ struct ice_aq_desc {
                u8 raw[16];
                struct ice_aqc_generic generic;
                struct ice_aqc_get_ver get_ver;
+               struct ice_aqc_driver_ver driver_ver;
                struct ice_aqc_q_shutdown q_shutdown;
                struct ice_aqc_req_res res_owner;
                struct ice_aqc_manage_mac_read mac_read;
@@ -2194,10 +2259,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_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_sw_rules sw_rules;
                struct ice_aqc_storm_cfg storm_conf;
+               struct ice_aqc_add_get_recipe add_get_recipe;
+               struct ice_aqc_recipe_to_profile recipe_to_profile;
                struct ice_aqc_get_topo get_topo;
                struct ice_aqc_sched_elem_cmd sched_elem_cmd;
                struct ice_aqc_query_txsched_res query_sched_res;
@@ -2224,14 +2292,13 @@ struct ice_aq_desc {
                struct ice_aqc_clear_fd_table clear_fd_table;
                struct ice_aqc_add_txqs add_txqs;
                struct ice_aqc_dis_txqs dis_txqs;
+               struct ice_aqc_move_txqs move_txqs;
                struct ice_aqc_txqs_cleanup txqs_cleanup;
                struct ice_aqc_add_get_update_free_vsi vsi_cmd;
                struct ice_aqc_add_update_free_vsi_resp add_update_free_vsi_res;
                struct ice_aqc_get_vsi_resp get_vsi_resp;
                struct ice_aqc_download_pkg download_pkg;
                struct ice_aqc_get_pkg_info_list get_pkg_info_list;
-               struct ice_aqc_fw_logging fw_logging;
-               struct ice_aqc_get_clear_fw_log get_clear_fw_log;
                struct ice_aqc_set_mac_lb set_mac_lb;
                struct ice_aqc_alloc_free_res_cmd sw_res_ctrl;
                struct ice_aqc_get_res_alloc get_res;
@@ -2239,6 +2306,7 @@ struct ice_aq_desc {
                struct ice_aqc_set_mac_cfg set_mac_cfg;
                struct ice_aqc_set_event_mask set_event_mask;
                struct ice_aqc_get_link_status get_link_status;
+               struct ice_aqc_event_lan_overflow lan_overflow;
        } params;
 };
 
@@ -2307,6 +2375,7 @@ enum ice_aq_err {
        ICE_AQ_RC_ESVN          = 26, /* SVN number prohibits this package */
        ICE_AQ_RC_EBADMAN       = 27, /* Manifest hash mismatch */
        ICE_AQ_RC_EBADBUF       = 28, /* Buffer hash mismatches manifest */
+       ICE_AQ_RC_EACCES_BMCU   = 29, /* BMC Update in progress */
 };
 
 /* Admin Queue command opcodes */
@@ -2357,6 +2426,11 @@ enum ice_adminq_opc {
        ice_aqc_opc_set_storm_cfg                       = 0x0280,
        ice_aqc_opc_get_storm_cfg                       = 0x0281,
 
+       /* recipe commands */
+       ice_aqc_opc_add_recipe                          = 0x0290,
+       ice_aqc_opc_recipe_to_profile                   = 0x0291,
+       ice_aqc_opc_get_recipe                          = 0x0292,
+       ice_aqc_opc_get_recipe_to_profile               = 0x0293,
 
        /* switch rules population commands */
        ice_aqc_opc_add_sw_rules                        = 0x02A0,
@@ -2401,14 +2475,19 @@ enum ice_adminq_opc {
        ice_aqc_opc_set_port_option                     = 0x06EB,
        ice_aqc_opc_set_gpio                            = 0x06EC,
        ice_aqc_opc_get_gpio                            = 0x06ED,
+       ice_aqc_opc_sff_eeprom                          = 0x06EE,
 
        /* NVM commands */
        ice_aqc_opc_nvm_read                            = 0x0701,
        ice_aqc_opc_nvm_erase                           = 0x0702,
-       ice_aqc_opc_nvm_update                          = 0x0703,
+       ice_aqc_opc_nvm_write                           = 0x0703,
        ice_aqc_opc_nvm_cfg_read                        = 0x0704,
        ice_aqc_opc_nvm_cfg_write                       = 0x0705,
        ice_aqc_opc_nvm_checksum                        = 0x0706,
+       ice_aqc_opc_nvm_write_activate                  = 0x0707,
+       ice_aqc_opc_nvm_sr_dump                         = 0x0707,
+       ice_aqc_opc_nvm_save_factory_settings           = 0x0708,
+       ice_aqc_opc_nvm_update_empr                     = 0x0709,
 
        /* LLDP commands */
        ice_aqc_opc_lldp_get_mib                        = 0x0A00,
@@ -2445,11 +2524,6 @@ enum ice_adminq_opc {
 
        /* Standalone Commands/Events */
        ice_aqc_opc_event_lan_overflow                  = 0x1001,
-
-       /* debug commands */
-       ice_aqc_opc_fw_logging                          = 0xFF09,
-       ice_aqc_opc_fw_logging_info                     = 0xFF10,
-       ice_aqc_opc_get_clear_fw_log                    = 0xFF11
 };
 
 #endif /* _ICE_ADMINQ_CMD_H_ */