-
Notifications
You must be signed in to change notification settings - Fork 50
Description
In our project, we already have synchronized the system clock and the shared and SmartNIC clocks in VMs using kvm_ptp on a Virtual Machine as shown below. It utilizes the ptp hardware support on the NICs, both in the actual hardware and the VMs to synchronize the system and the NIC clocks with ptp. It does that through ptp_daemon and the pcie buses (/dev/ptpX, dev/ptpY, etc). It is possible to do so with hardware devices which already have hardware support for ptp synchronization.

Now, we are using Alveo U280 accelerator cards for running P4 program to control the data plane. In that, we are trying to get hardware timestamps from the accelerator cards which would be ptp synchronized as mentioned above. But the issue is, U280 doesn’t have ARM core as the MPSoC so that the software driver used to control ptp (https://github.com/Xilinx/linux-xlnx/blob/master/drivers/ptp/Kconfig) cannot be directly used. We don’t know how to control the ptp from the OS. In MPSoC, Xilinx developed a specific linux-ptp driver that can be deployed on the MPSoC’s Arm core to control the ptp service on the hardware block (CMAC). I don’t think that we can directly use this specific driver to control the ptp on the CMAC.
So, do you have an existing support for linuxptp on open-nic driver? If not, is it possible to do that with the open-nicshell or cmac driver? Do we have any support for that on the driver? Can we control it from a Xilinx ptp library, or a memory file or pcie bus? How can we control the ptp services on the CMAC hardware IP from our x86 based linux host through the PCIE bus?
Any sort of help or pointers would be really helpful. Thanks in advance.