Orin AGX - PTP-Grandmaster via GNSS-PPS on "SYNC-1588" pin of AQR113C

Hello,

we are trying to set up a Orin-AGX Dev-Kit of yours to act as a PTP-Grandmaster.

For our goal to achieve best performance we attached a PPS to the carrierboard own AQR113C sync pin, available via test point TP2702 indicated by the schematics.
Running ethtool -T we get - like many others have reported here - the output “PTP Hardware Clock: 0”.
We set chrony up for PHC via /dev/ptp0, but the time increment seems not to be driven by the PPS, as we can disconnect the PPS with no effect, and still polling an increment, but freq = 0.

We have read quite an substantial amount of posts, starting from PPS in via GPIO up to updating the AQR113 firmware, which seems to be no straight forward approach.

We hope the support or an interested reader might be able to give us a hint.
Can the ARQ113 be configured to accept the PPS, so we can use the fractional secs to control the system clock ?

Looking forward to a reply

Hi BG99,

What’s the Jetpack version in use?
Could you share the block diagram of your connection for PPS signal? What’s the PPS source?

Have you configured the PPS correctly? Please share the full dmesg for further check.

It seems we’ve not verified the similar use case.

Hello Kevin,
thank your for your reply.

Jetpack in use : 6.2+b77

Block diagramm

NV Schematics

From AQR113 manual:
Sync_1588:
This is the PTP sync input used to align the PTP clocks on multiple PHYs on a platform to have the same time. The PHY timestamps the rising edge of this input and this timestamp can then be used on each of the PHYs to perform the alignment.

Please share the result of the following command on the AGX Orin devkit.

$ ethtool -T eno1

Have you tried using ptp4l?
Please also share /etc/linuxptp/ptp4l.conf on your board.

Hello Kevin,
thanks for your reply.

ethtool:
the latest version of ethtool available via apt is 5.16, that is what is on our Dev-Kits (5 of them in total).
This version seems to have a display bug - see No timestamp capabilities with ethtool -T.

Hence, this is the output of two of our Dev-Kits i have access to:

But i assume the timestamping capabilities should be identical to all Dev-Kits ?

ptp4l:
As of now, we are trying to use the PPS input of the NIC as a high precision, low delay hw timestamping unit, using chrony with it’s refclock command with the phc option, as stated in the chrony docs.
(see chrony doc - see “refclock” segment):

Alternatively, the pps refclock option can be enabled to treat the PHC as a PPS refclock, using only the sub-second offset for synchronisation. The driver supports the following options: ….”

As /dev/ptp0 is available (access is granted), we have tried the following chrony command :
refclock PHC /dev/ptp0:extpps,pin=0
but it does not like the “extpps” option. We are stuck here.

So, as our first goal, we want to have a chrony disciplined systemclock using the phc “Sync_1588” pin for precise timing.

Have you tried to install other release of ethtool manually?

Please try using /dev/ptp1 instead as following.

refclock PHC /dev/ptp1:extpps,pin=0

and also check chrony log through sudo journalctl -u chrony

Hello Kevin,

We are aware of the fact, that ethtool gives us PTP Hardware Clock: 0.

/dev/ptp0 is available - as with all our Dev-Kits
/dev/ptp1 is not - as with all our Dev-Kits

Edit:
Using
cat /sys/class/ptp/ptp0/clock_name
we obtain
ether_ptp_clk

So, by now we assume that the available /ptp0 is established via the nvethernet driver and the AQR113 ist not a separate PCI-Device but rather used as a PHY connected to the Jetson internal MGBE controller. Hence there is no ARQ113-PHC available. Otherweise there would be a /ptp1.

Are we correct ?

Okay, it should be /dev/ptp0 in your case.
yes, it seems you have to customize the nvethernet driver for this use case.

Or we would suggest using pps-gpio instead.

Hello Kevin,

thank you for your reply.

We have tried using the pps-gpio approach, and tuned the approach by clearing a CPU for pure PPS tasks, setting CPU governor and raising task priorities, but timestamping is showing errors in the range of 300 to 2000µs, which is not sufficient for multisensor applications we are having.
Hence we were looking for the alternative route via PHC.

Please let me know, if you have further input on how to improve the accuracy of the PPS-GPIO approach.

Could you share the exact error you hit?
Have you configured pps-gpio correctly and run ppstest to get the timestamp?

Sure, tests run with ppstest, also disconnecting the pps signal from the 40pin header to check for correct configuration.

Here is a plot of the chronyc statistics log with the estimated error plotted over a period of 10h.

… an zoomed in for details:

We can see periods of acceptable time control with 20-50µs time error, until it goes belly up.

Have you used chrony to sync system time with pps-signal and run the following command to sync HW clock?

$ sudo phc2sys -s CLOCK_REALTIME -c /dev/ptp0 -w -m

Please also try using Using the Jetson Linux Real-Time Kernel Package to check if it could help for your case.

Hi Kevin,

yes, we used chrony with results displayed above.

phc2sys:
From what i understand, this would be the 2nd stage in our attempt.
For the 2nd stage to make sense, we need to establish a PTP-Grandmaster on the Jetson (standalone setup with sensors) using the GNSS-PPS to sync systemtime. If successful with a synched systemtime - hopefully stable - we would want to control the PHC to send PTP messages to clients.

But at this point - stage 1 - we seem not able to establish a synched systemtime with suffiicient accuracy.

Please correct, if i am wrong.

P.S.
I am unavailable for the end of this and the following week.

Yes, you are correct.
The quality of a PTP Grandmaster is entirely dependent on the quality of its reference time source.That reference source is the system clock in current case. If the system clock itself is not sufficiently accurate, all subsequent operations, including syncing the PHC with phc2sys will fail to meet your precision requirements.

Please check if using RT kernel may help for this case.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.