xref: /dpdk/drivers/net/nfp/nfpcore/nfp6000/nfp6000.h (revision 055ccb33f61d00ed5bec0174dd727d3b143963ac)
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2018 Netronome Systems, Inc.
3  * All rights reserved.
4  */
5 
6 #ifndef __NFP_NFP6000_H__
7 #define __NFP_NFP6000_H__
8 
9 #define NFP_ISL_EMEM0                   24
10 
11 #define NFP_MU_ADDR_ACCESS_TYPE_MASK    3ULL
12 #define NFP_MU_ADDR_ACCESS_TYPE_DIRECT  2ULL
13 
14 #define PUSHPULL(pull, push)       (((pull) << 4) | ((push) << 0))
15 #define PUSH_WIDTH(push_pull)      pushpull_width((push_pull) >> 0)
16 #define PULL_WIDTH(push_pull)      pushpull_width((push_pull) >> 4)
17 
18 static inline int
pushpull_width(int pp)19 pushpull_width(int pp)
20 {
21 	pp &= 0xf;
22 	if (pp == 0)
23 		return -EINVAL;
24 
25 	return 2 << pp;
26 }
27 
28 
29 static inline int
nfp_cppat_mu_locality_lsb(int mode,int addr40)30 nfp_cppat_mu_locality_lsb(int mode, int addr40)
31 {
32 	switch (mode) {
33 	case 0 ... 3:
34 		return addr40 ? 38 : 30;
35 	default:
36 		return -EINVAL;
37 	}
38 }
39 
40 #endif /* NFP_NFP6000_H */
41