net/hns3: support RAS process in Kunpeng 930
[dpdk.git] / drivers / net / hns3 / hns3_cmd.h
index 65aa8ba..bf1772d 100644 (file)
@@ -1,15 +1,17 @@
 /* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2018-2019 Hisilicon Limited.
+ * Copyright(c) 2018-2021 HiSilicon Limited.
  */
 
 #ifndef _HNS3_CMD_H_
 #define _HNS3_CMD_H_
 
+#include <stdint.h>
+
 #define HNS3_CMDQ_TX_TIMEOUT           30000
+#define HNS3_CMDQ_CLEAR_WAIT_TIME      200
 #define HNS3_CMDQ_RX_INVLD_B           0
 #define HNS3_CMDQ_RX_OUTVLD_B          1
 #define HNS3_CMD_DESC_ALIGNMENT                4096
-#define HNS3_QUEUE_ID_MASK             0x1ff
 #define HNS3_CMD_FLAG_NEXT             BIT(2)
 
 struct hns3_hw;
@@ -51,13 +53,7 @@ enum hns3_cmd_return_status {
        HNS3_CMD_HILINK_ERR     = 9,
        HNS3_CMD_QUEUE_ILLEGAL  = 10,
        HNS3_CMD_INVALID        = 11,
-};
-
-enum hns3_cmd_status {
-       HNS3_STATUS_SUCCESS     = 0,
-       HNS3_ERR_CSQ_FULL       = -1,
-       HNS3_ERR_CSQ_TIMEOUT    = -2,
-       HNS3_ERR_CSQ_ERROR      = -3,
+       HNS3_CMD_ROH_CHECK_FAIL = 12
 };
 
 struct hns3_misc_vector {
@@ -69,7 +65,7 @@ struct hns3_cmq {
        struct hns3_cmq_ring csq;
        struct hns3_cmq_ring crq;
        uint16_t tx_timeout;
-       enum hns3_cmd_status last_status;
+       enum hns3_cmd_return_status last_status;
 };
 
 enum hns3_opcode_type {
@@ -92,15 +88,38 @@ enum hns3_opcode_type {
        HNS3_OPC_QUERY_REG_NUM          = 0x0040,
        HNS3_OPC_QUERY_32_BIT_REG       = 0x0041,
        HNS3_OPC_QUERY_64_BIT_REG       = 0x0042,
+       HNS3_OPC_DFX_BD_NUM             = 0x0043,
+       HNS3_OPC_DFX_BIOS_COMMON_REG    = 0x0044,
+       HNS3_OPC_DFX_SSU_REG_0          = 0x0045,
+       HNS3_OPC_DFX_SSU_REG_1          = 0x0046,
+       HNS3_OPC_DFX_IGU_EGU_REG        = 0x0047,
+       HNS3_OPC_DFX_RPU_REG_0          = 0x0048,
+       HNS3_OPC_DFX_RPU_REG_1          = 0x0049,
+       HNS3_OPC_DFX_NCSI_REG           = 0x004A,
+       HNS3_OPC_DFX_RTC_REG            = 0x004B,
+       HNS3_OPC_DFX_PPP_REG            = 0x004C,
+       HNS3_OPC_DFX_RCB_REG            = 0x004D,
+       HNS3_OPC_DFX_TQP_REG            = 0x004E,
+       HNS3_OPC_DFX_SSU_REG_2          = 0x004F,
 
        HNS3_OPC_QUERY_DEV_SPECS        = 0x0050,
 
+       HNS3_OPC_SSU_DROP_REG           = 0x0065,
+
        /* MAC command */
        HNS3_OPC_CONFIG_MAC_MODE        = 0x0301,
+       HNS3_OPC_CONFIG_AN_MODE         = 0x0304,
        HNS3_OPC_QUERY_LINK_STATUS      = 0x0307,
        HNS3_OPC_CONFIG_MAX_FRM_SIZE    = 0x0308,
        HNS3_OPC_CONFIG_SPEED_DUP       = 0x0309,
-       HNS3_MAC_COMMON_INT_EN          = 0x030E,
+       HNS3_OPC_QUERY_MAC_TNL_INT      = 0x0310,
+       HNS3_OPC_MAC_TNL_INT_EN         = 0x0311,
+       HNS3_OPC_CLEAR_MAC_TNL_INT      = 0x0312,
+       HNS3_OPC_CONFIG_FEC_MODE        = 0x031A,
+
+       /* PTP command */
+       HNS3_OPC_PTP_INT_EN             = 0x0501,
+       HNS3_OPC_CFG_PTP_MODE           = 0x0507,
 
        /* PFC/Pause commands */
        HNS3_OPC_CFG_MAC_PAUSE_EN       = 0x0701,
@@ -153,10 +172,6 @@ enum hns3_opcode_type {
        HNS3_OPC_RX_COM_THRD_ALLOC      = 0x0904,
        HNS3_OPC_RX_COM_WL_ALLOC        = 0x0905,
 
-       /* SSU module INT commands */
-       HNS3_SSU_ECC_INT_CMD            = 0x0989,
-       HNS3_SSU_COMMON_INT_CMD         = 0x098C,
-
        /* TQP management command */
        HNS3_OPC_SET_TQP_MAP            = 0x0A01,
 
@@ -165,11 +180,7 @@ enum hns3_opcode_type {
        HNS3_OPC_QUERY_RX_STATUS        = 0x0B13,
        HNS3_OPC_CFG_COM_TQP_QUEUE      = 0x0B20,
        HNS3_OPC_RESET_TQP_QUEUE        = 0x0B22,
-
-       /* PPU module intr commands */
-       HNS3_PPU_MPF_ECC_INT_CMD        = 0x0B40,
-       HNS3_PPU_MPF_OTHER_INT_CMD      = 0x0B41,
-       HNS3_PPU_PF_OTHER_INT_CMD       = 0x0B42,
+       HNS3_OPC_RESET_TQP_QUEUE_INDEP  = 0x0B23,
 
        /* TSO command */
        HNS3_OPC_TSO_GENERIC_CONFIG     = 0x0C01,
@@ -210,23 +221,45 @@ enum hns3_opcode_type {
        HNS3_OPC_FD_COUNTER_OP          = 0x1205,
 
        /* Clear hardware state command */
-       HNS3_OPC_CLEAR_HW_STATE         = 0x700A,
+       HNS3_OPC_CLEAR_HW_STATE         = 0x700B,
+
+       /* Firmware stats command */
+       HNS3_OPC_FIRMWARE_COMPAT_CFG    = 0x701A,
+       /* Firmware control phy command */
+       HNS3_OPC_PHY_PARAM_CFG          = 0x7025,
 
        /* SFP command */
-       HNS3_OPC_SFP_GET_SPEED          = 0x7104,
+       HNS3_OPC_GET_SFP_EEPROM         = 0x7100,
+       HNS3_OPC_GET_SFP_EXIST          = 0x7101,
+       HNS3_OPC_GET_SFP_INFO           = 0x7104,
 
        /* Interrupts commands */
-       HNS3_OPC_ADD_RING_TO_VECTOR     = 0x1503,
-       HNS3_OPC_DEL_RING_TO_VECTOR     = 0x1504,
+       HNS3_OPC_ADD_RING_TO_VECTOR     = 0x1503,
+       HNS3_OPC_DEL_RING_TO_VECTOR     = 0x1504,
 
        /* Error INT commands */
-       HNS3_QUERY_MSIX_INT_STS_BD_NUM          = 0x1513,
-       HNS3_QUERY_CLEAR_ALL_MPF_MSIX_INT       = 0x1514,
-       HNS3_QUERY_CLEAR_ALL_PF_MSIX_INT        = 0x1515,
-
-       /* PPP module intr commands */
-       HNS3_PPP_CMD0_INT_CMD                   = 0x2100,
-       HNS3_PPP_CMD1_INT_CMD                   = 0x2101,
+       HNS3_OPC_MAC_COMMON_INT_EN              = 0x030E,
+       HNS3_OPC_TM_SCH_ECC_INT_EN              = 0x0829,
+       HNS3_OPC_SSU_ECC_INT_CMD                = 0x0989,
+       HNS3_OPC_SSU_COMMON_INT_CMD             = 0x098C,
+       HNS3_OPC_PPU_MPF_ECC_INT_CMD            = 0x0B40,
+       HNS3_OPC_PPU_MPF_OTHER_INT_CMD          = 0x0B41,
+       HNS3_OPC_PPU_PF_OTHER_INT_CMD           = 0x0B42,
+       HNS3_OPC_COMMON_ECC_INT_CFG             = 0x1505,
+       HNS3_OPC_QUERY_RAS_INT_STS_BD_NUM       = 0x1510,
+       HNS3_OPC_QUERY_CLEAR_MPF_RAS_INT        = 0x1511,
+       HNS3_OPC_QUERY_CLEAR_PF_RAS_INT         = 0x1512,
+       HNS3_OPC_QUERY_MSIX_INT_STS_BD_NUM      = 0x1513,
+       HNS3_OPC_QUERY_CLEAR_ALL_MPF_MSIX_INT   = 0x1514,
+       HNS3_OPC_QUERY_CLEAR_ALL_PF_MSIX_INT    = 0x1515,
+       HNS3_OPC_QUERY_ALL_ERR_BD_NUM           = 0x1516,
+       HNS3_OPC_QUERY_ALL_ERR_INFO             = 0x1517,
+       HNS3_OPC_IGU_EGU_TNL_INT_EN             = 0x1803,
+       HNS3_OPC_IGU_COMMON_INT_EN              = 0x1806,
+       HNS3_OPC_TM_QCN_MEM_INT_CFG             = 0x1A14,
+       HNS3_OPC_PPP_CMD0_INT_CMD               = 0x2100,
+       HNS3_OPC_PPP_CMD1_INT_CMD               = 0x2101,
+       HNS3_OPC_NCSI_INT_EN                    = 0x2401,
 };
 
 #define HNS3_CMD_FLAG_IN       BIT(0)
@@ -236,6 +269,11 @@ enum hns3_opcode_type {
 #define HNS3_CMD_FLAG_NO_INTR  BIT(4)
 #define HNS3_CMD_FLAG_ERR_INTR BIT(5)
 
+#define HNS3_MPF_RAS_INT_MIN_BD_NUM    10
+#define HNS3_PF_RAS_INT_MIN_BD_NUM     4
+#define HNS3_MPF_MSIX_INT_MIN_BD_NUM   10
+#define HNS3_PF_MSIX_INT_MIN_BD_NUM    4
+
 #define HNS3_BUF_SIZE_UNIT     256
 #define HNS3_BUF_MUL_BY                2
 #define HNS3_BUF_DIV_BY                2
@@ -270,7 +308,7 @@ struct hns3_rx_priv_buff_cmd {
 enum HNS3_CAPS_BITS {
        HNS3_CAPS_UDP_GSO_B,
        HNS3_CAPS_ATR_B,
-       HNS3_CAPS_ADQ_B,
+       HNS3_CAPS_FD_QUEUE_REGION_B,
        HNS3_CAPS_PTP_B,
        HNS3_CAPS_INT_QL_B,
        HNS3_CAPS_SIMPLE_BD_B,
@@ -279,12 +317,22 @@ enum HNS3_CAPS_BITS {
        HNS3_CAPS_TQP_TXRX_INDEP_B,
        HNS3_CAPS_HW_PAD_B,
        HNS3_CAPS_STASH_B,
+       HNS3_CAPS_UDP_TUNNEL_CSUM_B,
+       HNS3_CAPS_RAS_IMP_B,
+       HNS3_CAPS_FEC_B,
+       HNS3_CAPS_PAUSE_B,
+       HNS3_CAPS_RXD_ADV_LAYOUT_B,
 };
+
+enum HNS3_API_CAP_BITS {
+       HNS3_API_CAP_FLEX_RSS_TBL_B,
+};
+
 #define HNS3_QUERY_CAP_LENGTH          3
 struct hns3_query_version_cmd {
        uint32_t firmware;
        uint32_t hardware;
-       uint32_t rsv;
+       uint32_t api_caps;
        uint32_t caps[HNS3_QUERY_CAP_LENGTH]; /* capabilities of device */
 };
 
@@ -368,21 +416,26 @@ struct hns3_func_status_cmd {
        uint8_t rsv[2];
 };
 
-#define HNS3_VEC_NUM_S         0
-#define HNS3_VEC_NUM_M         GENMASK(7, 0)
+#define HNS3_PF_VEC_NUM_S      0
+#define HNS3_PF_VEC_NUM_M      GENMASK(15, 0)
 #define HNS3_MIN_VECTOR_NUM    2 /* one for msi-x, another for IO */
 struct hns3_pf_res_cmd {
        uint16_t tqp_num;
        uint16_t buf_size;
        uint16_t msixcap_localid_ba_nic;
-       uint16_t msixcap_localid_ba_rocee;
-       uint16_t pf_intr_vector_number;
+       uint16_t nic_pf_intr_vector_number;
+       uint16_t roce_pf_intr_vector_number;
        uint16_t pf_own_fun_number;
        uint16_t tx_buf_size;
        uint16_t dv_buf_size;
-       uint32_t rsv[2];
+       /* number of queues that exceed 1024 */
+       uint16_t ext_tqp_num;
+       uint16_t roh_pf_intr_vector_number;
+       uint32_t rsv[1];
 };
 
+#define HNS3_VF_VEC_NUM_S      0
+#define HNS3_VF_VEC_NUM_M      GENMASK(7, 0)
 struct hns3_vf_res_cmd {
        uint16_t tqp_num;
        uint16_t reserved;
@@ -429,6 +482,8 @@ struct hns3_umv_spc_alc_cmd {
 #define HNS3_CFG_SPEED_ABILITY_M       GENMASK(7, 0)
 #define HNS3_CFG_UMV_TBL_SPACE_S       16
 #define HNS3_CFG_UMV_TBL_SPACE_M       GENMASK(31, 16)
+#define HNS3_CFG_EXT_RSS_SIZE_S                0
+#define HNS3_CFG_EXT_RSS_SIZE_M                GENMASK(3, 0)
 
 #define HNS3_ACCEPT_TAG1_B             0
 #define HNS3_ACCEPT_UNTAG1_B           1
@@ -437,11 +492,14 @@ struct hns3_umv_spc_alc_cmd {
 #define HNS3_CFG_NIC_ROCE_SEL_B                4
 #define HNS3_ACCEPT_TAG2_B             5
 #define HNS3_ACCEPT_UNTAG2_B           6
+#define HNS3_TAG_SHIFT_MODE_EN_B       7
 
 #define HNS3_REM_TAG1_EN_B             0
 #define HNS3_REM_TAG2_EN_B             1
 #define HNS3_SHOW_TAG1_EN_B            2
 #define HNS3_SHOW_TAG2_EN_B            3
+#define HNS3_DISCARD_TAG1_EN_B         5
+#define HNS3_DISCARD_TAG2_EN_B         6
 
 /* Factor used to calculate offset and bitmap of VF num */
 #define HNS3_VF_NUM_PER_CMD             64
@@ -548,31 +606,29 @@ struct hns3_rss_generic_config_cmd {
 
 /* Configure the tuple selection for RSS hash input, opcode:0x0D02 */
 struct hns3_rss_input_tuple_cmd {
-       uint8_t ipv4_tcp_en;
-       uint8_t ipv4_udp_en;
-       uint8_t ipv4_sctp_en;
-       uint8_t ipv4_fragment_en;
-       uint8_t ipv6_tcp_en;
-       uint8_t ipv6_udp_en;
-       uint8_t ipv6_sctp_en;
-       uint8_t ipv6_fragment_en;
+       uint64_t tuple_field;
        uint8_t rsv[16];
 };
 
-#define HNS3_RSS_CFG_TBL_SIZE  16
+#define HNS3_RSS_CFG_TBL_SIZE          16
+#define HNS3_RSS_CFG_TBL_SIZE_H                4
+#define HNS3_RSS_CFG_TBL_BW_H          2
+#define HNS3_RSS_CFG_TBL_BW_L          8
 
 /* Configure the indirection table, opcode:0x0D07 */
 struct hns3_rss_indirection_table_cmd {
        uint16_t start_table_index;  /* Bit3~0 must be 0x0. */
        uint16_t rss_set_bitmap;
-       uint8_t rsv[4];
-       uint8_t rss_result[HNS3_RSS_CFG_TBL_SIZE];
+       uint8_t rss_result_h[HNS3_RSS_CFG_TBL_SIZE_H];
+       uint8_t rss_result_l[HNS3_RSS_CFG_TBL_SIZE];
 };
 
 #define HNS3_RSS_TC_OFFSET_S           0
-#define HNS3_RSS_TC_OFFSET_M           (0x3ff << HNS3_RSS_TC_OFFSET_S)
+#define HNS3_RSS_TC_OFFSET_M           GENMASK(10, 0)
+#define HNS3_RSS_TC_SIZE_MSB_S         11
+#define HNS3_RSS_TC_SIZE_MSB_OFFSET    3
 #define HNS3_RSS_TC_SIZE_S             12
-#define HNS3_RSS_TC_SIZE_M             (0x7 << HNS3_RSS_TC_SIZE_S)
+#define HNS3_RSS_TC_SIZE_M             GENMASK(14, 12)
 #define HNS3_RSS_TC_VALID_B            15
 
 /* Configure the tc_size and tc_offset, opcode:0x0D08 */
@@ -613,6 +669,49 @@ enum hns3_promisc_type {
        HNS3_BROADCAST  = 3,
 };
 
+#define HNS3_LINK_EVENT_REPORT_EN_B    0
+#define HNS3_NCSI_ERROR_REPORT_EN_B    1
+#define HNS3_FIRMWARE_PHY_DRIVER_EN_B  2
+struct hns3_firmware_compat_cmd {
+       uint32_t compat;
+       uint8_t rsv[20];
+};
+
+/* Bitmap flags in supported, advertising and lp_advertising */
+#define HNS3_PHY_LINK_SPEED_10M_HD_BIT         BIT(0)
+#define HNS3_PHY_LINK_SPEED_10M_BIT            BIT(1)
+#define HNS3_PHY_LINK_SPEED_100M_HD_BIT                BIT(2)
+#define HNS3_PHY_LINK_SPEED_100M_BIT           BIT(3)
+#define HNS3_PHY_LINK_SPEED_1000M_BIT          BIT(5)
+#define HNS3_PHY_LINK_MODE_AUTONEG_BIT         BIT(6)
+#define HNS3_PHY_LINK_MODE_PAUSE_BIT           BIT(13)
+#define HNS3_PHY_LINK_MODE_ASYM_PAUSE_BIT      BIT(14)
+
+#define HNS3_PHY_PARAM_CFG_BD_NUM      2
+struct hns3_phy_params_bd0_cmd {
+       uint32_t speed;
+#define HNS3_PHY_DUPLEX_CFG_B          0
+       uint8_t duplex;
+#define HNS3_PHY_AUTONEG_CFG_B 0
+       uint8_t autoneg;
+       uint8_t eth_tp_mdix;
+       uint8_t eth_tp_mdix_ctrl;
+       uint8_t port;
+       uint8_t transceiver;
+       uint8_t phy_address;
+       uint8_t rsv;
+       uint32_t supported;
+       uint32_t advertising;
+       uint32_t lp_advertising;
+};
+
+struct hns3_phy_params_bd1_cmd {
+       uint8_t master_slave_cfg;
+       uint8_t master_slave_state;
+       uint8_t rsv1[2];
+       uint32_t rsv2[5];
+};
+
 #define HNS3_MAC_TX_EN_B               6
 #define HNS3_MAC_RX_EN_B               7
 #define HNS3_MAC_PAD_TX_B              11
@@ -656,7 +755,6 @@ struct hns3_config_mac_speed_dup_cmd {
        uint8_t rsv[22];
 };
 
-#define HNS3_RING_ID_MASK              GENMASK(9, 0)
 #define HNS3_TQP_ENABLE_B              0
 
 #define HNS3_MAC_CFG_AN_EN_B           0
@@ -672,9 +770,54 @@ struct hns3_config_auto_neg_cmd {
        uint8_t   rsv[20];
 };
 
-struct hns3_sfp_speed_cmd {
-       uint32_t  sfp_speed;
-       uint32_t  rsv[5];
+#define HNS3_SFP_INFO_BD0_LEN  20UL
+#define HNS3_SFP_INFO_BDX_LEN  24UL
+
+struct hns3_sfp_info_bd0_cmd {
+       uint16_t offset;
+       uint16_t read_len;
+       uint8_t data[HNS3_SFP_INFO_BD0_LEN];
+};
+
+struct hns3_sfp_type {
+       uint8_t type;
+       uint8_t ext_type;
+};
+
+/* Bitmap flags in supported_speed */
+#define HNS3_FIBER_LINK_SPEED_1G_BIT           BIT(0)
+#define HNS3_FIBER_LINK_SPEED_10G_BIT          BIT(1)
+#define HNS3_FIBER_LINK_SPEED_25G_BIT          BIT(2)
+#define HNS3_FIBER_LINK_SPEED_50G_BIT          BIT(3)
+#define HNS3_FIBER_LINK_SPEED_100G_BIT         BIT(4)
+#define HNS3_FIBER_LINK_SPEED_40G_BIT          BIT(5)
+#define HNS3_FIBER_LINK_SPEED_100M_BIT         BIT(6)
+#define HNS3_FIBER_LINK_SPEED_10M_BIT          BIT(7)
+#define HNS3_FIBER_LINK_SPEED_200G_BIT         BIT(8)
+
+struct hns3_sfp_info_cmd {
+       uint32_t sfp_speed;
+       uint8_t query_type; /* 0: sfp speed, 1: active */
+       uint8_t active_fec; /* current FEC mode */
+       uint8_t autoneg; /* current autoneg state */
+       /* 0: not support autoneg, 1: support autoneg */
+       uint8_t autoneg_ability;
+       uint32_t supported_speed; /* speed supported by current media */
+       uint32_t module_type;
+       uint8_t rsv1[8];
+};
+
+#define HNS3_MAC_CFG_FEC_AUTO_EN_B     0
+#define HNS3_MAC_CFG_FEC_MODE_S                1
+#define HNS3_MAC_CFG_FEC_MODE_M        GENMASK(3, 1)
+#define HNS3_MAC_FEC_OFF               0
+#define HNS3_MAC_FEC_BASER             1
+#define HNS3_MAC_FEC_RS                        2
+
+/* Configure FEC mode, opcode:0x031A */
+struct hns3_config_fec_cmd {
+       uint8_t fec_mode;
+       uint8_t rsv[23];
 };
 
 #define HNS3_MAC_MGR_MASK_VLAN_B               BIT(0)
@@ -741,12 +884,16 @@ enum hns3_int_gl_idx {
 #define HNS3_TQP_ID_M          GENMASK(12, 2)
 #define HNS3_INT_GL_IDX_S      13
 #define HNS3_INT_GL_IDX_M      GENMASK(14, 13)
+#define HNS3_TQP_INT_ID_L_S    0
+#define HNS3_TQP_INT_ID_L_M    GENMASK(7, 0)
+#define HNS3_TQP_INT_ID_H_S    8
+#define HNS3_TQP_INT_ID_H_M    GENMASK(15, 8)
 struct hns3_ctrl_vector_chain_cmd {
-       uint8_t int_vector_id;
+       uint8_t int_vector_id;    /* the low order of the interrupt id */
        uint8_t int_cause_num;
        uint16_t tqp_type_and_id[HNS3_VECTOR_ELEMENTS_PER_CMD];
        uint8_t vfid;
-       uint8_t rsv;
+       uint8_t int_vector_id_h;  /* the high order of the interrupt id */
 };
 
 struct hns3_config_max_frm_size_cmd {
@@ -796,15 +943,22 @@ struct hns3_reset_tqp_queue_cmd {
        uint16_t tqp_id;
        uint8_t reset_req;
        uint8_t ready_to_reset;
-       uint8_t rsv[20];
+       uint8_t queue_direction;
+       uint8_t rsv[19];
 };
 
 #define HNS3_CFG_RESET_MAC_B           3
 #define HNS3_CFG_RESET_FUNC_B          7
+#define HNS3_CFG_RESET_RCB_B           1
 struct hns3_reset_cmd {
        uint8_t mac_func_reset;
        uint8_t fun_reset_vfid;
-       uint8_t rsv[22];
+       uint8_t fun_reset_rcb;
+       uint8_t rsv1;
+       uint16_t fun_reset_rcb_vqid_start;
+       uint16_t fun_reset_rcb_vqid_num;
+       uint8_t fun_reset_rcb_return_status;
+       uint8_t rsv2[15];
 };
 
 #define HNS3_QUERY_DEV_SPECS_BD_NUM            4
@@ -820,7 +974,51 @@ struct hns3_dev_specs_0_cmd {
        uint32_t max_tm_rate;
 };
 
-#define HNS3_MAX_TQP_NUM_PER_FUNC      64
+struct hns3_query_rpu_cmd {
+       uint32_t tc_queue_num;
+       uint32_t rsv1[2];
+       uint32_t rpu_rx_pkt_drop_cnt;
+       uint32_t rsv2[2];
+};
+
+#define HNS3_OPC_SSU_DROP_REG_NUM 2
+
+struct hns3_query_ssu_cmd {
+       uint8_t rxtx;
+       uint8_t rsv[3];
+       uint32_t full_drop_cnt;
+       uint32_t part_drop_cnt;
+       uint32_t oq_drop_cnt;
+       uint32_t rev1[2];
+};
+
+#define HNS3_PTP_ENABLE_B               0
+#define HNS3_PTP_TX_ENABLE_B            1
+#define HNS3_PTP_RX_ENABLE_B            2
+
+#define HNS3_PTP_TYPE_S                 0
+#define HNS3_PTP_TYPE_M                (0x3 << HNS3_PTP_TYPE_S)
+
+#define ALL_PTP_V2_TYPE                 0xF
+#define HNS3_PTP_MESSAGE_TYPE_S         0
+#define HNS3_PTP_MESSAGE_TYPE_M        (0xF << HNS3_PTP_MESSAGE_TYPE_S)
+
+#define PTP_TYPE_L2_V2_TYPE             0
+
+struct hns3_ptp_mode_cfg_cmd {
+       uint8_t enable;
+       uint8_t ptp_type;
+       uint8_t v2_message_type_1;
+       uint8_t v2_message_type_0;
+       uint8_t rsv[20];
+};
+
+struct hns3_ptp_int_cmd {
+       uint8_t int_en;
+       uint8_t rsvd[23];
+};
+
+#define HNS3_MAX_TQP_NUM_HIP08_PF      64
 #define HNS3_DEFAULT_TX_BUF            0x4000    /* 16k  bytes */
 #define HNS3_TOTAL_PKT_BUF             0x108000  /* 1.03125M bytes */
 #define HNS3_DEFAULT_DV                        0xA000    /* 40k byte */