Enabling PPS on Xavier AGX

Finally I got something for the PPS injection in the AGX Xavier

For those with the same issues, here is what I did :

  • Activate PPS support, as mentioned in the thread, on the kernel in the file .config

      # PPS support
      CONFIG_PPS=y
      # CONFIG_PPS_DEBUG is not set
      # PPS clients support
      CONFIG_PPS_CLIENT_KTIMER=y
      CONFIG_PPS_CLIENT_LDISC=y
      CONFIG_PPS_CLIENT_GPIO=y
      # PPS generators support
      # CONFIG_NVPPS is not set
    
  • Then edit the file tegra194-soc-base.dtsi in nvidia/nvidia_sdk/JetPack_4.3_Linux_JETSON_AGX_XAVIER/Linux_for_Tegra/sources/hardware/nvidia/soc/t19x/kernel-dts/tegra194-soc by adding

      pps: pps_gpio {
      compatible = "pps-gpio";
      gpios = <&tegra_main_gpio 206 1>;
      assert-falling-edge;
      status = "okay";
      };
    
  • Then recompile the kernel and flash it, check pps0 and pps1 with pps-tools

Now, I try to configure ntp and ptp with this configuration.

For now, my configuration for ntp is :

server 127.127.20.0 mode 24 minpoll 3 burst iburst prefer
fudge 127.127.20.0 stratum 1 flag1 1 flag2 0 flag3 1 flag4 0 time1 0.0 time2 0.0 refid GPS0
server 127.127.28.0 minpoll 4
fudge  127.127.28.0 time1 0.0 refid NMEA
server 127.127.28.1 minpoll 4 prefer
fudge  127.127.28.1 refid PPS

ls -la /dev/gps*
lrwxrwxrwx 1 root root 12 déc.  18 15:10 /dev/gps0 -> /dev/ttyTHS0
lrwxrwxrwx 1 root root  9 déc.  18 15:10 /dev/gpspps0 -> /dev/pps1

nptime seems to be disagree to my setup

  $ntptime 
  ntp_gettime() returns code 0 (OK)
  time e3874a4a.9fb22000  Fri, Dec 18 2020 16:33:30.623, (.623812),
  maximum error 1205016 us, estimated error 16 us, TAI offset 0
  ntp_adjtime() returns code 0 (OK)
  modes 0x0 (),
  offset 0.000 us, frequency 0.000 ppm, interval 1 s,
  maximum error 1205016 us, estimated error 16 us,
  status 0x1 (PLL),
  time constant 7, precision 1.000 us, tolerance 500 ppm,

Any advises ?