gpu/cuda: add NVIDIA A30X identifier for DPU
[dpdk.git] / drivers / gpu / cuda / cuda.c
index efb5d14..9e87c40 100644 (file)
@@ -62,6 +62,7 @@ static gdr_t gdrc_h;
 #define NVIDIA_GPU_A100_80GB_DPU_DEVICE_ID (0x20b8)
 
 #define NVIDIA_GPU_A30_24GB_DEVICE_ID (0x20b7)
+#define NVIDIA_GPU_A30_24GB_DPU_DEVICE_ID (0x20b9)
 #define NVIDIA_GPU_A10_24GB_DEVICE_ID (0x2236)
 
 #define NVIDIA_GPU_V100_32GB_SXM_DEVICE_ID (0x1db5)
@@ -95,6 +96,10 @@ static const struct rte_pci_id pci_id_cuda_map[] = {
                RTE_PCI_DEVICE(NVIDIA_GPU_VENDOR_ID,
                                NVIDIA_GPU_A30_24GB_DEVICE_ID)
        },
+       {
+               RTE_PCI_DEVICE(NVIDIA_GPU_VENDOR_ID,
+                               NVIDIA_GPU_A30_24GB_DPU_DEVICE_ID)
+       },
        {
                RTE_PCI_DEVICE(NVIDIA_GPU_VENDOR_ID,
                                NVIDIA_GPU_A10_24GB_DEVICE_ID)
@@ -169,7 +174,7 @@ cuda_loader(void)
        if (getenv("CUDA_PATH_L") == NULL)
                snprintf(cuda_path, 1024, "%s", "libcuda.so");
        else
-               snprintf(cuda_path, 1024, "%s%s", getenv("CUDA_PATH_L"), "libcuda.so");
+               snprintf(cuda_path, 1024, "%s/%s", getenv("CUDA_PATH_L"), "libcuda.so");
 
        cudalib = dlopen(cuda_path, RTLD_LAZY);
        if (cudalib == NULL) {
@@ -523,6 +528,8 @@ cuda_dev_info_get(struct rte_gpu *dev, struct rte_gpu_info *info)
                }
                dev->mpshared->info.total_memory = parent_info.total_memory;
 
+               dev->mpshared->info.page_size = parent_info.page_size;
+
                /*
                 * GPU Device private info
                 */
@@ -1173,6 +1180,8 @@ cuda_gpu_probe(__rte_unused struct rte_pci_driver *pci_drv, struct rte_pci_devic
                return -rte_errno;
        }
 
+       dev->mpshared->info.page_size = (size_t)GPU_PAGE_SIZE;
+
        /*
         * GPU Device private info
         */