Hi all,
I am bringing up a linux ptp4l stack on a new timer IP. Developed linux PTP driver and registered ptp_clock_info ops. This timer IP is used with xilinx axi ethernet MAC driver[1]. [1]: https://github.com/Xilinx/linux-xlnx/blob/master/drivers/net/ethernet/xilinx/xilinx_axienet_main.c ## Timer driver static struct ptp_clock_info xlnx_ptp_clock_info = { .owner = THIS_MODULE, .name = "Xilinx Timer", .max_adj = 64000000, /* Safe max adjustment for clock rate */ .n_ext_ts = 0, .adjfine = xlnx_ptp_adjfine, .adjtime = xlnx_ptp_adjtime, .gettime64 = xlnx_ptp_gettime, .settime64 = xlnx_ptp_settime, .enable = xlnx_ptp_enable, } On setup i am using a xilinx development and a peer 10G solarflare PTP enabled NIC. <xilinx> ./ptp4l -i eth0 -m -s <x86> sudo ptp4l -i enp8s0f0 -m In execution, we see that s2 servo state is locked, but master offset keep on randomly drifting and path delay also increments. ptp4l[4383.158]: selected /dev/ptp0 as PTP clock ptp4l[4383.159]: port 1: INITIALIZING to LISTENING on INIT_COMPLETE ptp4l[4383.159]: port 0: INITIALIZING to LISTENING on INIT_COMPLETE ptp4l[4383.722]: port 1: new foreign master 000f53.fffe.5df6d0-1 ptp4l[4387.723]: selected best master clock 000f53.fffe.5df6d0 ptp4l[4387.723]: port 1: LISTENING to UNCALIBRATED on RS_SLAVE ptp4l[4389.732]: master offset -53164 s0 freq -161 path delay 796594 ptp4l[4390.733]: master offset -54463 s1 freq -1460 path delay 798058 ptp4l[4391.733]: master offset 646235836 s2 freq +64000000 path delay 798058 ptp4l[4391.733]: port 1: UNCALIBRATED to SLAVE on MASTER_CLOCK_SELECTED ptp4l[4392.733]: master offset 582239489 s2 freq +64000000 path delay 798058 ptp4l[4393.733]: master offset 518232623 s2 freq +64000000 path delay 799522 ptp4l[4394.733]: master offset 448773596 s2 freq +64000000 path delay 6251523 ptp4l[4395.733]: master offset 384768321 s2 freq +64000000 path delay 6251523 ptp4l[4396.733]: master offset 316756233 s2 freq +64000000 path delay 10257161 ptp4l[4397.733]: master offset 252750893 s2 freq +64000000 path delay 10257161 ptp4l[4398.733]: master offset 188742507 s2 freq +64000000 path delay 10257161 ptp4l[4399.733]: master offset 124014381 s2 freq +64000000 path delay 10980343 ptp4l[4400.733]: master offset 58816171 s2 freq +58814711 path delay 12170615 ptp4l[4401.733]: master offset -3604 s2 freq +17639787 path delay 12170615 ptp4l[4402.734]: master offset -17651648 s2 freq -9338 path delay 12170615 ptp4l[4403.734]: master offset -16921992 s2 freq -4575176 path delay 11447433 ptp4l[4404.734]: master offset -9733286 s2 freq -2463068 path delay 8833635 ptp4l[4405.734]: master offset -7269685 s2 freq -2919453 path delay 8833635 ptp4l[4406.734]: master offset 2034962 s2 freq +4204289 path delay 2448681 ptp4l[4407.734]: master offset -339428 s2 freq +2440388 path delay 619614 ptp4l[4408.734]: master offset -2780339 s2 freq -102352 path delay 619614 ptp4l[4409.734]: master offset -2081579 s2 freq -237694 path delay 22823 ptp4l[4410.734]: master offset -1843879 s2 freq -624467 path delay 22823 ptp4l[4411.734]: master offset -1195631 s2 freq -529383 path delay -965 ptp4l[4412.734]: master offset -579920 s2 freq -272361 path delay -87223 ptp4l[4413.734]: master offset -307496 s2 freq -173913 path delay -87223 ptp4l[4414.734]: master offset -133554 s2 freq -92220 path delay -87223 ptp4l[4415.735]: master offset -41315 s2 freq -40047 path delay -87223 ptp4l[4416.735]: master offset -83155 s2 freq -94282 path delay -5320 ptp4l[4417.735]: master offset -26825 s2 freq -62898 path delay 32631 ptp4l[4418.735]: master offset 14971 s2 freq -29150 path delay 53745 ptp4l[4419.735]: master offset 44127 s2 freq +4498 path delay 53745 ptp4l[4420.735]: master offset 30279 s2 freq +3888 path delay 63103 ptp4l[4421.735]: master offset 26390 s2 freq +9082 path delay 63103 ptp4l[4422.735]: master offset 7912 s2 freq -1479 path delay 72497 ptp4l[4423.735]: master offset 4382 s2 freq -2635 path delay 77507 ptp4l[4424.735]: master offset 5687 s2 freq -15 path delay 78843 ptp4l[4425.735]: master offset 3826 s2 freq -170 path delay 80716 ptp4l[4426.735]: master offset -1011 s2 freq -3860 path delay 85725 ptp4l[4427.735]: master offset 1683 s2 freq -1469 path delay 86888 ptp4l[4428.736]: master offset 1444 s2 freq -1203 path delay 88601 ptp4l[4429.736]: master offset -396 s2 freq -2610 path delay 91642 ptp4l[4430.736]: master offset 830 s2 freq -1503 path delay 93022 ptp4l[4431.736]: master offset 2335 s2 freq +251 path delay 93022 ptp4l[4432.736]: master offset 984 s2 freq -399 path delay 94122 ptp4l[4433.736]: master offset -1269 s2 freq -2357 path delay 96774 ptp4l[4434.736]: master offset -1824 s2 freq -3293 path delay 99686 ptp4l[4435.736]: master offset -1273 s2 freq -3289 path delay 102428 ptp4l[4436.736]: master offset 2015 s2 freq -383 path delay 102428 ptp4l[4437.736]: master offset -5199 s2 freq -6992 path delay 110022 ptp4l[4438.736]: master offset 1797 s2 freq -1556 path delay 110022 ptp4l[4439.736]: master offset 1005 s2 freq -1809 path delay 112372 ptp4l[4440.737]: master offset -182 s2 freq -2694 path delay 115368 ptp4l[4441.737]: master offset -1585 s2 freq -4152 path delay 119467 ptp4l[4442.737]: master offset -319 s2 freq -3361 path delay 122348 ptp4l[4443.737]: master offset 386 s2 freq -2752 path delay 125008 ptp4l[4444.737]: master offset 3135 s2 freq +113 path delay 125008 ptp4l[4445.737]: master offset -3353 s2 freq -5435 path delay 131385 ptp4l[4446.737]: master offset -511 s2 freq -3599 path delay 133978 ptp4l[4447.737]: master offset 334 s2 freq -2907 path delay 136733 - To isolate the issue - i commented out adjfine (to rule out any issues with period adjustment logic in timer IP) in the PTP driver. Then the path delay keeps on incrementing. root@xilinx-zcu216-es1-2020_2:~# ptp4l -i eth0 -m -s ptp4l[555.918]: selected /dev/ptp0 as PTP clock [ 555.977723] Skip ptp_adjfine :: 6666666666666 ptp4l[555.928]: port 1: INITIALIZING to LISTENING on INIT_COMPLETE ptp4l[555.928]: port 0: INITIALIZING to LISTENING on INIT_COMPLETE ptp4l[556.098]: port 1: new foreign master 000f53.fffe.0e9fb0-1 ptp4l[560.098]: selected best master clock 000f53.fffe.0e9fb0 ptp4l[560.098]: running in a temporal vortex ptp4l[560.098]: port 1: LISTENING to UNCALIBRATED on RS_SLAVE ptp4l[562.133]: master offset -3133922938910257 s0 freq +0 path delay 1380002 ptp4l[563.137]: master offset -3133922938910503 s1 freq -246 path delay 1382020 ptp4l[564.138]: master offset 111943930729 s2 freq +64000000 path delay 1382020 ptp4l[564.138]: port 1: UNCALIBRATED to SLAVE on MASTER_CLOCK_SELECTED ptp4l[565.138]: master offset 111943932497 s2 freq +64000000 path delay 1382020 ptp4l[566.138]: master offset 111943934581 s2 freq +64000000 path delay 1381708 ptp4l[567.138]: master offset 111943937204 s2 freq +64000000 path delay 1380855 ptp4l[568.138]: master offset 111943939827 s2 freq +64000000 path delay 1380002 ptp4l[569.138]: master offset 111944623788 s2 freq +64000000 path delay 697812 ptp4l[570.138]: master offset 111945305114 s2 freq +64000000 path delay 18250 ptp4l[571.138]: master offset 111945306887 s2 freq +64000000 path delay 18250 ptp4l[572.138]: master offset 111945305948 s2 freq +64000000 path delay 20961 ptp4l[573.138]: master offset 111945307730 s2 freq +64000000 path delay 20961 ptp4l[574.138]: master offset 111945309504 s2 freq +64000000 path delay 20961 ptp4l[575.138]: master offset 111945311282 s2 freq +64000000 path delay 20961 ptp4l[576.138]: master offset 111945307801 s2 freq +64000000 path delay 26204 ptp4l[577.138]: master offset 111945305599 s2 freq +64000000 path delay 30176 ptp4l[578.139]: master offset 111945305691 s2 freq +64000000 path delay 31847 Any thoughts on how we can narrow down this PTP drift issue further? Thanks, Radhey
_______________________________________________ Linuxptp-users mailing list Linuxptp-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linuxptp-users