Branch data Line data Source code
1 : : /* SPDX-License-Identifier: BSD-3-Clause
2 : : * Copyright(c) 2023 Corigine, Inc.
3 : : * All rights reserved.
4 : : */
5 : :
6 : : #include "nfp_dev.h"
7 : :
8 : : #include <nfp_platform.h>
9 : : #include <eal_export.h>
10 : : #include <rte_bitops.h>
11 : :
12 : : /*
13 : : * Note: The value of 'max_qc_size' is different from kernel driver,
14 : : * because DPDK use 'uint16_t' as the data type.
15 : : */
16 : : const struct nfp_dev_info nfp_dev_info[NFP_DEV_CNT] = {
17 : : [NFP_DEV_NFP3800] = {
18 : : .qc_idx_mask = GENMASK(8, 0),
19 : : .qc_addr_offset = 0x400000,
20 : : .min_qc_size = 512,
21 : : .max_qc_size = RTE_BIT32(15), /**< 32K */
22 : :
23 : : .chip_names = "NFP3800",
24 : : .pcie_cfg_expbar_offset = 0x0a00,
25 : : .qc_area_sz = 0x100000,
26 : : .pf_num_per_unit = 4,
27 : : },
28 : : [NFP_DEV_NFP3800_VF] = {
29 : : .qc_idx_mask = GENMASK(8, 0),
30 : : .qc_addr_offset = 0,
31 : : .min_qc_size = 512,
32 : : .max_qc_size = RTE_BIT32(15), /**< 32K */
33 : : },
34 : : [NFP_DEV_NFP6000] = {
35 : : .qc_idx_mask = GENMASK(7, 0),
36 : : .qc_addr_offset = 0x80000,
37 : : .min_qc_size = 256,
38 : : .max_qc_size = RTE_BIT32(15), /**< 32K */
39 : :
40 : : .chip_names = "NFP4000/NFP6000",
41 : : .pcie_cfg_expbar_offset = 0x0400,
42 : : .qc_area_sz = 0x80000,
43 : : .pf_num_per_unit = 1,
44 : : },
45 : : [NFP_DEV_NFP6000_VF] = {
46 : : .qc_idx_mask = GENMASK(7, 0),
47 : : .qc_addr_offset = 0,
48 : : .min_qc_size = 256,
49 : : .max_qc_size = RTE_BIT32(15), /**< 32K */
50 : : },
51 : : };
52 : :
53 : : RTE_EXPORT_INTERNAL_SYMBOL(nfp_dev_info_get)
54 : : const struct nfp_dev_info *
55 : 0 : nfp_dev_info_get(uint16_t device_id)
56 : : {
57 : : enum nfp_dev_id id;
58 : :
59 [ # # # # : 0 : switch (device_id) {
# ]
60 : : case PCI_DEVICE_ID_NFP3800_PF_NIC:
61 : : id = NFP_DEV_NFP3800;
62 : : break;
63 : : case PCI_DEVICE_ID_NFP3800_VF_NIC:
64 : : id = NFP_DEV_NFP3800_VF;
65 : : break;
66 : : case PCI_DEVICE_ID_NFP4000_PF_NIC:
67 : : case PCI_DEVICE_ID_NFP6000_PF_NIC:
68 : : id = NFP_DEV_NFP6000;
69 : : break;
70 : : case PCI_DEVICE_ID_NFP6000_VF_NIC:
71 : : id = NFP_DEV_NFP6000_VF;
72 : : break;
73 : : default:
74 : : id = NFP_DEV_CNT;
75 : : break;
76 : : }
77 : :
78 : : if (id >= NFP_DEV_CNT)
79 : : return NULL;
80 : :
81 : 0 : return &nfp_dev_info[id];
82 : : }
|