mirror of https://github.com/F-Stack/f-stack.git
142 lines
3.2 KiB
C
142 lines
3.2 KiB
C
/* 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__*/
|