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 DEE6A427F6;
	Tue, 21 Mar 2023 10:44:49 +0100 (CET)
Received: from mails.dpdk.org (localhost [127.0.0.1])
	by mails.dpdk.org (Postfix) with ESMTP id CB91B40A7F;
	Tue, 21 Mar 2023 10:44:49 +0100 (CET)
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by mails.dpdk.org (Postfix) with ESMTP id 1E8DF40A7A
 for <dev@dpdk.org>; Tue, 21 Mar 2023 10:44:48 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 8FE4BAD7;
 Tue, 21 Mar 2023 02:45:31 -0700 (PDT)
Received: from net-arm-n1amp-02.shanghai.arm.com
 (net-arm-n1amp-02.shanghai.arm.com [10.169.210.108])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 6A8963F766;
 Tue, 21 Mar 2023 02:44:45 -0700 (PDT)
From: Joyce Kong <joyce.kong@arm.com>
To: thomas@monjalon.net, Ruifeng Wang <ruifeng.wang@arm.com>,
 Bruce Richardson <bruce.richardson@intel.com>
Cc: dev@dpdk.org,
	nd@arm.com,
	Joyce Kong <joyce.kong@arm.com>
Subject: [PATCH v2] config/arm: support ldapr on neoverse n1
Date: Tue, 21 Mar 2023 09:44:33 +0000
Message-Id: <20230321094433.736943-1-joyce.kong@arm.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20230320032655.2119718-1-joyce.kong@arm.com>
References: <20230320032655.2119718-1-joyce.kong@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
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

Armv8.3 introduced a LDAPR instruction that has weaker guarantees,
just sufficient to implement memory_order_acq_rel. LDAPR does not
wait for previous STLR to complete. And if the same location is
used in both, it does not force the write to be globally observed.
The new instruction can avoid some costs associated with LDAR.

GCC13.0 has supported LDAPR.
For Armv8.3 and higher, LDAPR is default.
For Armv8.2 such as neoverse n1, LDAPR is supported with enabling
rcpc feature.
For Armv8.1 and lower, LDAPR is not supported.

Signed-off-by: Joyce Kong <joyce.kong@arm.com>
Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
---
 config/arm/meson.build | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/config/arm/meson.build b/config/arm/meson.build
index 5ff66248de..5213434ca4 100644
--- a/config/arm/meson.build
+++ b/config/arm/meson.build
@@ -65,7 +65,7 @@ part_number_config_arm = {
     '0xd0b': {'compiler_options':  ['-mcpu=cortex-a76']},
     '0xd0c': {
         'march': 'armv8.2-a',
-        'march_features': ['crypto'],
+        'march_features': ['crypto', 'rcpc'],
         'compiler_options':  ['-mcpu=neoverse-n1'],
         'flags': [
             ['RTE_MACHINE', '"neoverse-n1"'],
-- 
2.25.1