f-stack/dpdk/drivers/common/cnxk/hw/dpi.h

142 lines
3.2 KiB
C
Raw Normal View History

2022-09-06 04:00:10 +00:00
/* SPDX-License-Identifier: BSD-3-Clause
* Copyright(C) 2021 Marvell.
*/
/**
* DPI device HW definitions.
*/
#ifndef DEV_DPI_HW_H
#define DEV_DPI_HW_H
#include <stdint.h>
/* DPI VF register offsets from VF_BAR0 */
#define DPI_VDMA_EN (0x0)
#define DPI_VDMA_REQQ_CTL (0x8)
#define DPI_VDMA_DBELL (0x10)
#define DPI_VDMA_SADDR (0x18)
#define DPI_VDMA_COUNTS (0x20)
#define DPI_VDMA_NADDR (0x28)
#define DPI_VDMA_IWBUSY (0x30)
#define DPI_VDMA_CNT (0x38)
#define DPI_VF_INT (0x100)
#define DPI_VF_INT_W1S (0x108)
#define DPI_VF_INT_ENA_W1C (0x110)
#define DPI_VF_INT_ENA_W1S (0x118)
/**
* Enumeration dpi_hdr_xtype_e
*
* DPI Transfer Type Enumeration
* Enumerates the pointer type in DPI_DMA_INSTR_HDR_S[XTYPE].
*/
#define DPI_XTYPE_OUTBOUND (0)
#define DPI_XTYPE_INBOUND (1)
#define DPI_XTYPE_INTERNAL_ONLY (2)
#define DPI_XTYPE_EXTERNAL_ONLY (3)
#define DPI_HDR_XTYPE_MASK 0x3
#define DPI_HDR_PT_ZBW_CA 0x0
#define DPI_HDR_PT_ZBW_NC 0x1
#define DPI_HDR_PT_WQP 0x2
#define DPI_HDR_PT_WQP_NOSTATUS 0x0
#define DPI_HDR_PT_WQP_STATUSCA 0x1
#define DPI_HDR_PT_WQP_STATUSNC 0x3
#define DPI_HDR_PT_CNT 0x3
#define DPI_HDR_PT_MASK 0x3
#define DPI_HDR_TT_MASK 0x3
#define DPI_HDR_GRP_MASK 0x3FF
#define DPI_HDR_FUNC_MASK 0xFFFF
/* Big endian data bit position in DMA local pointer */
#define DPI_LPTR_BED_BIT_POS (60)
#define DPI_MIN_CMD_SIZE 8
#define DPI_MAX_CMD_SIZE 64
/**
* Structure dpi_instr_hdr_s for CN9K
*
* DPI DMA Instruction Header Format
*/
union dpi_instr_hdr_s {
uint64_t u[4];
struct dpi_dma_instr_hdr_s_s {
uint64_t tag : 32;
uint64_t tt : 2;
uint64_t grp : 10;
uint64_t reserved_44_47 : 4;
uint64_t nfst : 4;
uint64_t reserved_52_53 : 2;
uint64_t nlst : 4;
uint64_t reserved_58_63 : 6;
/* Word 0 - End */
uint64_t aura : 20;
uint64_t func : 16;
uint64_t pt : 2;
uint64_t reserved_102 : 1;
uint64_t pvfe : 1;
uint64_t fl : 1;
uint64_t ii : 1;
uint64_t fi : 1;
uint64_t ca : 1;
uint64_t csel : 1;
uint64_t reserved_109_111 : 3;
uint64_t xtype : 2;
uint64_t reserved_114_119 : 6;
uint64_t fport : 2;
uint64_t reserved_122_123 : 2;
uint64_t lport : 2;
uint64_t reserved_126_127 : 2;
/* Word 1 - End */
uint64_t ptr : 64;
/* Word 2 - End */
uint64_t reserved_192_255 : 64;
/* Word 3 - End */
} s;
};
/**
* Structure dpi_cn10k_instr_hdr_s for CN10K
*
* DPI DMA Instruction Header Format
*/
union dpi_cn10k_instr_hdr_s {
uint64_t u[4];
struct dpi_cn10k_dma_instr_hdr_s_s {
uint64_t nfst : 4;
uint64_t reserved_4_5 : 2;
uint64_t nlst : 4;
uint64_t reserved_10_11 : 2;
uint64_t pvfe : 1;
uint64_t reserved_13 : 1;
uint64_t func : 16;
uint64_t aura : 20;
uint64_t xtype : 2;
uint64_t reserved_52_53 : 2;
uint64_t pt : 2;
uint64_t fport : 2;
uint64_t reserved_58_59 : 2;
uint64_t lport : 2;
uint64_t reserved_62_63 : 2;
/* Word 0 - End */
uint64_t ptr : 64;
/* Word 1 - End */
uint64_t tag : 32;
uint64_t tt : 2;
uint64_t grp : 10;
uint64_t reserved_172_173 : 2;
uint64_t fl : 1;
uint64_t ii : 1;
uint64_t fi : 1;
uint64_t ca : 1;
uint64_t csel : 1;
uint64_t reserved_179_191 : 3;
/* Word 2 - End */
uint64_t reserved_192_255 : 64;
/* Word 3 - End */
} s;
};
#endif /*__DEV_DPI_HW_H__*/