From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 0B91A489EF for ; Mon, 27 Oct 2025 17:21:51 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 05FE64028B; Mon, 27 Oct 2025 17:21:51 +0100 (CET) Received: from mail-wm1-f43.google.com (mail-wm1-f43.google.com [209.85.128.43]) by mails.dpdk.org (Postfix) with ESMTP id 1953A40668 for ; Mon, 27 Oct 2025 17:21:50 +0100 (CET) Received: by mail-wm1-f43.google.com with SMTP id 5b1f17b1804b1-475dd54d7cdso7778265e9.1 for ; Mon, 27 Oct 2025 09:21:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1761582110; x=1762186910; darn=dpdk.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=9VIIQhhv3L7cQQhFtgnNeX1pnI2EK6xInduW8K/Tlz8=; b=IxKCnlevxfu2I4nGX+zOKFsPnmxPdIl9tdj6UbxXrcoaCUFmPhcBNhHXpN8AcAJamD td2ZFEVw4qV+w9rU6X1IKAIWytxJiAOqWVvGUfr+xCrQWC1xK87Ot3a1xH+FNgRxUIf7 y0ZZODuP86dnyzRLU4P+NNmHEPt/N0N0LY4t3rws0YedEZIXlmMghms590Ph75KGZfN1 tEp+iejTCqQl8w60ikVitS9qQOJRrj5q61SDCzwIyaFA4RU8bP0Q3zi+Rc09F/sXeOU2 D4p0eK7qajcAJPn2EuY03L1UTkIWCa7VWOnSpcxBVXC/1H8dSuAuMUha6dQV/bu1fvfW sVoA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761582110; x=1762186910; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=9VIIQhhv3L7cQQhFtgnNeX1pnI2EK6xInduW8K/Tlz8=; b=Lym9sXA3UfN+rh+HqfRksw74OTkJB+iApNTa/KfUpEv4gXNiLmltb9bK+eg80HkEAk SYNDCGmT/ZzrEtz/97+opRD8v6Fbm/GPjI9cUL42w2HLWBDfOWMAd4qOqCrnXr+Rwkt3 JhgNioGQ94oj+uOYWNQ1kkEhhn3DVXGwldFTbHD97iYet5aej/TRgXIKdh9QyTUfuapq zDLwB258O2/9nomTz0SOq75FZGapRbV+7BovJcr+bQJW6ffrtfFC0skErDGZRPIe8Z5w N8KSi7T/qJ1pURMm661HDv+RrrWeYfShLZpZkb9/LNLJiAnR8FK/ULTDvJ1gGNPorOIU gwbw== X-Gm-Message-State: AOJu0YxIg/k663CrAYGpCuk6KNZbKOoBcgceCg+Rg+5+HoxLYyrf3ABx 8iaQZ2i08x4n95SVJs5RoSDdlKwbzTXnQguta+lwEkNLYHq3d3iNNDeHozQTPQ== X-Gm-Gg: ASbGncul568LlueceBUJGU00wxIK2QrO4az+yqhhr4jNtuH1zxqKfFOElRAFu+2SXml 2puOm8BJjuXZ91W8ofFU+kSyE/wdTX4rI5CNCUlTl+LCM+PvcKfR4MbV9Vsg6FNxyeard6+wmqW mrat6Pbv8aerOx8husxSqoUzbj4ez3jPJaTeNW+CNgLVlEHgOiegIw5ZY2LCC4dId4JWAjpPX1s 0RYHxJk2DhPTrNyc6Bt3YBqXd0cBsAs7cIBR7fH9hDWZAdptTz6777y8VH1GwAbjPpeu96zhp56 Kfdg4Bqp8Y36M3F3b45vb5qmxRrtlKHGv0ykrDlPTw4nJto31Sts3JVz9NemwRJ27xEpjv4lr2l NRlTvr4hdXvSu/p4li3w+TS5cECwTi3vvamX7HWz66+jkZH1n+TKaAAej0HblZbSRDQp4CeRrzg R9BVVXP64AnD7B2/eesdtoGPY3ax0= X-Google-Smtp-Source: AGHT+IGi/ZIUQ7wNG9wnHIM+ufcoWDaMUrD2BVkLz/InGhqX3KwUuEBGba0OB5gbAU0LfpzklB8vLQ== X-Received: by 2002:a05:600c:620f:b0:46e:1a5e:211 with SMTP id 5b1f17b1804b1-47717e413f5mr1961175e9.21.1761582109252; Mon, 27 Oct 2025 09:21:49 -0700 (PDT) Received: from localhost ([2a01:4b00:d036:ae00:6fc5:c3bc:147e:832c]) by smtp.gmail.com with UTF8SMTPSA id 5b1f17b1804b1-475dd477d0esm140194925e9.0.2025.10.27.09.21.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Oct 2025 09:21:48 -0700 (PDT) From: luca.boccassi@gmail.com To: Tomasz Duszynski Cc: dpdk stable Subject: patch 'common/cnxk: fix async event handling' has been queued to stable release 22.11.11 Date: Mon, 27 Oct 2025 16:19:10 +0000 Message-ID: <20251027162001.3710450-32-luca.boccassi@gmail.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20251027162001.3710450-1-luca.boccassi@gmail.com> References: <20251027162001.3710450-1-luca.boccassi@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Hi, FYI, your patch has been queued to stable release 22.11.11 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 10/29/25. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/bluca/dpdk-stable This queued commit can be viewed at: https://github.com/bluca/dpdk-stable/commit/dd1205b7ee1121c38c492748efb34c7e3f4b2960 Thanks. Luca Boccassi --- >From dd1205b7ee1121c38c492748efb34c7e3f4b2960 Mon Sep 17 00:00:00 2001 From: Tomasz Duszynski Date: Wed, 30 Jul 2025 04:51:09 +0200 Subject: [PATCH] common/cnxk: fix async event handling [ upstream commit 21b631cd0d3670e375151185d74cd5a03888e2bd ] If async event shows up unexpectedly ack it and continue until expected event is received. Fixes: 857721d62d42 ("common/cnxk: add BPHY communication with atf") Signed-off-by: Tomasz Duszynski --- drivers/common/cnxk/roc_bphy_cgx.c | 56 +++++++++++------------------- 1 file changed, 21 insertions(+), 35 deletions(-) diff --git a/drivers/common/cnxk/roc_bphy_cgx.c b/drivers/common/cnxk/roc_bphy_cgx.c index 3d674dbe84..befd69430b 100644 --- a/drivers/common/cnxk/roc_bphy_cgx.c +++ b/drivers/common/cnxk/roc_bphy_cgx.c @@ -65,8 +65,7 @@ roc_bphy_cgx_ack(struct roc_bphy_cgx *roc_cgx, unsigned int lmac, } static int -roc_bphy_cgx_wait_for_ownership(struct roc_bphy_cgx *roc_cgx, unsigned int lmac, - uint64_t *scr0) +roc_bphy_cgx_wait_ack(struct roc_bphy_cgx *roc_cgx, unsigned int lmac, uint64_t *scr0, bool ack) { int tries = 5000; uint64_t scr1; @@ -75,37 +74,18 @@ roc_bphy_cgx_wait_for_ownership(struct roc_bphy_cgx *roc_cgx, unsigned int lmac, *scr0 = roc_bphy_cgx_read(roc_cgx, lmac, CGX_CMRX_SCRATCH0); scr1 = roc_bphy_cgx_read(roc_cgx, lmac, CGX_CMRX_SCRATCH1); - if (FIELD_GET(SCR1_OWN_STATUS, scr1) == ETH_OWN_NON_SECURE_SW && - FIELD_GET(SCR0_ETH_EVT_STS_S_ACK, *scr0) == 0) - break; - /* clear async events if any */ - if (FIELD_GET(SCR0_ETH_EVT_STS_S_EVT_TYPE, *scr0) == - ETH_EVT_ASYNC && - FIELD_GET(SCR0_ETH_EVT_STS_S_ACK, *scr0)) + if (FIELD_GET(SCR0_ETH_EVT_STS_S_EVT_TYPE, *scr0) == ETH_EVT_ASYNC && + FIELD_GET(SCR0_ETH_EVT_STS_S_ACK, *scr0)) { roc_bphy_cgx_ack(roc_cgx, lmac, scr0); - - plt_delay_ms(1); - } while (--tries); - - return tries ? 0 : -ETIMEDOUT; -} - -static int -roc_bphy_cgx_wait_for_ack(struct roc_bphy_cgx *roc_cgx, unsigned int lmac, - uint64_t *scr0) -{ - int tries = 5000; - uint64_t scr1; - - do { - *scr0 = roc_bphy_cgx_read(roc_cgx, lmac, CGX_CMRX_SCRATCH0); - scr1 = roc_bphy_cgx_read(roc_cgx, lmac, CGX_CMRX_SCRATCH1); + goto skip; + } if (FIELD_GET(SCR1_OWN_STATUS, scr1) == ETH_OWN_NON_SECURE_SW && - FIELD_GET(SCR0_ETH_EVT_STS_S_ACK, *scr0)) + FIELD_GET(SCR0_ETH_EVT_STS_S_ACK, *scr0) == ack) break; +skip: plt_delay_ms(1); } while (--tries); @@ -113,8 +93,20 @@ roc_bphy_cgx_wait_for_ack(struct roc_bphy_cgx *roc_cgx, unsigned int lmac, } static int -roc_bphy_cgx_intf_req(struct roc_bphy_cgx *roc_cgx, unsigned int lmac, - uint64_t scr1, uint64_t *scr0) +roc_bphy_cgx_wait_for_ownership(struct roc_bphy_cgx *roc_cgx, unsigned int lmac, uint64_t *scr0) +{ + return roc_bphy_cgx_wait_ack(roc_cgx, lmac, scr0, false); +} + +static int +roc_bphy_cgx_wait_for_ack(struct roc_bphy_cgx *roc_cgx, unsigned int lmac, uint64_t *scr0) +{ + return roc_bphy_cgx_wait_ack(roc_cgx, lmac, scr0, true); +} + +static int +roc_bphy_cgx_intf_req(struct roc_bphy_cgx *roc_cgx, unsigned int lmac, uint64_t scr1, + uint64_t *scr0) { uint8_t cmd_id = FIELD_GET(SCR1_ETH_CMD_ID, scr1); int ret; @@ -142,12 +134,6 @@ roc_bphy_cgx_intf_req(struct roc_bphy_cgx *roc_cgx, unsigned int lmac, if (cmd_id == ETH_CMD_INTF_SHUTDOWN) goto out; - if (FIELD_GET(SCR0_ETH_EVT_STS_S_EVT_TYPE, *scr0) != ETH_EVT_CMD_RESP) { - plt_err("received async event instead of cmd resp event"); - ret = -EIO; - goto out; - } - if (FIELD_GET(SCR0_ETH_EVT_STS_S_ID, *scr0) != cmd_id) { plt_err("received resp for cmd %d expected for cmd %d", (int)FIELD_GET(SCR0_ETH_EVT_STS_S_ID, *scr0), cmd_id); -- 2.47.3 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2025-10-27 15:54:36.047626743 +0000 +++ 0032-common-cnxk-fix-async-event-handling.patch 2025-10-27 15:54:34.807949850 +0000 @@ -1 +1 @@ -From 21b631cd0d3670e375151185d74cd5a03888e2bd Mon Sep 17 00:00:00 2001 +From dd1205b7ee1121c38c492748efb34c7e3f4b2960 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 21b631cd0d3670e375151185d74cd5a03888e2bd ] + @@ -10 +11,0 @@ -Cc: stable@dpdk.org @@ -18 +19 @@ -index db70bafd9b..1de5195657 100644 +index 3d674dbe84..befd69430b 100644