xref: /dpdk/drivers/common/cnxk/roc_idev_priv.h (revision 318ee1b0468299e92411ea8616073c477743b34e)
1665ff1ccSJerin Jacob /* SPDX-License-Identifier: BSD-3-Clause
2665ff1ccSJerin Jacob  * Copyright(C) 2021 Marvell.
3665ff1ccSJerin Jacob  */
4665ff1ccSJerin Jacob 
5665ff1ccSJerin Jacob #ifndef _ROC_IDEV_PRIV_H_
6665ff1ccSJerin Jacob #define _ROC_IDEV_PRIV_H_
7665ff1ccSJerin Jacob 
8665ff1ccSJerin Jacob /* Intra device related functions */
9124ff1a4SAshwin Sekhar T K struct npa_lf;
104ced2b04STomasz Duszynski struct roc_bphy;
110a2879b2SAnoob Joseph struct roc_cpt;
12bbcd191cSNithin Dabilpuram struct nix_inl_dev;
130f3f3ad8SNithin Dabilpuram 
140f3f3ad8SNithin Dabilpuram struct idev_nix_inl_cfg {
150f3f3ad8SNithin Dabilpuram 	uint64_t meta_aura;
167ea18718SRahul Bhansali 	uintptr_t meta_mempool;
170f3f3ad8SNithin Dabilpuram 	uint32_t nb_bufs;
180f3f3ad8SNithin Dabilpuram 	uint32_t buf_sz;
190f3f3ad8SNithin Dabilpuram 	uint32_t refs;
200f3f3ad8SNithin Dabilpuram };
210f3f3ad8SNithin Dabilpuram 
22b77d160fSRahul Bhansali struct idev_nix_inl_rx_inj_cfg {
23b77d160fSRahul Bhansali 	uint16_t chan[PLT_MAX_ETHPORTS];
24b77d160fSRahul Bhansali 	uint8_t rx_inject_en[PLT_MAX_ETHPORTS];
25b77d160fSRahul Bhansali };
26b77d160fSRahul Bhansali 
27665ff1ccSJerin Jacob struct idev_cfg {
289b727f85SPavan Nikhilesh 	uint16_t sso_pf_func;
29124ff1a4SAshwin Sekhar T K 	uint16_t npa_pf_func;
30124ff1a4SAshwin Sekhar T K 	struct npa_lf *npa;
31124ff1a4SAshwin Sekhar T K 	uint16_t npa_refcnt;
32124ff1a4SAshwin Sekhar T K 	uint32_t max_pools;
33665ff1ccSJerin Jacob 	uint16_t lmt_pf_func;
34665ff1ccSJerin Jacob 	uint16_t num_lmtlines;
35665ff1ccSJerin Jacob 	uint64_t lmt_base_addr;
364ced2b04STomasz Duszynski 	struct roc_bphy *bphy;
370a2879b2SAnoob Joseph 	struct roc_cpt *cpt;
38cb0e45cbSPavan Nikhilesh 	struct roc_sso *sso;
39*318ee1b0SAkhil Goyal 	struct roc_rvu_lf_head rvu_lf_list;
40f752780fSAkhil Goyal 	struct roc_mcs_head mcs_list;
41bbcd191cSNithin Dabilpuram 	struct nix_inl_dev *nix_inl_dev;
420f3f3ad8SNithin Dabilpuram 	struct idev_nix_inl_cfg inl_cfg;
43ec7c2f5aSShijith Thotton 	struct roc_nix_list roc_nix_list;
44b77d160fSRahul Bhansali 	struct idev_nix_inl_rx_inj_cfg inl_rx_inj_cfg;
45bbcd191cSNithin Dabilpuram 	plt_spinlock_t nix_inl_dev_lock;
4644a9307cSRakesh Kudurumalla 	plt_spinlock_t npa_dev_lock;
4794163794SAmit Prakash Shukla 	uint8_t dma_cs_offset;
48665ff1ccSJerin Jacob };
49665ff1ccSJerin Jacob 
50665ff1ccSJerin Jacob /* Generic */
51665ff1ccSJerin Jacob struct idev_cfg *idev_get_cfg(void);
52665ff1ccSJerin Jacob void idev_set_defaults(struct idev_cfg *idev);
53665ff1ccSJerin Jacob 
54124ff1a4SAshwin Sekhar T K /* idev npa */
55124ff1a4SAshwin Sekhar T K uint16_t idev_npa_pffunc_get(void);
56124ff1a4SAshwin Sekhar T K struct npa_lf *idev_npa_obj_get(void);
57124ff1a4SAshwin Sekhar T K uint32_t idev_npa_maxpools_get(void);
58124ff1a4SAshwin Sekhar T K void idev_npa_maxpools_set(uint32_t max_pools);
59124ff1a4SAshwin Sekhar T K uint16_t idev_npa_lf_active(struct dev *dev);
60124ff1a4SAshwin Sekhar T K 
619b727f85SPavan Nikhilesh /* idev sso */
629b727f85SPavan Nikhilesh void idev_sso_pffunc_set(uint16_t sso_pf_func);
639b727f85SPavan Nikhilesh uint16_t idev_sso_pffunc_get(void);
64cb0e45cbSPavan Nikhilesh struct roc_sso *idev_sso_get(void);
65cb0e45cbSPavan Nikhilesh void idev_sso_set(struct roc_sso *sso);
6694163794SAmit Prakash Shukla void idev_dma_cs_offset_set(uint8_t offset);
6794163794SAmit Prakash Shukla uint8_t idev_dma_cs_offset_get(void);
689b727f85SPavan Nikhilesh 
69665ff1ccSJerin Jacob /* idev lmt */
70665ff1ccSJerin Jacob uint16_t idev_lmt_pffunc_get(void);
71665ff1ccSJerin Jacob 
72665ff1ccSJerin Jacob #endif /* _ROC_IDEV_PRIV_H_ */
73