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 7030C48A44 for ; Fri, 31 Oct 2025 15:37:41 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 68FAE40150; Fri, 31 Oct 2025 15:37:41 +0100 (CET) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mails.dpdk.org (Postfix) with ESMTP id 152AB40666 for ; Fri, 31 Oct 2025 15:37:40 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1761921459; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=KLQpDe1OS0XaLx/Pl3v/gMgwsbbXVJJKkMNLs0rvWIM=; b=H9HhW5sCEikZlyXj5oGZOeSmvHK0QrJmUdJuUO62sRFWVVxKiWcVnShypRaNd/u4t+rG8J +zfd5Z5m4Qcj/lvhN8qTQ00pNpMpk15hL1zzKNet402NVXpnzcE9Lou/XaJB4QY8N6wdy1 UML4yla/N34cpu17LTmMkKv6qHzEg/U= Received: from mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-41-r21lW_G_Nj-0DYvpwv0HOg-1; Fri, 31 Oct 2025 10:37:36 -0400 X-MC-Unique: r21lW_G_Nj-0DYvpwv0HOg-1 X-Mimecast-MFC-AGG-ID: r21lW_G_Nj-0DYvpwv0HOg_1761921455 Received: from mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.111]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 1FEA718001E3; Fri, 31 Oct 2025 14:37:35 +0000 (UTC) Received: from rh.redhat.com (unknown [10.44.32.50]) by mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id C55DC180044F; Fri, 31 Oct 2025 14:37:33 +0000 (UTC) From: Kevin Traynor To: Tomasz Duszynski Cc: dpdk stable Subject: patch 'common/cnxk: fix async event handling' has been queued to stable release 24.11.4 Date: Fri, 31 Oct 2025 14:33:01 +0000 Message-ID: <20251031143421.324432-59-ktraynor@redhat.com> In-Reply-To: <20251031143421.324432-1-ktraynor@redhat.com> References: <20251031143421.324432-1-ktraynor@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.111 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: _7iAo3wQnoPBDueX3Wme3zbCIf9HxMfGRLpTIcqP72E_1761921455 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: 8bit content-type: text/plain; charset="US-ASCII"; x-default=true 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 24.11.4 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 11/05/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/kevintraynor/dpdk-stable This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable/commit/84b20f6defbd9e9e84a43e36c2f4d2fc6b26d065 Thanks. Kevin --- >From 84b20f6defbd9e9e84a43e36c2f4d2fc6b26d065 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 6e5cfc7b1d..b32ae3c547 100644 --- a/drivers/common/cnxk/roc_bphy_cgx.c +++ b/drivers/common/cnxk/roc_bphy_cgx.c @@ -66,6 +66,5 @@ 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; @@ -76,35 +75,16 @@ roc_bphy_cgx_wait_for_ownership(struct roc_bphy_cgx *roc_cgx, unsigned int lmac, 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); @@ -114,6 +94,18 @@ 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); @@ -143,10 +135,4 @@ roc_bphy_cgx_intf_req(struct roc_bphy_cgx *roc_cgx, unsigned int lmac, 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", -- 2.51.0 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2025-10-31 13:53:54.083255328 +0000 +++ 0059-common-cnxk-fix-async-event-handling.patch 2025-10-31 13:53:52.168118891 +0000 @@ -1 +1 @@ -From 21b631cd0d3670e375151185d74cd5a03888e2bd Mon Sep 17 00:00:00 2001 +From 84b20f6defbd9e9e84a43e36c2f4d2fc6b26d065 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 6e5cfc7b1d..b32ae3c547 100644