From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124])
	by inbox.dpdk.org (Postfix) with ESMTP id 3EF09438C7;
	Mon, 15 Jan 2024 03:55:12 +0100 (CET)
Received: from mails.dpdk.org (localhost [127.0.0.1])
	by mails.dpdk.org (Postfix) with ESMTP id 8357C402CC;
	Mon, 15 Jan 2024 03:54:52 +0100 (CET)
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on2100.outbound.protection.outlook.com [40.107.236.100])
 by mails.dpdk.org (Postfix) with ESMTP id 2CD2B4064E
 for <dev@dpdk.org>; Mon, 15 Jan 2024 03:54:51 +0100 (CET)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=fhE4HjXKwSYkZKNECZsQULeCg2xpm0ccJA3iFfjNOJ37AlT4aFKz3SR41RzLdNjs4VsttDb1ZJPzhfma7Z8lO3EJ/ENVz67X3poPZncg8BoXs1lhEQ9nDyZxr81RJ+MXfzV2vsQjyssgrhbgsg8FLe8Ky9jr15MR5PqSooAToyETO9e6VhaJTz9aSzVsSiUcYU0BLYCsGwzGBO2LjRoSkot9wds2+zVsZjGbPat3+LTZw4nhk5V8zjJ1ArF+aBywxX4Cv/5uCregRo+zkAO8ZKSUzEIki2p+vKKMIjk50mcFALjKYesbQWHGqnL0cjP/ewq7a1FLLaikiioWnLCMow==
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=yA7dMJCV0CDxcw/t45Qrh7oFIXKyG30aRWmNekQk/7M=;
 b=bx2C/wZxjXgXyo4PQYTNtLscWyVhmLfxP5xqP9Qm8+TLfe+WHhjOewtCQCOdRM3YcnN4Xr10PTh/DVKo2TsADtik12Ga2fuasOB/jIHCckmlHD6c5quttEQ8/GApw2XafLFJXv9finHOqmkP2yWdC5IY595Rr/tMeFkn1xmrMIAKIEqqR335KkvJrejFbwGHCzWtMHTc94iYOOWdEGglBYwGT/AFeu0X0KNPk8GbmDqakzxWmPwETHz8Djj/x4KptTwOPOdOEcuLB6cJmGmmNNgp2xT+7AnmjLNvPHeXxANIn8+olvrKMU3FyLFJaQQq8qW7+YQP6lS9Ts+grjBPYQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=corigine.com; dmarc=pass action=none header.from=corigine.com;
 dkim=pass header.d=corigine.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=corigine.onmicrosoft.com; s=selector2-corigine-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=yA7dMJCV0CDxcw/t45Qrh7oFIXKyG30aRWmNekQk/7M=;
 b=VN7lgtLyMXdvKp55hUUKfHmF2e7d+7cr8UE0hvvQwLUGsHeq3akvWhzPWNFUHBBOmByTVAgSfssGgIdnLbDVQuYEzRFgJpy61S4mMu+60U5nuNvKvEcdTv2KsR7uot5zh1wOkIJ0I3GkWbssyIvyAB3QS1QioR+I1UAbinwy32E=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=corigine.com;
Received: from SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5)
 by BL3PR13MB5242.namprd13.prod.outlook.com (2603:10b6:208:345::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7181.21; Mon, 15 Jan
 2024 02:54:49 +0000
Received: from SJ0PR13MB5545.namprd13.prod.outlook.com
 ([fe80::8e02:f738:570a:f8aa]) by SJ0PR13MB5545.namprd13.prod.outlook.com
 ([fe80::8e02:f738:570a:f8aa%7]) with mapi id 15.20.7181.026; Mon, 15 Jan 2024
 02:54:49 +0000
From: Chaoyong He <chaoyong.he@corigine.com>
To: dev@dpdk.org
Cc: oss-drivers@corigine.com, Peng Zhang <peng.zhang@corigine.com>,
 Chaoyong He <chaoyong.he@corigine.com>, Long Wu <long.wu@corigine.com>
Subject: [PATCH 3/8] net/nfp: optimize loading the firmware process
Date: Mon, 15 Jan 2024 10:54:14 +0800
Message-Id: <20240115025419.2447759-4-chaoyong.he@corigine.com>
X-Mailer: git-send-email 2.39.1
In-Reply-To: <20240115025419.2447759-1-chaoyong.he@corigine.com>
References: <20240115025419.2447759-1-chaoyong.he@corigine.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: PH0PR07CA0025.namprd07.prod.outlook.com
 (2603:10b6:510:5::30) To SJ0PR13MB5545.namprd13.prod.outlook.com
 (2603:10b6:a03:424::5)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ0PR13MB5545:EE_|BL3PR13MB5242:EE_
X-MS-Office365-Filtering-Correlation-Id: a091da4b-e302-4f60-90a1-08dc157556e2
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: Wxu6I8Ola10kmcuPTPnzyFbt5kpw0vWX0v2Zkk8eDADCPSpBnpWP1cuK++zpmO7vr7naj+PTYP8NBiZuxYarTRFl1FLudnseER+j7m/50yRCQvLrXNzP7XwgJ1zFLoCX3LiIzcL3/Buk6zr3ZNPQOIcvSozSMc0Dm3MkUH7b7oxkvN71vrM/Mmk1jQMZF/JWhmXzQZXjanadW788zO87S5pPtQdle5a/fGVuKb8UnaeIXP80aAKlum+o1sqKKWs4Awv4LS4FXwLqd9PHK7+g3GeodX7n98TSjYrqN0FwVvh6z4Brm15qU5q8oYVIjByEDSGs8w2bUn92EKbcvIkCjgWkQ2mr3sOGgpG7ufnHXwbks/0Ofow7oR0OrGucbof8Jn1ZXBypKS7l5lZPg9pqBaRIkrfZ1Cuf5+F49r6NPLc4PCXH8OY5cO7n1SNfuv4ch/piVOsf7VI6CDwuYw1aKnEXI2UEtgFOfKfid3yRNLQtRjsIPMYBNIpXMcX9CCU+myl1JSlB9D3JS+ZJ5av/EQgzBlYm0uX438Lf3oDf2KvyaSzP5uhOsZ+WwqDuWJbzG15Z7FzUfN/5cMINgIWZJQg/Bx5OJXBkcMnwFEqMYtcOX5GEO7MeySdHu8WuT2Q+
X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;
 IPV:NLI; SFV:NSPM; H:SJ0PR13MB5545.namprd13.prod.outlook.com; PTR:; CAT:NONE;
 SFS:(13230031)(39830400003)(136003)(396003)(346002)(376002)(366004)(230922051799003)(1800799012)(64100799003)(451199024)(186009)(6512007)(2616005)(26005)(1076003)(107886003)(83380400001)(54906003)(6486002)(316002)(52116002)(8676002)(4326008)(66476007)(478600001)(6916009)(86362001)(6506007)(6666004)(66556008)(66946007)(38100700002)(44832011)(8936002)(38350700005)(41300700001)(5660300002)(2906002)(36756003);
 DIR:OUT; SFP:1102; 
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?6CV6CokHdp9lR1/EiguMQnJQ/AiLUjCFa0hDGmIMIU5019oIw6H2jjTELXZX?=
 =?us-ascii?Q?NdiDxsfU5LW6teX8K8kNLdR5+sggjXXlohMEbhlTKPw2goqAmRn8fZVOf5BC?=
 =?us-ascii?Q?JKapwItaF0egCEKMtzwufgvt5W0xoznioGRm+Hvk1aEv4+DL3eTIcV0BiOX8?=
 =?us-ascii?Q?ZEG4SLD9gjlIDDhKDW4U648Lq8WkBC8JP4qwIfOZ9FG7cw8D8GS3Q7HeGdbg?=
 =?us-ascii?Q?bIByNi9ySLlDBx99xlJiyLrk8dWKUOBGgYBd3+kZvmzvK+swGeWrZ8cbpYDg?=
 =?us-ascii?Q?0052hAj8kPYcAIyQZ6xixBH6H0OtOkaNy84elhQAkfz8HB/0cyy3mre2GAh6?=
 =?us-ascii?Q?Ranzpq7Y1FDxIdkGv8G9F4vyZw8kepZyfmgusA2yGXybCry1+LalDXkO1akz?=
 =?us-ascii?Q?9L+32Te9aH0uFT/2TG9UDDiNGT1wLiV4e+Kzjsup8995GJ1W4X2c67bSDbJ8?=
 =?us-ascii?Q?cX6mnHcIWM+rnivggBJyUSGjyTGnpqHfdiAuMU9lk003IzAdT0oPjFCxTsrz?=
 =?us-ascii?Q?GUVK+cssLxWJOZazc5LkiSCHPKrIxe5+zKOK3ZhgxEznJqcjrbW8BqrDmZ7/?=
 =?us-ascii?Q?/OHGfUDDzLroCvwYVeYyFuUpeugjMG4QKHKq/r41zynUHR4O9rkHnkpQFQ7p?=
 =?us-ascii?Q?xWRnxjQGP/HtE0AdZETB4d23mI1BfVcYGkS5J1Ob4+wMdOyVGVs/WU6Rkjf5?=
 =?us-ascii?Q?vs2V8mR5PZG8IreRQZQXpQdM6NHrw/F6wGgvwi5d1ZeGE1jfsuU5SzGDHlFS?=
 =?us-ascii?Q?6CYoxiK/ISyG+dEOk0dUCFCKGkmx4AASLiUSGQK+OdVn9cupZ2FK3EbcroFe?=
 =?us-ascii?Q?yN80cSAQBVtS3A/GgwGjEVeauft69Y5q1zW0+eUOZR0mmFp76YSKUxwtb41m?=
 =?us-ascii?Q?e9jkg2uyleVAnkoMsag9IjmsAn6iD5SAGA//+fnPKW5gR+B8Wr2Ck9XlM7lz?=
 =?us-ascii?Q?C6a1ZRP7ZQQDuRlVdqS+8Jlwsg0fScGoUjHsNKFjcfL92CWO4v7Lt+6BHaNY?=
 =?us-ascii?Q?bjkL3uzIDs/7RDjJg0kUvVrazM+o9NV/CCPINHE+GDr5cIFyYkMEaVrSvrph?=
 =?us-ascii?Q?J30/ZRMHSun5/4oGdBy4lUV/1Km54MAL9rtci3bQKnjw7t7XzOmk2TuDfKR5?=
 =?us-ascii?Q?HETRUM4CXsT8Udketa0NnLUQbBW1YBtJ4TiRi9y8b5FhuMrHaHJ9uJ8QKMpz?=
 =?us-ascii?Q?lyhBJsiRroavHplCHnBtk3+Ayb9Z83eXg1OodAhVcDQPgM+PccerAI7i7cbf?=
 =?us-ascii?Q?Oh6n5sSy5JahDXFogN9Eam9Y2mlLYbKc2bDcgykQ9h+LHP51DJAYVTj3cCCG?=
 =?us-ascii?Q?pPxZ26Iaqzut82ixttWF+ctc+jylLS0pFOQEIeVu6xLcG/8SbSaBAchcjvL1?=
 =?us-ascii?Q?vlmOM1c7EK7PWj087jDX68uzKJ2J3bjUw5izoO3HHd1A7V9Oo9AnI0IBIOp8?=
 =?us-ascii?Q?oHOcEIkzMeoSAsqg1aNtNzrKlu7bYTN/5KZWAGowEo30CYqEkvJqnKhE3D7C?=
 =?us-ascii?Q?+5fCdgpHhhv+dIHp3N1GISk1Op4hnJNZ4j/2ThTCx/yXuFBFrx4J+r2OBcli?=
 =?us-ascii?Q?R+13Yir2J7iQejwsyHhv0PdAL8RsoNxt/uF2nuRzuWeMk3e+nxScD6Ti63W+?=
 =?us-ascii?Q?PA=3D=3D?=
X-OriginatorOrg: corigine.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a091da4b-e302-4f60-90a1-08dc157556e2
X-MS-Exchange-CrossTenant-AuthSource: SJ0PR13MB5545.namprd13.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jan 2024 02:54:49.5719 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: fe128f2c-073b-4c20-818e-7246a585940c
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: oGybddBus9bue2JdhbPKOzPpp68aPZRTLEtnOEfPBsHwltJu8oss86HTPnHRMK0wogng05zRQEmGBSZJgGoI9JaehRQPw6LDKI4cB3amY9U=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL3PR13MB5242
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org

From: Peng Zhang <peng.zhang@corigine.com>

Add the skip loading firmware flag, when any other
port is alive, this flag will be true.
Also make sure the order of starting the keepalive
is earlier than getting the firmware status.

Signed-off-by: Peng Zhang <peng.zhang@corigine.com>
Reviewed-by: Chaoyong He <chaoyong.he@corigine.com>
Reviewed-by: Long Wu <long.wu@corigine.com>
---
 drivers/net/nfp/nfp_ethdev.c | 36 +++++++++++++++++++++---------------
 1 file changed, 21 insertions(+), 15 deletions(-)

diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c
index e06e6b7f59..e908fc8472 100644
--- a/drivers/net/nfp/nfp_ethdev.c
+++ b/drivers/net/nfp/nfp_ethdev.c
@@ -1059,10 +1059,8 @@ nfp_fw_reload(struct nfp_nsp *nsp,
 	return err;
 }
 
-static int
-nfp_fw_loaded_check_alive(struct nfp_nsp *nsp,
-		char *fw_name,
-		const struct nfp_dev_info *dev_info,
+static bool
+nfp_fw_skip_load(const struct nfp_dev_info *dev_info,
 		struct nfp_multi_pf *multi_pf)
 {
 	uint8_t i;
@@ -1088,11 +1086,11 @@ nfp_fw_loaded_check_alive(struct nfp_nsp *nsp,
 
 			tmp_beat = nn_readq(multi_pf->beat_addr + offset[port_num]);
 			if (tmp_beat != beat[port_num])
-				return 0;
+				return true;
 		}
 	}
 
-	return nfp_fw_reload(nsp, fw_name);
+	return false;
 }
 
 static int
@@ -1103,17 +1101,11 @@ nfp_fw_reload_for_multipf(struct nfp_nsp *nsp,
 		struct nfp_multi_pf *multi_pf)
 {
 	int err;
+	bool skip_load_fw = false;
 
 	err = nfp_net_keepalive_init(cpp, multi_pf);
-	if (err != 0)
-		PMD_DRV_LOG(ERR, "NFP write beat failed");
-
-	if (nfp_nsp_fw_loaded(nsp))
-		err = nfp_fw_loaded_check_alive(nsp, fw_name, dev_info, multi_pf);
-	else
-		err = nfp_fw_reload(nsp, fw_name);
 	if (err != 0) {
-		nfp_net_keepalive_uninit(multi_pf);
+		PMD_DRV_LOG(ERR, "NFP init beat failed");
 		return err;
 	}
 
@@ -1121,9 +1113,23 @@ nfp_fw_reload_for_multipf(struct nfp_nsp *nsp,
 	if (err != 0) {
 		nfp_net_keepalive_uninit(multi_pf);
 		PMD_DRV_LOG(ERR, "NFP write beat failed");
+		return err;
 	}
 
-	return err;
+	if (nfp_nsp_fw_loaded(nsp))
+		skip_load_fw = nfp_fw_skip_load(dev_info, multi_pf);
+
+	if (skip_load_fw)
+		return 0;
+
+	err = nfp_fw_reload(nsp, fw_name);
+	if (err != 0) {
+		nfp_net_keepalive_stop(multi_pf);
+		nfp_net_keepalive_uninit(multi_pf);
+		return err;
+	}
+
+	return 0;
 }
 
 static int
-- 
2.39.1