net/octeontx_ep: add Rx queue setup and release
[dpdk.git] / drivers / net / octeontx_ep / otx_ep_vf.h
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(C) 2021 Marvell.
3  */
4 #ifndef _OTX_EP_VF_H_
5 #define _OTX_EP_VF_H_
6
7 #define OTX_EP_RING_OFFSET                (0x1ull << 17)
8
9 /* OTX_EP VF IQ Registers */
10 #define OTX_EP_R_IN_CONTROL_START         (0x10000)
11 #define OTX_EP_R_IN_CONTROL(ring)  \
12         (OTX_EP_R_IN_CONTROL_START + ((ring) * OTX_EP_RING_OFFSET))
13
14 /* OTX_EP VF IQ Masks */
15 #define OTX_EP_R_IN_CTL_RPVF_MASK       (0xF)
16 #define OTX_EP_R_IN_CTL_RPVF_POS        (48)
17
18 #define OTX_EP_R_IN_CTL_IDLE            (0x1ull << 28)
19 #define OTX_EP_R_IN_CTL_RDSIZE          (0x3ull << 25) /* Setting to max(4) */
20 #define OTX_EP_R_IN_CTL_IS_64B          (0x1ull << 24)
21 #define OTX_EP_R_IN_CTL_ESR             (0x1ull << 1)
22 /* OTX_EP VF OQ Registers */
23 #define OTX_EP_R_OUT_CONTROL_START           (0x10150)
24 #define OTX_EP_R_OUT_CONTROL(ring)    \
25         (OTX_EP_R_OUT_CONTROL_START + ((ring) * OTX_EP_RING_OFFSET))
26 /* OTX_EP VF OQ Masks */
27 #define OTX_EP_R_OUT_CTL_ES_I         (1ull << 34)
28 #define OTX_EP_R_OUT_CTL_NSR_I        (1ull << 33)
29 #define OTX_EP_R_OUT_CTL_ROR_I        (1ull << 32)
30 #define OTX_EP_R_OUT_CTL_ES_D         (1ull << 30)
31 #define OTX_EP_R_OUT_CTL_NSR_D        (1ull << 29)
32 #define OTX_EP_R_OUT_CTL_ROR_D        (1ull << 28)
33 #define OTX_EP_R_OUT_CTL_ES_P         (1ull << 26)
34 #define OTX_EP_R_OUT_CTL_NSR_P        (1ull << 25)
35 #define OTX_EP_R_OUT_CTL_ROR_P        (1ull << 24)
36 #define OTX_EP_R_OUT_CTL_IMODE        (1ull << 23)
37
38 #define PCI_DEVID_OCTEONTX_EP_VF 0xa303
39
40 /* this is a static value set by SLI PF driver in octeon
41  * No handshake is available
42  * Change this if changing the value in SLI PF driver
43  */
44 #define SDP_GBL_WMARK 0x100
45
46 int
47 otx_ep_vf_setup_device(struct otx_ep_device *otx_ep);
48 #endif /*_OTX_EP_VF_H_ */