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 6F9F343A44;
	Thu,  1 Feb 2024 22:57:55 +0100 (CET)
Received: from mails.dpdk.org (localhost [127.0.0.1])
	by mails.dpdk.org (Postfix) with ESMTP id 8596E42DAC;
	Thu,  1 Feb 2024 22:57:51 +0100 (CET)
Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com
 [67.231.148.174])
 by mails.dpdk.org (Postfix) with ESMTP id 26DB842D90
 for <dev@dpdk.org>; Thu,  1 Feb 2024 22:57:48 +0100 (CET)
Received: from pps.filterd (m0045849.ppops.net [127.0.0.1])
 by mx0a-0016f401.pphosted.com (8.17.1.24/8.17.1.24) with ESMTP id
 411HGxOl027154; Thu, 1 Feb 2024 13:57:45 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=
 from:to:cc:subject:date:message-id:in-reply-to:references
 :mime-version:content-transfer-encoding:content-type; s=
 pfpt0220; bh=Sa6ou51u7ExSeJUfOozc+tZ5WoFK2qW2fwmDDnjKJzg=; b=L4n
 X9QB29dKijCEBClpHhKvfZA2nddZex3/ZLlQLjr7SDIMmVE9Q9hl0WtaAxQggGLM
 ldMJebQP6f056+efx5ZtMhDdvJVuLFXybj79+po+zvS7tu6q4tmxW7daN92TInKk
 OBJSUjEpx6Ou0CQRJn7TylwGUX2koUNfN/FaGafMH5EOScPr6yK5G0iH4MQo2Z0f
 dNkWZXZXuM0q+Kj1vWPB0Vij+A7qVeIIHpHj5nQoJ446yNPcUZ7Vf7NZLIxHssBe
 3AFEQ6xKOuDo4CjhMbunDkWLsXSoI8YYth9xnJzx0DWJjBf7CVjFUJvi5HnOn7xK
 Y/ZQp+K24+nPGCrVzrg==
Received: from dc5-exch02.marvell.com ([199.233.59.182])
 by mx0a-0016f401.pphosted.com (PPS) with ESMTPS id 3w06u8k4t9-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT);
 Thu, 01 Feb 2024 13:57:45 -0800 (PST)
Received: from DC5-EXCH02.marvell.com (10.69.176.39) by DC5-EXCH02.marvell.com
 (10.69.176.39) with Microsoft SMTP Server (TLS) id 15.0.1497.48;
 Thu, 1 Feb 2024 13:57:44 -0800
Received: from maili.marvell.com (10.69.176.80) by DC5-EXCH02.marvell.com
 (10.69.176.39) with Microsoft SMTP Server id 15.0.1497.48 via Frontend
 Transport; Thu, 1 Feb 2024 13:57:44 -0800
Received: from MININT-80QBFE8.corp.innovium.com (MININT-80QBFE8.marvell.com
 [10.28.164.106])
 by maili.marvell.com (Postfix) with ESMTP id C4EC13F704D;
 Thu,  1 Feb 2024 13:57:41 -0800 (PST)
From: <pbhagavatula@marvell.com>
To: <jerinj@marvell.com>, <juraj.linkes@pantheon.tech>, <nd@arm.com>, "Ruifeng
 Wang" <ruifeng.wang@arm.com>, Bruce Richardson <bruce.richardson@intel.com>
CC: <dev@dpdk.org>, Pavan Nikhilesh <pbhagavatula@marvell.com>
Subject: [PATCH v2 2/3] config/arm: add support for fallback march
Date: Fri, 2 Feb 2024 03:27:30 +0530
Message-ID: <20240201215731.4543-2-pbhagavatula@marvell.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20240201215731.4543-1-pbhagavatula@marvell.com>
References: <20240121093653.2890-1-pbhagavatula@marvell.com>
 <20240201215731.4543-1-pbhagavatula@marvell.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Proofpoint-GUID: jY543FmAp4410NPhLBIJbucFsbjqwaHM
X-Proofpoint-ORIG-GUID: jY543FmAp4410NPhLBIJbucFsbjqwaHM
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.272,Aquarius:18.0.1011,Hydra:6.0.619,FMLib:17.11.176.26
 definitions=2024-02-01_08,2024-01-31_01,2023-05-22_02
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: Pavan Nikhilesh <pbhagavatula@marvell.com>

Some ARM CPUs have specific march requirements and
are not compatible with the supported march list.
Add fallback march in case the mcpu and the march
advertised in the part_number_config are not supported
by the compiler.

Example
        mcpu = neoverse-n2
        march = armv9-a
        fallback_march = armv8.5-a

        mcpu, march not supported
        machine_args = ['-march=armv8.5-a']

        mcpu, march, fallback_march not supported
        least march supported = armv8-a

        machine_args = ['-march=armv8-a']

Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
---
 config/arm/meson.build | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/config/arm/meson.build b/config/arm/meson.build
index ba859bd060..6f2308f2fa 100644
--- a/config/arm/meson.build
+++ b/config/arm/meson.build
@@ -94,6 +94,7 @@ part_number_config_arm = {
     '0xd49': {
         'march': 'armv9-a',
         'march_features': ['sve2'],
+        'fallback_march': 'armv8.5-a',
         'mcpu': 'neoverse-n2',
         'flags': [
             ['RTE_MACHINE', '"neoverse-n2"'],
@@ -708,6 +709,7 @@ if update_flags
 
     # probe supported archs and their features
     candidate_march = ''
+    fallback_march = ''
     if part_number_config.has_key('march')
         if part_number_config.get('force_march', false) or candidate_mcpu != ''
             if cc.has_argument('-march=' +  part_number_config['march'])
@@ -728,10 +730,17 @@ if update_flags
                     # highest supported march version found
                     break
                 endif
+                if (supported_march == part_number_config['fallback_march']
+                    and cc.has_argument('-march=' + supported_march))
+                    fallback_march = supported_march
+                endif
             endforeach
         endif
 
         if candidate_march != part_number_config['march']
+            if fallback_march != ''
+                candidate_march = fallback_march
+            endif
             warning('Configuration march version is @0@, not supported.'
                     .format(part_number_config['march']))
             if candidate_march != ''
-- 
2.25.1