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
17enum 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
25struct 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
40extern const struct nfp_dev_info nfp_dev_info[NFP_DEV_CNT];
41
42#endif
43