1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(C) 2021 Marvell.
4 #include "cn10k_ethdev.h"
7 cn10k_nix_configure(struct rte_eth_dev *eth_dev)
9 struct cnxk_eth_dev *dev = cnxk_eth_pmd_priv(eth_dev);
12 /* Common nix configure */
13 rc = cnxk_nix_configure(eth_dev);
17 plt_nix_dbg("Configured port%d platform specific rx_offload_flags=%x"
18 " tx_offload_flags=0x%x",
19 eth_dev->data->port_id, dev->rx_offload_flags,
20 dev->tx_offload_flags);
24 /* Update platform specific eth dev ops */
26 nix_eth_dev_ops_override(void)
34 /* Update platform specific ops */
35 cnxk_eth_dev_ops.dev_configure = cn10k_nix_configure;
39 cn10k_nix_remove(struct rte_pci_device *pci_dev)
41 return cnxk_nix_remove(pci_dev);
45 cn10k_nix_probe(struct rte_pci_driver *pci_drv, struct rte_pci_device *pci_dev)
47 struct rte_eth_dev *eth_dev;
50 if (RTE_CACHE_LINE_SIZE != 64) {
51 plt_err("Driver not compiled for CN10K");
57 plt_err("Failed to initialize platform model, rc=%d", rc);
61 nix_eth_dev_ops_override();
64 rc = cnxk_nix_probe(pci_drv, pci_dev);
68 if (rte_eal_process_type() != RTE_PROC_PRIMARY) {
69 eth_dev = rte_eth_dev_allocated(pci_dev->device.name);
76 static const struct rte_pci_id cn10k_pci_nix_map[] = {
77 CNXK_PCI_ID(PCI_SUBSYSTEM_DEVID_CN10KA, PCI_DEVID_CNXK_RVU_PF),
78 CNXK_PCI_ID(PCI_SUBSYSTEM_DEVID_CN10KAS, PCI_DEVID_CNXK_RVU_PF),
79 CNXK_PCI_ID(PCI_SUBSYSTEM_DEVID_CN10KA, PCI_DEVID_CNXK_RVU_VF),
80 CNXK_PCI_ID(PCI_SUBSYSTEM_DEVID_CN10KAS, PCI_DEVID_CNXK_RVU_VF),
81 CNXK_PCI_ID(PCI_SUBSYSTEM_DEVID_CN10KA, PCI_DEVID_CNXK_RVU_AF_VF),
82 CNXK_PCI_ID(PCI_SUBSYSTEM_DEVID_CN10KAS, PCI_DEVID_CNXK_RVU_AF_VF),
88 static struct rte_pci_driver cn10k_pci_nix = {
89 .id_table = cn10k_pci_nix_map,
90 .drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_NEED_IOVA_AS_VA |
92 .probe = cn10k_nix_probe,
93 .remove = cn10k_nix_remove,
96 RTE_PMD_REGISTER_PCI(net_cn10k, cn10k_pci_nix);
97 RTE_PMD_REGISTER_PCI_TABLE(net_cn10k, cn10k_pci_nix_map);
98 RTE_PMD_REGISTER_KMOD_DEP(net_cn10k, "vfio-pci");