net/ice/base: refactor structure field
[dpdk.git] / drivers / net / ice / base / ice_adminq_cmd.h
index fd34be2..32c88bf 100644 (file)
@@ -227,6 +227,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)
@@ -987,7 +1008,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 +1214,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;
@@ -1442,6 +1466,10 @@ struct ice_aqc_get_link_status_data {
 #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_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)
        u8 link_info;
 #define ICE_AQ_LINK_UP                 BIT(0)  /* Link Status */
 #define ICE_AQ_LINK_FAULT              BIT(1)
@@ -1489,7 +1517,7 @@ struct ice_aqc_get_link_status_data {
 #define ICE_AQ_CFG_PACING_TYPE_FIXED   ICE_AQ_CFG_PACING_TYPE_M
        /* External Device Power Ability */
        u8 power_desc;
-#define ICE_AQ_PWR_CLASS_M             0x3
+#define ICE_AQ_PWR_CLASS_M             0x3F
 #define ICE_AQ_LINK_PWR_BASET_LOW_HIGH 0
 #define ICE_AQ_LINK_PWR_BASET_HIGH     1
 #define ICE_AQ_LINK_PWR_QSFP_CLASS_1   0
@@ -1631,6 +1659,22 @@ struct ice_aqc_sff_eeprom {
        __le32 addr_low;
 };
 
+/* SW Set GPIO command (indirect 0x6EF)
+ * SW Get GPIO command (indirect 0x6F0)
+ */
+struct ice_aqc_sw_gpio {
+       __le16 gpio_ctrl_handle;
+#define ICE_AQC_SW_GPIO_CONTROLLER_HANDLE_S    0
+#define ICE_AQC_SW_GPIO_CONTROLLER_HANDLE_M    (0x3FF << ICE_AQC_SW_GPIO_CONTROLLER_HANDLE_S)
+       u8 gpio_num;
+#define ICE_AQC_SW_GPIO_NUMBER_S       0
+#define ICE_AQC_SW_GPIO_NUMBER_M       (0x1F << ICE_AQC_SW_GPIO_NUMBER_S)
+       u8 gpio_params;
+#define ICE_AQC_SW_GPIO_PARAMS_DIRECTION    BIT(1)
+#define ICE_AQC_SW_GPIO_PARAMS_VALUE        BIT(0)
+       u8 rsvd[12];
+};
+
 /* NVM Read command (indirect 0x0701)
  * NVM Erase commands (direct 0x0702)
  * NVM Write commands (indirect 0x0703)
@@ -1689,32 +1733,6 @@ struct ice_aqc_nvm {
 #define ICE_AQC_NVM_LLDP_STATUS_M_LEN          4 /* In Bits */
 #define ICE_AQC_NVM_LLDP_STATUS_RD_LEN         4 /* In Bytes */
 
-/* The result of netlist NVM read comes in a TLV format. The actual data
- * (netlist header) starts from word offset 1 (byte 2). The FW strips
- * out the type field from the TLV header so all the netlist fields
- * should adjust their offset value by 1 word (2 bytes) in order to map
- * their correct location.
- */
-#define ICE_AQC_NVM_LINK_TOPO_NETLIST_MOD_ID           0x11B
-#define ICE_AQC_NVM_LINK_TOPO_NETLIST_LEN_OFFSET       1
-#define ICE_AQC_NVM_LINK_TOPO_NETLIST_LEN              2 /* In bytes */
-#define ICE_AQC_NVM_NETLIST_NODE_COUNT_OFFSET          2
-#define ICE_AQC_NVM_NETLIST_NODE_COUNT_LEN             2 /* In bytes */
-#define ICE_AQC_NVM_NETLIST_ID_BLK_START_OFFSET                5
-#define ICE_AQC_NVM_NETLIST_ID_BLK_LEN                 0x30 /* In words */
-
-/* netlist ID block field offsets (word offsets) */
-#define ICE_AQC_NVM_NETLIST_ID_BLK_MAJOR_VER_LOW       2
-#define ICE_AQC_NVM_NETLIST_ID_BLK_MAJOR_VER_HIGH      3
-#define ICE_AQC_NVM_NETLIST_ID_BLK_MINOR_VER_LOW       4
-#define ICE_AQC_NVM_NETLIST_ID_BLK_MINOR_VER_HIGH      5
-#define ICE_AQC_NVM_NETLIST_ID_BLK_TYPE_LOW            6
-#define ICE_AQC_NVM_NETLIST_ID_BLK_TYPE_HIGH           7
-#define ICE_AQC_NVM_NETLIST_ID_BLK_REV_LOW             8
-#define ICE_AQC_NVM_NETLIST_ID_BLK_REV_HIGH            9
-#define ICE_AQC_NVM_NETLIST_ID_BLK_SHA_HASH            0xA
-#define ICE_AQC_NVM_NETLIST_ID_BLK_CUST_VER            0x2F
-
 /* Used for 0x0704 as well as for 0x0705 commands */
 struct ice_aqc_nvm_cfg {
        u8      cmd_flags;
@@ -2558,6 +2576,7 @@ struct ice_pkg_ver {
 };
 
 #define ICE_PKG_NAME_SIZE      32
+#define ICE_SEG_ID_SIZE        28
 #define ICE_SEG_NAME_SIZE      28
 
 struct ice_aqc_get_pkg_info {
@@ -2606,6 +2625,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;
@@ -2647,8 +2695,8 @@ struct ice_aqc_clear_health_status {
  * @opcode: AQ command opcode
  * @datalen: length in bytes of indirect/external data buffer
  * @retval: return value from firmware
- * @cookie_h: opaque data high-half
- * @cookie_l: opaque data low-half
+ * @cookie_high: opaque data high-half
+ * @cookie_low: opaque data low-half
  * @params: command-specific parameters
  *
  * Descriptor format for commands the driver posts on the Admin Transmit Queue
@@ -2685,6 +2733,7 @@ struct ice_aq_desc {
                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;
@@ -2848,6 +2897,7 @@ 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,
@@ -2920,6 +2970,8 @@ enum ice_adminq_opc {
        ice_aqc_opc_set_gpio                            = 0x06EC,
        ice_aqc_opc_get_gpio                            = 0x06ED,
        ice_aqc_opc_sff_eeprom                          = 0x06EE,
+       ice_aqc_opc_sw_set_gpio                         = 0x06EF,
+       ice_aqc_opc_sw_get_gpio                         = 0x06F0,
 
        /* NVM commands */
        ice_aqc_opc_nvm_read                            = 0x0701,