Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/95508/?format=api
http://patchwork.dpdk.org/api/patches/95508/?format=api", "web_url": "http://patchwork.dpdk.org/project/dpdk/patch/1625664343-26498-6-git-send-email-juraj.linkes@pantheon.tech/", "project": { "id": 1, "url": "http://patchwork.dpdk.org/api/projects/1/?format=api", "name": "DPDK", "link_name": "dpdk", "list_id": "dev.dpdk.org", "list_email": "dev@dpdk.org", "web_url": "http://core.dpdk.org", "scm_url": "git://dpdk.org/dpdk", "webscm_url": "http://git.dpdk.org/dpdk", "list_archive_url": "https://inbox.dpdk.org/dev", "list_archive_url_format": "https://inbox.dpdk.org/dev/{}", "commit_url_format": "" }, "msgid": "<1625664343-26498-6-git-send-email-juraj.linkes@pantheon.tech>", "list_archive_url": "https://inbox.dpdk.org/dev/1625664343-26498-6-git-send-email-juraj.linkes@pantheon.tech", "date": "2021-07-07T13:25:41", "name": "[v18,5/7] build: add aarch32 meson build flags", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": true, "hash": "ac8be84b7da733c6ced8a804f7388a79601d574c", "submitter": { "id": 1626, "url": "http://patchwork.dpdk.org/api/people/1626/?format=api", "name": "Juraj Linkeš", "email": "juraj.linkes@pantheon.tech" }, "delegate": { "id": 1, "url": "http://patchwork.dpdk.org/api/users/1/?format=api", "username": "tmonjalo", "first_name": "Thomas", "last_name": "Monjalon", "email": "thomas@monjalon.net" }, "mbox": "http://patchwork.dpdk.org/project/dpdk/patch/1625664343-26498-6-git-send-email-juraj.linkes@pantheon.tech/mbox/", "series": [ { "id": 17702, "url": "http://patchwork.dpdk.org/api/series/17702/?format=api", "web_url": "http://patchwork.dpdk.org/project/dpdk/list/?series=17702", "date": "2021-07-07T13:25:36", "name": "aarch64 -> aarch32 cross compilation support", "version": 18, "mbox": "http://patchwork.dpdk.org/series/17702/mbox/" } ], "comments": "http://patchwork.dpdk.org/api/patches/95508/comments/", "check": "success", "checks": "http://patchwork.dpdk.org/api/patches/95508/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<dev-bounces@dpdk.org>", "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])\n\tby inbox.dpdk.org (Postfix) with ESMTP id D65ABA0C4A;\n\tWed, 7 Jul 2021 15:26:24 +0200 (CEST)", "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id AF7EC41535;\n\tWed, 7 Jul 2021 15:26:00 +0200 (CEST)", "from lb.pantheon.sk (lb.pantheon.sk [46.229.239.20])\n by mails.dpdk.org (Postfix) with ESMTP id 76BD241529\n for <dev@dpdk.org>; Wed, 7 Jul 2021 15:25:57 +0200 (CEST)", "from localhost (localhost [127.0.0.1])\n by lb.pantheon.sk (Postfix) with ESMTP id DE565E757D;\n Wed, 7 Jul 2021 15:25:55 +0200 (CEST)", "from lb.pantheon.sk ([127.0.0.1])\n by localhost (lb.pantheon.sk [127.0.0.1]) (amavisd-new, port 10024)\n with ESMTP id UDUHmwjuSe0Y; Wed, 7 Jul 2021 15:25:53 +0200 (CEST)", "from service-node1.lab.pantheon.local (unknown [46.229.239.141])\n by lb.pantheon.sk (Postfix) with ESMTP id C2F54E7575;\n Wed, 7 Jul 2021 15:25:48 +0200 (CEST)" ], "X-Virus-Scanned": "amavisd-new at siecit.sk", "From": "=?utf-8?q?Juraj_Linke=C5=A1?= <juraj.linkes@pantheon.tech>", "To": "thomas@monjalon.net, david.marchand@redhat.com,\n bruce.richardson@intel.com,\n aconole@redhat.com, maicolgabriel@hotmail.com,\n Honnappa.Nagarahalli@arm.com, Ruifeng.Wang@arm.com,\n ajit.khaparde@broadcom.com, ferruh.yigit@intel.com, jerinjacobk@gmail.com,\n jerinj@marvell.com", "Cc": "juraj.linkes@pantheon.tech,\n\tdev@dpdk.org", "Date": "Wed, 7 Jul 2021 15:25:41 +0200", "Message-Id": "<1625664343-26498-6-git-send-email-juraj.linkes@pantheon.tech>", "X-Mailer": "git-send-email 2.7.4", "In-Reply-To": "<1625664343-26498-1-git-send-email-juraj.linkes@pantheon.tech>", "References": "<1619095749-7948-1-git-send-email-juraj.linkes@pantheon.tech>\n <1625664343-26498-1-git-send-email-juraj.linkes@pantheon.tech>", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=UTF-8", "Content-Transfer-Encoding": "8bit", "Subject": "[dpdk-dev] [PATCH v18 5/7] build: add aarch32 meson build flags", "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>,\n <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>,\n <mailto:dev-request@dpdk.org?subject=subscribe>", "Errors-To": "dev-bounces@dpdk.org", "Sender": "\"dev\" <dev-bounces@dpdk.org>" }, "content": "Add aarch32 armv8 SoC to build config.\nAlso modify how arm flags are updated in meson build - for 32-bit build,\nupdate only if cross-compiling.\n\nSigned-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech>\nAcked-by: Ruifeng Wang <ruifeng.wang@arm.com>\n---\n config/arm/meson.build | 88 +++++++++++++++++++++++++++++-------------\n 1 file changed, 61 insertions(+), 27 deletions(-)", "diff": "diff --git a/config/arm/meson.build b/config/arm/meson.build\nindex 9b147c0b93..4170b14c80 100644\n--- a/config/arm/meson.build\n+++ b/config/arm/meson.build\n@@ -24,9 +24,9 @@ flags_common = [\n ]\n \n ## Part numbers are specific to Arm implementers\n-# implementer specific aarch64 flags have middle priority\n+# implementer specific armv8 flags have middle priority\n # (will overwrite common flags)\n-# part number specific aarch64 flags have higher priority\n+# part number specific armv8 flags have higher priority\n # (will overwrite both common and implementer specific flags)\n implementer_generic = {\n 'description': 'Generic armv8',\n@@ -37,7 +37,18 @@ implementer_generic = {\n ['RTE_MAX_NUMA_NODES', 4]\n ],\n 'part_number_config': {\n- 'generic': {'machine_args': ['-march=armv8-a+crc', '-moutline-atomics']}\n+ 'generic': {\n+ 'machine_args': ['-march=armv8-a+crc', '-moutline-atomics']\n+ },\n+ 'generic_aarch32': {\n+ 'machine_args': ['-march=armv8-a', '-mfpu=neon'],\n+ 'flags': [\n+ ['RTE_ARCH_ARM_NEON_MEMCPY', false],\n+ ['RTE_ARCH_STRICT_ALIGN', true],\n+ ['RTE_ARCH_ARMv8_AARCH32', true],\n+ ['RTE_CACHE_LINE_SIZE', 64]\n+ ]\n+ }\n }\n }\n \n@@ -193,14 +204,20 @@ implementers = {\n '0x51': implementer_qualcomm\n }\n \n-# SoC specific aarch64 flags have the highest priority\n+# SoC specific armv8 flags have the highest priority\n # (will overwrite all other flags)\n soc_generic = {\n- 'description': 'Generic un-optimized build for all aarch64 machines',\n+ 'description': 'Generic un-optimized build for armv8 aarch64 exec mode',\n 'implementer': 'generic',\n 'part_number': 'generic'\n }\n \n+soc_generic_aarch32 = {\n+ 'description': 'Generic un-optimized build for armv8 aarch32 exec mode',\n+ 'implementer': 'generic',\n+ 'part_number': 'generic_aarch32'\n+}\n+\n soc_armada = {\n 'description': 'Marvell ARMADA',\n 'implementer': '0x41',\n@@ -330,28 +347,30 @@ soc_thunderxt88 = {\n \n '''\n Start of SoCs list\n-generic: Generic un-optimized build for all aarch64 machines.\n-armada: Marvell ARMADA\n-bluefield: NVIDIA BlueField\n-centriq2400: Qualcomm Centriq 2400\n-cn10k: Marvell OCTEON 10\n-dpaa: NXP DPAA\n-emag: Ampere eMAG\n-graviton2: AWS Graviton2\n-kunpeng920: HiSilicon Kunpeng 920\n-kunpeng930: HiSilicon Kunpeng 930\n-n1sdp: Arm Neoverse N1SDP\n-n2: Arm Neoverse N2\n-octeontx2: Marvell OCTEON TX2\n-stingray: Broadcom Stingray\n-thunderx2: Marvell ThunderX2 T99\n-thunderxt88: Marvell ThunderX T88\n+generic: Generic un-optimized build for armv8 aarch64 execution mode.\n+generic_aarch32: Generic un-optimized build for armv8 aarch32 execution mode.\n+armada: Marvell ARMADA\n+bluefield: NVIDIA BlueField\n+centriq2400: Qualcomm Centriq 2400\n+cn10k: Marvell OCTEON 10\n+dpaa: NXP DPAA\n+emag: Ampere eMAG\n+graviton2: AWS Graviton2\n+kunpeng920: HiSilicon Kunpeng 920\n+kunpeng930: HiSilicon Kunpeng 930\n+n1sdp: Arm Neoverse N1SDP\n+n2: Arm Neoverse N2\n+octeontx2: Marvell OCTEON TX2\n+stingray: Broadcom Stingray\n+thunderx2: Marvell ThunderX2 T99\n+thunderxt88: Marvell ThunderX T88\n End of SoCs list\n '''\n # The string above is included in the documentation, keep it in sync with the\n # SoCs list below.\n socs = {\n 'generic': soc_generic,\n+ 'generic_aarch32': soc_generic_aarch32,\n 'armada': soc_armada,\n 'bluefield': soc_bluefield,\n 'centriq2400': soc_centriq2400,\n@@ -372,14 +391,28 @@ socs = {\n dpdk_conf.set('RTE_ARCH_ARM', 1)\n dpdk_conf.set('RTE_FORCE_INTRINSICS', 1)\n \n+update_flags = false\n+soc_flags = []\n if dpdk_conf.get('RTE_ARCH_32')\n- # armv7 build\n+ # 32-bit build\n dpdk_conf.set('RTE_CACHE_LINE_SIZE', 64)\n- dpdk_conf.set('RTE_ARCH_ARMv7', 1)\n- # the minimum architecture supported, armv7-a, needs the following,\n- machine_args += '-mfpu=neon'\n+ if meson.is_cross_build()\n+ update_flags = true\n+ soc = meson.get_cross_property('platform', '')\n+ if soc == ''\n+ error('Arm SoC must be specified in the cross file.')\n+ endif\n+ soc_config = socs.get(soc, {'not_supported': true})\n+ flags_common = []\n+ else\n+ # armv7 build\n+ dpdk_conf.set('RTE_ARCH_ARMv7', true)\n+ # the minimum architecture supported, armv7-a, needs the following,\n+ machine_args += '-mfpu=neon'\n+ endif\n else\n- # aarch64 build\n+ # armv8 build\n+ update_flags = true\n soc = get_option('platform')\n soc_config = {}\n if not meson.is_cross_build()\n@@ -415,8 +448,9 @@ else\n endif\n soc_config = socs.get(soc, {'not_supported': true})\n endif\n+endif\n \n- soc_flags = []\n+if update_flags\n if soc_config.has_key('not_supported')\n error('SoC @0@ not supported.'.format(soc))\n elif soc_config != {}\n", "prefixes": [ "v18", "5/7" ] }{ "id": 95508, "url": "