New upstream version 18.11-rc1
[deb_dpdk.git] / drivers / net / dpaa2 / mc / fsl_dpni_cmd.h
index eb3e998..3df5bcf 100644 (file)
@@ -9,19 +9,21 @@
 
 /* DPNI Version */
 #define DPNI_VER_MAJOR                         7
-#define DPNI_VER_MINOR                         3
+#define DPNI_VER_MINOR                         8
 
 #define DPNI_CMD_BASE_VERSION                  1
 #define DPNI_CMD_VERSION_2                     2
+#define DPNI_CMD_VERSION_3                     3
 #define DPNI_CMD_ID_OFFSET                     4
 
 #define DPNI_CMD(id)   (((id) << DPNI_CMD_ID_OFFSET) | DPNI_CMD_BASE_VERSION)
 #define DPNI_CMD_V2(id)        (((id) << DPNI_CMD_ID_OFFSET) | DPNI_CMD_VERSION_2)
+#define DPNI_CMD_V3(id)        (((id) << DPNI_CMD_ID_OFFSET) | DPNI_CMD_VERSION_3)
 
 /* Command IDs */
 #define DPNI_CMDID_OPEN                                DPNI_CMD(0x801)
 #define DPNI_CMDID_CLOSE                       DPNI_CMD(0x800)
-#define DPNI_CMDID_CREATE                      DPNI_CMD(0x901)
+#define DPNI_CMDID_CREATE                      DPNI_CMD_V2(0x901)
 #define DPNI_CMDID_DESTROY                     DPNI_CMD(0x981)
 #define DPNI_CMDID_GET_API_VERSION             DPNI_CMD(0xa01)
 
 #define DPNI_CMDID_GET_QDID                    DPNI_CMD(0x210)
 #define DPNI_CMDID_GET_SP_INFO                 DPNI_CMD(0x211)
 #define DPNI_CMDID_GET_TX_DATA_OFFSET          DPNI_CMD(0x212)
-#define DPNI_CMDID_GET_LINK_STATE              DPNI_CMD(0x215)
+#define DPNI_CMDID_GET_LINK_STATE              DPNI_CMD_V2(0x215)
 #define DPNI_CMDID_SET_MAX_FRAME_LENGTH                DPNI_CMD(0x216)
 #define DPNI_CMDID_GET_MAX_FRAME_LENGTH                DPNI_CMD(0x217)
-#define DPNI_CMDID_SET_LINK_CFG                        DPNI_CMD(0x21A)
+#define DPNI_CMDID_SET_LINK_CFG                        DPNI_CMD_V2(0x21A)
 #define DPNI_CMDID_SET_TX_SHAPING              DPNI_CMD_V2(0x21B)
 
 #define DPNI_CMDID_SET_MCAST_PROMISC           DPNI_CMD(0x220)
@@ -65,7 +67,7 @@
 #define DPNI_CMDID_REMOVE_VLAN_ID              DPNI_CMD(0x232)
 #define DPNI_CMDID_CLR_VLAN_FILTERS            DPNI_CMD(0x233)
 
-#define DPNI_CMDID_SET_RX_TC_DIST              DPNI_CMD_V2(0x235)
+#define DPNI_CMDID_SET_RX_TC_DIST              DPNI_CMD_V3(0x235)
 
 #define DPNI_CMDID_GET_STATISTICS              DPNI_CMD_V2(0x25D)
 #define DPNI_CMDID_RESET_STATISTICS            DPNI_CMD(0x25E)
@@ -76,8 +78,8 @@
 
 #define DPNI_CMDID_GET_PORT_MAC_ADDR           DPNI_CMD(0x263)
 
-#define DPNI_CMDID_GET_BUFFER_LAYOUT           DPNI_CMD(0x264)
-#define DPNI_CMDID_SET_BUFFER_LAYOUT           DPNI_CMD(0x265)
+#define DPNI_CMDID_GET_BUFFER_LAYOUT           DPNI_CMD_V2(0x264)
+#define DPNI_CMDID_SET_BUFFER_LAYOUT           DPNI_CMD_V2(0x265)
 
 #define DPNI_CMDID_SET_CONGESTION_NOTIFICATION DPNI_CMD(0x267)
 #define DPNI_CMDID_GET_CONGESTION_NOTIFICATION DPNI_CMD(0x268)
@@ -87,6 +89,8 @@
 #define DPNI_CMDID_SET_OFFLOAD                 DPNI_CMD(0x26C)
 #define DPNI_CMDID_SET_TX_CONFIRMATION_MODE    DPNI_CMD(0x266)
 #define DPNI_CMDID_GET_TX_CONFIRMATION_MODE    DPNI_CMD(0x26D)
+#define DPNI_CMDID_SET_OPR                     DPNI_CMD(0x26e)
+#define DPNI_CMDID_GET_OPR                     DPNI_CMD(0x26f)
 
 /* Macros for accessing command fields smaller than 1byte */
 #define DPNI_MASK(field)       \
@@ -113,6 +117,7 @@ struct dpni_cmd_create {
        uint8_t qos_entries;
        uint8_t pad3;
        uint16_t fs_entries;
+       uint8_t num_rx_tcs;
 };
 
 struct dpni_cmd_destroy {
@@ -228,6 +233,8 @@ struct dpni_cmd_set_errors_behavior {
 #define DPNI_PASS_PR_SIZE              1
 #define DPNI_PASS_FS_SHIFT             2
 #define DPNI_PASS_FS_SIZE              1
+#define DPNI_PASS_SWO_SHIFT            3
+#define DPNI_PASS_SWO_SIZE             1
 
 struct dpni_cmd_get_buffer_layout {
        uint8_t qtype;
@@ -307,10 +314,13 @@ struct dpni_cmd_set_link_cfg {
        uint32_t rate;
        uint32_t pad1;
        uint64_t options;
+       uint64_t advertising;
 };
 
 #define DPNI_LINK_STATE_SHIFT          0
 #define DPNI_LINK_STATE_SIZE           1
+#define DPNI_STATE_VALID_SHIFT         1
+#define DPNI_STATE_VALID_SIZE          1
 
 struct dpni_rsp_get_link_state {
        uint32_t pad0;
@@ -320,6 +330,8 @@ struct dpni_rsp_get_link_state {
        uint32_t rate;
        uint32_t pad2;
        uint64_t options;
+       uint64_t supported;
+       uint64_t advertising;
 };
 
 struct dpni_cmd_set_max_frame_length {
@@ -415,6 +427,8 @@ struct dpni_cmd_set_tx_priorities {
 #define DPNI_MISS_ACTION_SIZE          4
 #define DPNI_KEEP_HASH_KEY_SHIFT       7
 #define DPNI_KEEP_HASH_KEY_SIZE                1
+#define DPNI_KEEP_ENTRIES_SHIFT                6
+#define DPNI_KEEP_ENTRIES_SIZE         1
 
 struct dpni_cmd_set_rx_tc_dist {
        uint16_t dist_size;
@@ -601,5 +615,64 @@ struct dpni_rsp_get_congestion_notification {
        uint32_t threshold_exit;
 };
 
+struct dpni_cmd_set_opr {
+       uint8_t pad0;
+       uint8_t tc_id;
+       uint8_t index;
+       uint8_t options;
+       uint8_t pad1[7];
+       uint8_t oloe;
+       uint8_t oeane;
+       uint8_t olws;
+       uint8_t oa;
+       uint8_t oprrws;
+};
+
+struct dpni_cmd_get_opr {
+       uint8_t pad;
+       uint8_t tc_id;
+       uint8_t index;
+};
+
+#define DPNI_RIP_SHIFT 0
+#define DPNI_RIP_SIZE          1
+#define DPNI_OPR_ENABLE_SHIFT  1
+#define DPNI_OPR_ENABLE_SIZE   1
+#define DPNI_TSEQ_NLIS_SHIFT   0
+#define DPNI_TSEQ_NLIS_SIZE    1
+#define DPNI_HSEQ_NLIS_SHIFT   0
+#define DPNI_HSEQ_NLIS_SIZE    1
+
+struct dpni_rsp_get_opr {
+       uint64_t pad0;
+       /* from LSB: rip:1 enable:1 */
+       uint8_t flags;
+       uint16_t pad1;
+       uint8_t oloe;
+       uint8_t oeane;
+       uint8_t olws;
+       uint8_t oa;
+       uint8_t oprrws;
+       uint16_t nesn;
+       uint16_t pad8;
+       uint16_t ndsn;
+       uint16_t pad2;
+       uint16_t ea_tseq;
+       /* only the LSB */
+       uint8_t tseq_nlis;
+       uint8_t pad3;
+       uint16_t ea_hseq;
+       /* only the LSB */
+       uint8_t hseq_nlis;
+       uint8_t pad4;
+       uint16_t ea_hptr;
+       uint16_t pad5;
+       uint16_t ea_tptr;
+       uint16_t pad6;
+       uint16_t opr_vid;
+       uint16_t pad7;
+       uint16_t opr_id;
+};
+
 #pragma pack(pop)
 #endif /* _FSL_DPNI_CMD_H */