xref: /dpdk/drivers/common/cnxk/roc_cpt_sg.h (revision a3ae69e0bb8e89f3a0459ad181545113c46fa67b)
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(C) 2022 Marvell.
3  */
4 
5 #ifndef _ROC_CPT_SG_H_
6 #define _ROC_CPT_SG_H_
7 
8 #define ROC_DMA_MODE_SG (1 << 7)
9 
10 #define ROC_MAX_SG_IN_OUT_CNT 128
11 #define ROC_MAX_SG_CNT	      (ROC_MAX_SG_IN_OUT_CNT / 2)
12 
13 #define ROC_SG_LIST_HDR_SIZE (8u)
14 #define ROC_SG_ENTRY_SIZE    sizeof(struct roc_sglist_comp)
15 #define ROC_SG_MAX_COMP	     25
16 #define ROC_SG_MAX_DLEN_SIZE (ROC_SG_LIST_HDR_SIZE + (ROC_SG_MAX_COMP * ROC_SG_ENTRY_SIZE))
17 
18 struct roc_sglist_comp {
19 	union {
20 		uint64_t len;
21 		struct {
22 			uint16_t len[4];
23 		} s;
24 	} u;
25 	uint64_t ptr[4];
26 };
27 
28 struct roc_sg2list_comp {
29 	union {
30 		uint64_t len;
31 		struct {
32 			uint16_t len[3];
33 			uint16_t valid_segs;
34 		} s;
35 	} u;
36 	uint64_t ptr[3];
37 };
38 
39 #endif /* _ROC_CPT_SG_H_ */
40