So I possibly have a “quick” workaround that may work. I will need to test further.
On the Jetson Orin, I downloaded public_sources.tbz2. I then modified the source for nv-p2p.c & nv-p2p.h located here:
Linux_for_Tegra/source/public/nvidia_kernel_display_driver_source/kernel-open/
I changed all the exported function names.
For example from this:
nvidia_p2p_dma_unmap_pages
nvidia_p2p_get_pages
nvidia_p2p_put_pages
nvidia_p2p_dma_map_pages
nvidia_p2p_free_page_table
To this:
nvidia_p2p_dma_unmap_pages_old
nvidia_p2p_get_pages_old
nvidia_p2p_put_pages_old
nvidia_p2p_dma_map_pages_old
nvidia_p2p_free_page_table_old
I then rebuilt nvidia.ko using make in
Linux_for_Tegra/source/public/nvidia_kernel_display_driver_source/
After a successful build, I replaced the original nvidia.ko located at
/lib/modules/5.10.104-tegra/extra/opensrc-disp/nvidia.ko
With my newly built nvidia.ko module.
Afterwards, I loaded the nv-p2p module:
$ sudo insmod /lib/modules/5.10.104-tegra/kernel/drivers/nv-p2p/nvidia-p2p.ko
and finally I was able to load the picoevb-rdma module
sudo insmod picoevb-rdma.ko
Hopefully this helps.
Regards,
YK