Imported Upstream version 16.11
[deb_dpdk.git] / drivers / net / thunderx / base / nicvf_hw.h
index 9db1d30..14fb2fe 100644 (file)
 
 #include "nicvf_hw_defs.h"
 
-#define        PCI_VENDOR_ID_CAVIUM                    0x177D
-#define        PCI_DEVICE_ID_THUNDERX_PASS1_NICVF      0x0011
-#define        PCI_DEVICE_ID_THUNDERX_PASS2_NICVF      0xA034
-#define        PCI_SUB_DEVICE_ID_THUNDERX_PASS1_NICVF  0xA11E
-#define        PCI_SUB_DEVICE_ID_THUNDERX_PASS2_NICVF  0xA134
+#define        PCI_VENDOR_ID_CAVIUM                            0x177D
+#define        PCI_DEVICE_ID_THUNDERX_CN88XX_PASS1_NICVF       0x0011
+#define        PCI_DEVICE_ID_THUNDERX_NICVF                    0xA034
+#define        PCI_SUB_DEVICE_ID_CN88XX_PASS1_NICVF            0xA11E
+#define        PCI_SUB_DEVICE_ID_CN88XX_PASS2_NICVF            0xA134
+#define        PCI_SUB_DEVICE_ID_CN81XX_NICVF                  0xA234
+#define        PCI_SUB_DEVICE_ID_CN83XX_NICVF                  0xA334
 
 #define NICVF_ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]))
 
 #define NICVF_GET_TX_STATS(reg) \
        nicvf_reg_read(nic, NIC_VNIC_TX_STAT_0_4 | (reg << 3))
 
-#define NICVF_PASS1    (PCI_SUB_DEVICE_ID_THUNDERX_PASS1_NICVF)
-#define NICVF_PASS2    (PCI_SUB_DEVICE_ID_THUNDERX_PASS2_NICVF)
-
-#define NICVF_CAP_TUNNEL_PARSING          (1ULL << 0)
+#define NICVF_CAP_TUNNEL_PARSING       (1ULL << 0)
+/* Additional word in Rx descriptor to hold optional tunneling extension info */
+#define NICVF_CAP_CQE_RX2              (1ULL << 1)
+/* The device capable of setting NIC_CQE_RX_S[APAD] == 0 */
+#define NICVF_CAP_DISABLE_APAD         (1ULL << 2)
 
 enum nicvf_tns_mode {
        NIC_TNS_BYPASS_MODE,
@@ -85,7 +88,7 @@ enum nicvf_err_e {
        NICVF_ERR_RSS_GET_SZ,    /* -8171 */
 };
 
-typedef nicvf_phys_addr_t (*rbdr_pool_get_handler)(void *opaque);
+typedef nicvf_phys_addr_t (*rbdr_pool_get_handler)(void *dev, void *opaque);
 
 struct nicvf_hw_rx_qstats {
        uint64_t q_rx_bytes;
@@ -194,8 +197,8 @@ int nicvf_qset_reclaim(struct nicvf *nic);
 
 int nicvf_qset_rbdr_config(struct nicvf *nic, uint16_t qidx);
 int nicvf_qset_rbdr_reclaim(struct nicvf *nic, uint16_t qidx);
-int nicvf_qset_rbdr_precharge(struct nicvf *nic, uint16_t ridx,
-                             rbdr_pool_get_handler handler, void *opaque,
+int nicvf_qset_rbdr_precharge(void *dev, struct nicvf *nic,
+                             uint16_t ridx, rbdr_pool_get_handler handler,
                              uint32_t max_buffs);
 int nicvf_qset_rbdr_active(struct nicvf *nic, uint16_t qidx);
 
@@ -217,6 +220,8 @@ uint32_t nicvf_qsize_sq_roundup(uint32_t val);
 
 void nicvf_vlan_hw_strip(struct nicvf *nic, bool enable);
 
+void nicvf_apad_config(struct nicvf *nic, bool enable);
+
 int nicvf_rss_config(struct nicvf *nic, uint32_t  qcnt, uint64_t cfg);
 int nicvf_rss_term(struct nicvf *nic);