IEEE 1588 Precision Time Protocol (PTP) is implemented for the industrial grade Open Source Hardware Linux computer STMP1-OLinuXino-LIME2

The Time Sensitive Networking (TSN) is for real-time communication with hard, non-negotiable time boundaries for end-to-end transmission latencies.

The main use of TSN is for industrial machine controllers, robots etc.

For this purpose all devices in this network need to have a common time reference and therefore, need to synchronize their clocks among each other. Only through synchronized clocks, it is possible for all network devices to operate in unison and execute the required operation at exactly the required point in time.

The time in TSN networks is usually distributed from one central time source directly through the network itself using the IEEE 1588 Precision Time Protocol, which utilizes Ethernet frames to distribute time synchronization information.

Linutronix helped to implement IEEE 1588 PTP on STMP1-OLinuXino-LIME2.

For Uboot changes Olimex Uboot was used as base. The Kernel patch is sent upstream and can be seen on the mailing list

https://lore.kernel.org/linux-devicetree/20210316080644.19809-1-kurt@linutronix.de/

We also apply these patches in our next STMP1 Linux images release.

The results is correctly working PTP:

# ptp4l -H -2 -i eth0 --tx_timestamp_timeout=40 -f /etc/gPTP.cfg -m
|ptp4l[1434.665]: rms    5 max   13 freq  -1069 +/-   7 delay   325 +/-   0
|ptp4l[1435.666]: rms    8 max   16 freq  -1068 +/-  11 delay   325 +/-   0
|ptp4l[1436.667]: rms   10 max   19 freq  -1060 +/-  12 delay   324 +/-   0
|ptp4l[1437.668]: rms    8 max   17 freq  -1055 +/-  10 delay   322 +/-   0
|ptp4l[1438.668]: rms    6 max    9 freq  -1057 +/-   9 delay   322 +/-   0