log: introduce logtype register macro
[dpdk.git] / drivers / net / pfe / pfe_hif.h
index fa3c08c..6aaf904 100644 (file)
@@ -1,5 +1,5 @@
 /* SPDX-License-Identifier: BSD-3-Clause
- * Copyright 2019 NXP
+ * Copyright 2018-2019 NXP
  */
 
 #ifndef _PFE_HIF_H_
 #define HIF_RX_DESC_NT         64
 #define HIF_TX_DESC_NT         2048
 
+#define HIF_FIRST_BUFFER       BIT(0)
+#define HIF_LAST_BUFFER                BIT(1)
+#define HIF_DONT_DMA_MAP       BIT(2)
+#define HIF_DATA_VALID         BIT(3)
+#define HIF_TSO                        BIT(4)
+
 enum {
        PFE_CL_GEM0 = 0,
        PFE_CL_GEM1,
@@ -63,6 +69,39 @@ struct hif_desc_sw {
        u16 flags;
 };
 
+struct hif_hdr {
+       u8 client_id;
+       u8 q_num;
+       u16 client_ctrl;
+       u16 client_ctrl1;
+};
+
+struct __hif_hdr {
+       union {
+               struct hif_hdr hdr;
+               u32 word[2];
+       };
+};
+
+struct hif_ipsec_hdr {
+       u16     sa_handle[2];
+} __packed;
+
+struct pfe_parse {
+       unsigned int packet_type;
+       uint16_t hash;
+       uint16_t parse_incomplete;
+       unsigned long long ol_flags;
+};
+
+/*  HIF_CTRL_TX... defines */
+#define HIF_CTRL_TX_CHECKSUM           BIT(2)
+
+/*  HIF_CTRL_RX... defines */
+#define HIF_CTRL_RX_OFFSET_OFST         (24)
+#define HIF_CTRL_RX_CHECKSUMMED                BIT(2)
+#define HIF_CTRL_RX_CONTINUED          BIT(1)
+
 struct pfe_hif {
        /* To store registered clients in hif layer */
        struct hif_client client[HIF_CLIENTS_MAX];
@@ -99,8 +138,19 @@ struct pfe_hif {
        struct rte_device *dev;
 };
 
+void hif_xmit_pkt(struct pfe_hif *hif, unsigned int client_id, unsigned int
+                       q_no, void *data, u32 len, unsigned int flags);
+void hif_process_client_req(struct pfe_hif *hif, int req, int data1, int
+                               data2);
 int pfe_hif_init(struct pfe *pfe);
 void pfe_hif_exit(struct pfe *pfe);
 void pfe_hif_rx_idle(struct pfe_hif *hif);
+int pfe_hif_rx_process(struct pfe *pfe, int budget);
+int pfe_hif_init_buffers(struct pfe_hif *hif);
+void pfe_tx_do_cleanup(struct pfe *pfe);
+
+#define __memcpy8(dst, src)            memcpy(dst, src, 8)
+#define __memcpy12(dst, src)           memcpy(dst, src, 12)
+#define __memcpy(dst, src, len)                memcpy(dst, src, len)
 
 #endif /* _PFE_HIF_H_ */