1 // SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2 /* Copyright (C) 2019 Netronome Systems, Inc. */
3 
4 #include <linux/dma-mapping.h>
5 #include <linux/kernel.h>
6 #include <linux/sizes.h>
7 
8 #include "nfp_dev.h"
9 
10 const struct nfp_dev_info nfp_dev_info[NFP_DEV_CNT] = {
11 	[NFP_DEV_NFP3800] = {
12 		.dma_mask		= DMA_BIT_MASK(48),
13 		.qc_idx_mask		= GENMASK(8, 0),
14 		.qc_addr_offset		= 0x400000,
15 		.min_qc_size		= 512,
16 		.max_qc_size		= SZ_64K,
17 
18 		.chip_names		= "NFP3800",
19 		.pcie_cfg_expbar_offset	= 0x0a00,
20 		.pcie_expl_offset	= 0xd000,
21 		.qc_area_sz		= 0x100000,
22 	},
23 	[NFP_DEV_NFP3800_VF] = {
24 		.dma_mask		= DMA_BIT_MASK(48),
25 		.qc_idx_mask		= GENMASK(8, 0),
26 		.qc_addr_offset		= 0,
27 		.min_qc_size		= 512,
28 		.max_qc_size		= SZ_64K,
29 	},
30 	[NFP_DEV_NFP6000] = {
31 		.dma_mask		= DMA_BIT_MASK(40),
32 		.qc_idx_mask		= GENMASK(7, 0),
33 		.qc_addr_offset		= 0x80000,
34 		.min_qc_size		= 256,
35 		.max_qc_size		= SZ_256K,
36 
37 		.chip_names		= "NFP4000/NFP5000/NFP6000",
38 		.pcie_cfg_expbar_offset	= 0x0400,
39 		.pcie_expl_offset	= 0x1000,
40 		.qc_area_sz		= 0x80000,
41 	},
42 	[NFP_DEV_NFP6000_VF] = {
43 		.dma_mask		= DMA_BIT_MASK(40),
44 		.qc_idx_mask		= GENMASK(7, 0),
45 		.qc_addr_offset		= 0,
46 		.min_qc_size		= 256,
47 		.max_qc_size		= SZ_256K,
48 	},
49 };
50