From patchwork Wed Apr 14 12:58:35 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Juraj_Linke=C5=A1?= X-Patchwork-Id: 91453 Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id DDA42A0562; Wed, 14 Apr 2021 14:58:44 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id BFFE8161A8D; Wed, 14 Apr 2021 14:58:44 +0200 (CEST) Received: from lb.pantheon.sk (lb.pantheon.sk [46.229.239.20]) by mails.dpdk.org (Postfix) with ESMTP id 84819161A84 for ; Wed, 14 Apr 2021 14:58:43 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by lb.pantheon.sk (Postfix) with ESMTP id EE600C5670; Wed, 14 Apr 2021 14:58:40 +0200 (CEST) X-Virus-Scanned: amavisd-new at siecit.sk Received: from lb.pantheon.sk ([127.0.0.1]) by localhost (lb.pantheon.sk [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id PryPxI3ghQYv; Wed, 14 Apr 2021 14:58:39 +0200 (CEST) Received: from service-node1.lab.pantheon.local (unknown [46.229.239.141]) by lb.pantheon.sk (Postfix) with ESMTP id E4CDFC5666; Wed, 14 Apr 2021 14:58:38 +0200 (CEST) From: =?utf-8?q?Juraj_Linke=C5=A1?= To: bruce.richardson@intel.com, Ruifeng.Wang@arm.com, Honnappa.Nagarahalli@arm.com, Phil.Yang@arm.com, vcchunga@amazon.com, Dharmik.Thakkar@arm.com, jerinjacobk@gmail.com, hemant.agrawal@nxp.com, ajit.khaparde@broadcom.com, ferruh.yigit@intel.com, aboyer@pensando.io Cc: dev@dpdk.org, =?utf-8?q?Juraj_Linke=C5=A1?= Date: Wed, 14 Apr 2021 14:58:35 +0200 Message-Id: <1618405118-20187-1-git-send-email-juraj.linkes@pantheon.tech> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1617957679-7751-1-git-send-email-juraj.linkes@pantheon.tech> References: <1617957679-7751-1-git-send-email-juraj.linkes@pantheon.tech> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH v20 0/3] Arm build options rework X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" The current way of specifying Arm configuration options is insufficient since we can't identify the SoC we're building for from the MIDR information. For example, we can't distinguish between N1SDP, Graviton2 or Ampere Altra. We also want to be able to enable/disable which drivers are built without user input. This is useful when building: 1. on an SoC that is slow and we want to build only what is necessary without the user having to check which libraries they have installed 2. a cross build on a fast aarch64 machine but with target SoC which differs in capabilities or libraries. This is achieved by specifying the drivers in SoC configuration. The current implementation adds/supports the following: * x86 -> aarch64 cross build with added config options/enabled or disabled drivers/libs * aarch64 -> aarch64 builds for a different SoCs using meson -Dplatform option or using a cross file v16: Only three commits remaining - updated the cover letter. Renamed the 'soc' meson option to 'platform'. Added the support for enabling a particular set of drivers. Aligned enabling and disabling with the command line option so that wildcards can be used. v17: Removed unnecessary comments in "build: disable/enable drivers in Arm builds". Also always enabled two drivers which break the build if disabled. v18: Rebased. v19: Updated 3/3 with more up to date MAX_LCORE and MAX_NUMA_NODES for neoverse-n1. v20: Simplified allowlist and blocklist implementation in 1/3 and updated 2/3 accordingly. Juraj Linkeš (3): build: disable/enable drivers in Arm builds build: add 'platform' meson option and Arm SoC config config: fix Arm implementer and its SoCs buildtools/list-dir-globs.py | 7 +- config/arm/arm64_armada_linux_gcc | 6 +- config/arm/arm64_armv8_linux_clang_ubuntu1804 | 3 +- config/arm/arm64_armv8_linux_gcc | 5 +- config/arm/arm64_bluefield_linux_gcc | 6 +- config/arm/arm64_dpaa_linux_gcc | 6 +- config/arm/arm64_emag_linux_gcc | 5 +- config/arm/arm64_graviton2_linux_gcc | 6 +- config/arm/arm64_n1sdp_linux_gcc | 6 +- config/arm/arm64_n2_linux_gcc | 6 +- config/arm/arm64_octeontx2_linux_gcc | 6 +- config/arm/arm64_stingray_linux_gcc | 6 +- config/arm/arm64_thunderx2_linux_gcc | 5 +- config/arm/arm64_thunderxt88_linux_gcc | 5 +- config/arm/meson.build | 177 +++++++++++++++--- config/meson.build | 4 + .../linux_gsg/cross_build_dpdk_for_arm64.rst | 104 +++++----- drivers/common/qat/meson.build | 4 +- drivers/meson.build | 32 +++- meson_options.txt | 4 + 20 files changed, 259 insertions(+), 144 deletions(-)