1  /* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
2  /* Copyright (C) 2019 Netronome Systems, Inc. */
3  
4  #ifndef _NFP_DEV_H_
5  #define _NFP_DEV_H_
6  
7  #include <linux/types.h>
8  
9  #define PCI_VENDOR_ID_CORIGINE	0x1da8
10  #define PCI_DEVICE_ID_NFP3800	0x3800
11  #define PCI_DEVICE_ID_NFP4000	0x4000
12  #define PCI_DEVICE_ID_NFP5000	0x5000
13  #define PCI_DEVICE_ID_NFP6000	0x6000
14  #define PCI_DEVICE_ID_NFP3800_VF	0x3803
15  #define PCI_DEVICE_ID_NFP6000_VF	0x6003
16  
17  enum nfp_dev_id {
18  	NFP_DEV_NFP3800,
19  	NFP_DEV_NFP3800_VF,
20  	NFP_DEV_NFP6000,
21  	NFP_DEV_NFP6000_VF,
22  	NFP_DEV_CNT,
23  };
24  
25  struct nfp_dev_info {
26  	/* Required fields */
27  	u64 dma_mask;
28  	u32 qc_idx_mask;
29  	u32 qc_addr_offset;
30  	u32 min_qc_size;
31  	u32 max_qc_size;
32  
33  	/* PF-only fields */
34  	const char *chip_names;
35  	u32 pcie_cfg_expbar_offset;
36  	u32 pcie_expl_offset;
37  	u32 qc_area_sz;
38  };
39  
40  extern const struct nfp_dev_info nfp_dev_info[NFP_DEV_CNT];
41  
42  #endif
43