From nobody Mon Oct 6 10:18:49 2025 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2052.outbound.protection.outlook.com [40.107.223.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1A8CD2797B2; Tue, 22 Jul 2025 15:41:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.223.52 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753198888; cv=fail; b=BP+1HBemI1/VEOoyONIyyZa1Cxx8dY1t2XmUj/UAMniQe+bh9iRdaafap4qe+9EUrY64/LvtL8HJ6h8/5QwWfbOC+UX1jJs+koRsSqYSSI4dJgyj3FGrzmBycpEZ8pQSwmI85jDM7uGfYq5df0kwUDsk+Lb3AxY8FijKySnLdpY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753198888; c=relaxed/simple; bh=lSsN9Dk+sppOV3leczY399YPFvCvstxhJI5/9N7+9JM=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=RD054z+bMz9EDKIcjWjiUJmupSGHLI8UirnhNgxtRlcKcEJisd7kUhh2IBruD6UPjl1+fjqe2ceVT4lPm/sMSLOe3AjWacIU9TPe7IbQKyPDq830mJ4qCbPE1NbK9M1k9tRvh85Be+qKcIA7uv05tNqWiO9HauEocOEPGbJZbLY= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=RZ41+X5A; arc=fail smtp.client-ip=40.107.223.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="RZ41+X5A" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=wWvuIDRsyABv0YziSjFSsEcs1fAdSOy00BPcYmcD7+y9O0kLm6aJCiCFwbSoGtUtgXI4u7gDbZN9MutQ6LC7IKLsZfd37evmEJnoqnlvxS/TwUw+RQexVQ+QQWMUweKifPuLQGJlsLdgqCUDew5y2sU/ncZ96DUpHwenQBmeg6v+1i6Sho96t74VtCDTv2WP0oIMecFOPWmubkHyyRv0rcGXwZBaSpb5E3eXRIQbPHNbBdYp2NSn8JOCSbH7CABJDtvte0LadI1og9VUeU7D3wNvklz6MNRDGARtutLLmcxGrDrMHOevwzmpRBRerNtG65eboZ1uBSZ1aOpSH+CJUA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=ze8BKKgEKKKWF0qDdNJGmMqYA6yQ5CRMNUHLUSomBJA=; b=ZtYkobfmStFHy9eq/YA9Xjov+pqJLdAZRsx/QkLKrCmSdzLdG5Lq2/KMMMnxM4vIEzbEdMcle4qHs8iHub2ACf7OeNQAX25d7Oue5Glz32wDVbxWzSMrLBvMklkVhLEAQolpx1TgWkWPqQhz2Dqk0U0MxYLVVYseIW01EzC7IiTO5fUL3FC46YJ3ik6DaKwgf1Acbo6P7LFKjj83UqbHIslqJR03B9R6OS/SdabgsbtqT3kwK0hiD9P656mCJfVnCwk/fUMOabnUPzp9/J3DyHFd4ZD8zQwVUvAfydQ+V0+OHtiYhRvpN2AvMkBBfVtAzNqp1snEeViPNN0JBhQOYw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=microchip.com smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ze8BKKgEKKKWF0qDdNJGmMqYA6yQ5CRMNUHLUSomBJA=; b=RZ41+X5Ao+rrA92cQddW3GqY4EpJxFXTzMeIVo/zpNo7IcwZ9StUuah6UINKcpV5s1Kja/jhdCtrk97lpT7rl7kY4cXirPsE/J+u/dF5+9lkQgzkNgDnIGncNsv4caAYz7lJeHtx0uKlcyV76F7UNcQnjMa5L8OUxuk5UWf4BSI= Received: from BYAPR01CA0006.prod.exchangelabs.com (2603:10b6:a02:80::19) by PH7PR12MB7185.namprd12.prod.outlook.com (2603:10b6:510:201::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8943.30; Tue, 22 Jul 2025 15:41:24 +0000 Received: from MWH0EPF000A672F.namprd04.prod.outlook.com (2603:10b6:a02:80:cafe::9) by BYAPR01CA0006.outlook.office365.com (2603:10b6:a02:80::19) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8943.29 via Frontend Transport; Tue, 22 Jul 2025 15:41:57 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by MWH0EPF000A672F.mail.protection.outlook.com (10.167.249.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8964.20 via Frontend Transport; Tue, 22 Jul 2025 15:41:23 +0000 Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 22 Jul 2025 10:41:18 -0500 Received: from xhdvineethc40.xilinx.com (10.180.168.240) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Tue, 22 Jul 2025 10:41:15 -0500 From: Vineeth Karumanchi To: , , , , , , CC: , , , Subject: [PATCH net-next 1/6] net: macb: Define ENST hardware registers for time-aware scheduling Date: Tue, 22 Jul 2025 21:11:06 +0530 Message-ID: <20250722154111.1871292-2-vineeth.karumanchi@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250722154111.1871292-1-vineeth.karumanchi@amd.com> References: <20250722154111.1871292-1-vineeth.karumanchi@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: None (SATLEXMB04.amd.com: vineeth.karumanchi@amd.com does not designate permitted sender hosts) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWH0EPF000A672F:EE_|PH7PR12MB7185:EE_ X-MS-Office365-Filtering-Correlation-Id: a2395631-8c64-44a2-9902-08ddc93636cc X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|1800799024|376014|36860700013; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?z8fd6Rbs5QlVgaTR9hmp7yG/IKgQt49KXXXNU5rFlnKnU6RaKeirWezq3otn?= =?us-ascii?Q?NLALR8K7UG2hIsFVf/kdLgmvkNV9Nd2LuVbiIkpRz4fXFfQL9YPjKMGTyINE?= =?us-ascii?Q?43GSOB+Koii8P1hsNSbwi5Yo1S5T7XxHJPPWIXXLQT22xUGAvpe9PcoKkq2L?= =?us-ascii?Q?0u1Sdhd5t8JjNriMtybl8zt0fZPr44XBMx5dzzh0KlRMcPME4BXmOZkEJCCC?= =?us-ascii?Q?AUT3DMFdKa8kF9/nXvPeTLZYMiOLwT833m/T0wLw5RVsjEY5WeAaqCYF1PmI?= =?us-ascii?Q?xmTkLfivRCnLZCScVJ5JxgOuo71iY7TOne5Km3cipVqn67ErF/d8lxsXCSM5?= =?us-ascii?Q?3W8E3hdz8UPC3fmGkxuNElbxvR3eXQVjYkvxEzxOCgO7WrDfLDqOs3akXGaZ?= =?us-ascii?Q?RqIjHl/b4354uuGvWXRsupM/mDHopIgxsxxH5BB/xwmImHzoqAZbbIZysW7r?= =?us-ascii?Q?5TEuogOcf5QLhorvgqoBgCy+F27dJR+gm0nLlVUjYEG75HmKtqbGyswVfLx0?= =?us-ascii?Q?Zb424LKf7XHRxcJ0a54Eg7AtW7G0Ujuq/TQvT1bLlGoIDzHvVvdi6tbaFCHH?= =?us-ascii?Q?3AztJJWR1EyDDaDbxaV9B62ryaIzbWIYj7vK0h9NgTN8pwpT8tqK7LOi59cO?= =?us-ascii?Q?UbKluwU4Fo58qlEyX1juMkF1BQHJFLxSIgslYqCwpudJIiXd+F9wf0MN7Wcs?= =?us-ascii?Q?djatHjMWPbziJhvtJOdCZLM2qNrxBxHsaGBaexaA4OmK1Bt2K8LcRqYDmLOq?= =?us-ascii?Q?dEiGkNLDX+6oT0bgYbB+Iz4xwt/Os7We8zPy6rDeK6p/vFQEo7qM2/Xycqiy?= =?us-ascii?Q?GtYNrX5eSa0hMsXXFR2K8OpKxAAjSuf86gyDCFcZa/2q9ZxeyX0kVEeYnlMO?= =?us-ascii?Q?7G+Ycbb1egkePQ+RqcAOKHYg7WeyOyBIQVc/HEYFY0Zmu+SO313MOYyudMOQ?= =?us-ascii?Q?7C7lffz7ZWN+6KtALsRpQH9Uje2SBcxaSYuGzPan5jlnhtzS0Ka27AHZrqCl?= =?us-ascii?Q?ybiWNSCyNgN2gTFPWVkIJwBzQkCsjHLxKFQd3lfmgAI1VBiCb9aDgSUnedni?= =?us-ascii?Q?zSm/BuYisBSB2fm6mEu/oKuCHbtlwj9GtgXWnLFIM5X+0z+8KDopV31ELrvO?= =?us-ascii?Q?+R/sKnuqhZ3nygmiDbI5THORjoLIcn9U+yQJ5HQoS07NWoCXhG4hEiz3x2+A?= =?us-ascii?Q?2d7VXf5b7VA0eVJ8fpaAu751Nf+J7e3SupAoAlSF7EQMphcdbhri8Cn++FKp?= =?us-ascii?Q?O+5PcNN/k5Zy7DKU1IkHxGFL+9+xjbPqvxJtwCZQ1lYZfB5K2aZLWDYKA93C?= =?us-ascii?Q?fBNTzXl1gMJi10BI4IuCDao8+ue0GrnsEYV2vhMTyYXXxxUq0OjHFc2eIK7U?= =?us-ascii?Q?fqQqPDVh80C/r32ydvhxCBomrhkPMwMuHMc8kj9Gt2EYNMppig/k2vZIyA0y?= =?us-ascii?Q?X1F0qMnHr2Ax6jYq9b0rO17VVt5k7fFWRU+YnXv63Dk++pUoOCj9fyVwaQcH?= =?us-ascii?Q?RzYtyzuIvhbj6pJBsZxZmbmuYGBJjUJhU6Cy?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(376014)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Jul 2025 15:41:23.9921 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a2395631-8c64-44a2-9902-08ddc93636cc X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: MWH0EPF000A672F.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB7185 Content-Type: text/plain; charset="utf-8" Add ENST (Enhanced Network Scheduling and Timing) register definitions to support IEEE 802.1Qbv time-gated transmission. Register architecture: - Per-queue timing registers: ENST_START_TIME, ENST_ON_TIME, ENST_OFF_TIME - Centralized control of the ENST_CONTROL register for enabling or disabling queue gates. - Time intervals programmed in hardware byte units - Hardware-level queue scheduling infrastructure. Signed-off-by: Vineeth Karumanchi --- drivers/net/ethernet/cadence/macb.h | 43 +++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/drivers/net/ethernet/cadence/macb.h b/drivers/net/ethernet/cad= ence/macb.h index c9a5c8beb2fa..e456ac65d6c6 100644 --- a/drivers/net/ethernet/cadence/macb.h +++ b/drivers/net/ethernet/cadence/macb.h @@ -184,6 +184,13 @@ #define GEM_DCFG8 0x029C /* Design Config 8 */ #define GEM_DCFG10 0x02A4 /* Design Config 10 */ #define GEM_DCFG12 0x02AC /* Design Config 12 */ +#define GEM_ENST_START_TIME_Q0 0x0800 /* ENST Q0 start time */ +#define GEM_ENST_START_TIME_Q1 0x0804 /* ENST Q1 start time */ +#define GEM_ENST_ON_TIME_Q0 0x0820 /* ENST Q0 on time */ +#define GEM_ENST_ON_TIME_Q1 0x0824 /* ENST Q1 on time */ +#define GEM_ENST_OFF_TIME_Q0 0x0840 /* ENST Q0 off time */ +#define GEM_ENST_OFF_TIME_Q1 0x0844 /* ENST Q1 off time */ +#define GEM_ENST_CONTROL 0x0880 /* ENST control register */ #define GEM_USX_CONTROL 0x0A80 /* High speed PCS control register */ #define GEM_USX_STATUS 0x0A88 /* High speed PCS status register */ =20 @@ -221,6 +228,15 @@ #define GEM_IDR(hw_q) (0x0620 + ((hw_q) << 2)) #define GEM_IMR(hw_q) (0x0640 + ((hw_q) << 2)) =20 +#define GEM_ENST_START_TIME(hw_q) (0x0800 + ((hw_q) << 2)) +#define GEM_ENST_ON_TIME(hw_q) (0x0820 + ((hw_q) << 2)) +#define GEM_ENST_OFF_TIME(hw_q) (0x0840 + ((hw_q) << 2)) + +/* Bitfields in ENST_CONTROL. */ +#define GEM_ENST_DISABLE_QUEUE(hw_q) BIT((hw_q) + 16) /* q0 disable is 16'= b */ +#define GEM_ENST_DISABLE_QUEUE_OFFSET 16 +#define GEM_ENST_ENABLE_QUEUE(hw_q) BIT(hw_q) /* q0 enable is 0'b */ + /* Bitfields in NCR */ #define MACB_LB_OFFSET 0 /* reserved */ #define MACB_LB_SIZE 1 @@ -554,6 +570,33 @@ #define GEM_HIGH_SPEED_OFFSET 26 #define GEM_HIGH_SPEED_SIZE 1 =20 +/* Bitfields in ENST_START_TIME_Q0, Q1. */ +#define GEM_START_TIME_SEC_OFFSET 30 +#define GEM_START_TIME_SEC_SIZE 2 +#define GEM_START_TIME_NSEC_OFFSET 0 +#define GEM_START_TIME_NSEC_SIZE 30 + +/* Bitfields in ENST_ON_TIME_Q0, Q1. */ +#define GEM_ON_TIME_OFFSET 0 +#define GEM_ON_TIME_SIZE 17 + +/* Bitfields in ENST_OFF_TIME_Q0, Q1. */ +#define GEM_OFF_TIME_OFFSET 0 +#define GEM_OFF_TIME_SIZE 17 + +/* Hardware ENST timing registers granularity */ +#define ENST_TIME_GRANULARITY_NS 8 + +/* Bitfields in ENST_CONTROL. */ +#define GEM_DISABLE_Q1_OFFSET 17 +#define GEM_DISABLE_Q1_SIZE 1 +#define GEM_DISABLE_Q0_OFFSET 16 +#define GEM_DISABLE_Q0_SIZE 1 +#define GEM_ENABLE_Q1_OFFSET 1 +#define GEM_ENABLE_Q1_SIZE 1 +#define GEM_ENABLE_Q0_OFFSET 0 +#define GEM_ENABLE_Q0_SIZE 1 + /* Bitfields in USX_CONTROL. */ #define GEM_USX_CTRL_SPEED_OFFSET 14 #define GEM_USX_CTRL_SPEED_SIZE 3 --=20 2.34.1 From nobody Mon Oct 6 10:18:49 2025 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2079.outbound.protection.outlook.com [40.107.93.79]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F32162797B2; Tue, 22 Jul 2025 15:41:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.93.79 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753198894; cv=fail; b=afRqESMlj0Uic9u7tdJ8gpwKq/dKAbi3/+W+EyQ9LblPPYf/5JNVSxFtIMwZNW8PN4CQm+BXrrT7XY5sL3FMv9pfZJLoYo/IaopAvvbFGWF4FRFmrUnxBMI3lJwFCYv+3BvyPGS174rWrjfg34dp6pU2kj8qmRwKlYRz9qvQKgY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753198894; c=relaxed/simple; bh=qQnH0D5pxCPkXXbg2E4Dlv2OTkQ4ozRdDUqBQ5rp0ns=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=GEeumgaFx6HzBeSZuKCFqiSKUuwYX+k3+E1oGD55iAuz7d88dao3tmV7o3TLpjBy6qjyaU1W7wt8znTIHFDBOySMI7EhWSKazblY4KHkIyB8JIJZUlPoxboxYByLZLWOxxpkWlP3ko9YXXhyEZQYL4VfwDWJObTH2mIYks0+L6w= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=3K83mNlx; arc=fail smtp.client-ip=40.107.93.79 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="3K83mNlx" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=lZxV27mIE4PrYrM/Ol3LVjWq4bcm8Adgj0iTZ0t2yfJ8nX0ZBHFQPd3UEoJchcEH1PFrIAWdhRZi1Be0nBd6jjVWtxVXEGNZ7mqrMFrmdKMdHoEcElQm/exMilPYoY37bHV06mHuHZ2QFgdliVG6z43KN9ElXcUGwNEA+gpoQ1kTV6VHIj1pc2oSPhS5GGKJ7+aROXBdKFoJ34EKHgJ5EGyn/AY/jMNoX5HBZY+fmu5vXWKpfcBHaNwlbjeLhNyMcAgPKXYhYZFplutHCgw5Mgegnv9ixlzifUqd7NjkcHGsTfEcGMUvHvgA+wBBrLOXjF7uBDN2y4+cigjwwAt8lQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=PQzHAFNtlaNPfeuQ7YyqNXc3rxLkXfQxTjHM2H1DZVQ=; b=juAXwzwoW6Oi4i1WMtkNFrFHbfrp+ANuHOEAvJe4b62Qj2oIo3gbEcZ9gghUSh3Xm0PDeXHrZEDVRrD3KFG+7ipDjDDAD7T9e1LcIvwb3Qp+4T80eNB41YFGH1pVxMZJ/HvusFQivnXRDIj5ABRm/I5u13raN1fsPPXjrjL8PsL4uHOLc4jMd/5BJEfvnfT+y6YTKsXaYN0m3MAIMxRqXXE6xiMbabGjZz6aYGzWGDBAXfo7s8XNj7EHQCL4/arxtQRt92SQgkMCbJ6cYfwn+0wuZS9kQilGbPdLkea+DtoyGEeHtH/Tk7DzRyye+eBixrZE7pWxjc49Wi5QmUvDCA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=microchip.com smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=PQzHAFNtlaNPfeuQ7YyqNXc3rxLkXfQxTjHM2H1DZVQ=; b=3K83mNlxNiXKxKkG2HcdwVNMXf6HMdwzdWRLcsHvgVlIh7jUq96QKwmaG8v/M9Rf3yJ1EWshsAdjsB3nNlR1JRRzoAuYI8Ft18Ht2V9jZbPETXTS8fegBrEQoKwCoSZowLfTtB8QZ43qRpDfPx2a0O+QvbvDL9lhecB/1BbkrwA= Received: from BYAPR01CA0008.prod.exchangelabs.com (2603:10b6:a02:80::21) by LV8PR12MB9083.namprd12.prod.outlook.com (2603:10b6:408:18c::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8943.30; Tue, 22 Jul 2025 15:41:25 +0000 Received: from MWH0EPF000A672F.namprd04.prod.outlook.com (2603:10b6:a02:80:cafe::22) by BYAPR01CA0008.outlook.office365.com (2603:10b6:a02:80::21) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8964.21 via Frontend Transport; Tue, 22 Jul 2025 15:41:47 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by MWH0EPF000A672F.mail.protection.outlook.com (10.167.249.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8964.20 via Frontend Transport; Tue, 22 Jul 2025 15:41:24 +0000 Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 22 Jul 2025 10:41:21 -0500 Received: from xhdvineethc40.xilinx.com (10.180.168.240) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Tue, 22 Jul 2025 10:41:19 -0500 From: Vineeth Karumanchi To: , , , , , , CC: , , , Subject: [PATCH net-next 2/6] net: macb: Integrate ENST timing parameters and hardware unit conversion Date: Tue, 22 Jul 2025 21:11:07 +0530 Message-ID: <20250722154111.1871292-3-vineeth.karumanchi@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250722154111.1871292-1-vineeth.karumanchi@amd.com> References: <20250722154111.1871292-1-vineeth.karumanchi@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: None (SATLEXMB04.amd.com: vineeth.karumanchi@amd.com does not designate permitted sender hosts) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWH0EPF000A672F:EE_|LV8PR12MB9083:EE_ X-MS-Office365-Filtering-Correlation-Id: 955faad6-5299-4401-7933-08ddc9363750 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|36860700013|82310400026; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?s0lEBDoqtC6X7Q5gnXu/p33/uATnfxWcFwEHu/Q9ezlXwcNcC5VyQc37fADa?= =?us-ascii?Q?1s5UYn0qsg+xb6vuvdIyXclW6L+EGiolY3kAT6BoGVv4cdP20viGBZsjDvoG?= =?us-ascii?Q?FBwgnE6sa8N5WyChnuc/rB2fbdTEipbQLNQmmG2Fc+iSOXTAgwlhT1/yaTLH?= =?us-ascii?Q?jv8TGuOXdk+oxlVtAXwHntSzjontFVejkcL9jcBvXq09LNV44JvSm2wWWm+n?= =?us-ascii?Q?RvOXohUCBsmJt6wl9hJL1cCksR37h3PejgG+hebX7unGHgTD2NGgH3I1xoig?= =?us-ascii?Q?+/siIMfm1Z6DYb2LPTwsQ4nOCdfQSaNvmtfbWW30sb+ONLTlOV9dtR0klXkE?= =?us-ascii?Q?+faUdG8waVC+I4wmCZRZXpAH5ZHAO5R9+i70WkGE8YAZSf1oTAS8VWqd8UaS?= =?us-ascii?Q?uLl/c6I0XonnGylpRuk2dOZhDhOm61BAJwCNH0GIRDJxkyV/bm3EZFzsM0/Y?= =?us-ascii?Q?BXKGpVODQ2eChgpeLVHAPoDMEQrw/VbUah4XgpTGlYk/Zsu9mCbt5d/bj8J9?= =?us-ascii?Q?LDPaDlFYs1wlVIMnvdTpAdbwrCK9IVE3EdvhxjhDPd3+J5L6KsQL6h4ob/Rb?= =?us-ascii?Q?GFIB8bjZi3i2vyWxFDNfQ4C4oVCqopqXsqEj5oA10uE1cBTHbVXtrbKuavq+?= =?us-ascii?Q?1ULosbEkMHfZ7RhkmNv9TEllhNpX19GQ+Yof23gBYe+2zx5Z8rbpMs39Ktyo?= =?us-ascii?Q?cSiBeA575BeWr/5slxKT3ZKoG1eLTNBVEkrZynSeo9KzIYs6RfpErhp6UttK?= =?us-ascii?Q?EK/CkKfpY985qVv3SUru6pBy8WWRqjyQwjeKRyVom96mt5VUrM16Y+R4YIzo?= =?us-ascii?Q?g48UaukALKb6gXsTJ9wruJX2QhhOXUAdjf2Z4O5HQx5m+3glF9hQMoGaa7hv?= =?us-ascii?Q?1vgsX0qv7LD7NkGGwN8PpsuHFOgwlxInlo/hdju778fJc36Hqwd499vAIg15?= =?us-ascii?Q?htYUkgDa3k3T3tvKkJ//PO/MWLjoLrZBEb6WgzigHjsEsj50RINDOCMiivPl?= =?us-ascii?Q?aDOt5Z3zMjQiPXfY3gUcqGWuVFBhWL89E6wDfFw5m+tcApTn9fF60+odUHFi?= =?us-ascii?Q?p5kSw/ztHLNKghyIVzbRScoB1HiCJqr4zv5d7IRGL4ZouKAPDdYu7me8uiUu?= =?us-ascii?Q?CLDevHVKykdajzARtpC2bR7Tr2uqYalYLk3SzlFjyGG4YwLWmBM15w6B0N9r?= =?us-ascii?Q?wYra9K8VIK+BlUnANB6zgbB1tQdUGWaY+gVpHNUr7r8abMqbSpHeaUWALnMs?= =?us-ascii?Q?udK0jUkf9tmVayxvTOtDPj5ymeeV3fp4lw0MudNw8RZTCz3PxFA5nCvdkFpN?= =?us-ascii?Q?atzanTkXZ483iLevgVPMDSeo4qG7K8GiajdQHdpbaUNu0Mbz+1gqCm7vM74L?= =?us-ascii?Q?bu9Ha0zGHXC7zFM6y6SMhCDOJc9a3Q3xiMJ5hSJtoOwcD5YtsrXxP4D9Y7yB?= =?us-ascii?Q?gYIOQuSlPfZh2pGhqGGZnCgcKMkNf7O8jVc+lpPWfecR0uzon4HSMXYn98EU?= =?us-ascii?Q?Z0j8VeO86RmshcA3QulhhCZN6W4Ddly9cc6x?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(1800799024)(36860700013)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Jul 2025 15:41:24.8559 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 955faad6-5299-4401-7933-08ddc9363750 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: MWH0EPF000A672F.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR12MB9083 Content-Type: text/plain; charset="utf-8" Add Enhanced Network Scheduling and Timing (ENST) support to queue infrastructure with speed-dependent timing calculations for precise gate control. Hardware timing unit conversion: - Timing values programmed as hardware units based on link speed - Conversion formula: time_bytes =3D time_ns / divisor - Speed-specific divisors: * 1 Gbps: divisor =3D 8 * 100 Mbps: divisor =3D 80 * 10 Mbps: divisor =3D 800 Infrastructure changes: - Extend macb_queue structure with ENST timing control registers - Add queue_enst_configs structure for per-entry TC configuration storage - Map ENST register offsets into existing queue management framework - Define ENST_NS_TO_HW_UNITS() macro for automatic speed-based conversion This enables hardware-native timing programming while abstracting the speed-dependent conversions Signed-off-by: Vineeth Karumanchi --- drivers/net/ethernet/cadence/macb.h | 32 ++++++++++++++++++++++++ drivers/net/ethernet/cadence/macb_main.c | 6 +++++ 2 files changed, 38 insertions(+) diff --git a/drivers/net/ethernet/cadence/macb.h b/drivers/net/ethernet/cad= ence/macb.h index e456ac65d6c6..ef3995564c5c 100644 --- a/drivers/net/ethernet/cadence/macb.h +++ b/drivers/net/ethernet/cadence/macb.h @@ -857,6 +857,16 @@ =20 #define MACB_READ_NSR(bp) macb_readl(bp, NSR) =20 +/* ENST macros*/ +#define ENST_NS_TO_HW_UNITS(ns, speed_mbps) \ + DIV_ROUND_UP((ns) * (speed_mbps), (ENST_TIME_GRANULARITY_NS * 1000)) + +#define ENST_MAX_HW_INTERVAL(speed_mbps) \ + DIV_ROUND_UP(GENMASK(GEM_ON_TIME_SIZE - 1, 0) * ENST_TIME_GRANULARITY_NS= * 1000,\ + (speed_mbps)) + +#define ENST_MAX_START_TIME_SEC GENMASK(GEM_START_TIME_SEC_SIZE - 1, 0) + /* struct macb_dma_desc - Hardware DMA descriptor * @addr: DMA address of data buffer * @ctrl: Control and status bits @@ -1262,6 +1272,11 @@ struct macb_queue { unsigned int RBQP; unsigned int RBQPH; =20 + /* ENST register offsets for this queue */ + unsigned int ENST_START_TIME; + unsigned int ENST_ON_TIME; + unsigned int ENST_OFF_TIME; + /* Lock to protect tx_head and tx_tail */ spinlock_t tx_ptr_lock; unsigned int tx_head, tx_tail; @@ -1450,4 +1465,21 @@ struct macb_platform_data { struct clk *hclk; }; =20 +/** + * struct queue_enst_configs - Configuration for Enhanced Scheduled Traffi= c (ENST) queue + * @queue_id: Identifier for the queue + * @start_time_mask: Bitmask representing the start time for the queue + * @on_time_bytes: "on" time nsec expressed in bytes + * @off_time_bytes: "off" time nsec expressed in bytes + * + * This structure holds the configuration parameters for an ENST queue, + * used to control time-based transmission scheduling in the MACB driver. + */ +struct queue_enst_configs { + u8 queue_id; + u32 start_time_mask; + u32 on_time_bytes; + u32 off_time_bytes; +}; + #endif /* _MACB_H */ diff --git a/drivers/net/ethernet/cadence/macb_main.c b/drivers/net/etherne= t/cadence/macb_main.c index ce95fad8cedd..ff87d3e1d8a0 100644 --- a/drivers/net/ethernet/cadence/macb_main.c +++ b/drivers/net/ethernet/cadence/macb_main.c @@ -4305,6 +4305,9 @@ static int macb_init(struct platform_device *pdev) queue->TBQP =3D GEM_TBQP(hw_q - 1); queue->RBQP =3D GEM_RBQP(hw_q - 1); queue->RBQS =3D GEM_RBQS(hw_q - 1); + queue->ENST_START_TIME =3D GEM_ENST_START_TIME(hw_q); + queue->ENST_ON_TIME =3D GEM_ENST_ON_TIME(hw_q); + queue->ENST_OFF_TIME =3D GEM_ENST_OFF_TIME(hw_q); #ifdef CONFIG_ARCH_DMA_ADDR_T_64BIT if (bp->hw_dma_cap & HW_DMA_CAP_64B) { queue->TBQPH =3D GEM_TBQPH(hw_q - 1); @@ -4319,6 +4322,9 @@ static int macb_init(struct platform_device *pdev) queue->IMR =3D MACB_IMR; queue->TBQP =3D MACB_TBQP; queue->RBQP =3D MACB_RBQP; + queue->ENST_START_TIME =3D GEM_ENST_START_TIME(0); + queue->ENST_ON_TIME =3D GEM_ENST_ON_TIME(0); + queue->ENST_OFF_TIME =3D GEM_ENST_OFF_TIME(0); #ifdef CONFIG_ARCH_DMA_ADDR_T_64BIT if (bp->hw_dma_cap & HW_DMA_CAP_64B) { queue->TBQPH =3D MACB_TBQPH; --=20 2.34.1 From nobody Mon Oct 6 10:18:49 2025 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2055.outbound.protection.outlook.com [40.107.223.55]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7DF69279DC2; Tue, 22 Jul 2025 15:41:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.223.55 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753198892; cv=fail; b=Ut4UfTwMFI6z55G5ve7Q4P9az18/E+HCUSdr4aHDPcAm4zeVYqdA5VZH3KP2PrxHAaDB+W5r8EtkdN6/aNrsEN6M5E1uy6fhVomOxwrfoYmOE7HaMfiUhy0CMnh/FuHRS8lLtbhIV3Hb5S1+HQ0MSN2nDc9ruTgd1L1O2PTx/BE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753198892; c=relaxed/simple; bh=dRUJNEJDVXLOYfqRCxO7DMKYe3tH8W7/9yaCPcci8r4=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=M+KuF/+J/B4TKkLrpRXcY+pg+E+kzjyj1L27NyKJrijdCvApx7xMT4WdhUQdaYVxT4EqHdUxl0O5CgqP10w30IbSzjsC9psh9XGIO24jCNWe5hY59gOKmyznIUh8yQN6ferHZvsA2XkYt/TfDeDJYK5NbgHYLfloQxrpNXg4SXY= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=ZrJfa2sx; arc=fail smtp.client-ip=40.107.223.55 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="ZrJfa2sx" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=XwPGfUdfEerLvbrrLJ6N0IZX4996HMFmDSh59fvnrT9wMXSsFpQrbIkK3m8UcLxmiHoqfBOYUjgbpd3wcYs3BcR60HwCNH6+g/VuzhNgPyCi/kzfZqPgs6sAimq8sEjLeWvnYoN6ykam94TN38cyjQD5FCrOYDuR+Jw55PuZ+ZyM5izlMiQZulXvMy1viW9EmQEEZey/Jj2qsv56g1GNZtOO5lepRTyL3E34AYeoVHffWKAZBN54+IvvBVc1oG8dNvM8uhZEQvPwqn0FFHEi0is6PnEld+5iT9XJx9rTuna/v8SfDYZCmrgO7kvFM/vHW6KVSJSioI8vGFB1mWk2aQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=q0YV7vGcDTQfqB/oe9FyO+7VtgmFnh5pr55Fs6ywPkI=; b=DP8jByPO+rgbyotfQsR83FxOnCmyRGGNUXznnkTQTz7MM3h0pCBf3EiQusYX6XbcxmKtus9KvF3LVENJNkE76a1s7JOoJJLE3V165nWsXEvUYIivZK6Rcy1RAt352iGX2xloOiCeRo1KUDwaJSBf5YPWX+2ozbWrd3nkVUKKwqzZ/9gW+lPPbmJdnYBJDBquBU5h90LOoj+GJA4AoCX9E5WwUUl6pHFX2DUDaHnWtf6x4GCBF76gmzYqMyp9QtrZvTxdOCC42Qed5TUe4loqX8scjOWo2FAUMF2+/yLCNQjBNNuEqgaMD7N1eXm8aqWF/tro2R7ODwwHUpZbsmrOCg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=microchip.com smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=q0YV7vGcDTQfqB/oe9FyO+7VtgmFnh5pr55Fs6ywPkI=; b=ZrJfa2sxDvCDmLYqysuhGHTVssxbzh7CywVx748dzGenlq8gzhqvLAuXvByAxlNbCxmqEBbSrrTfxduFKJqcvQnImrJuM6fUH1KPAoZoA4qoffALwGptd8U1cwAs73dZQFo0HWltdJ1RYWj8O4t3gbkgQVmLU2G+Mr1AAwb+i/s= Received: from PH8PR02CA0006.namprd02.prod.outlook.com (2603:10b6:510:2d0::23) by DS0PR12MB8245.namprd12.prod.outlook.com (2603:10b6:8:f2::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8943.28; Tue, 22 Jul 2025 15:41:27 +0000 Received: from CY4PEPF0000FCBF.namprd03.prod.outlook.com (2603:10b6:510:2d0:cafe::6c) by PH8PR02CA0006.outlook.office365.com (2603:10b6:510:2d0::23) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8943.29 via Frontend Transport; Tue, 22 Jul 2025 15:41:27 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB03.amd.com; pr=C Received: from SATLEXMB03.amd.com (165.204.84.17) by CY4PEPF0000FCBF.mail.protection.outlook.com (10.167.242.101) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8964.20 via Frontend Transport; Tue, 22 Jul 2025 15:41:27 +0000 Received: from SATLEXMB06.amd.com (10.181.40.147) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 22 Jul 2025 10:41:26 -0500 Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB06.amd.com (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 22 Jul 2025 10:41:25 -0500 Received: from xhdvineethc40.xilinx.com (10.180.168.240) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Tue, 22 Jul 2025 10:41:22 -0500 From: Vineeth Karumanchi To: , , , , , , CC: , , , Subject: [PATCH net-next 3/6] net: macb: Add IEEE 802.1Qbv TAPRIO REPLACE command offload support Date: Tue, 22 Jul 2025 21:11:08 +0530 Message-ID: <20250722154111.1871292-4-vineeth.karumanchi@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250722154111.1871292-1-vineeth.karumanchi@amd.com> References: <20250722154111.1871292-1-vineeth.karumanchi@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY4PEPF0000FCBF:EE_|DS0PR12MB8245:EE_ X-MS-Office365-Filtering-Correlation-Id: 257b4059-f055-43ca-3ccc-08ddc9363898 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|82310400026|36860700013; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?kwbKCxcXvYvp1riOkLPB8x5MjMGlvt3jfbnUGH5hhIbXdop7pQXHMlVFUBJd?= =?us-ascii?Q?hmhhB+cpAgts/yIFZY529Nm+HJ/6emZUIc+RwuB9UIYrtgfsX//P8denS19L?= =?us-ascii?Q?B85ygVvpCuiVWmCvk39u8yW6dk9moLBYkTuJF/VWbmwqM1AiAChtekter0eF?= =?us-ascii?Q?pR8pA3qn+OzsfZHwfmTPJeGgEh9blIouIlY1pc60aE6ErVO6+Rv8VU04bxUY?= =?us-ascii?Q?7BVR585VRmeWfN+PaAHFDK31KjrWy4uKWr9ZocRBVOJbT55ZW9p8F9q+ZAKA?= =?us-ascii?Q?sHC6O4A2/zu3zJIFDkDULbO6TxFOwYCeqXSRxo5aOcLoP+BBmCGx2Df+075v?= =?us-ascii?Q?ROA77ZBxdS+ip2TTbFnzE+REcaHN6sy8vGtHsM4wMSFRbt5UAAgNWojCHe32?= =?us-ascii?Q?v0+roiNSfxUXuC95aW6dlXHpXo/76KZ+OR7EkBdgSG0vKu4C4USqhtmzZXev?= =?us-ascii?Q?lZXdAblnybIIeLQp+l1U1AqaKh7ZTACfvfVAAvpBBIEeM2RYiPK8bbSyJwz3?= =?us-ascii?Q?d2M0aJrPntXjiiY0PlCvRXIokeAeJOLGQj04dd/xSaFvq/P8c8ymGGfkUS6U?= =?us-ascii?Q?P9EEJodCRaTmTEKXh6fjK4VLRHBONUj2NKGgeaVUyu05Sfp8RW5VVhc7GIDP?= =?us-ascii?Q?xNOIXl9HKJqnaqpUjlMV7aBQXqvBWVAozpFUCVPh7wT2EtbumoNZRNpR2o6Y?= =?us-ascii?Q?E2DeGoRHMTEdRxdW7oKLonu3pfBDXhGBDqZZoVIQ8cli6jvFZgQYaFG2d3GF?= =?us-ascii?Q?U1t2k3gTBx7q+6RHrcVxSzSJ8lCG5tkoaD+LVla3yfzGJYXbyYpx97iXfnZX?= =?us-ascii?Q?Q730GtK5KQXIauao7UuyoQIcF8DFJr/3gjRFcHzmiHu4XT1sHN+Q4FBVW9BX?= =?us-ascii?Q?wRTnP8H12APPJoDBHJhSFuTI1Tp+W/qwHUxjzJelUnAn/tt937KbOAXSzTWw?= =?us-ascii?Q?/WxTM2UqlXe6irE3DDlEWRVnbgbJ9Ye7Y68EFGAenr16UbWncOT8VB0gXbtu?= =?us-ascii?Q?0ILTTFxF72106DyUCxoY7U1eY1zRppz5IIaif+dEJjBcAGlrdT4dGosfzJQU?= =?us-ascii?Q?fyWt4rqzsjfTqarCQS+dzc2GNYOi9NArfwtPYTXs89lOJGxrF9fJ3Ee9evF2?= =?us-ascii?Q?EtzS7wOB22xgKCg4RuCUXpoeGeI/6FYB22QkNoz98fLF3s0L5t7qT4duqZhC?= =?us-ascii?Q?l+cqZ2M+HnkDX4cEv94V7UX3hxzrnSSoG46foyRPxWxXL8f+3tfdsmdjlQ6q?= =?us-ascii?Q?bHxWgdcoYGrkT7C2NsbVRrXopZhKa+8oHAqm75R+tNP+IiH/PtADMlcKTwje?= =?us-ascii?Q?GgyXltnhMRfSxv93lbsYfPPdanB/cEHHvWi6Gp3qNhejM2yPzCIlmg+tyCDB?= =?us-ascii?Q?rBwGDY58ZDPUxB/DXgcT6e/F0V8TVyFVOlcfwqRtKSgpiyByNXka2sA8PsRi?= =?us-ascii?Q?4cSgvuicxcSQ0z/1RUKVR0BUtMCQG207s+q6sQwZqNoJkEeb5AX3sCNk6BxI?= =?us-ascii?Q?SKRW3m5CgB1xeklwK6xmNQ1ssEIs4ZPeFVbL?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(1800799024)(82310400026)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Jul 2025 15:41:27.0524 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 257b4059-f055-43ca-3ccc-08ddc9363898 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB03.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CY4PEPF0000FCBF.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB8245 Content-Type: text/plain; charset="utf-8" Implement Time-Aware Traffic Scheduling (TAPRIO) hardware offload for "tc qdisc replace" operations, enabling IEEE 802.1Qbv compliant gate scheduling on Cadence MACB/GEM controllers. Parameter validation checks performed: - Queue count bounds checking (1 < queues <=3D MACB_MAX_QUEUES) - TC entry limit validation against available hardware queues - Base time non-negativity enforcement - Speed-adaptive timing constraint verification - Cycle time vs. total gate time consistency checks - Single-queue gate mask enforcement per scheduling entry Hardware programming sequence: - GEM doesn't support changing register values if ENST is running, hence disable ENST before programming - Atomic timing register configuration (START_TIME, ON_TIME, OFF_TIME) - Enable the configured queues via ENST_CONTROL register This implementation ensures deterministic gate scheduling while preventing invalid configurations. Signed-off-by: Vineeth Karumanchi --- drivers/net/ethernet/cadence/macb_main.c | 155 +++++++++++++++++++++++ 1 file changed, 155 insertions(+) diff --git a/drivers/net/ethernet/cadence/macb_main.c b/drivers/net/etherne= t/cadence/macb_main.c index ff87d3e1d8a0..4518b59168d5 100644 --- a/drivers/net/ethernet/cadence/macb_main.c +++ b/drivers/net/ethernet/cadence/macb_main.c @@ -36,6 +36,7 @@ #include #include #include +#include #include "macb.h" =20 /* This structure is only used for MACB on SiFive FU540 devices */ @@ -4084,6 +4085,160 @@ static void macb_restore_features(struct macb *bp) macb_set_rxflow_feature(bp, features); } =20 +static int macb_taprio_setup_replace(struct net_device *ndev, + struct tc_taprio_qopt_offload *conf) +{ + u64 total_on_time =3D 0, start_time_sec =3D 0, start_time =3D conf->base_= time; + struct queue_enst_configs *enst_queue; + u32 configured_queues =3D 0, speed =3D 0; + struct tc_taprio_sched_entry *entry; + struct macb *bp =3D netdev_priv(ndev); + struct ethtool_link_ksettings kset; + struct macb_queue *queue; + unsigned long flags; + int err =3D 0, i; + + /* Validate queue configuration */ + if (bp->num_queues < 1 || bp->num_queues > MACB_MAX_QUEUES) { + netdev_err(ndev, "Invalid number of queues: %d\n", bp->num_queues); + return -EINVAL; + } + + if (conf->num_entries > bp->num_queues) { + netdev_err(ndev, "Too many TAPRIO entries: %lu > %d queues\n", + conf->num_entries, bp->num_queues); + return -EINVAL; + } + + if (start_time < 0) { + netdev_err(ndev, "Invalid base_time: must be 0 or positive, got %lld\n", + conf->base_time); + return -ERANGE; + } + + /* Get the current link speed */ + err =3D phylink_ethtool_ksettings_get(bp->phylink, &kset); + if (unlikely(err)) { + netdev_err(ndev, "Failed to get link settings: %d\n", err); + return err; + } + + speed =3D kset.base.speed; + if (unlikely(speed <=3D 0)) { + netdev_err(ndev, "Invalid speed: %d\n", speed); + return -EINVAL; + } + + enst_queue =3D kcalloc(conf->num_entries, sizeof(*enst_queue), GFP_KERNEL= ); + if (!enst_queue) + return -ENOMEM; + + /* Pre-validate all entries before making any hardware changes */ + for (i =3D 0; i < conf->num_entries; i++) { + entry =3D &conf->entries[i]; + + if (entry->command !=3D TC_TAPRIO_CMD_SET_GATES) { + netdev_err(ndev, "Entry %d: unsupported command %d\n", + i, entry->command); + err =3D -EOPNOTSUPP; + goto cleanup; + } + + /* Validate gate_mask: must be nonzero, single queue, and within range */ + if (!is_power_of_2(entry->gate_mask)) { + netdev_err(ndev, "Entry %d: gate_mask 0x%x is not a power of 2 (only on= e queue per entry allowed)\n", + i, entry->gate_mask); + err =3D -EINVAL; + goto cleanup; + } + + /* gate_mask must not select queues outside the valid queue_mask */ + if (entry->gate_mask & ~bp->queue_mask) { + netdev_err(ndev, "Entry %d: gate_mask 0x%x exceeds queue range (max_que= ues=3D%d)\n", + i, entry->gate_mask, bp->num_queues); + err =3D -EINVAL; + goto cleanup; + } + + /* Check for start time limits */ + start_time_sec =3D div_u64(start_time, NSEC_PER_SEC); + if (start_time_sec > ENST_MAX_START_TIME_SEC) { + netdev_err(ndev, "Entry %d: Start time %llu s exceeds hardware limit\n", + i, start_time_sec); + err =3D -ERANGE; + goto cleanup; + } + + /* Check for on time limit*/ + if (entry->interval > ENST_MAX_HW_INTERVAL(speed)) { + netdev_err(ndev, "Entry %d: interval %u ns exceeds hardware limit %lu n= s\n", + i, entry->interval, ENST_MAX_HW_INTERVAL(speed)); + err =3D -ERANGE; + goto cleanup; + } + + /* Check for off time limit*/ + if ((conf->cycle_time - entry->interval) > ENST_MAX_HW_INTERVAL(speed)) { + netdev_err(ndev, "Entry %d: off_time %llu ns exceeds hardware limit %lu= ns\n", + i, conf->cycle_time - entry->interval, + ENST_MAX_HW_INTERVAL(speed)); + err =3D -ERANGE; + goto cleanup; + } + + enst_queue[i].queue_id =3D order_base_2(entry->gate_mask); + enst_queue[i].start_time_mask =3D + (start_time_sec << GEM_START_TIME_SEC_OFFSET) | + (start_time % NSEC_PER_SEC); + enst_queue[i].on_time_bytes =3D + ENST_NS_TO_HW_UNITS(entry->interval, speed); + enst_queue[i].off_time_bytes =3D + ENST_NS_TO_HW_UNITS(conf->cycle_time - entry->interval, speed); + + configured_queues |=3D entry->gate_mask; + total_on_time +=3D entry->interval; + start_time +=3D entry->interval; + } + + /* Check total interval doesn't exceed cycle time */ + if (total_on_time > conf->cycle_time) { + netdev_err(ndev, "Total ON %llu ns exceeds cycle time %llu ns\n", + total_on_time, conf->cycle_time); + err =3D -EINVAL; + goto cleanup; + } + + netdev_dbg(ndev, "TAPRIO setup: %lu entries, base_time=3D%lld ns, cycle_t= ime=3D%llu ns\n", + conf->num_entries, conf->base_time, conf->cycle_time); + + /* All validations passed - proceed with hardware configuration */ + spin_lock_irqsave(&bp->lock, flags); + + /* Disable ENST queues if running before configuring */ + if (gem_readl(bp, ENST_CONTROL)) + gem_writel(bp, ENST_CONTROL, + GENMASK(bp->num_queues - 1, 0) << GEM_ENST_DISABLE_QUEUE_OFFSET); + + for (i =3D 0; i < conf->num_entries; i++) { + queue =3D &bp->queues[enst_queue[i].queue_id]; + /* Configure queue timing registers */ + queue_writel(queue, ENST_START_TIME, enst_queue[i].start_time_mask); + queue_writel(queue, ENST_ON_TIME, enst_queue[i].on_time_bytes); + queue_writel(queue, ENST_OFF_TIME, enst_queue[i].off_time_bytes); + } + + /* Enable ENST for all configured queues in one write */ + gem_writel(bp, ENST_CONTROL, configured_queues); + spin_unlock_irqrestore(&bp->lock, flags); + + netdev_info(ndev, "TAPRIO configuration completed successfully: %lu entri= es, %d queues configured\n", + conf->num_entries, hweight32(configured_queues)); + +cleanup: + kfree(enst_queue); + return err; +} + static const struct net_device_ops macb_netdev_ops =3D { .ndo_open =3D macb_open, .ndo_stop =3D macb_close, --=20 2.34.1 From nobody Mon Oct 6 10:18:49 2025 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2043.outbound.protection.outlook.com [40.107.244.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DC3A827A92A; Tue, 22 Jul 2025 15:41:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.244.43 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753198900; cv=fail; b=AFrv5McZtUbXBM6W47hcuj6oFNUi9MNyW1NyPUnsdO/atuvgNH3ZeS0IUuF9CvA0qUiX9EBGJO7ULJFIbW+6myfK0Uk1Sec9h6fX4IcVdOQMQkxgAUcSJDbkNLmFomhM7h1a9L/kFp4LLJ5qWSNhluT4Spjl1IzSasAwEyh411c= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753198900; c=relaxed/simple; bh=A0fh1nR6GBQa/IIrHgFrADAkZ2FKDc583zJ4A6PM6wk=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Zdyuk4HYa9HdxfbP3z3aSNGv5WhvhJ9eG61eslw5rS9nEB2yltTli6Xc3fkk4SkXNRuXtcvTVuu4rUVqvDGVRxEkNGiWyI2a5bn2mUrO18OFKN1OjLVCzE+vNzoxfupEf9f75kpPjkfj7Y26ePTRDU8CM1LGq3L8gMZ9ULnM4HI= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=Gt6JoXcG; arc=fail smtp.client-ip=40.107.244.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="Gt6JoXcG" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ngCLtEwYDAWu0qWz5PxF3de6M6Tj4xgF/pNykzhjvMrTOJ+nUlqhGHjYJBP9s2rweoASWzfUnz1KwDFOPs7m4VvHq2EqudtHR/mJda/P5zhxk59+MhcS4MVUH8mn9Q8jnY7XVA6xP52TOkuSwFTU+zynSkVqyXqYeoXr9eTdqAqyOepOQHm4EdMh/0PWWyDYCfjKhd5ito9z21nFUjZx3uba/CxM53A99YU87yA5Gucs8Rewraua270kRjed03zyhrgDbbLos/atfk1AewE8HuGE0Gosex7dccjvtMpAJNbhs7LflTcsdgulf5V/diKMjG4zKjVD1Gkh9jPZL7p8dw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=PhBdrkJzjjB9wRqSFPCPgtzWjxE2dYXpPqA/BVdq1Sk=; b=tEUIyVZxLORCoTCiwxXdtriwTO+eWtJRtc0QyFU/RtJdunvHgbvbFO2I2JT42b+yFyeE5eqbzgPBB5I9VEWjyKsF1nweWOme6VRNA8Z6HVwLZyjifIfj/uRBBK0Azc1q1AincEDJwbjB7iQp9zY3rLqg8VCbz4KKgNMahzbWku+BDy5CSs4T3XPDrVNzs6XjQJm2an/5RYmeJ1tGQYCwuZwkrpr8BLjqJOrpJW8+GtBXBJXpQNYDgSZ4BilQyzdJJjoG2M+Rzn56GirXOd6AP5GFhmnoaitpJVYbTwffwMsW4h1dfOFJC0nkJsG8e8UDqacBvoK3DznKTq446HqeWA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=microchip.com smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=PhBdrkJzjjB9wRqSFPCPgtzWjxE2dYXpPqA/BVdq1Sk=; b=Gt6JoXcGybBvZMppSh7uzzCTfIjeYANaGnIcOKhgSnDZzIvYbb9+AfVLDB/sk/dcuYg0sp2watBA6Mn7St2qI03dLgerZKkFsRnoI2i+YAqlcBmIU2QZsBC2pXtr4kezaJxh3RXph2ubZHZh1tajgpNYMHITnKzdHDxOvQGz7MI= Received: from PH8P221CA0003.NAMP221.PROD.OUTLOOK.COM (2603:10b6:510:2d8::31) by DS0PR12MB7772.namprd12.prod.outlook.com (2603:10b6:8:138::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8943.30; Tue, 22 Jul 2025 15:41:31 +0000 Received: from MWH0EPF000A6734.namprd04.prod.outlook.com (2603:10b6:510:2d8:cafe::f4) by PH8P221CA0003.outlook.office365.com (2603:10b6:510:2d8::31) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8943.29 via Frontend Transport; Tue, 22 Jul 2025 15:41:30 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by MWH0EPF000A6734.mail.protection.outlook.com (10.167.249.26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8964.20 via Frontend Transport; Tue, 22 Jul 2025 15:41:30 +0000 Received: from SATLEXMB06.amd.com (10.181.40.147) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 22 Jul 2025 10:41:29 -0500 Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB06.amd.com (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 22 Jul 2025 10:41:28 -0500 Received: from xhdvineethc40.xilinx.com (10.180.168.240) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Tue, 22 Jul 2025 10:41:25 -0500 From: Vineeth Karumanchi To: , , , , , , CC: , , , Subject: [PATCH net-next 4/6] net: macb: Implement TAPRIO DESTROY command offload for gate cleanup Date: Tue, 22 Jul 2025 21:11:09 +0530 Message-ID: <20250722154111.1871292-5-vineeth.karumanchi@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250722154111.1871292-1-vineeth.karumanchi@amd.com> References: <20250722154111.1871292-1-vineeth.karumanchi@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWH0EPF000A6734:EE_|DS0PR12MB7772:EE_ X-MS-Office365-Filtering-Correlation-Id: 9a1374d8-04db-4f58-2c08-08ddc9363ab4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|1800799024|82310400026|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?xg9kKHxrDvW8k2LN2EsKE5QjV9inBnX9VbQ8bO0ZFNPD1k1ExVYubDePFKLC?= =?us-ascii?Q?F1M2Pd4wkKoU8XnxkRTdugik/yuQ8tyn7GudmpqP8+IdAvRoMHenvAdevaO0?= =?us-ascii?Q?ebM63Z610BwyZ+zsTepNdvZf/PGKfce34ZD+xSfS1ik5grKmvpELH2fqA8gR?= =?us-ascii?Q?wTVCG419DRY3eIqZYps66MvqvE18V2pAWihz8IGMNf6q5ndgWuEsYmVn86hg?= =?us-ascii?Q?/KasR+vUDVARZ22uEO/r/GjIFh6P+7zCenQfYbcvFBw/FA4DVWkndMtURqtZ?= =?us-ascii?Q?O8TZEk0YDFIgCk3FDM3vwCDAuR6tmFPXJ7ZaI5utDcU3rATRjAao6GnbNj2T?= =?us-ascii?Q?WwLke4UtdgIv8thmKOgVITOKxU1BsywUckl10XpPgMZMoONnr9pH1RLhr2Qn?= =?us-ascii?Q?1SrMLs9bpvmvxX2VueNqD+AcKlH+hybc/r5HNQCVg357hmeti7vqu7fROiPN?= =?us-ascii?Q?12JdWJkrLJ/L0izSQJG3qKOJt7Eq5I1Y3xUEd/Ln3TeLRB9LAeYqkh2WgeEj?= =?us-ascii?Q?oeYAU+HZ+dxYGTrKn+pDfGSr2YVKn+iDJ9kMc+eyrFtipAnD0K9CgQt+ppr0?= =?us-ascii?Q?3jdQVtv7OLymrqmqp47qv3kc5MFIj7IeJcWQs9djsWrWLBscG3kdVeHp0I1q?= =?us-ascii?Q?J61ty06hHRW/h6n/+La8sojNVcGSIO6X6NlAge6xFlGur50IkPhU+C1QdM+P?= =?us-ascii?Q?deIp2oxE6IIoApOw2RQ1A5eTRAuatF2R/3zKoOb+T7eGV1eqbRlwvc1YRXTZ?= =?us-ascii?Q?INuMJK+4UsSRBGAmCzTsCDWglGIrlPr/LZhyEAD18/cbaCx5vDmavsLj5iny?= =?us-ascii?Q?kPWT9d7+KOXUHfMiTTSGCDcD65UP/CY/ip+4FUCt3xFFCxY3GQQ871KMCc8K?= =?us-ascii?Q?yA+aN+2eTPyUN5HmF4cTguHyruMP6ru1+q2jN/KCrPo82cKTAd0Uyz6OadV3?= =?us-ascii?Q?9TXx4y4/p0dshT3QlVU9CodGgyfdH+p2xPMMLSyQHEIF9mnsij7bVUtCqjS8?= =?us-ascii?Q?CCaEQaS9woJtnOYA78PDhurQjjRZ+o3JdNn+h2uk5DqxyZ0Az/bWspBiNr/z?= =?us-ascii?Q?EBkHt+JM0VcDqiYAvWKSiy3Ha7bpouQ0cAfidMWoFduUO3tSL5qTGpzI3AmZ?= =?us-ascii?Q?r8ifHxbgmVsnVKe5VrmW5FhngGiZ/mhnOUllnnWW5MiGmEkSQy5gJVJjRt6z?= =?us-ascii?Q?0VwxXb4QW4NMP8J30XYz7dPoix66nCKKfRw7qK+q/Kad2V3BZYotfYKC8aij?= =?us-ascii?Q?vGHPQ7DDnFH6joRSdDcLnrCpbGG6QsvyixA8pBlGAZHiBrUFTaLh9uunyZFL?= =?us-ascii?Q?J+mTjL9YAPZdCEQSrgoC3gbRlyHnkMNCGqNr8M6QLAsY2pKeM8m6D0xnIfov?= =?us-ascii?Q?9FPt77An1KsVhN3KTvhgJv2npjoq/31fkm9owdFDcLVY8kP3/vxeYgcmgTsb?= =?us-ascii?Q?roDT1OgAlM+RagCs8UIBqT1wz526lQLGvWX5dhLXrO6yh6OvENt0+xdHbWnd?= =?us-ascii?Q?vZDVU2AG1ShNy+ANKebDAxd8pGmQ5Duql1NB?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(82310400026)(376014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Jul 2025 15:41:30.5435 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 9a1374d8-04db-4f58-2c08-08ddc9363ab4 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: MWH0EPF000A6734.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB7772 Content-Type: text/plain; charset="utf-8" Add hardware offload support for "tc qdisc destroy" operations to safely remove IEEE 802.1Qbv time-gated scheduling configuration and restore default queue behavior. Cleanup sequence: - Reset network device TC configuration state - Disable Enhanced Network Scheduling and Timing for all queues - Clear all ENST timing control registers (START_TIME, ON_TIME, OFF_TIME) - Atomic register programming with proper synchronization This ensures complete removal of time-aware scheduling state, returning the controller to standard FIFO queue operation without residual timing constraints Signed-off-by: Vineeth Karumanchi --- drivers/net/ethernet/cadence/macb_main.c | 28 ++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/drivers/net/ethernet/cadence/macb_main.c b/drivers/net/etherne= t/cadence/macb_main.c index 4518b59168d5..6b3eff28a842 100644 --- a/drivers/net/ethernet/cadence/macb_main.c +++ b/drivers/net/ethernet/cadence/macb_main.c @@ -4239,6 +4239,34 @@ static int macb_taprio_setup_replace(struct net_devi= ce *ndev, return err; } =20 +static void macb_taprio_destroy(struct net_device *ndev) +{ + struct macb *bp =3D netdev_priv(ndev); + struct macb_queue *queue; + unsigned long flags; + u32 enst_disable_mask; + u8 i; + + netdev_reset_tc(ndev); + enst_disable_mask =3D GENMASK(bp->num_queues - 1, 0) << GEM_ENST_DISABLE_= QUEUE_OFFSET; + netdev_dbg(ndev, "TAPRIO destroy: disabling all gates\n"); + + spin_lock_irqsave(&bp->lock, flags); + + /* Single disable command for all queues */ + gem_writel(bp, ENST_CONTROL, enst_disable_mask); + + /* Clear all queue ENST registers in batch */ + for (i =3D 0; i < bp->num_queues; i++) { + queue =3D &bp->queues[i]; + queue_writel(queue, ENST_START_TIME, 0); + queue_writel(queue, ENST_ON_TIME, 0); + queue_writel(queue, ENST_OFF_TIME, 0); + } + + spin_unlock_irqrestore(&bp->lock, flags); +} + static const struct net_device_ops macb_netdev_ops =3D { .ndo_open =3D macb_open, .ndo_stop =3D macb_close, --=20 2.34.1 From nobody Mon Oct 6 10:18:49 2025 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2078.outbound.protection.outlook.com [40.107.237.78]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A296527A927; Tue, 22 Jul 2025 15:41:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.237.78 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753198900; cv=fail; b=D6QFM61JiwdbDDdRzv1hflfbg2U3XCaFSGvQznmvcbbKC0qswRc2jf0dIag2f33ANmDws1zYTUEsDCyaT8pvEB7zDLkfHOQ0PMvtnVyJ8b3RutZuZdMvLiym9apf5wFuz+3Jn6BopxK0FUN5cOKeu7R2AmA+nGNEsiiAafqo1L0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753198900; c=relaxed/simple; bh=s+CSXU45NltTngeq4Zvmdnp9chsn6lhr7AzA3CzOL/8=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=iGDn356sgv2GvfnFKB02K4jYEtdI1eFbQQG+B/JV2mV2E67Blcz/v3cOc63bB0DAe4RafwzEQAFyO14tUP3ub7dErYSeYSCtPs/NFfmG1WxKvZbRsY9qmK+qsgJAwX5oMx8ruJmwVUx+PmRSzzCGB6gV/tnQJzwBWOzNFYEyfck= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=rw8Tcn/F; arc=fail smtp.client-ip=40.107.237.78 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="rw8Tcn/F" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=rBSbJLHKiUlZMgUlKYWAbcDi2PAj7dMZs92C8qcgXbrf/E6SEbLxkoWnR0iZtfp8gzVDZgw42dIC1wOSmef3GoNssCvNdUfyCeDaSq2VdXB8F2pg70PkT5LDxKHDV1yyZojr+K45AEmyesCs+oZHfd3AdDwT+N/34nfJQ4xqSRkFvKNDJh6gK8vjPo5zacFCv7N35Ay6kE2iSq9KJEGrmC1caADKCTo96Q8dqg/u6TX6pXJ7zmoIeDKJKE6/AO2KA4nd1qZVf7XIHUAeWxopS/HOcuTDq43TmLcobxdqbePL9keX2fTaW3fzhEXdRd2UPxkNn3Zzd+vHiSYPyCRVQg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=/2cZp2NhQ6TiK6D3tuMxBU/t3aEmCHkDQ8HQqephZj0=; b=Fuwq4y9L9vKMU6jkmSIVIZarywgGQiSmxlg0xTK8uJqkFMYjfWuA6QfSuHAcDNAu/LR+Zqe7TJ8mq4tsVZnwWZhKMIHNn89A5wLpJrtjnqkmaVmCZ2q8qu427ZcABA9sF5niBQN8nHB+9EIVOM3nKbojTE0MpcRrHpn6OqgajfWS8I96NwVeRjtNfP0oV/r/xy9RRDyOqxPNu1uqC36ZSIKGvY2qEKct8/0frbQbuhZA2dRFyugX9blT3MOq0CSeCvijBWpPxVuW9YuJBbaRQlw+7/lO33DJaT1teX22rFniIvf063+owxKu2RZZ/I5cRX4Phqtd9hEdSGWxFYP+TQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=microchip.com smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=/2cZp2NhQ6TiK6D3tuMxBU/t3aEmCHkDQ8HQqephZj0=; b=rw8Tcn/FgAYOvOvePBygCKZctkwiBsMpzf7Fsr3G9mARHoKWk9BBGpPiNf3LGCAS1++EHVBYYNs+AjMVjUZRJDFkDzSV12CGUtKxW3WeKKEHO7m2ooqMGeh53jY9foj9MZ/34gWftsp//Mz6jv4zYeerNsXJ/Lx/xP1CWG/Q9I0= Received: from PH8PR07CA0010.namprd07.prod.outlook.com (2603:10b6:510:2cd::22) by CH3PR12MB7644.namprd12.prod.outlook.com (2603:10b6:610:14f::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8964.21; Tue, 22 Jul 2025 15:41:34 +0000 Received: from CY4PEPF0000FCBE.namprd03.prod.outlook.com (2603:10b6:510:2cd:cafe::30) by PH8PR07CA0010.outlook.office365.com (2603:10b6:510:2cd::22) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8943.29 via Frontend Transport; Tue, 22 Jul 2025 15:41:33 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB03.amd.com; pr=C Received: from SATLEXMB03.amd.com (165.204.84.17) by CY4PEPF0000FCBE.mail.protection.outlook.com (10.167.242.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8964.20 via Frontend Transport; Tue, 22 Jul 2025 15:41:33 +0000 Received: from SATLEXMB06.amd.com (10.181.40.147) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 22 Jul 2025 10:41:33 -0500 Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB06.amd.com (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 22 Jul 2025 10:41:31 -0500 Received: from xhdvineethc40.xilinx.com (10.180.168.240) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Tue, 22 Jul 2025 10:41:28 -0500 From: Vineeth Karumanchi To: , , , , , , CC: , , , Subject: [PATCH net-next 5/6] net: macb: Implement TAPRIO TC offload command interface Date: Tue, 22 Jul 2025 21:11:10 +0530 Message-ID: <20250722154111.1871292-6-vineeth.karumanchi@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250722154111.1871292-1-vineeth.karumanchi@amd.com> References: <20250722154111.1871292-1-vineeth.karumanchi@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY4PEPF0000FCBE:EE_|CH3PR12MB7644:EE_ X-MS-Office365-Filtering-Correlation-Id: 8b2c5373-7fb2-4cca-0659-08ddc9363c7b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|36860700013|82310400026|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?IPfPx5GaDhdc6/QHRipvK1AXG55B8BIngz5GblfOOrH686H/BTo1s1THYKIi?= =?us-ascii?Q?IFTZ6AESrdC62V7BMVk3E2G46MLaBDVXz2zFnAKJHuGcZmyb8u8wg82p7tdZ?= =?us-ascii?Q?JnTyw/kPw3Z6v+NAZ+4GZVSxktlBSDgmQvgIj2V15AFZixV0YNwSoirFtUcf?= =?us-ascii?Q?3U5i7hhiUW3ZAoQemu/H/O8zI9F9cJesPq4BTRcu4QE9mXAUkasLMumAwIsT?= =?us-ascii?Q?dDM+TmHuOkVQ1/OXQPZ7sJhlIDI0+5woWHwbg4UENQu5bNfZL56F8KeCi1sb?= =?us-ascii?Q?SzQQwheaUjaWZAi4jBH1aM4BNPFQe3uePDfRe+LvKpF6HpeFLShfrcESptXf?= =?us-ascii?Q?lQrOQbKoiRWT41zv668TlSG8/zReDD/gAIvsgkvS45Da/hlBv4OnVjv2Uc4z?= =?us-ascii?Q?WtzWQyYZYm8QrvSi03kriEhgYbB2GNXjekt9b1cOF3WjZtq8ntQ8aaIaclTM?= =?us-ascii?Q?xTEcdT1CmUD4i5h8MftW5TWVX/lOoOclIcKZAzKTwF6y+w/cg0ZHCVw1E/aq?= =?us-ascii?Q?i2KD4Vh7Wv1bvZLasau5tuCQlZ4QEerwMj69EBcKTLzLpo7BvtJLy4to4FCf?= =?us-ascii?Q?AEa6vTo8wir6/rEMjiGJ68xey8dWj5bXxlvarsgKPFbKg18uJfnaSkWiPZp0?= =?us-ascii?Q?jdSsZWbRMSBx+nwqJmIoIbrenPOMIgJaX1B+InEGkKmQ837DZdhpE22xaXvC?= =?us-ascii?Q?xsuarVAGSAAOvvceTAuDggMGBreRGRkwYLWXKG+Z34yCLsYGECcTltvxZDRG?= =?us-ascii?Q?rnqlrY5dUPD1pYmI3K47dMmFZ63gxWNObaoQa+tCm3Ejgna4sefjT0zoKbXB?= =?us-ascii?Q?jCDZzDAfk0n1Hi5/L7jhkgLTqM5ffPV7txRbHxYVVK3XBWLNx1Gc7TJ9QYsV?= =?us-ascii?Q?0zX7F6bwqOMQ3mUCRKPkbL+v49nSQkIchUMHYdsjMK9utrH9GpjypgieDwos?= =?us-ascii?Q?wskEWOcOxxR43Q3fbvtkfB6rxDGHkJnaOyAjPZoODsqFVcm6rvjgOffc9oIH?= =?us-ascii?Q?i6tggN/ZyzNa3VIOoOCeublDBmjhxp+FePWsUCGJx41dckPmF/c3gFnC4qm+?= =?us-ascii?Q?a3E2+u5JNSzUAuKtXZssngKylPVhWo95xWGmMkGOWFeYG5IQUdyvY0uJEGKv?= =?us-ascii?Q?CspQ//eS/KNelpMz2xKSB9GPPR7Nn/7pXzCUbwDx0UN4TCMkila7pjsxYyt1?= =?us-ascii?Q?avpU/g2Nb51SFsV0+Ya2Y//O8VmYMPfIva3V/SHCBMj1rquWity7tinc9qjk?= =?us-ascii?Q?yfhjgffvMioUV+hJCwARhS4iuGU9jkHKTSBx8OFXGPO7O7BpkRiyJGX1vsa6?= =?us-ascii?Q?rP77fC4snDnjSvPFRYrM9tMFkREmoPqVnYUSTf7DiA46j5E3UEuE6EoQP6OE?= =?us-ascii?Q?fyWWQW7eayE0yZ4bvn0i+V/yjo1z3GLYjVS+sFA619rUczFLuhhF1WMdknge?= =?us-ascii?Q?aZtMHOBsEksKtzHwK2UeRbgJhBZOP8H58rHgLOtXgrtcnZ/xTlUtm9ewKdhQ?= =?us-ascii?Q?igimxRwjFNGRGaKje81LL8JJdfmNegKuOPdO?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700013)(82310400026)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Jul 2025 15:41:33.5706 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 8b2c5373-7fb2-4cca-0659-08ddc9363c7b X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB03.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CY4PEPF0000FCBE.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB7644 Content-Type: text/plain; charset="utf-8" Add Traffic Control offload infrastructure with command routing for TAPRIO qdisc operations: - macb_setup_taprio(): TAPRIO command dispatcher - macb_setup_tc(): TC_SETUP_QDISC_TAPRIO entry point - Support for REPLACE/DESTROY command mapping Provides standardized TC interface for time-gated scheduling control. Signed-off-by: Vineeth Karumanchi --- drivers/net/ethernet/cadence/macb_main.c | 33 ++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/drivers/net/ethernet/cadence/macb_main.c b/drivers/net/etherne= t/cadence/macb_main.c index 6b3eff28a842..cc33491930e3 100644 --- a/drivers/net/ethernet/cadence/macb_main.c +++ b/drivers/net/ethernet/cadence/macb_main.c @@ -4267,6 +4267,38 @@ static void macb_taprio_destroy(struct net_device *n= dev) spin_unlock_irqrestore(&bp->lock, flags); } =20 +static int macb_setup_taprio(struct net_device *ndev, + struct tc_taprio_qopt_offload *taprio) +{ + int err =3D 0; + + switch (taprio->cmd) { + case TAPRIO_CMD_REPLACE: + err =3D macb_taprio_setup_replace(ndev, taprio); + break; + case TAPRIO_CMD_DESTROY: + macb_taprio_destroy(ndev); + break; + default: + err =3D -EOPNOTSUPP; + } + + return err; +} + +static int macb_setup_tc(struct net_device *dev, enum tc_setup_type type, = void *type_data) +{ + if (!dev || !type_data) + return -EINVAL; + + switch (type) { + case TC_SETUP_QDISC_TAPRIO: + return macb_setup_taprio(dev, type_data); + default: + return -EOPNOTSUPP; + } +} + static const struct net_device_ops macb_netdev_ops =3D { .ndo_open =3D macb_open, .ndo_stop =3D macb_close, @@ -4284,6 +4316,7 @@ static const struct net_device_ops macb_netdev_ops = =3D { .ndo_features_check =3D macb_features_check, .ndo_hwtstamp_set =3D macb_hwtstamp_set, .ndo_hwtstamp_get =3D macb_hwtstamp_get, + .ndo_setup_tc =3D macb_setup_tc, }; =20 /* Configure peripheral capabilities according to device tree --=20 2.34.1 From nobody Mon Oct 6 10:18:49 2025 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2086.outbound.protection.outlook.com [40.107.92.86]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1067527AC48; Tue, 22 Jul 2025 15:41:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.92.86 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753198902; cv=fail; b=VS0EMF4dHeTL2H1NZXvBbetJmW4hgDt13pQyvdFtFIrzCSTXkzIqFGOaSZr562v45FYPZp3dh8htQS4T8ZVUlB0B2oYVedA5VHLoOwaLWuSO+UTvireR3MuVwe6GVcnk3CvCybiuHkV/SNjVtU4FjJZdSHP8W/cXXnJg7P4IwmQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753198902; c=relaxed/simple; bh=KcUIHXGP1A5g9YF5BcWipN0R0xsrNg6yBDpEO0Jn0MI=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=fa7maa/t/xvUU8L/VqsWVlQ1unorEaHiFLRk5Yy2Jcs/sFSKgDlx5RiXuTQUm0le9sOanOkFfbhqmXke5YqMr6E/jiwasG2ItJTngBp3mP2tfvOjGEpzxVnHp52ji6UuYEYCH+PRo/PCE5GgA3VzECGq/0yElGgVC7faZvGypWo= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=deFRK5Ib; arc=fail smtp.client-ip=40.107.92.86 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="deFRK5Ib" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=a5BXlPzNfpsOL30mqGA3t+ggisoT8bxngy8rJs1+vS3dWX0b3ol9WaoS8duWSizg+pEQZi68Pgj2NAfW1lfWMDJFe/Ymkxqav5fFROyhLLzI5MU9cBtOUrFFcl8EEvhmI1ZvflSzMWrLHgjCvKxIvU1SrW4H4mNpn1iMzxpkwTO6YNxQ3z7t/Kp6Dn8UfsT1sKJkP7zxZjOkfLQR/3dEOvyztCI4MyHsE0oL2oKEcP41dQRwBMdkVwf0Qu1n5KQe5yW31FImWUDGwvfusEWWOblXZWDzDqS9U7bXRdrlZEYH7DJFLXxGOfXkomaBbNzLYENwFXY2CXYaDqIL2Hh7dg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=MGEcjAoKX8KgnxUvASm0Lx3vnL7NrDmhFX489fmpKSk=; b=YEbA4WLi5mBwXa6NU4sjgaZEAQY1NoS05V2OZ6vqIvd5J8odnQxJb5xsI/8IwKv+dcIQV5PXd+NJAKavOBQHbLp9qRZ9c+dssop7ZYsMRuiM28+vehTy+NkR3LD6EcJtHkLePIAS+ShEaMo667QjeL+XL44lcJMKZbVNZ6OrbywTS8aE0lKgcS786U/nHzy5AdxB/utA4EiS/P7/qTiDBCS5k0JC3ccoK6HOn4PyW5sVeEZ4B6cF1lLngTuyp8S3L4e0FPaT9ntaChE4hOnVlSCJZ88NkDvV4qYdDNt7KnfOq/LiYBGJsHssgvDqLPQtrYv+LyMfXxMYJSy9EGeTCw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=microchip.com smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=MGEcjAoKX8KgnxUvASm0Lx3vnL7NrDmhFX489fmpKSk=; b=deFRK5IbxFffPPfDOyPkRpJQbwCADV3RqneH6+qLJsAXrRyeBHNtmJLv3utYAFkL1RCgcYCVq31rF/CGFwGztcEq/YB/FGHw8h0Jeem8BVn8yt9fTqfzP2kn+v9ruGolcjQcAkJPXv+nDVQvdylAvQGIhHMKH73KJaVOs8defHc= Received: from BYAPR01CA0004.prod.exchangelabs.com (2603:10b6:a02:80::17) by SA0PR12MB4429.namprd12.prod.outlook.com (2603:10b6:806:73::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8964.21; Tue, 22 Jul 2025 15:41:37 +0000 Received: from MWH0EPF000A672F.namprd04.prod.outlook.com (2603:10b6:a02:80:cafe::1d) by BYAPR01CA0004.outlook.office365.com (2603:10b6:a02:80::17) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8964.21 via Frontend Transport; Tue, 22 Jul 2025 15:41:45 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by MWH0EPF000A672F.mail.protection.outlook.com (10.167.249.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8964.20 via Frontend Transport; Tue, 22 Jul 2025 15:41:36 +0000 Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 22 Jul 2025 10:41:34 -0500 Received: from xhdvineethc40.xilinx.com (10.180.168.240) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Tue, 22 Jul 2025 10:41:32 -0500 From: Vineeth Karumanchi To: , , , , , , CC: , , , Subject: [PATCH net-next 6/6] net: macb: Add MACB_CAPS_QBV capability flag for IEEE 802.1Qbv support Date: Tue, 22 Jul 2025 21:11:11 +0530 Message-ID: <20250722154111.1871292-7-vineeth.karumanchi@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250722154111.1871292-1-vineeth.karumanchi@amd.com> References: <20250722154111.1871292-1-vineeth.karumanchi@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: None (SATLEXMB04.amd.com: vineeth.karumanchi@amd.com does not designate permitted sender hosts) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWH0EPF000A672F:EE_|SA0PR12MB4429:EE_ X-MS-Office365-Filtering-Correlation-Id: 818bf5e1-45b5-4c1c-0e3e-08ddc9363e6b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|82310400026|1800799024|36860700013; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?QhkattglbXUdERrXEHTZDH/WzuKmbs23rbC4LDCUCVZN7jdy0WyE1gSuNSnJ?= =?us-ascii?Q?tiQUZaX77OjEdlXjj9aQ7kkqko5gZNk+g9DDNT+hRW/Fc+SQl+10l27IuK4k?= =?us-ascii?Q?5TsMZ9Y4clNP6v3yuyGDgO/Pqpob+Ql8Ap8A7RcQfUPrQw/75KmS//+E6/Ed?= =?us-ascii?Q?OmDQ11Qe6z/ufeLHB5jQs6fzY1VLYDxlGGganlhVLXdoDbklSm8fmKTzzTn7?= =?us-ascii?Q?osNBKmD2XJ7AFV8C9J2lzEH9AYoaojRBqbEerSv6cR3MAPtApUv9rD8zf2x/?= =?us-ascii?Q?zGNkHEpYIbQ6xDf7GuIMDbDnR41L5232GBx0rbRhofUxjM3hRN90N9ASwxIj?= =?us-ascii?Q?i92hVd9y2ZkJFx16+o1VkaDBxLKQwjTJZauyOZLTouUqCBlisRaogkwyplLE?= =?us-ascii?Q?7IJLWHPN/xLzt8i+aiFKuHfoRsrV1fSngPk11Pw1O79uUciHAHGE7cNPCCJq?= =?us-ascii?Q?CWDwyjm4eXvaQNvMVrWMo3tNqEXPpSczkYwxZOTLt2pPI/MGqpgl6yJtUsbs?= =?us-ascii?Q?MxLDEzt7lJ9hAMnbCvhYojuoxulim1CdaQvV1Zb7TwKW3//FrksRvHGMIihD?= =?us-ascii?Q?ua0a3sxNMiaIZsfpjIP/fmmD9GYqOlldJMHcUEwz/Cq3YALhSJEAfD64W5bq?= =?us-ascii?Q?1gfYyzLu+IqcB46sXGSV+LkwHc7y/dYZpfH3tM3v5lYhK7JMDmE2qAeiR9cm?= =?us-ascii?Q?48k9UZBNySfAF9OrmPzIJA4+NY0M0xV0YRiptY7GztUt8bw9SBpNxkBDC1ER?= =?us-ascii?Q?0If5jimoB+g3swKnmYV83jmFbsAQSOu19BdbZpEmGs8Se5HGl3IzfJ3ViEbj?= =?us-ascii?Q?dDDIEMoc+fbl7REnZ3URXNLTU3N9zxqg4uNE1vLPWbKTJc5cZgppAR7TATtc?= =?us-ascii?Q?ukaExuuR1PbAsLE3kTjyFsfRsv6L6JWpVVBM8bTZEdggxmRDXkFrKXRmrAJB?= =?us-ascii?Q?cjCLX9AuW0H264QYjLqIj07hqVRgdh9OAHjUZ8R4wJoVSSwtOz6FJ/befgwR?= =?us-ascii?Q?6KVCeH9UFSf1X80BBfNjNVey0Q0kyiazH4lsXf8WAI/7GJBMLZzwH9xsATbU?= =?us-ascii?Q?VUrZIy5JDxXTXaAnACDzh4URX8U2BX02biUq/WKrTnSyUaMb+FgkPCVaH8ox?= =?us-ascii?Q?JBNhNKquA5Lu8p0iS13PaEnDkH7IUzUBUbp7khgGrSqGf6b4zlI57EwC6b2E?= =?us-ascii?Q?O8wn6I3qaRMoNrMmKu95/KMOGL9AgY4ZYu3A/Ei+WIiyoAIgTo3nXnf74tzC?= =?us-ascii?Q?r+1gZdFcTOZlqzaV6xqCUU1aLmndeD7vrbRjJgzBOAz4iw/oJAOgvLqHcNjr?= =?us-ascii?Q?hCSotTsNpI2zk+bEZecqQT3qePHbBDAQcWBKxeSAZ/G+mgFvKO0KKqwU0eDM?= =?us-ascii?Q?4rKXB22+sKwXQIDrjjg4EZYSBTuspPlb+Ux9LZdYVBlXu3V4Innx9zydDOcD?= =?us-ascii?Q?tAkGOfRE10vcoWdafaYNO2xoAMbkm2CO+qkLj/c6eO8/2aA6BjRD0Kzcd9Ds?= =?us-ascii?Q?mV06ImdiI2jDpyJKBpvO8kItXGO2mTqnGuwz?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(1800799024)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Jul 2025 15:41:36.7735 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 818bf5e1-45b5-4c1c-0e3e-08ddc9363e6b X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: MWH0EPF000A672F.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR12MB4429 Content-Type: text/plain; charset="utf-8" The "exclude_qbv" bit in designcfg_debug1 register varies between MACB/GEM IP revisions, making direct register probing unreliable for feature detection. A capability-based approach provides consistent QBV support identification across the IP family Platform support: - Enable MACB_CAPS_QBV for Xilinx Versal platform configuration - Foundation for QBV feature detection in TAPRIO implementation Signed-off-by: Vineeth Karumanchi --- drivers/net/ethernet/cadence/macb.h | 1 + drivers/net/ethernet/cadence/macb_main.c | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/cadence/macb.h b/drivers/net/ethernet/cad= ence/macb.h index ef3995564c5c..4e8d5dcc814e 100644 --- a/drivers/net/ethernet/cadence/macb.h +++ b/drivers/net/ethernet/cadence/macb.h @@ -782,6 +782,7 @@ #define MACB_CAPS_MIIONRGMII 0x00000200 #define MACB_CAPS_NEED_TSUCLK 0x00000400 #define MACB_CAPS_QUEUE_DISABLE 0x00000800 +#define MACB_CAPS_QBV 0x00001000 #define MACB_CAPS_PCS 0x01000000 #define MACB_CAPS_HIGH_SPEED 0x02000000 #define MACB_CAPS_CLK_HW_CHG 0x04000000 diff --git a/drivers/net/ethernet/cadence/macb_main.c b/drivers/net/etherne= t/cadence/macb_main.c index cc33491930e3..98e56697661c 100644 --- a/drivers/net/ethernet/cadence/macb_main.c +++ b/drivers/net/ethernet/cadence/macb_main.c @@ -4601,6 +4601,10 @@ static int macb_init(struct platform_device *pdev) dev->hw_features |=3D NETIF_F_HW_CSUM | NETIF_F_RXCSUM; if (bp->caps & MACB_CAPS_SG_DISABLED) dev->hw_features &=3D ~NETIF_F_SG; + /* Enable HW_TC if hardware supports QBV */ + if (bp->caps & MACB_CAPS_QBV) + dev->hw_features |=3D NETIF_F_HW_TC; + dev->features =3D dev->hw_features; =20 /* Check RX Flow Filters support. @@ -5345,7 +5349,7 @@ static const struct macb_config sama7g5_emac_config = =3D { static const struct macb_config versal_config =3D { .caps =3D MACB_CAPS_GIGABIT_MODE_AVAILABLE | MACB_CAPS_JUMBO | MACB_CAPS_GEM_HAS_PTP | MACB_CAPS_BD_RD_PREFETCH | MACB_CAPS_NEED_TSUCLK= | - MACB_CAPS_QUEUE_DISABLE, + MACB_CAPS_QUEUE_DISABLE, MACB_CAPS_QBV, .dma_burst_length =3D 16, .clk_init =3D macb_clk_init, .init =3D init_reset_optional, --=20 2.34.1