From nobody Sun May 10 09:54:43 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 90DB1C433F5 for ; Tue, 17 May 2022 07:33:37 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S241445AbiEQHde (ORCPT ); Tue, 17 May 2022 03:33:34 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34686 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241224AbiEQHdT (ORCPT ); Tue, 17 May 2022 03:33:19 -0400 Received: from NAM02-BN1-obe.outbound.protection.outlook.com (mail-bn1nam07on2084.outbound.protection.outlook.com [40.107.212.84]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B578748339; Tue, 17 May 2022 00:33:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fI6JAGPVKidruQGkAidreuQqsrpLChXyqBH8LT3OesAtqI8Xu6118pZ5e6ALA/nk8PJJAtId+DXBk+/0zYPvDD6/gM9jzjo639ZH0JZKMfWp76pO2FSB8ilFPI2F9D+ISdWR7p9x1D6Apr68GYuo84evYnDPFP+pDgpBRmUun29OYd388NsQa5F1Db0km8p49gq3ZvH/gDCrCVn/xla1rq1oOxOYPsmHtpeDk8OclfK1SDtvOQ457++x5OT5gOx2jMo44cucYVqDrZWJAPhWa2Ao7VuOj9f95IbiAr2wvT3DorR07lgbRhVs3lVDU4bD3fdBRQLMHvrNrm9yx0H97Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=nufOqLOhrxSEkan+Z4oGlCRzOke5TmKwIvOeYpO2AvQ=; b=Z55+h8cV7cdktfOH0RLK3IdbysJ3hQ+GQM6UmfzVtIAJeKvIR++LjcoSK3pXWumJkmxFW4BJRbyfjrZbfTCQl15aW1y6DKQvF7DWNPZWl+gCOFtldMXj4hZMQzG4PxG1pUTfS1ESA2OVt9DOyrd3O6fsB5VQLTmuH0JeogohjRk0xcQLr9hNqTcbWEmCIc8p5Fea3c/3CbvzqUYJ39TMokaptWcU4BKOTsyPMeMLrEgJXpEypi8UgJ1EMd7LNcvY3VFyolr+3EqHBz4xd35iZ/shxMnUrDyvLrCIz2VCdC1I3gATIMfZX8NHsSwBSilidcsjsoYhhwDDsU0k/t3oXw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 149.199.62.198) smtp.rcpttodomain=microchip.com smtp.mailfrom=xilinx.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=xilinx.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=xilinx.onmicrosoft.com; s=selector2-xilinx-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=nufOqLOhrxSEkan+Z4oGlCRzOke5TmKwIvOeYpO2AvQ=; b=Xcq4BuAN/3xGYYmHumh3LDkzd1HILlq1u26AGjWd9EcS1ft8LUtr7QxYctZpiI8+BSnB/PRo/vpS3RhDvi0sdkBNtjEx9CqyMhVeoxsAFSRKJUD3eJ3lx3nDfnjCatK3fCVHj3yiQdXDQ5qy8f3TFxqRPANn/9QzGOuy4HxvTs0= Received: from DS7PR05CA0027.namprd05.prod.outlook.com (2603:10b6:5:3b9::32) by DM6PR02MB7097.namprd02.prod.outlook.com (2603:10b6:5:25d::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5250.14; Tue, 17 May 2022 07:33:13 +0000 Received: from DM3NAM02FT027.eop-nam02.prod.protection.outlook.com (2603:10b6:5:3b9:cafe::d8) by DS7PR05CA0027.outlook.office365.com (2603:10b6:5:3b9::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5273.5 via Frontend Transport; Tue, 17 May 2022 07:33:08 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 149.199.62.198) smtp.mailfrom=xilinx.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=xilinx.com; Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates 149.199.62.198 as permitted sender) receiver=protection.outlook.com; client-ip=149.199.62.198; helo=xsj-pvapexch02.xlnx.xilinx.com; Received: from xsj-pvapexch02.xlnx.xilinx.com (149.199.62.198) by DM3NAM02FT027.mail.protection.outlook.com (10.13.5.130) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.5250.13 via Frontend Transport; Tue, 17 May 2022 07:33:08 +0000 Received: from xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) by xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2176.14; Tue, 17 May 2022 00:33:07 -0700 Received: from smtp.xilinx.com (172.19.127.96) by xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) with Microsoft SMTP Server id 15.1.2176.14 via Frontend Transport; Tue, 17 May 2022 00:33:07 -0700 Envelope-to: nicolas.ferre@microchip.com, davem@davemloft.net, richardcochran@gmail.com, claudiu.beznea@microchip.com, kuba@kernel.org, pabeni@redhat.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, harinikatakamlinux@gmail.com Received: from [10.140.6.13] (port=40442 helo=xhdharinik40.xilinx.com) by smtp.xilinx.com with esmtp (Exim 4.90) (envelope-from ) id 1nqrha-000GAX-PI; Tue, 17 May 2022 00:33:07 -0700 From: Harini Katakam To: , , , , , CC: , , , , , Subject: [PATCH 1/3] net: macb: Fix PTP one step sync support Date: Tue, 17 May 2022 13:02:57 +0530 Message-ID: <20220517073259.23476-2-harini.katakam@xilinx.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220517073259.23476-1-harini.katakam@xilinx.com> References: <20220517073259.23476-1-harini.katakam@xilinx.com> MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b2381a15-708c-4afe-fde1-08da37d77d3e X-MS-TrafficTypeDiagnostic: DM6PR02MB7097:EE_ X-Microsoft-Antispam-PRVS: X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: oB/eN85aFk3E1HpdYFRIMlA8csB9OMkoDITifSJVmzwj7MmkGhghxrrHnozatE7IJsmV2woBHYchWrJd20eOsa8U00LOboug3lv+s215AJEHXg2NrfhlHZUunNPoiNbEHDxGA+6+wx32ojNga6k+QSUZCCWnDcu18y/ZlASBryGNpk9TqqG9j1+mc4wxD7qUVmRTi5bHelEvK9tpPvu2svgSzvGYLdt3Y4/12e682piu4Im3WG8sOuojcaJWtNDVak+eMz11kl5QTSMwc8xESRULGct5bIU90VKls+8GJdY2ZzxmwldMrDB12a9HL9z5nA995kvqOmOohQZEtlLcDXkz6O51wZ7Pr/b0iRIJZ14dnKL9CDuQF+6IITw/6XOkeLPLaAEBGk3AY9CYSwUnK1Gy41clTc7sba/9fKipd5piWtt+J2ki5u5mKkO/9dv2TnGOg4Qh62qlksRmb9U5x+AuS4XYVfdK6CJcSiLz/TZHFYhAFPp04B4pnzNyWWb47CMHUO41gdodk4MYqQCULetc7kg/Nq43MhG3f7AFCvVm6tQjMUg4NwRx9cqtDKLuHY/+LUz6Os7WkcBd5CRYoUvy18IQAdJXsk2pY/UnXDZ2iqkPEDq3mch180KPm1ChDAZB69L1ya5D5ufF4Tktbdo9sdjB2OrF3uINl6G564CP2uvv6Xb16+/jAUZob9qDZno7YkMzxQLJN41rFZzRnQ== X-Forefront-Antispam-Report: CIP:149.199.62.198;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:xsj-pvapexch02.xlnx.xilinx.com;PTR:unknown-62-198.xilinx.com;CAT:NONE;SFS:(13230001)(4636009)(46966006)(40470700004)(36840700001)(4326008)(70586007)(70206006)(7636003)(8676002)(36860700001)(40460700003)(47076005)(26005)(82310400005)(54906003)(2906002)(316002)(1076003)(9786002)(110136005)(186003)(356005)(8936002)(83380400001)(7696005)(5660300002)(6666004)(44832011)(336012)(426003)(36756003)(107886003)(508600001)(2616005)(102446001);DIR:OUT;SFP:1101; X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 May 2022 07:33:08.4185 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b2381a15-708c-4afe-fde1-08da37d77d3e X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.62.198];Helo=[xsj-pvapexch02.xlnx.xilinx.com] X-MS-Exchange-CrossTenant-AuthSource: DM3NAM02FT027.eop-nam02.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR02MB7097 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" PTP one step sync packets cannot have CSUM padding and insertion in SW since time stamp is inserted on the fly by HW. In addition, ptp4l version 3.0 and above report an error when skb timestamps are reported for packets that not processed for TX TS after transmission. Add a helper to identify PTP one step sync and fix the above two errors. Also reset ptp OSS bit when one step is not selected. Fixes: ab91f0a9b5f4 ("net: macb: Add hardware PTP support") Fixes: 653e92a9175e ("net: macb: add support for padding and fcs computatio= n") Signed-off-by: Harini Katakam Reviewed-by: Radhey Shyam Pandey Acked-by: Richard Cochran --- Notes: -> Added the macb pad and fcs fixes tag because strictly speaking the PTP s= upport patch precedes the fcs patch in timeline. -> FYI, the error observed with setting HW TX timestamp for one step sync p= ackets: ptp4l[405.292]: port 1: unexpected socket error drivers/net/ethernet/cadence/macb_main.c | 54 ++++++++++++++++++++---- drivers/net/ethernet/cadence/macb_ptp.c | 4 +- 2 files changed, 48 insertions(+), 10 deletions(-) diff --git a/drivers/net/ethernet/cadence/macb_main.c b/drivers/net/etherne= t/cadence/macb_main.c index e993616308f8..e23a03e8badf 100644 --- a/drivers/net/ethernet/cadence/macb_main.c +++ b/drivers/net/ethernet/cadence/macb_main.c @@ -37,6 +37,7 @@ #include #include #include +#include #include "macb.h" =20 /* This structure is only used for MACB on SiFive FU540 devices */ @@ -98,6 +99,9 @@ struct sifive_fu540_macb_mgmt { =20 #define MACB_MDIO_TIMEOUT 1000000 /* in usecs */ =20 +/* IEEE1588 PTP flag field values */ +#define PTP_FLAG_TWOSTEP 0x2 + /* DMA buffer descriptor might be different size * depends on hardware configuration: * @@ -1122,6 +1126,36 @@ static void macb_tx_error_task(struct work_struct *w= ork) napi_enable(&queue->napi_tx); } =20 +static inline bool ptp_oss(struct sk_buff *skb) +{ + struct ptp_header *hdr; + unsigned int ptp_class; + u8 msgtype; + + /* No need to parse packet if PTP TS is not involved */ + if (!(skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP)) + goto not_oss; + + /* Identify and return whether PTP one step sync is being processed */ + ptp_class =3D ptp_classify_raw(skb); + if (ptp_class =3D=3D PTP_CLASS_NONE) + goto not_oss; + + hdr =3D ptp_parse_header(skb, ptp_class); + if (!hdr) + goto not_oss; + + if (hdr->flag_field[0] & PTP_FLAG_TWOSTEP) + goto not_oss; + + msgtype =3D ptp_get_msgtype(hdr, ptp_class); + if (msgtype =3D=3D PTP_MSGTYPE_SYNC) + return true; + +not_oss: + return false; +} + static int macb_tx_complete(struct macb_queue *queue, int budget) { struct macb *bp =3D queue->bp; @@ -1158,13 +1192,14 @@ static int macb_tx_complete(struct macb_queue *queu= e, int budget) =20 /* First, update TX stats if needed */ if (skb) { - if (unlikely(skb_shinfo(skb)->tx_flags & - SKBTX_HW_TSTAMP) && - gem_ptp_do_txstamp(queue, skb, desc) =3D=3D 0) { - /* skb now belongs to timestamp buffer - * and will be removed later - */ - tx_skb->skb =3D NULL; + if (unlikely(skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP) && + !ptp_oss(skb)) { + if (gem_ptp_do_txstamp(queue, skb, desc) =3D=3D 0) { + /* skb now belongs to timestamp buffer + * and will be removed later + */ + tx_skb->skb =3D NULL; + } } netdev_vdbg(bp->dev, "skb %u (data %p) TX complete\n", macb_tx_ring_wrap(bp, tail), @@ -2063,7 +2098,7 @@ static unsigned int macb_tx_map(struct macb *bp, ctrl |=3D MACB_BF(TX_LSO, lso_ctrl); ctrl |=3D MACB_BF(TX_TCP_SEQ_SRC, seq_ctrl); if ((bp->dev->features & NETIF_F_HW_CSUM) && - skb->ip_summed !=3D CHECKSUM_PARTIAL && !lso_ctrl) + skb->ip_summed !=3D CHECKSUM_PARTIAL && !lso_ctrl && !ptp_oss(skb)) ctrl |=3D MACB_BIT(TX_NOCRC); } else /* Only set MSS/MFS on payload descriptors @@ -2159,9 +2194,10 @@ static int macb_pad_and_fcs(struct sk_buff **skb, st= ruct net_device *ndev) struct sk_buff *nskb; u32 fcs; =20 + /* Not available for GSO and PTP one step sync */ if (!(ndev->features & NETIF_F_HW_CSUM) || !((*skb)->ip_summed !=3D CHECKSUM_PARTIAL) || - skb_shinfo(*skb)->gso_size) /* Not available for GSO */ + skb_shinfo(*skb)->gso_size || ptp_oss(*skb)) return 0; =20 if (padlen <=3D 0) { diff --git a/drivers/net/ethernet/cadence/macb_ptp.c b/drivers/net/ethernet= /cadence/macb_ptp.c index fb6b27f46b15..9559c16078f9 100644 --- a/drivers/net/ethernet/cadence/macb_ptp.c +++ b/drivers/net/ethernet/cadence/macb_ptp.c @@ -470,8 +470,10 @@ int gem_set_hwtst(struct net_device *dev, struct ifreq= *ifr, int cmd) case HWTSTAMP_TX_ONESTEP_SYNC: if (gem_ptp_set_one_step_sync(bp, 1) !=3D 0) return -ERANGE; - fallthrough; + tx_bd_control =3D TSTAMP_ALL_FRAMES; + break; case HWTSTAMP_TX_ON: + gem_ptp_set_one_step_sync(bp, 0); tx_bd_control =3D TSTAMP_ALL_FRAMES; break; default: --=20 2.17.1 From nobody Sun May 10 09:54:43 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 249BFC433F5 for ; Tue, 17 May 2022 07:34:13 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240581AbiEQHeJ (ORCPT ); Tue, 17 May 2022 03:34:09 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35288 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237596AbiEQHd3 (ORCPT ); Tue, 17 May 2022 03:33:29 -0400 Received: from NAM04-BN8-obe.outbound.protection.outlook.com (mail-bn8nam08on2080.outbound.protection.outlook.com [40.107.100.80]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A387C4838B; Tue, 17 May 2022 00:33:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BD6LfDTrxGCoazV8HhWK84l3a+p5VHi1FlII+TS2aYhA7SeQKiDctNtWcXqMP7TyYox2UpYDe50pQdIMFxiewJNLZEJ1AW52iMsrFPOM4yfShN+R8rcmwaeXkYYh9o+5UipGa0j2luHYntbB3EHL9+iolGrHajkw6femXZkDrjYckmJgcHcah7oMSXxc5Xg6uqv+Px/78WhmBAKnJjtokRAbp/wl/ue/fBLevle2OobIK2OtRGQS3Ovgvq0vjzk0ukuMJYgR4we6rucz00DZB+GmUDzVDyss5SD9PkmlAmIMf/qfpQHLw3hLMBsuYOdy7SxF1qLp6VuW7jcxQ4E4Uw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=hS0yfoKTWVc5n57rM+isadaiNORc71iaMto9Cq2lWjg=; b=nYWhO04NBuK8fFKE1Ok2L5q1guyavS6wjglaKrUMOnk9zDWSBFPr4qmamSdboTlHd7mXJ+Qr9HlypiR/iqowyz4Z33Y40yDR0iuE9A7uFuzIXPO1Ejd2EmKRGmX7dMzl1MwipvDxAIEX8BltxGac1V8Mkf8Rl2h2e+h27LGrugU2ffenAsa+1KIqYUx40/xjhgbqQETJS0HbVkwOxtIw4efO8N/FnWtXpcvd821G/NEyxGnIZxuQQ4cBOIETHPmoSOvqjNi6ySp5hOHQliqHe6as+GZsi4ljZVLtSk6sAqwOcaDUF1MlNH/DdGXHvz3uXM/JgOHqAgO+IrniDdoZjg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 149.199.62.198) smtp.rcpttodomain=microchip.com smtp.mailfrom=xilinx.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=xilinx.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=xilinx.onmicrosoft.com; s=selector2-xilinx-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=hS0yfoKTWVc5n57rM+isadaiNORc71iaMto9Cq2lWjg=; b=XT2Mp/0oqu/WZkbbet5M3NtRa9nzSAzp8sSMfrv3iWnGKWoS/Mpo0qYUApXHDYCRRqqmqFyhtsbqqkS2ogNpffAw1XiL1OnxsOfiA1kBNhuX9s8SvYG1DhwEWYYgOyAUySqlvtaAd9q4knK7eq7mBfknUC89RlpYvw9haFrpwkM= Received: from DS7PR05CA0002.namprd05.prod.outlook.com (2603:10b6:5:3b9::7) by DM6PR02MB6731.namprd02.prod.outlook.com (2603:10b6:5:222::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5250.14; Tue, 17 May 2022 07:33:22 +0000 Received: from DM3NAM02FT027.eop-nam02.prod.protection.outlook.com (2603:10b6:5:3b9:cafe::8) by DS7PR05CA0002.outlook.office365.com (2603:10b6:5:3b9::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5250.13 via Frontend Transport; Tue, 17 May 2022 07:33:22 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 149.199.62.198) smtp.mailfrom=xilinx.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=xilinx.com; Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates 149.199.62.198 as permitted sender) receiver=protection.outlook.com; client-ip=149.199.62.198; helo=xsj-pvapexch02.xlnx.xilinx.com; Received: from xsj-pvapexch02.xlnx.xilinx.com (149.199.62.198) by DM3NAM02FT027.mail.protection.outlook.com (10.13.5.130) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.5250.13 via Frontend Transport; Tue, 17 May 2022 07:33:22 +0000 Received: from xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) by xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2176.14; Tue, 17 May 2022 00:33:10 -0700 Received: from smtp.xilinx.com (172.19.127.96) by xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) with Microsoft SMTP Server id 15.1.2176.14 via Frontend Transport; Tue, 17 May 2022 00:33:10 -0700 Envelope-to: nicolas.ferre@microchip.com, davem@davemloft.net, richardcochran@gmail.com, claudiu.beznea@microchip.com, kuba@kernel.org, pabeni@redhat.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, harinikatakamlinux@gmail.com Received: from [10.140.6.13] (port=40442 helo=xhdharinik40.xilinx.com) by smtp.xilinx.com with esmtp (Exim 4.90) (envelope-from ) id 1nqrhe-000GAX-5C; Tue, 17 May 2022 00:33:10 -0700 From: Harini Katakam To: , , , , , CC: , , , , , Subject: [PATCH 2/3] net: macb: Enable PTP unicast Date: Tue, 17 May 2022 13:02:58 +0530 Message-ID: <20220517073259.23476-3-harini.katakam@xilinx.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220517073259.23476-1-harini.katakam@xilinx.com> References: <20220517073259.23476-1-harini.katakam@xilinx.com> MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 1ed68958-a3fc-4f5f-6d8e-08da37d78599 X-MS-TrafficTypeDiagnostic: DM6PR02MB6731:EE_ X-Microsoft-Antispam-PRVS: X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: hleKh0og5s5o0gs8S24CnxwYgs75yb528vpOeuzQSffawDC2xUoLF4pB1/eItgXgPiVT2r8mV+YMPIYgyobsnpOnNU1HCMTUgH+V3EIvZZaUt4mJhqLjHX7mczosNqQ6xSrvSYMjUYTPgb1fI/RlyiqRmlmlGSQ0PjxjeLBQO1msIIhyUGuoEMeLFeBuCytvF+ry3raGr373ViH7LuNpiLRcj727wdUo5I/RiCltUdSEhFb7EFoUYq/cu7Bwt5GXi7dh8lz55wxCEjgLz9cLMe95HojWwTahdTS7xZd37MraFQmBb8qblDTXLtcIPhNjWDNKZubPCJNSLyPCbWtQEkFNHiuXQZIqcB5tKkLwWT+irHnWZdbgPwmDIueeRUwffYZDtAjH727CArP4A4IZVL2tFix2UqM+Xr/UgwkqbBeTecYW2o2oey6XvaGLU8EiItbPnsTDd6GdLwwW2OoDdbYHWzA6rE8vZHEV63iO4eOd9IJPnSIp/VxpKSD82hH4YzfsRoytZPkZ8ED5QGJHC8yqA0EGCwU/PfunHC++CAr4NZzoVrre8o3AnhNWgiaXGe+sNJ9xtC6Bnb211mOvaEf03G+lupwl4stFPx5JBB2p3DmKaOGD/Qk+KSvcuSyfFf6TBSox4X5pp9ls83v93O7zdC/vScCiPtwNkaU+gdb0uSgX9qoPCtZzkkLZzGa0Uby1HThYhp7dztYcLf0j+w== X-Forefront-Antispam-Report: CIP:149.199.62.198;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:xsj-pvapexch02.xlnx.xilinx.com;PTR:unknown-62-198.xilinx.com;CAT:NONE;SFS:(13230001)(4636009)(36840700001)(40470700004)(46966006)(7636003)(6666004)(2906002)(54906003)(426003)(356005)(336012)(47076005)(186003)(1076003)(82310400005)(316002)(7696005)(110136005)(36860700001)(83380400001)(9786002)(40460700003)(5660300002)(508600001)(44832011)(70206006)(70586007)(4326008)(8936002)(8676002)(26005)(36756003)(2616005)(107886003)(102446001);DIR:OUT;SFP:1101; X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 May 2022 07:33:22.4330 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 1ed68958-a3fc-4f5f-6d8e-08da37d78599 X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.62.198];Helo=[xsj-pvapexch02.xlnx.xilinx.com] X-MS-Exchange-CrossTenant-AuthSource: DM3NAM02FT027.eop-nam02.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR02MB6731 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" 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 Signed-off-by: Michal Simek Signed-off-by: Radhey Shyam Pandey Acked-by: Richard Cochran --- drivers/net/ethernet/cadence/macb.h | 4 ++++ drivers/net/ethernet/cadence/macb_main.c | 7 +++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/cadence/macb.h b/drivers/net/ethernet/cad= ence/macb.h index 7ca077b65eaa..d245fd78ec51 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 Reg= ister 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/etherne= t/cadence/macb_main.c index e23a03e8badf..19276583811e 100644 --- a/drivers/net/ethernet/cadence/macb_main.c +++ b/drivers/net/ethernet/cadence/macb_main.c @@ -290,6 +290,9 @@ static void macb_set_hwaddr(struct macb *bp) top =3D cpu_to_le16(*((u16 *)(bp->dev->dev_addr + 4))); macb_or_gem_writel(bp, SA1T, top); =20 + gem_writel(bp, RXPTPUNI, bottom); + gem_writel(bp, TXPTPUNI, bottom); + /* Clear unused address register sets */ macb_or_gem_writel(bp, SA2B, 0); macb_or_gem_writel(bp, SA2T, 0); @@ -723,8 +726,8 @@ static void macb_mac_link_up(struct phylink_config *con= fig, =20 spin_unlock_irqrestore(&bp->lock, flags); =20 - /* Enable Rx and Tx */ - macb_writel(bp, NCR, macb_readl(bp, NCR) | MACB_BIT(RE) | MACB_BIT(TE)); + /* Enable Rx and Tx; Enable PTP unicast */ + macb_writel(bp, NCR, macb_readl(bp, NCR) | MACB_BIT(RE) | MACB_BIT(TE) | = MACB_BIT(PTPUNI)); =20 netif_tx_wake_all_queues(ndev); } --=20 2.17.1 From nobody Sun May 10 09:54:43 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 88712C433F5 for ; Tue, 17 May 2022 07:34:01 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238642AbiEQHd4 (ORCPT ); Tue, 17 May 2022 03:33:56 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35372 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241258AbiEQHdb (ORCPT ); Tue, 17 May 2022 03:33:31 -0400 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2060.outbound.protection.outlook.com [40.107.94.60]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7FA96483B4; Tue, 17 May 2022 00:33:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RwyYjNXIaiXXcLZ5gS+apoW0twoAZuKxkl8HygR/zj9jpWOfhMBKno2/f4jyCzQYov74DspyKJoXAT22gi03WU3ZDzAMLO80O2JLTJvsOA+BRtv/CDxU5HjssKA0T2yjqsX/ExctdWE0YFAoeV69EmSjm2ITKKeju9tM6WO7dBMY6HYUhpi3rSULPPcxklvkN66PfR/Oy96mCnO6sankL4uYo5JvkgSEbXPeEqNXQZaZNO3oHeJbl+9oQ+jLkGRJ9wF5ShP1UdEIG/vvsQyOCQSHd2Ye4vOiTNlpcqfUhSx7Kshz7N0vKbsuD+8XSgETsZsRy9LHTPGbvGkwz/q3Uw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=/cpnYqFDx/8J0k9YnxZiCpqTzjZBbi5uzYOjNr8QPBw=; b=Z3iXsY+NpiqEjKQ0Eu/Wzr/fX+ZB4oVTXtf12sWhkVdmqAm0+LvIVJ/qwuOnJ/tysrTmPfZF+RUAeUY3KYCdN0TOHTBrBIU37MBkmCoJV1wcfUOZQUoUcgrJ8eileW1hS7JYQUza0rddIK0V5uJn73C1hemlBgY3+98oi9bdXJV54F5SHDpmokvli7PKonVo+8vJsxB/fOMmXwqPrHPC3d5JJNKJGfin56OEgjY4eJQG3KxqOABMiRJ26+gljm2RaX74aCuyowg055leuT3CoCbBb7NW2OOK3Omc8WnYJ7D66SODBIKRkx5KttgK/z7j77QrqjHQJCK8jkcwFUASpw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 149.199.62.198) smtp.rcpttodomain=microchip.com smtp.mailfrom=xilinx.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=xilinx.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=xilinx.onmicrosoft.com; s=selector2-xilinx-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=/cpnYqFDx/8J0k9YnxZiCpqTzjZBbi5uzYOjNr8QPBw=; b=dr5zULaW2zFs+cQVT72JK3ZIE1c3M77TXT2v2gg3BUhUn+oFoW2jySsT5JgNYEYB3HJaDkI08Ls1cDTomS3gyRAL6kM4RSbLRSWydaHnGEikpRZHd1TF1UjwVJqzKPasjyDW0nFZd/qW5y1JXJ58z9scsd1v76T2ANsPQzSzkKo= Received: from DS7PR05CA0015.namprd05.prod.outlook.com (2603:10b6:5:3b9::20) by SJ0PR02MB7678.namprd02.prod.outlook.com (2603:10b6:a03:32f::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5250.13; Tue, 17 May 2022 07:33:23 +0000 Received: from DM3NAM02FT027.eop-nam02.prod.protection.outlook.com (2603:10b6:5:3b9:cafe::a1) by DS7PR05CA0015.outlook.office365.com (2603:10b6:5:3b9::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5227.17 via Frontend Transport; Tue, 17 May 2022 07:33:23 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 149.199.62.198) smtp.mailfrom=xilinx.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=xilinx.com; Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates 149.199.62.198 as permitted sender) receiver=protection.outlook.com; client-ip=149.199.62.198; helo=xsj-pvapexch02.xlnx.xilinx.com; Received: from xsj-pvapexch02.xlnx.xilinx.com (149.199.62.198) by DM3NAM02FT027.mail.protection.outlook.com (10.13.5.130) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.5250.13 via Frontend Transport; Tue, 17 May 2022 07:33:23 +0000 Received: from xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) by xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2176.14; Tue, 17 May 2022 00:33:14 -0700 Received: from smtp.xilinx.com (172.19.127.96) by xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) with Microsoft SMTP Server id 15.1.2176.14 via Frontend Transport; Tue, 17 May 2022 00:33:14 -0700 Envelope-to: nicolas.ferre@microchip.com, davem@davemloft.net, richardcochran@gmail.com, claudiu.beznea@microchip.com, kuba@kernel.org, pabeni@redhat.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, harinikatakamlinux@gmail.com Received: from [10.140.6.13] (port=40442 helo=xhdharinik40.xilinx.com) by smtp.xilinx.com with esmtp (Exim 4.90) (envelope-from ) id 1nqrhh-000GAX-HK; Tue, 17 May 2022 00:33:13 -0700 From: Harini Katakam To: , , , , , CC: , , , , , Subject: [PATCH 3/3] net: macb: Optimize reading HW timestamp Date: Tue, 17 May 2022 13:02:59 +0530 Message-ID: <20220517073259.23476-4-harini.katakam@xilinx.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220517073259.23476-1-harini.katakam@xilinx.com> References: <20220517073259.23476-1-harini.katakam@xilinx.com> MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: fc23510e-7d31-4919-02e6-08da37d78613 X-MS-TrafficTypeDiagnostic: SJ0PR02MB7678:EE_ X-Microsoft-Antispam-PRVS: X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: k9Ga9HbiFH0uDS+/n56KPA7VA4kRQgKcezj8+EOxJ2SHPO/27ht6LuWXtFh+j6y+NR/YOtK1n4y+VKRXQgfjDG7cDx0gHyskP29R0oNzlR0yUIoQPuniMlMxdxnEejPPVLMNsBVrEBzzb/KCPyB4opJ4Rv50ZMaNVmjlj5qm7gehFHEVe61Sl0vEaMwzTePbw0HaMF8W3VPBea4R4GJ6RaelzSN2WUbFupBhPFCZdXQUx4ortRUdVwMdf/w1wX0Iuv3S8QLwXRDr7iQrGi+dNhfHHTM97vaylXtjYn0Uxyrkstm0Vm7vGRWR1dzbaUPJMzrdnqzpe7dxSMq5AEmjC5Ej+AVmCd46lKe8c0Nt+z0EFi1yE2t3YrsiRT6UMenmIIghdXm/u6VwhCNuBOo8DjXn4BvFVHe23voTbmfujAeRr0faXxCUoR4pvNii+s0WtiqH7CTExpw3rl55vWqoU+owbQsqVTHuL9FsjDReJ/4SYgz9EjIWaLrKMQeB4sZrNtepeVaWrnKMCQ2y0eGXEd4wcwpwBNl1ymYdtzJQc1Iy74vFSDJuD9QLQzkx7v3mNwps8cgVra/VPl7ZU3h7U1IkDZGG6Bbx5I+ym0WF3msro2ZB3WHiGDDHHM0AnyDoduRbGySJlydGrBUvztc0PLZRsiDcSTbGDXE6W9Xn6rkeL2MsOK8Dmvu+4aYPB/uJN8ZIfOZeeTYjshChQ3jvtQ== X-Forefront-Antispam-Report: CIP:149.199.62.198;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:xsj-pvapexch02.xlnx.xilinx.com;PTR:unknown-62-198.xilinx.com;CAT:NONE;SFS:(13230001)(4636009)(40470700004)(36840700001)(46966006)(2616005)(426003)(7696005)(186003)(26005)(107886003)(36756003)(83380400001)(508600001)(9786002)(6666004)(5660300002)(8936002)(1076003)(44832011)(47076005)(336012)(8676002)(2906002)(40460700003)(7636003)(4326008)(70206006)(36860700001)(70586007)(356005)(54906003)(82310400005)(110136005)(316002)(102446001);DIR:OUT;SFP:1101; X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 May 2022 07:33:23.2298 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: fc23510e-7d31-4919-02e6-08da37d78613 X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.62.198];Helo=[xsj-pvapexch02.xlnx.xilinx.com] X-MS-Exchange-CrossTenant-AuthSource: DM3NAM02FT027.eop-nam02.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR02MB7678 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" 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 Signed-off-by: Michal Simek Signed-off-by: Radhey Shyam Pandey Acked-by: Richard Cochran --- 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 9559c16078f9..c853518c0406 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_de= sc_ts_1, u32 dma_desc_ts_2, struct timespec64 *ts) { struct timespec64 tsu; + bool sec_rollover =3D false; =20 ts->tv_sec =3D (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_d= esc_ts_1, */ if ((ts->tv_sec & (GEM_DMA_SEC_TOP >> 1)) && !(tsu.tv_sec & (GEM_DMA_SEC_TOP >> 1))) - ts->tv_sec -=3D GEM_DMA_SEC_TOP; + sec_rollover =3D true; + + ts->tv_sec |=3D ((~GEM_DMA_SEC_MASK) & tsu.tv_sec); =20 - ts->tv_sec +=3D ((~GEM_DMA_SEC_MASK) & tsu.tv_sec); + if (sec_rollover) + ts->tv_sec -=3D GEM_DMA_SEC_TOP; =20 return 0; } --=20 2.17.1