Which clock is used in GTE timestamps?

In https://docs.nvidia.com/jetson/l4t/index.html#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide/generic_timestamp_engine.html

gte_mon prints “HW timestamp GPIO EVENT xxxx.”

What is the clock of this timestamp? How can I read this clock used by GPIO timestamps so that I can correlate the GPIO timestamps to system time? The clock was not the same with CLOCK_MONOTONIC in my tests.

hello xlz,

it’s TSC for hardware timestamp.
you may also refer to forum discussion thread, Topic 78821 for the details of timestamps.

Ah yes, thanks.

This is documented by the NVIDIA Xavier Series System-on-ChipTechnical Reference Manual, section Timestamping (GTE): The AON cluster implements a timestamp module (GTE) for logging the current TSC value when interrupts or GPIO events occur.

The TSC can be read with

int64_t tsc;
asm volatile("mrs %0, cntvct_el0" : "=r"(tsc));
int64_t freq;
asm volatile("mrs %0, cntfrq_el0" : "=r"(freq));

freq should be 31.25M.