On 06/01/2026 12:03, Vitaly Lifshits wrote:
On some Tiger Lake (TGP) and Alder Lake (ADP) platforms, the hardware
XTAL clock is incorrectly interpreted as 24 MHz instead of the actual
38.4 MHz. This causes the PHC to run significantly faster than system
time, breaking PTP synchronization.

To mitigate this at runtime, measure PHC vs system time over ~1 ms using
cross-timestamps. If the PHC increment differs from system time beyond
the expected tolerance (currently >100 uSecs), reprogram TIMINCA for the
38.4 MHz profile and reinitialize the timecounter.

Tested on an affected system using phc_ctl:
Without fix:
sudo phc_ctl enp0s31f6 set 0.0 wait 10 get
clock time: 16.000541250 (expected ~10s)

With fix:
sudo phc_ctl enp0s31f6 set 0.0 wait 10 get
clock time: 9.984407212 (expected ~10s)

Signed-off-by: Vitaly Lifshits<[email protected]>
---
v2: avoid resetting the systim and rephrase commit message
v1: initial version
---
  drivers/net/ethernet/intel/e1000e/netdev.c | 80 ++++++++++++++++++++++
  1 file changed, 80 insertions(+)

Tested-by: Avigail Dahan <[email protected]>

Reply via email to