Precision Time Protocol (PTP) on NAI Products
Overview
Precision Time Protocol (PTP), defined by the IEEE 1588 standard, synchronizes clocks across an Ethernet network to microsecond-class precision. NAI supports PTP on a range of products; the software that provides it, and how thoroughly NAI has tested it, vary by hardware and operating system.
NAI’s strongest and most fully tested PTP support is on its UltraScale+ (Zynq UltraScale+ MPSoC) boards running PetaLinux — covered in detail below. This page also summarizes what is available on other platforms, and grows as NAI confirms support for additional systems.
This page is product-agnostic: individual product manuals link here rather than duplicating PTP information. Because the underlying software differs by platform, ownership and support boundaries are described per platform — some components are open-source packages NAI includes, and others are NAI-developed drivers.
Support at a glance
| Platform | Operating system | PTP software | Status |
|---|---|---|---|
| UltraScale+ boards (68ARM2, NIU3A, CIU3) | PetaLinux 2018.2 / 2023.2 | linuxptp (ptp4l, phc2sys) — upstream open source | Confirmed; NAI-tested |
| EM2 Ethernet module (Intel E610) | VxWorks 7 | NAI VxWorks driver with IEEE 1588 hardware timestamping | Confirmed; configuration details ship with the driver package |
| Other boards / operating systems (e.g. DEOS, Linux x86) | — | — | Not yet characterized — contact NAI Applications Engineering |
PTP on UltraScale+ boards (PetaLinux)
This is where NAI’s PTP support is strongest and most thoroughly tested.
About this software
On PetaLinux, PTP is provided by linuxptp, an open-source software project that NAI does not author or maintain. NAI includes the package in its PetaLinux images, enables it, and has validated basic synchronization as described below. Questions about the PTP protocol itself, additional profiles, and advanced configuration or tuning are governed by the upstream project documentation linked at the end of this page.
What NAI includes
On PetaLinux 2018.2 and PetaLinux 2023.2, NAI ships the linuxptp v3.1.1 package. It provides the following command-line tools:
ptp4l, phc2sys, ts2phc, phc_ctl, pmc, hwstamp_ctl, nsm, timemaster
Of these, ptp4l (the PTP daemon) and phc2sys (clock synchronization helper) are the two used in the workflow below.
The configuration NAI has exercised uses the package defaults:
- Standard: IEEE 1588 default profile
- Transport: UDP / IPv4
- Clock type: Ordinary Clock
- Steps: two-step
- Delay mechanism: End-to-End (E2E)
- Timestamping: hardware timestamping (supported by the Zynq UltraScale+ MPSoC Ethernet MAC/PHY)
NAI’s validation was limited to these default settings — enough to demonstrate that two targets synchronize. The package supports many additional profiles and options; those are documented upstream and have not been independently characterized by NAI.
Supported boards
NAI’s UltraScale+ boards running PetaLinux 2018.2 or 2023.2 include the linuxptp package. The boards below are confirmed to include it (see the table for which are also NAI-tested); for any other board, confirm support with NAI Applications Engineering.
| Board | PetaLinux image | PTP package included | NAI-tested |
|---|---|---|---|
| 68ARM2 | 2018.2 or 2023.2 | Yes | Yes |
| NIU3A | 2018.2 or 2023.2 | Yes | Yes |
| CIU3 | 2023.2 | Yes (added Aug 2025) | Not explicitly re-tested — expected to work |
To confirm PTP is enabled on a specific unit, check that unit’s configuration report, or contact NAI Applications Engineering.
Using it — the configuration NAI validated
The commands below reflect the specific configuration NAI tested (hardware-timestamped Ordinary Clock over IPv4). They are a starting point, not the only way to run PTP; consult the upstream ptp4l documentation for other options.
1. Start the PTP daemon. On the board acting as the master (time source):
ptp4l -i eth0 -4 -H -mOn the board (or device) acting as the slave:
ptp4l -i eth0 -4 -H -s -mHere -i eth0 selects the Ethernet interface, -4 selects UDP/IPv4 transport, -H selects hardware timestamping, -s runs as slave-only, and -m prints messages to the console. ptp4l then continuously synchronizes the device’s Ethernet hardware clock to the master clock on the network.
2. Discipline the system clock. ptp4l syncs the hardware clock, but applications usually read the Linux system clock. To steer the system clock to the PTP-synchronized hardware clock, run phc2sys alongside ptp4l:
phc2sys -a -r -w -mOnce this is running, any application that queries the system time is working from PTP-synchronized time.
With hardware timestamping, NAI has observed synchronization in the microsecond range between two targets.
PTP under VxWorks
NAI provides PTP support under VxWorks 7 for certain products and configurations. Unlike the PetaLinux path — where NAI enables the upstream linuxptp package — the VxWorks Ethernet driver is NAI-developed software, built on Wind River’s PTP (PTPd) services.
The current example is the EM2 dual-port Ethernet module (Intel E610). Its NAI VxWorks 7 driver includes integrated IEEE 1588 hardware timestamping and supports both the IEEE 1588 default profile and 802.1AS, over Layer 2 or UDP/IPv4, in slave, master, or BMCA roles.
Detailed installation and configuration instructions are delivered with the driver package itself. For VxWorks PTP on a specific board or module, contact NAI Applications Engineering.
Other platforms
Not yet characterized
PTP under DEOS, on Linux x86 hosts, and on boards not listed above is not characterized here. If you need PTP on one of these, contact NAI Applications Engineering — this page will be expanded as support is confirmed.
Use cases
- Synchronize two NAI boards, or a board to a network grandmaster clock, to microsecond-class precision over standard Ethernet.
- Provide accurate time-of-day and correlated timestamps to applications by disciplining the host clock, so logs and time-stamped data across a system share a common reference.
- Coordinate multiple units in a distributed system off a single shared time source.
PTP vs. gPTP (802.1AS / TSN) vs. NTP
These related-but-distinct technologies are easy to confuse:
- PTP (IEEE 1588) — the core standard and NAI’s primary PTP support, with hardware-assisted timestamping for microsecond-class accuracy.
- gPTP (IEEE 802.1AS) — a PTP profile used in Time-Sensitive Networking (TSN). On the UltraScale+ PetaLinux path, 802.1AS is not part of the default
linuxptpconfiguration and requires NAI’s TN1 TSN module. Some other NAI platforms support 802.1AS directly — for example, the EM2 VxWorks driver above. If your application calls for TSN / 802.1AS, contact NAI. - NTP (Network Time Protocol) — software-only time synchronization, typically accurate to milliseconds. Suitable for general time-of-day, but not for precision timing.
References
The following upstream resources document the PTP protocol and the linuxptp tools used on the PetaLinux path in depth:
