Merge branch 'enable-rx-hw-timestamp-for-ptp-packets-using-cpts-fifo'
authorPaolo Abeni <pabeni@redhat.com>
Tue, 23 Apr 2024 10:07:25 +0000 (12:07 +0200)
committerPaolo Abeni <pabeni@redhat.com>
Tue, 23 Apr 2024 10:07:25 +0000 (12:07 +0200)
commit30b3fe0672f2a97f22d96a863f2a8f2ed6c52a54
tree81f7b6959f22e50e621c6340f010227417043cb4
parent9b9fd023e9c503cf63067ecd33336f575bc79c67
parentc03a6fd398269e345ee808cdced311fd01215c18
Merge branch 'enable-rx-hw-timestamp-for-ptp-packets-using-cpts-fifo'

Chintan Vankar says:

====================
Enable RX HW timestamp for PTP packets using CPTS FIFO

The CPSW offers two mechanisms for communicating packet ingress timestamp
information to the host.

The first mechanism is via the CPTS Event FIFO which records timestamp
when triggered by certain events. One such event is the reception of an
Ethernet packet with a specified EtherType field. This is used to capture
ingress timestamps for PTP packets. With this mechanism the host must
read the timestamp (from the CPTS FIFO) separately from the packet payload
which is delivered via DMA.

In the second mechanism of timestamping, CPSW driver enables hardware
timestamping for all received packets by setting the TSTAMP_EN bit in
CPTS_CONTROL register, which directs the CPTS module to timestamp all
received packets, followed by passing timestamp via DMA descriptors.
This mechanism is responsible for triggering errata i2401:
"CPSW: Host Timestamps Cause CPSW Port to Lock up."

The errata affects all K3 SoCs. Link to errata for AM64x:
https://www.ti.com/lit/er/sprz457h/sprz457h.pdf

As a workaround we can use first mechanism to timestamp received
packets.
====================

Link: https://lore.kernel.org/r/20240419082626.57225-1-c-vankar@ti.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>