xref: /linux/include/uapi/misc/mrvl_cn10k_dpi.h (revision a1ff5a7d78a036d6c2178ee5acd6ba4946243800)
1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2 /*
3  * Marvell Octeon CN10K DPI driver
4  *
5  * Copyright (C) 2024 Marvell.
6  *
7  */
8 
9 #ifndef __MRVL_CN10K_DPI_H__
10 #define __MRVL_CN10K_DPI_H__
11 
12 #include <linux/types.h>
13 
14 #define DPI_MAX_ENGINES 6
15 
16 struct dpi_mps_mrrs_cfg {
17 	__u16 max_read_req_sz; /* Max read request size */
18 	__u16 max_payload_sz;  /* Max payload size */
19 	__u16 port; /* Ebus port */
20 	__u16 reserved; /* Reserved */
21 };
22 
23 struct dpi_engine_cfg {
24 	__u64 fifo_mask; /* FIFO size mask in KBytes */
25 	__u16 molr[DPI_MAX_ENGINES]; /* Max outstanding load requests */
26 	__u16 update_molr; /* '1' to update engine MOLR */
27 	__u16 reserved; /* Reserved */
28 };
29 
30 /* DPI ioctl numbers */
31 #define DPI_MAGIC_NUM	0xB8
32 
33 /* Set MPS & MRRS parameters */
34 #define DPI_MPS_MRRS_CFG _IOW(DPI_MAGIC_NUM, 1, struct dpi_mps_mrrs_cfg)
35 
36 /* Set Engine FIFO configuration */
37 #define DPI_ENGINE_CFG   _IOW(DPI_MAGIC_NUM, 2, struct dpi_engine_cfg)
38 
39 #endif /* __MRVL_CN10K_DPI_H__ */
40