110 lines
2.3 KiB
C
110 lines
2.3 KiB
C
|
/* 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 */
|