From patchwork Fri Apr 12 12:52:42 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Venkat Kumar Ande X-Patchwork-Id: 139266 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id E40FB43E52; Fri, 12 Apr 2024 14:55:24 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 3A29742D6B; Fri, 12 Apr 2024 14:54:33 +0200 (CEST) Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2065.outbound.protection.outlook.com [40.107.236.65]) by mails.dpdk.org (Postfix) with ESMTP id 2F5DD41104 for ; Fri, 12 Apr 2024 14:54:29 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lLw2U1x3dlViOtq1XMMKeHm5KqmLLqwmGKEydj4qe9c7DoInzUiCFc2VPKq2Gtrhq2M/Cwa7sfRguqmUFvshOCp5wyw8sXNbxBdoAJ1hKCZ4RrSgS6RDfdxkwZlPBm/dZeTSN6hiTvx4eML4HnBU1B3cQRg+aC9z+aGnScl96rg1riUpmT/8D8boAsOw4TaTar+lRhlA/z1gHNqtxFj/oqMnENl/qc5FGc9KrToOoFz+Bq1sWu3tY2q0Jtkn5LfmmIC3xaKUMcIsrvRO2QexwbCpmYPTjPBVFBy3fEGG5Xo1++IQtWaiQbxztBVnQ0QytHt7nlUi7Gkwqd2xu3PNxg== 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=hLp86YSCEP6deo1N68SpJ8+iiC9Hd66iLlRvi0fCm0E=; b=WJHf3R2K7DXbdWEWDzrhvWqpoH0habaF7eBFfQhZqdvm5VRl1AZk5pwzpfK/Z3cZ/JQQ47hb28KD8lFWyHkh9wdsgtXxh4uXtpBB14er6xx1gADCs3i0x5tsHQE/duipU2oJK/I/44KrhTXMY0WSOx2uEtv+zIAM7Rw9ASNsZxDk4T/7ecV3JunUvocx8e0KfVIdUuj2u9JXSEYBOYTPHZ8LdkhNaNBoWkEQNWpp8cTVmSftyT5WUiMNgVNbd5byiYHKBQLKAWiizTW+1COqsHiNR6wmP+m73P1Fk3cK48l13Tg4A4NVSD+hEmNyeW/X+veKLyYEChXybvj+m8NevA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=dpdk.org 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=hLp86YSCEP6deo1N68SpJ8+iiC9Hd66iLlRvi0fCm0E=; b=VjPZiimYYC8UqOiOeo5BdTgTII0437EYKc95OI7Qd8oCQpxt3Ath5aRahprIk1gXvI+y0XywUbzJL/6Hx0zv+ZMmdVlTTpKuphOODsC8ySY90epqa6wF2eViQWEscT/wZtlREbYXdaxyS2CU7+OJfblAV7/jUXjIqCvskFBdBoc= Received: from BL0PR05CA0013.namprd05.prod.outlook.com (2603:10b6:208:91::23) by MN2PR12MB4454.namprd12.prod.outlook.com (2603:10b6:208:26c::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.55; Fri, 12 Apr 2024 12:54:20 +0000 Received: from BL6PEPF00020E5F.namprd04.prod.outlook.com (2603:10b6:208:91:cafe::18) by BL0PR05CA0013.outlook.office365.com (2603:10b6:208:91::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7495.12 via Frontend Transport; Fri, 12 Apr 2024 12:54:20 +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 BL6PEPF00020E5F.mail.protection.outlook.com (10.167.249.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.7452.22 via Frontend Transport; Fri, 12 Apr 2024 12:54:20 +0000 Received: from cae-Lilac-RMB.amd.com (10.180.168.240) 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.35; Fri, 12 Apr 2024 07:54:12 -0500 From: Venkat Kumar Ande To: CC: , Venkat Kumar Ande Subject: [PATCH 17/24] net/axgbe: flow Tx Ctrl Registers are h/w ver dependent Date: Fri, 12 Apr 2024 08:52:42 -0400 Message-ID: <20240412125249.10625-17-VenkatKumar.Ande@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240412125249.10625-1-VenkatKumar.Ande@amd.com> References: <20240412125249.10625-1-VenkatKumar.Ande@amd.com> MIME-Version: 1.0 X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF00020E5F:EE_|MN2PR12MB4454:EE_ X-MS-Office365-Filtering-Correlation-Id: 89353880-0614-4d60-733c-08dc5aefab9c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: L/bjnPn5x+8O0Vu4+xIUcs0FZsrfFl0lEVX1qH+MAKbNN+rTSJsPazOuT4xH3Jtw1+dqARsGqbrqQZq/eRFtl468osIB+n3Rr2z/yfiPNeKMSrEkHKoRDIg7ZJv5VyO6l/9W3TvCdIpuJwO8PCOZmoUrsodhsP6sqqJ6tlxcxDj+HpqU/CvWijMrbObe/V44xNbtCnXrp/yuo1t/vxUN3Ohc3SK3RARVHkSO+xgKCqHHD+ItpgOipwqq+HRBmxy3fsJ1dMmfPG7ijevmf+D87fgaddYbMs0rpea6SJT8zzt6Jwv3hnAnKAqfr/qeupoaecnCGv4JZ8iuCEQrXdOrFrgZeynNkVJcBXD4HAPylOdPxhw1Xnur0j363PJ5b7Q0hWcF3/uwpzEIHZcPIlHQeoosUKvTbb/DmC3SrdHH8WrVHxQyT+ZhSbM4RBzkIXGN98tzwxCN8OOVCiXZGxLWhvTRm+y505fx7JdUOYzVhjuAazOFAVDPk//BX/qA/gtkzrnaLCkNi6AFPDokFjAYba7/Ek8s5EyziozkRAsjrdGH0vuF46j/6HUmPTVa5fs1yKd52abVC70Sc2KAC8a3w63VfmrRdAak/EJlp5AHDLJBFy0FtjPJF7gq+cxKKMUdDoXYu+gKmT6Qvhcg69gbMyLEYky1NWZuD3Cw9qoWfXkFXdXfrwU7wZOvtqiz3S3CT7bSyJgebve3lcfD5+DxuKO+nyIUGtwijwD1TYpc8z9AoGG9PpKJRMMSpn0KUBKJ 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:(13230031)(376005)(1800799015)(82310400014)(36860700004); DIR:OUT; SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Apr 2024 12:54:20.2139 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 89353880-0614-4d60-733c-08dc5aefab9c 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: BL6PEPF00020E5F.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4454 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org There is difference in the TX Flow Control registers (TFCR) between the revisions of the hardware. The older revisions of hardware used to have single register per queue. Whereas, the newer revision of hardware (from ver 30H onwards) have one register per priority. Signed-off-by: Venkat Kumar Ande --- drivers/net/axgbe/axgbe_dev.c | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/drivers/net/axgbe/axgbe_dev.c b/drivers/net/axgbe/axgbe_dev.c index b4afcf20ab..6b413160c2 100644 --- a/drivers/net/axgbe/axgbe_dev.c +++ b/drivers/net/axgbe/axgbe_dev.c @@ -272,20 +272,28 @@ static int axgbe_set_speed(struct axgbe_port *pdata, int speed) return 0; } +static unsigned int axgbe_get_fc_queue_count(struct axgbe_port *pdata) +{ + unsigned int max_q_count = AXGMAC_MAX_FLOW_CONTROL_QUEUES; + + /* From MAC ver 30H the TFCR is per priority, instead of per queue */ + if (AXGMAC_GET_BITS(pdata->hw_feat.version, MAC_VR, SNPSVER) >= 0x30) + return max_q_count; + else + return (RTE_MIN(pdata->tx_q_count, max_q_count)); +} + static int axgbe_disable_tx_flow_control(struct axgbe_port *pdata) { - unsigned int max_q_count, q_count; unsigned int reg, reg_val; - unsigned int i; + unsigned int i, q_count; /* Clear MTL flow control */ for (i = 0; i < pdata->rx_q_count; i++) AXGMAC_MTL_IOWRITE_BITS(pdata, i, MTL_Q_RQOMR, EHFC, 0); /* Clear MAC flow control */ - max_q_count = AXGMAC_MAX_FLOW_CONTROL_QUEUES; - q_count = RTE_MIN(pdata->tx_q_count, - max_q_count); + q_count = axgbe_get_fc_queue_count(pdata); reg = MAC_Q0TFCR; for (i = 0; i < q_count; i++) { reg_val = AXGMAC_IOREAD(pdata, reg); @@ -300,9 +308,8 @@ static int axgbe_disable_tx_flow_control(struct axgbe_port *pdata) static int axgbe_enable_tx_flow_control(struct axgbe_port *pdata) { - unsigned int max_q_count, q_count; unsigned int reg, reg_val; - unsigned int i; + unsigned int i, q_count; /* Set MTL flow control */ for (i = 0; i < pdata->rx_q_count; i++) { @@ -319,9 +326,7 @@ static int axgbe_enable_tx_flow_control(struct axgbe_port *pdata) } /* Set MAC flow control */ - max_q_count = AXGMAC_MAX_FLOW_CONTROL_QUEUES; - q_count = RTE_MIN(pdata->tx_q_count, - max_q_count); + q_count = axgbe_get_fc_queue_count(pdata); reg = MAC_Q0TFCR; for (i = 0; i < q_count; i++) { reg_val = AXGMAC_IOREAD(pdata, reg);