net/cnxk: add devargs for min-max SPI
[dpdk.git] / drivers / common / cnxk / roc_nix_inl_priv.h
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(C) 2021 Marvell.
3  */
4 #ifndef _ROC_NIX_INL_PRIV_H_
5 #define _ROC_NIX_INL_PRIV_H_
6
7 struct nix_inl_dev {
8         /* Base device object */
9         struct dev dev;
10
11         /* PCI device */
12         struct plt_pci_device *pci_dev;
13
14         /* LF specific BAR2 regions */
15         uintptr_t nix_base;
16         uintptr_t ssow_base;
17         uintptr_t sso_base;
18         uintptr_t cpt_base;
19
20         /* MSIX vector offsets */
21         uint16_t nix_msixoff;
22         uint16_t ssow_msixoff;
23         uint16_t sso_msixoff;
24         uint16_t cpt_msixoff;
25
26         /* SSO data */
27         uint32_t xaq_buf_size;
28         uint32_t xae_waes;
29         uint32_t iue;
30         uint32_t nb_xae;
31         struct roc_sso_xaq_data xaq;
32         roc_nix_inl_sso_work_cb_t work_cb;
33         void *cb_args;
34         uint64_t *pkt_pools;
35         uint16_t pkt_pools_cnt;
36
37         /* NIX data */
38         uint8_t lf_tx_stats;
39         uint8_t lf_rx_stats;
40         uint16_t vwqe_interval;
41         uint16_t cints;
42         uint16_t qints;
43         struct roc_nix_rq rq;
44         uint16_t rq_refs;
45         bool is_nix1;
46         uint8_t spb_drop_pc;
47         uint8_t lpb_drop_pc;
48
49         /* NIX/CPT data */
50         void *inb_sa_base;
51         uint16_t inb_sa_sz;
52
53         /* CPT data */
54         struct roc_cpt_lf cpt_lf;
55
56         /* Device arguments */
57         uint8_t selftest;
58         uint16_t channel;
59         uint16_t chan_mask;
60         bool is_multi_channel;
61         uint32_t ipsec_in_min_spi;
62         uint32_t ipsec_in_max_spi;
63         uint32_t inb_spi_mask;
64         bool attach_cptlf;
65         bool wqe_skip;
66 };
67
68 int nix_inl_sso_register_irqs(struct nix_inl_dev *inl_dev);
69 void nix_inl_sso_unregister_irqs(struct nix_inl_dev *inl_dev);
70
71 int nix_inl_nix_register_irqs(struct nix_inl_dev *inl_dev);
72 void nix_inl_nix_unregister_irqs(struct nix_inl_dev *inl_dev);
73
74 uint16_t nix_inl_dev_pffunc_get(void);
75
76 #endif /* _ROC_NIX_INL_PRIV_H_ */