/* SPDX-License-Identifier: BSD-3-Clause * Copyright(C) 2021 Marvell International Ltd. */ #ifndef CNXK_DMADEV_H #define CNXK_DMADEV_H #define DPI_MAX_POINTER 15 #define DPI_QUEUE_STOP 0x0 #define DPI_QUEUE_START 0x1 #define STRM_INC(s) ((s).tail = ((s).tail + 1) % (s).max_cnt) #define DPI_MAX_DESC 1024 /* Set Completion data to 0xFF when request submitted, * upon successful request completion engine reset to completion status */ #define DPI_REQ_CDATA 0xFF #define CNXK_DPI_DEV_CONFIG (1ULL << 0) #define CNXK_DPI_VCHAN_CONFIG (1ULL << 1) #define CNXK_DPI_DEV_START (1ULL << 2) struct cnxk_dpi_compl_s { uint64_t cdata; void *cb_data; }; struct cnxk_dpi_cdesc_data_s { struct cnxk_dpi_compl_s *compl_ptr[DPI_MAX_DESC]; uint16_t max_cnt; uint16_t head; uint16_t tail; }; struct cnxk_dpi_conf { union dpi_instr_hdr_s hdr; struct cnxk_dpi_cdesc_data_s c_desc; }; struct cnxk_dpi_vf_s { struct roc_dpi rdpi; struct cnxk_dpi_conf conf; struct rte_dma_stats stats; uint64_t cmd[DPI_MAX_CMD_SIZE]; uint32_t num_words; uint16_t desc_idx; uint16_t flag; }; #endif