Intel Timed I/O “TIO” has been present on Intel processors going back to 2019 and the Linux driver support has been worked on for several years, but finally this year with the upcoming Linux 6.15 cycle is this Intel Timed I/O code expected to be merged.
It’s been several years since last talking about Intel Timed I/O for Linux as the new driver for Intel’s 2019 and newer CPUs to help with time synchronization between multiple devices.
Intel Timed I/O Pulse Per Second (PPS) handling can allow for more accurate time synchronization between devices and at long last the mainline kernel is set to support it. The new documentation on Intel TIO explains:
“Intel Timed I/O is a high precision device, present on 2019 and newer Intel CPUs, that can generate PPS signals.
Timed I/O and system time are both driven by same hardware clock. The signal is generated with a precision of ~20 nanoseconds. The generated PPS signal is used to synchronize an external device with system clock. For example, it can be used to share your clock with a device that receives PPS signal, generated by Timed I/O device. There are dedicated Timed I/O pins to deliver the PPS signal to an external device.
Usage of Intel Timed I/O as PPS generator:
Start generating PPS signal:
$echo 1 > /sys/class/pps-gen/pps-genx/enable
Stop generating PPS signal:
$echo 0 > /sys/class/pps-gen/pps-genx/enable
With the pending Linux patches, the Intel Timed I/O support is gated by the new PPS_GENERATOR_TIO Kconfig switch.
After going through fifteen rounds of code review the past several years, the Intel Timed I/O patches were finally queued up a few days ago by Greg Kroah-Hartman into the char-misc-next branch. With the code now in the “-next” branch of char/misc ahead of the Linux 6.15 merge window in late March, Intel Timed I/O will finally be merged barring any last minute objections or code issues from being reported.