1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(c) 2021 Intel Corporation
5 #include <rte_bus_pci.h>
7 #include "idxd_internal.h"
9 #define IDXD_VENDOR_ID 0x8086
10 #define IDXD_DEVICE_ID_SPR 0x0B25
12 #define IDXD_PMD_DMADEV_NAME_PCI dmadev_idxd_pci
14 const struct rte_pci_id pci_id_idxd_map[] = {
15 { RTE_PCI_DEVICE(IDXD_VENDOR_ID, IDXD_DEVICE_ID_SPR) },
16 { .vendor_id = 0, /* sentinel */ },
20 idxd_dmadev_probe_pci(struct rte_pci_driver *drv, struct rte_pci_device *dev)
23 char name[PCI_PRI_STR_SIZE];
25 rte_pci_device_name(&dev->addr, name, sizeof(name));
26 IDXD_PMD_INFO("Init %s on NUMA node %d", name, dev->device.numa_node);
27 dev->device.driver = &drv->driver;
33 idxd_dmadev_remove_pci(struct rte_pci_device *dev)
35 char name[PCI_PRI_STR_SIZE];
37 rte_pci_device_name(&dev->addr, name, sizeof(name));
39 IDXD_PMD_INFO("Closing %s on NUMA node %d",
40 name, dev->device.numa_node);
45 struct rte_pci_driver idxd_pmd_drv_pci = {
46 .id_table = pci_id_idxd_map,
47 .drv_flags = RTE_PCI_DRV_NEED_MAPPING,
48 .probe = idxd_dmadev_probe_pci,
49 .remove = idxd_dmadev_remove_pci,
52 RTE_PMD_REGISTER_PCI(IDXD_PMD_DMADEV_NAME_PCI, idxd_pmd_drv_pci);
53 RTE_PMD_REGISTER_PCI_TABLE(IDXD_PMD_DMADEV_NAME_PCI, pci_id_idxd_map);
54 RTE_PMD_REGISTER_KMOD_DEP(IDXD_PMD_DMADEV_NAME_PCI, "vfio-pci");
55 RTE_PMD_REGISTER_PARAM_STRING(dmadev_idxd_pci, "max_queues=0");