linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/2] Macb PTP enhancements
@ 2022-08-02 10:43 Harini Katakam
  2022-08-02 10:43 ` [PATCH 1/2] net: macb: Enable PTP unicast Harini Katakam
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Harini Katakam @ 2022-08-02 10:43 UTC (permalink / raw)
  To: nicolas.ferre, davem, richardcochran, claudiu.beznea,
	andrei.pistirica, kuba, edumazet, pabeni
  Cc: netdev, linux-kernel, michal.simek, harinikatakamlinux,
	harini.katakam, michal.simek, harini.katakam,
	radhey.shyam.pandey

From: Harini Katakam <harini.katakam@amd.com>

This series is a follow up for patches 2 and 3 from a previous series:
https://lore.kernel.org/all/ca4c97c9-1117-a465-5202-e1bf276fe75b@microchip.com/
https://lore.kernel.org/all/20220517135525.GC3344@hoboy.vegasvil.org/
Sorry for the delay.

ACK is added only to patch 3 (now patch 2).
Patch 1 is updated with check for gem_has_ptp as per Claudiu's comments.

Harini Katakam (2):
  net: macb: Enable PTP unicast
  net: macb: Optimize reading HW timestamp

 drivers/net/ethernet/cadence/macb.h      |  4 ++++
 drivers/net/ethernet/cadence/macb_main.c | 13 ++++++++++++-
 drivers/net/ethernet/cadence/macb_ptp.c  |  8 ++++++--
 3 files changed, 22 insertions(+), 3 deletions(-)

-- 
2.17.1


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 1/2] net: macb: Enable PTP unicast
  2022-08-02 10:43 [PATCH 0/2] Macb PTP enhancements Harini Katakam
@ 2022-08-02 10:43 ` Harini Katakam
  2022-08-02 10:43 ` [PATCH 2/2] net: macb: Optimize reading HW timestamp Harini Katakam
  2022-08-04  2:34 ` [PATCH 0/2] Macb PTP enhancements Jakub Kicinski
  2 siblings, 0 replies; 5+ messages in thread
From: Harini Katakam @ 2022-08-02 10:43 UTC (permalink / raw)
  To: nicolas.ferre, davem, richardcochran, claudiu.beznea,
	andrei.pistirica, kuba, edumazet, pabeni
  Cc: netdev, linux-kernel, michal.simek, harinikatakamlinux,
	harini.katakam, michal.simek, harini.katakam,
	radhey.shyam.pandey

Enable transmission and reception of PTP unicast packets by
updating PTP unicast config bit and setting current HW mac
address as allowed address in PTP unicast filter registers.

Signed-off-by: Harini Katakam <harini.katakam@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Signed-off-by: Radhey Shyam Pandey <radhey.shyam.pandey@xilinx.com>
---
Added check for gem_has_ptp as per Claudiu's comments.

 drivers/net/ethernet/cadence/macb.h      |  4 ++++
 drivers/net/ethernet/cadence/macb_main.c | 13 ++++++++++++-
 2 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/cadence/macb.h b/drivers/net/ethernet/cadence/macb.h
index 9c410f93a103..1aa578c1ca4a 100644
--- a/drivers/net/ethernet/cadence/macb.h
+++ b/drivers/net/ethernet/cadence/macb.h
@@ -95,6 +95,8 @@
 #define GEM_SA4B		0x00A0 /* Specific4 Bottom */
 #define GEM_SA4T		0x00A4 /* Specific4 Top */
 #define GEM_WOL			0x00b8 /* Wake on LAN */
+#define GEM_RXPTPUNI		0x00D4 /* PTP RX Unicast address */
+#define GEM_TXPTPUNI		0x00D8 /* PTP TX Unicast address */
 #define GEM_EFTSH		0x00e8 /* PTP Event Frame Transmitted Seconds Register 47:32 */
 #define GEM_EFRSH		0x00ec /* PTP Event Frame Received Seconds Register 47:32 */
 #define GEM_PEFTSH		0x00f0 /* PTP Peer Event Frame Transmitted Seconds Register 47:32 */
@@ -245,6 +247,8 @@
 #define MACB_TZQ_OFFSET		12 /* Transmit zero quantum pause frame */
 #define MACB_TZQ_SIZE		1
 #define MACB_SRTSM_OFFSET	15 /* Store Receive Timestamp to Memory */
+#define MACB_PTPUNI_OFFSET	20 /* PTP Unicast packet enable */
+#define MACB_PTPUNI_SIZE	1
 #define MACB_OSSMODE_OFFSET	24 /* Enable One Step Synchro Mode */
 #define MACB_OSSMODE_SIZE	1
 #define MACB_MIIONRGMII_OFFSET	28 /* MII Usage on RGMII Interface */
diff --git a/drivers/net/ethernet/cadence/macb_main.c b/drivers/net/ethernet/cadence/macb_main.c
index 494fe961a49d..4699699a1593 100644
--- a/drivers/net/ethernet/cadence/macb_main.c
+++ b/drivers/net/ethernet/cadence/macb_main.c
@@ -287,6 +287,13 @@ static void macb_set_hwaddr(struct macb *bp)
 	top = cpu_to_le16(*((u16 *)(bp->dev->dev_addr + 4)));
 	macb_or_gem_writel(bp, SA1T, top);
 
+#ifdef CONFIG_MACB_USE_HWSTAMP
+	if (gem_has_ptp(bp)) {
+		gem_writel(bp, RXPTPUNI, bottom);
+		gem_writel(bp, TXPTPUNI, bottom);
+	}
+#endif
+
 	/* Clear unused address register sets */
 	macb_or_gem_writel(bp, SA2B, 0);
 	macb_or_gem_writel(bp, SA2T, 0);
@@ -720,7 +727,11 @@ static void macb_mac_link_up(struct phylink_config *config,
 
 	spin_unlock_irqrestore(&bp->lock, flags);
 
-	/* Enable Rx and Tx */
+	/* Enable Rx and Tx; Enable PTP unicast */
+#ifdef CONFIG_MACB_USE_HWSTAMP
+	if (gem_has_ptp(bp))
+		macb_writel(bp, NCR, macb_readl(bp, NCR) | MACB_BIT(PTPUNI));
+#endif
 	macb_writel(bp, NCR, macb_readl(bp, NCR) | MACB_BIT(RE) | MACB_BIT(TE));
 
 	netif_tx_wake_all_queues(ndev);
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 2/2] net: macb: Optimize reading HW timestamp
  2022-08-02 10:43 [PATCH 0/2] Macb PTP enhancements Harini Katakam
  2022-08-02 10:43 ` [PATCH 1/2] net: macb: Enable PTP unicast Harini Katakam
@ 2022-08-02 10:43 ` Harini Katakam
  2022-08-04  2:34 ` [PATCH 0/2] Macb PTP enhancements Jakub Kicinski
  2 siblings, 0 replies; 5+ messages in thread
From: Harini Katakam @ 2022-08-02 10:43 UTC (permalink / raw)
  To: nicolas.ferre, davem, richardcochran, claudiu.beznea,
	andrei.pistirica, kuba, edumazet, pabeni
  Cc: netdev, linux-kernel, michal.simek, harinikatakamlinux,
	harini.katakam, michal.simek, harini.katakam,
	radhey.shyam.pandey

The seconds input from BD (6 bits) just needs to be ORed with the
upper bits from timer in this function. Avoid +/- operations every
single time. Check for seconds rollover at BIT 5 and subtract the
overhead only in that case.

Signed-off-by: Harini Katakam <harini.katakam@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Signed-off-by: Radhey Shyam Pandey <radhey.shyam.pandey@xilinx.com>
Acked-by: Richard Cochran <richardcochran@gmail.com>
---
 drivers/net/ethernet/cadence/macb_ptp.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/cadence/macb_ptp.c b/drivers/net/ethernet/cadence/macb_ptp.c
index e6cb20aaa76a..674002661366 100644
--- a/drivers/net/ethernet/cadence/macb_ptp.c
+++ b/drivers/net/ethernet/cadence/macb_ptp.c
@@ -247,6 +247,7 @@ static int gem_hw_timestamp(struct macb *bp, u32 dma_desc_ts_1,
 			    u32 dma_desc_ts_2, struct timespec64 *ts)
 {
 	struct timespec64 tsu;
+	bool sec_rollover = false;
 
 	ts->tv_sec = (GEM_BFEXT(DMA_SECH, dma_desc_ts_2) << GEM_DMA_SECL_SIZE) |
 			GEM_BFEXT(DMA_SECL, dma_desc_ts_1);
@@ -264,9 +265,12 @@ static int gem_hw_timestamp(struct macb *bp, u32 dma_desc_ts_1,
 	 */
 	if ((ts->tv_sec & (GEM_DMA_SEC_TOP >> 1)) &&
 	    !(tsu.tv_sec & (GEM_DMA_SEC_TOP >> 1)))
-		ts->tv_sec -= GEM_DMA_SEC_TOP;
+		sec_rollover = true;
+
+	ts->tv_sec |= ((~GEM_DMA_SEC_MASK) & tsu.tv_sec);
 
-	ts->tv_sec += ((~GEM_DMA_SEC_MASK) & tsu.tv_sec);
+	if (sec_rollover)
+		ts->tv_sec -= GEM_DMA_SEC_TOP;
 
 	return 0;
 }
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH 0/2] Macb PTP enhancements
  2022-08-02 10:43 [PATCH 0/2] Macb PTP enhancements Harini Katakam
  2022-08-02 10:43 ` [PATCH 1/2] net: macb: Enable PTP unicast Harini Katakam
  2022-08-02 10:43 ` [PATCH 2/2] net: macb: Optimize reading HW timestamp Harini Katakam
@ 2022-08-04  2:34 ` Jakub Kicinski
  2022-08-04  4:35   ` Katakam, Harini
  2 siblings, 1 reply; 5+ messages in thread
From: Jakub Kicinski @ 2022-08-04  2:34 UTC (permalink / raw)
  To: Harini Katakam
  Cc: nicolas.ferre, davem, richardcochran, claudiu.beznea,
	andrei.pistirica, edumazet, pabeni, netdev, linux-kernel,
	michal.simek, harinikatakamlinux, michal.simek, harini.katakam,
	radhey.shyam.pandey

On Tue, 2 Aug 2022 16:13:44 +0530 Harini Katakam wrote:
> From: Harini Katakam <harini.katakam@amd.com>
> 
> This series is a follow up for patches 2 and 3 from a previous series:
> https://lore.kernel.org/all/ca4c97c9-1117-a465-5202-e1bf276fe75b@microchip.com/
> https://lore.kernel.org/all/20220517135525.GC3344@hoboy.vegasvil.org/
> Sorry for the delay.
> 
> ACK is added only to patch 3 (now patch 2).
> Patch 1 is updated with check for gem_has_ptp as per Claudiu's comments.

These were separated from the earlier series as non-fixes, right?
But we are in the period of merge window right now, when all the
new features flow to Linus's tree and we only take fixes to avoid
conflicts and give maintainers time to settle the existing ones.
So these need to wait until -rc1 is cut. (Or is patch 1 a bug fix? 
I can't tell.)

^ permalink raw reply	[flat|nested] 5+ messages in thread

* RE: [PATCH 0/2] Macb PTP enhancements
  2022-08-04  2:34 ` [PATCH 0/2] Macb PTP enhancements Jakub Kicinski
@ 2022-08-04  4:35   ` Katakam, Harini
  0 siblings, 0 replies; 5+ messages in thread
From: Katakam, Harini @ 2022-08-04  4:35 UTC (permalink / raw)
  To: Jakub Kicinski, Harini Katakam
  Cc: nicolas.ferre, davem, richardcochran, claudiu.beznea,
	andrei.pistirica, edumazet, pabeni, netdev, linux-kernel,
	michal.simek, harinikatakamlinux, Simek, Michal, Pandey,
	Radhey Shyam

Hi Jakub,

> -----Original Message-----
> From: Jakub Kicinski <kuba@kernel.org>
> Sent: Thursday, August 4, 2022 8:05 AM
> To: Harini Katakam <harini.katakam@xilinx.com>
> Cc: nicolas.ferre@microchip.com; davem@davemloft.net;
> richardcochran@gmail.com; claudiu.beznea@microchip.com;
> andrei.pistirica@microchip.com; edumazet@google.com;
> pabeni@redhat.com; netdev@vger.kernel.org; linux-
> kernel@vger.kernel.org; michal.simek@xilinx.com;
> harinikatakamlinux@gmail.com; Simek, Michal <michal.simek@amd.com>;
> Katakam, Harini <harini.katakam@amd.com>; Pandey, Radhey Shyam
> <radhey.shyam.pandey@amd.com>
> Subject: Re: [PATCH 0/2] Macb PTP enhancements
> 
> On Tue, 2 Aug 2022 16:13:44 +0530 Harini Katakam wrote:
> > From: Harini Katakam <harini.katakam@amd.com>
> >
> > This series is a follow up for patches 2 and 3 from a previous series:
> > https://lore.kernel.org/all/ca4c97c9-1117-a465-5202-e1bf276fe75b@micro
> > chip.com/
> > https://lore.kernel.org/all/20220517135525.GC3344@hoboy.vegasvil.org/
> > Sorry for the delay.
> >
> > ACK is added only to patch 3 (now patch 2).
> > Patch 1 is updated with check for gem_has_ptp as per Claudiu's comments.
> 
> These were separated from the earlier series as non-fixes, right?
> But we are in the period of merge window right now, when all the new
> features flow to Linus's tree and we only take fixes to avoid conflicts and give
> maintainers time to settle the existing ones.
> So these need to wait until -rc1 is cut. (Or is patch 1 a bug fix?
> I can't tell.)

Sorry, I missed the window. Yes, both are non-fixes and I'll resend after the
Tree is open.

Regards,
Harini

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2022-08-04  4:35 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-08-02 10:43 [PATCH 0/2] Macb PTP enhancements Harini Katakam
2022-08-02 10:43 ` [PATCH 1/2] net: macb: Enable PTP unicast Harini Katakam
2022-08-02 10:43 ` [PATCH 2/2] net: macb: Optimize reading HW timestamp Harini Katakam
2022-08-04  2:34 ` [PATCH 0/2] Macb PTP enhancements Jakub Kicinski
2022-08-04  4:35   ` Katakam, Harini

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).