File Index
Files and directories
Sign in
FILE

ntmp_private.h

File preview with syntax highlighting.

linux-6.19.14/drivers/net/ethernet/freescale/enetc/ntmp_private.h C
  1/* SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) */
  2/*
  3 * NTMP table request and response data buffer formats
  4 * Copyright 2025 NXP
  5 */
  6
  7#ifndef __NTMP_PRIVATE_H
  8#define __NTMP_PRIVATE_H
  9
 10#include <linux/bitfield.h>
 11#include <linux/fsl/ntmp.h>
 12
 13#define NTMP_EID_REQ_LEN	8
 14#define NETC_CBDR_BD_NUM	256
 15
 16union netc_cbd {
 17	struct {
 18		__le64 addr;
 19		__le32 len;
 20#define NTMP_RESP_LEN		GENMASK(19, 0)
 21#define NTMP_REQ_LEN		GENMASK(31, 20)
 22#define NTMP_LEN(req, resp)	(FIELD_PREP(NTMP_REQ_LEN, (req)) | \
 23				((resp) & NTMP_RESP_LEN))
 24		u8 cmd;
 25#define NTMP_CMD_DELETE		BIT(0)
 26#define NTMP_CMD_UPDATE		BIT(1)
 27#define NTMP_CMD_QUERY		BIT(2)
 28#define NTMP_CMD_ADD		BIT(3)
 29#define NTMP_CMD_QU		(NTMP_CMD_QUERY | NTMP_CMD_UPDATE)
 30		u8 access_method;
 31#define NTMP_ACCESS_METHOD	GENMASK(7, 4)
 32#define NTMP_AM_ENTRY_ID	0
 33#define NTMP_AM_EXACT_KEY	1
 34#define NTMP_AM_SEARCH		2
 35#define NTMP_AM_TERNARY_KEY	3
 36		u8 table_id;
 37		u8 ver_cci_rr;
 38#define NTMP_HDR_VERSION	GENMASK(5, 0)
 39#define NTMP_HDR_VER2		2
 40#define NTMP_CCI		BIT(6)
 41#define NTMP_RR			BIT(7)
 42		__le32 resv[3];
 43		__le32 npf;
 44#define NTMP_NPF		BIT(15)
 45	} req_hdr;	/* NTMP Request Message Header Format */
 46
 47	struct {
 48		__le32 resv0[3];
 49		__le16 num_matched;
 50		__le16 error_rr;
 51#define NTMP_RESP_ERROR		GENMASK(11, 0)
 52#define NTMP_RESP_RR		BIT(15)
 53		__le32 resv1[4];
 54	} resp_hdr; /* NTMP Response Message Header Format */
 55};
 56
 57struct ntmp_dma_buf {
 58	struct device *dev;
 59	size_t size;
 60	void *buf;
 61	dma_addr_t dma;
 62};
 63
 64struct ntmp_cmn_req_data {
 65	__le16 update_act;
 66	u8 dbg_opt;
 67	u8 tblv_qact;
 68#define NTMP_QUERY_ACT		GENMASK(3, 0)
 69#define NTMP_TBL_VER		GENMASK(7, 4)
 70#define NTMP_TBLV_QACT(v, a)	(FIELD_PREP(NTMP_TBL_VER, (v)) | \
 71				 ((a) & NTMP_QUERY_ACT))
 72};
 73
 74struct ntmp_cmn_resp_query {
 75	__le32 entry_id;
 76};
 77
 78/* Generic structure for request data by entry ID  */
 79struct ntmp_req_by_eid {
 80	struct ntmp_cmn_req_data crd;
 81	__le32 entry_id;
 82};
 83
 84/* MAC Address Filter Table Request Data Buffer Format of Add action */
 85struct maft_req_add {
 86	struct ntmp_req_by_eid rbe;
 87	struct maft_keye_data keye;
 88	struct maft_cfge_data cfge;
 89};
 90
 91/* MAC Address Filter Table Response Data Buffer Format of Query action */
 92struct maft_resp_query {
 93	__le32 entry_id;
 94	struct maft_keye_data keye;
 95	struct maft_cfge_data cfge;
 96};
 97
 98/* RSS Table Request Data Buffer Format of Update action */
 99struct rsst_req_update {
100	struct ntmp_req_by_eid rbe;
101	u8 groups[];
102};
103
104#endif
~/ Read-only file preview.