* [net-next, PATCH] net: stmmac: fix ptp timestamping on Rx on gmac4
@ 2019-02-05 12:15 Ilias Apalodimas
2019-02-06 11:45 ` Jose Abreu
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Ilias Apalodimas @ 2019-02-05 12:15 UTC (permalink / raw)
To: alexandre.torgue
Cc: peppe.cavallaro, davem, mcoquelin.stm32, netdev, joabreu,
Ilias Apalodimas
The current driver only enables Pdelay_Req and Pdelay_Resp when
HWTSTAMP_FILTER_PTP_V2_EVENT, HWTSTAMP_FILTER_PTP_V1_L4_EVENT or
HWTSTAMP_FILTER_PTP_V2_L4_EVENT is requested. This results in ptp sync on
slave mode to report 'received SYNC without timestamp' when using ptp4l.
Although the hardware can support Sync, Pdelay_Req and Pdelay_resp by
setting bit14 annd bits 17/16 to 01 this leaves Delay_Req timestamps out.
Fix this by enabling all event and general messages timestamps.
This includes SYNC, Follow_Up, Delay_Req, Delay_Resp, Pdelay_Req,
Pdelay_Resp and Pdelay_Resp_Follow_Up messages.
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
---
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 25 ++++++++---------------
drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.h | 9 ++++++--
2 files changed, 16 insertions(+), 18 deletions(-)
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
index 517555b..effff17 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
@@ -597,12 +597,13 @@ static int stmmac_hwtstamp_set(struct net_device *dev, struct ifreq *ifr)
case HWTSTAMP_FILTER_PTP_V1_L4_EVENT:
/* PTP v1, UDP, any kind of event packet */
config.rx_filter = HWTSTAMP_FILTER_PTP_V1_L4_EVENT;
- /* take time stamp for all event messages */
- if (xmac)
- snap_type_sel = PTP_GMAC4_TCR_SNAPTYPSEL_1;
- else
- snap_type_sel = PTP_TCR_SNAPTYPSEL_1;
-
+ /* 'xmac' hardware can support Sync, Pdelay_Req and
+ * Pdelay_resp by setting bit14 and bits17/16 to 01
+ * This leaves Delay_Req timestamps out.
+ * Enable all events *and* general purpose message
+ * timestamping
+ */
+ snap_type_sel = PTP_TCR_SNAPTYPSEL_1;
ptp_over_ipv4_udp = PTP_TCR_TSIPV4ENA;
ptp_over_ipv6_udp = PTP_TCR_TSIPV6ENA;
break;
@@ -633,10 +634,7 @@ static int stmmac_hwtstamp_set(struct net_device *dev, struct ifreq *ifr)
config.rx_filter = HWTSTAMP_FILTER_PTP_V2_L4_EVENT;
ptp_v2 = PTP_TCR_TSVER2ENA;
/* take time stamp for all event messages */
- if (xmac)
- snap_type_sel = PTP_GMAC4_TCR_SNAPTYPSEL_1;
- else
- snap_type_sel = PTP_TCR_SNAPTYPSEL_1;
+ snap_type_sel = PTP_TCR_SNAPTYPSEL_1;
ptp_over_ipv4_udp = PTP_TCR_TSIPV4ENA;
ptp_over_ipv6_udp = PTP_TCR_TSIPV6ENA;
@@ -669,12 +667,7 @@ static int stmmac_hwtstamp_set(struct net_device *dev, struct ifreq *ifr)
/* PTP v2/802.AS1 any layer, any kind of event packet */
config.rx_filter = HWTSTAMP_FILTER_PTP_V2_EVENT;
ptp_v2 = PTP_TCR_TSVER2ENA;
- /* take time stamp for all event messages */
- if (xmac)
- snap_type_sel = PTP_GMAC4_TCR_SNAPTYPSEL_1;
- else
- snap_type_sel = PTP_TCR_SNAPTYPSEL_1;
-
+ snap_type_sel = PTP_TCR_SNAPTYPSEL_1;
ptp_over_ipv4_udp = PTP_TCR_TSIPV4ENA;
ptp_over_ipv6_udp = PTP_TCR_TSIPV6ENA;
ptp_over_ethernet = PTP_TCR_TSIPENA;
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.h b/drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.h
index ecccf89..e852821 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.h
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.h
@@ -59,9 +59,14 @@
#define PTP_TCR_TSEVNTENA BIT(14)
/* Enable Snapshot for Messages Relevant to Master */
#define PTP_TCR_TSMSTRENA BIT(15)
-/* Select PTP packets for Taking Snapshots */
+/* Select PTP packets for Taking Snapshots
+ * On gmac4 specifically:
+ * Enable SYNC, Pdelay_Req, Pdelay_Resp when TSEVNTENA is enabled.
+ * or
+ * Enable SYNC, Follow_Up, Delay_Req, Delay_Resp, Pdelay_Req, Pdelay_Resp,
+ * Pdelay_Resp_Follow_Up if TSEVNTENA is disabled
+ */
#define PTP_TCR_SNAPTYPSEL_1 BIT(16)
-#define PTP_GMAC4_TCR_SNAPTYPSEL_1 GENMASK(17, 16)
/* Enable MAC address for PTP Frame Filtering */
#define PTP_TCR_TSENMACADDR BIT(18)
--
2.7.4
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [net-next, PATCH] net: stmmac: fix ptp timestamping on Rx on gmac4
2019-02-05 12:15 [net-next, PATCH] net: stmmac: fix ptp timestamping on Rx on gmac4 Ilias Apalodimas
@ 2019-02-06 11:45 ` Jose Abreu
2019-02-06 12:56 ` Alexandre Torgue
2019-02-07 1:28 ` David Miller
2 siblings, 0 replies; 4+ messages in thread
From: Jose Abreu @ 2019-02-06 11:45 UTC (permalink / raw)
To: Ilias Apalodimas, alexandre.torgue
Cc: peppe.cavallaro, davem, mcoquelin.stm32, netdev, jose.abreu
On 2/5/2019 12:15 PM, Ilias Apalodimas wrote:
> The current driver only enables Pdelay_Req and Pdelay_Resp when
> HWTSTAMP_FILTER_PTP_V2_EVENT, HWTSTAMP_FILTER_PTP_V1_L4_EVENT or
> HWTSTAMP_FILTER_PTP_V2_L4_EVENT is requested. This results in ptp sync on
> slave mode to report 'received SYNC without timestamp' when using ptp4l.
>
> Although the hardware can support Sync, Pdelay_Req and Pdelay_resp by
> setting bit14 annd bits 17/16 to 01 this leaves Delay_Req timestamps out.
>
> Fix this by enabling all event and general messages timestamps.
> This includes SYNC, Follow_Up, Delay_Req, Delay_Resp, Pdelay_Req,
> Pdelay_Resp and Pdelay_Resp_Follow_Up messages.
>
> Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Acked-by: Jose Abreu <joabreu@synopsys.com>
and, on XGMAC2: Tested-by: Jose Abreu <joabreu@synopsys.com>
Thanks,
Jose Miguel Abreu
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [net-next, PATCH] net: stmmac: fix ptp timestamping on Rx on gmac4
2019-02-05 12:15 [net-next, PATCH] net: stmmac: fix ptp timestamping on Rx on gmac4 Ilias Apalodimas
2019-02-06 11:45 ` Jose Abreu
@ 2019-02-06 12:56 ` Alexandre Torgue
2019-02-07 1:28 ` David Miller
2 siblings, 0 replies; 4+ messages in thread
From: Alexandre Torgue @ 2019-02-06 12:56 UTC (permalink / raw)
To: Ilias Apalodimas; +Cc: peppe.cavallaro, davem, mcoquelin.stm32, netdev, joabreu
Hi Ilias
On 2/5/19 1:15 PM, Ilias Apalodimas wrote:
> The current driver only enables Pdelay_Req and Pdelay_Resp when
> HWTSTAMP_FILTER_PTP_V2_EVENT, HWTSTAMP_FILTER_PTP_V1_L4_EVENT or
> HWTSTAMP_FILTER_PTP_V2_L4_EVENT is requested. This results in ptp sync on
> slave mode to report 'received SYNC without timestamp' when using ptp4l.
>
> Although the hardware can support Sync, Pdelay_Req and Pdelay_resp by
> setting bit14 annd bits 17/16 to 01 this leaves Delay_Req timestamps out.
>
> Fix this by enabling all event and general messages timestamps.
> This includes SYNC, Follow_Up, Delay_Req, Delay_Resp, Pdelay_Req,
> Pdelay_Resp and Pdelay_Resp_Follow_Up messages.
>
> Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
For GMAC4 part:
Tested-by: Alexandre TORGUE <alexandre.torgue@st.com>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [net-next, PATCH] net: stmmac: fix ptp timestamping on Rx on gmac4
2019-02-05 12:15 [net-next, PATCH] net: stmmac: fix ptp timestamping on Rx on gmac4 Ilias Apalodimas
2019-02-06 11:45 ` Jose Abreu
2019-02-06 12:56 ` Alexandre Torgue
@ 2019-02-07 1:28 ` David Miller
2 siblings, 0 replies; 4+ messages in thread
From: David Miller @ 2019-02-07 1:28 UTC (permalink / raw)
To: ilias.apalodimas
Cc: alexandre.torgue, peppe.cavallaro, mcoquelin.stm32, netdev, joabreu
From: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Date: Tue, 5 Feb 2019 14:15:20 +0200
> The current driver only enables Pdelay_Req and Pdelay_Resp when
> HWTSTAMP_FILTER_PTP_V2_EVENT, HWTSTAMP_FILTER_PTP_V1_L4_EVENT or
> HWTSTAMP_FILTER_PTP_V2_L4_EVENT is requested. This results in ptp sync on
> slave mode to report 'received SYNC without timestamp' when using ptp4l.
>
> Although the hardware can support Sync, Pdelay_Req and Pdelay_resp by
> setting bit14 annd bits 17/16 to 01 this leaves Delay_Req timestamps out.
>
> Fix this by enabling all event and general messages timestamps.
> This includes SYNC, Follow_Up, Delay_Req, Delay_Resp, Pdelay_Req,
> Pdelay_Resp and Pdelay_Resp_Follow_Up messages.
>
> Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Applied to net-next, thanks.
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2019-02-07 1:28 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-02-05 12:15 [net-next, PATCH] net: stmmac: fix ptp timestamping on Rx on gmac4 Ilias Apalodimas
2019-02-06 11:45 ` Jose Abreu
2019-02-06 12:56 ` Alexandre Torgue
2019-02-07 1:28 ` David Miller
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).