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