crypto/cnxk: add driver skeleton
[dpdk.git] / drivers / crypto / cnxk / cn10k_cryptodev.c
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(C) 2021 Marvell.
3  */
4
5 #include <rte_bus_pci.h>
6 #include <rte_common.h>
7 #include <rte_crypto.h>
8 #include <rte_cryptodev.h>
9 #include <rte_cryptodev_pmd.h>
10 #include <rte_dev.h>
11 #include <rte_pci.h>
12
13 #include "cn10k_cryptodev.h"
14 #include "roc_api.h"
15
16 uint8_t cn10k_cryptodev_driver_id;
17
18 static struct rte_pci_id pci_id_cpt_table[] = {
19         {
20                 RTE_PCI_DEVICE(PCI_VENDOR_ID_CAVIUM,
21                                PCI_DEVID_CN10K_RVU_CPT_VF)
22         },
23         /* sentinel */
24         {
25                 .device_id = 0
26         },
27 };
28
29 static struct rte_pci_driver cn10k_cryptodev_pmd = {
30         .id_table = pci_id_cpt_table,
31         .drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_NEED_IOVA_AS_VA,
32         .probe = NULL,
33         .remove = NULL,
34 };
35
36 static struct cryptodev_driver cn10k_cryptodev_drv;
37
38 RTE_PMD_REGISTER_PCI(CRYPTODEV_NAME_CN10K_PMD, cn10k_cryptodev_pmd);
39 RTE_PMD_REGISTER_PCI_TABLE(CRYPTODEV_NAME_CN10K_PMD, pci_id_cpt_table);
40 RTE_PMD_REGISTER_KMOD_DEP(CRYPTODEV_NAME_CN10K_PMD, "vfio-pci");
41 RTE_PMD_REGISTER_CRYPTO_DRIVER(cn10k_cryptodev_drv, cn10k_cryptodev_pmd.driver,
42                                cn10k_cryptodev_driver_id);