numam-dpdk/drivers/raw/ifpga/afu_pmd_he_hssi.h

110 lines
2.3 KiB
C
Raw Normal View History

/* SPDX-License-Identifier: BSD-3-Clause
* Copyright(c) 2022 Intel Corporation
*/
#ifndef AFU_PMD_HE_HSSI_H
#define AFU_PMD_HE_HSSI_H
#ifdef __cplusplus
extern "C" {
#endif
#include "afu_pmd_core.h"
#include "rte_pmd_afu.h"
#define HE_HSSI_UUID_L 0xbb370242ac130002
#define HE_HSSI_UUID_H 0x823c334c98bf11ea
#define NUM_HE_HSSI_PORTS 8
/* HE-HSSI registers definition */
#define TRAFFIC_CTRL_CMD 0x30
#define TRAFFIC_CTRL_DATA 0x38
#define TRAFFIC_CTRL_CH_SEL 0x40
#define AFU_SCRATCHPAD 0x48
#define TG_NUM_PKT 0x3c00
#define TG_PKT_LEN_TYPE 0x3c01
#define TG_DATA_PATTERN 0x3c02
#define TG_START_XFR 0x3c03
#define TG_STOP_XFR 0x3c04
#define TG_SRC_MAC_L 0x3c05
#define TG_SRC_MAC_H 0x3c06
#define TG_DST_MAC_L 0x3c07
#define TG_DST_MAC_H 0x3c08
#define TG_PKT_XFRD 0x3c09
#define TG_NUM_RND_SEEDS 3
#define TG_RANDOM_SEED(n) (0x3c0a + (n))
#define TG_PKT_LEN 0x3c0d
#define TM_NUM_PKT 0x3d00
#define TM_PKT_GOOD 0x3d01
#define TM_PKT_BAD 0x3d02
#define TM_BYTE_CNT0 0x3d03
#define TM_BYTE_CNT1 0x3d04
#define TM_AVST_RX_ERR 0x3d07
#define OVERFLOW_ERR (1 << 9)
#define LENGTH_ERR (1 << 8)
#define OVERSIZE_ERR (1 << 7)
#define UNDERSIZE_ERR (1 << 6)
#define MAC_CRC_ERR (1 << 5)
#define PHY_ERR (1 << 4)
#define ERR_VALID (1 << 3)
#define LOOPBACK_EN 0x3e00
#define LOOPBACK_FIFO_STATUS 0x3e01
#define ALMOST_EMPTY (1 << 1)
#define ALMOST_FULL (1 << 0)
#define MAILBOX_TIMEOUT_MS 100
#define MAILBOX_POLL_INTERVAL_MS 10
struct traffic_ctrl_cmd {
union {
uint64_t csr;
struct {
uint32_t read_cmd:1;
uint32_t write_cmd:1;
uint32_t ack_trans:1;
uint32_t rsvd1:29;
uint32_t afu_cmd_addr:16;
uint32_t rsvd2:16;
};
};
};
struct traffic_ctrl_data {
union {
uint64_t csr;
struct {
uint32_t read_data;
uint32_t write_data;
};
};
};
struct traffic_ctrl_ch_sel {
union {
uint64_t csr;
struct {
uint32_t channel_sel:3;
uint32_t rsvd1:29;
uint32_t rsvd2;
};
};
};
struct he_hssi_ctx {
uint8_t *addr;
};
struct he_hssi_priv {
struct rte_pmd_afu_he_hssi_cfg he_hssi_cfg;
struct he_hssi_ctx he_hssi_ctx;
};
#ifdef __cplusplus
}
#endif
#endif /* AFU_PMD_HE_HSSI_H */