Re: [PATCH net] net: ethernet: ti: am65-cpsw-nuss: Enable timestamping of unicast PTP packets
From: Sebastian Andrzej Siewior
Date: Tue Nov 03 2026 - 18:18:14 EST
On 2026-11-02 20:51:17 [+0700], James Clark wrote:
> On a BeagleY-AI (J722S), ptp4l as a unicast master (unicast_listen) logs
> "received DELAY_REQ without timestamp" for each unicast Delay_Req, and
> its port goes to FAULTY after "timed out while polling for tx timestamp"
> for the first unicast Sync.
>
> am65_cpsw_nuss_hwtstamp_set() does not set the TS_UNI_EN bit (bit 24) of
> the port's TS_CTL_LTYPE2 register. According to the TRM (J722S TRM
> SPRUJB3D, 12.2.1.4.7.13.5.1 Ethernet Port Receive Event and
> 12.2.1.4.7.13.5.2 Ethernet Port Transmit Event), this bit must be set
> for the port to timestamp PTP event messages over UDP sent to a unicast
> address; without it, only messages sent to the PTP multicast addresses
> selected by the TS_107 and TS_129 to TS_132 bits are timestamped. TI's
> netcp_ethss driver for the Keystone 2 Ethernet switch, which has the
> same timestamping registers, always sets TS_UNI_EN.
>
> Set TS_UNI_EN along with the other bits. With this change, ptp4l in the
> same setup gets timestamps for the unicast Delay_Req and Sync messages.
>
> Fixes: b1f66a5bee07 ("net: ethernet: ti: am65-cpsw-nuss: enable packet timestamping support")
> Cc: stable@xxxxxxxxxxxxxxx
> Signed-off-by: James Clark <jjc@xxxxxxxxxx>
> ---
> This was discovered while using ntpperf -D/-N to evaluate PTP hardware
> timestamping performance. The patch was generated by an LLM coding
> assistant.
I have here a AM642 EVM and eth0 here uses am65-cpsw-nuss. I didn't
manage to get ntpperf up but
ptp4l -i eth0 configs/UNICAST-{MASTER|SLAVE}.cfg
uses UDPv4 and should do what you describe. But then I noticed that it
uses 224.0.1.129 as destination which is enabled by TS_129 and does not
look like a unicast address. Buh.
netcp_ethss sets TS_UNI_EN but it does not set the other TS_ bits. The
reference manual in Annex D (for am64x) describes how matching works but
it does not say if TS_UNI_EN should be enabled in addition to the other
TS_ bits, which match a specific address, or not. It just says it
matches either this with the specific bit set or anything with the UNI
bit.
It continues to work for MC with this bit set so
Reviewed-by: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx>
Sebastian