From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from na01-bl2-obe.outbound.protection.outlook.com (mail-bl2on0091.outbound.protection.outlook.com [65.55.169.91]) by dpdk.org (Postfix) with ESMTP id 6A4945A6B for ; Mon, 2 Nov 2015 05:44:30 +0100 (CET) Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Jerin.Jacob@caviumnetworks.com; Received: from localhost.localdomain (122.167.182.182) by BLUPR0701MB1971.namprd07.prod.outlook.com (10.163.121.22) with Microsoft SMTP Server (TLS) id 15.1.312.18; Mon, 2 Nov 2015 04:44:25 +0000 Date: Mon, 2 Nov 2015 10:13:57 +0530 From: Jerin Jacob To: David Hunt Message-ID: <20151102044355.GA16413@localhost.localdomain> References: <1446212959-19832-1-git-send-email-david.hunt@intel.com> <1446212959-19832-6-git-send-email-david.hunt@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <1446212959-19832-6-git-send-email-david.hunt@intel.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-Originating-IP: [122.167.182.182] X-ClientProxiedBy: MAXPR01CA0031.INDPRD01.PROD.OUTLOOK.COM (25.164.147.38) To BLUPR0701MB1971.namprd07.prod.outlook.com (25.163.121.22) X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1971; 2:Z1vkw6Cxgb+xbfbY9Ogg2oQMnRXKc8SDjyPEYErYKMifHKhvE6xxGz/T2uuRTB1cK0zVyjo3TOZTFRM/tvAbXNm4Kde1ZmcyGbIeNhXtdQFf2H3PzxVaLWfSpt5EMhHHpbWzpMSn+ssPCwUyid/uwXS3HJjOaRMamk9CfCBeMQI=; 3:J6EZ2TbVQi1lZzY7Y3X1payymkYWo7ebOglr+g5XTsBue8wyykT+5hoOTnSKN25EpSiEZkmlRUcYHjtrPC31xeuob2fYZJ4mtuYM/zEBASUqLVYiR0Yu08dDqlXpDgjP7f4bxlZGIuruBjPOMToSLQ==; 25:d8lVhZnoA+DHyo7uL0jd+DQcsRg2J3sNSDQfqxa/vOq2JYP/lqRml7L098loZpMMKCQ43HZpKTBz/7+wQLlD1vb8cbZzZ8Wbym0bQqSCXJlAv07999ReJsiLQDyhm7ekspz9PRSmi3e+rT3kb/ODatZ64+hRts7/rYplj97nNbue7F9HptFxeXvF6njB1ysKSy9rd2BoLydyamyqZOxkZ1Bj5hBv4ARX4nQYR56kA2kRRNCCU9YoWRGa/muYtl9i X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BLUPR0701MB1971; X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1971; 20:Ey0u8fFkdQ43F3bT6p085YMy+1AVbMmvScNcUpPMey7LMbTQ656e/pq4GUlI4MNK62iPVN01XIqAvhYu2fnf/gudm5mmk0BI4FVDEWS2fC5AEjKBB9w+1xtlwLiPy7z4WSoW7JqIDmKhdtRrX+2sNMWhD2Vuj9h2FXnVnFbzpbFkCgzovfcFiU5yTZkpK+i3FNpwf7RnHjiDMgO34m03yLxJbaoadHfWzBs4lPvbryyXwdyOEqUFoFiemjYRuKdZtEwQzJr4zf83pyTMi3hwVeY4b8rS9Xsl9aJWvPT9HCGHuIZofr+vo5F9hHOajL37ngZpKXs+IskUiixPEiY2+TPnMjCRfM08vzFrUpYOFlcOsoNhBLvnqU+3b46uI2PplHag8PlpFQZSs8QOE+koEf+ahu9WVn7n3T0+BZJy/95vAKQ7QvZAB2M6sdQo/B+loYuRlVCo5mnfElZ1wFD9R03Gx1g7fE8PxZv6CQZYoTs+j252vkApM4+n8XHIj5uEKyXzEJaq4NPrDZewN6MYwzxpUQNa368iHwlZUUVVQKSeXqlDcoLEj0pYksMGxWH+5Mik4bgtxoOXtHBVPou7QbWnEmch8X/QfMv1i4RCB7w= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(5005006)(520078)(8121501046)(10201501046)(3002001); SRVR:BLUPR0701MB1971; BCL:0; PCL:0; RULEID:; SRVR:BLUPR0701MB1971; X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1971; 4:typI9o5cowhTEcNJmAPQ/CLJ1iOvhH7Dq7lGF/dAvylG5V2w0hA7hkhxYM6lHqhBj5dAwsmYFzmG3VGLXedE8nkExrEGyqbJH0uENDfaHNC5X0L0q8EDpak5AfZJxIrtTW4z0rYh+/r3ht2EJEpwl/hva8HFSteF+/QvzlRQGICI/aGziQlXoKcSnZfqkXvL4Fgufp2HLybM7txdbY0QNyyAwSUwh5wDNG1PtWkqfU3Hr8TITiI+9S3/GX3t6wG8XYk4ObTPTcBi9sAU9vCn69DXhbfW0wHKA0gxX2H9z6MZlljFc77sKskh9x78z1Kw5MdtG0/NDzvWLH+wgiz1exWMkas5In6Hy1eA9rSkQWUICX8VbrlwAHLu2hQV+2lV X-Forefront-PRVS: 0748FF9A04 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(6069001)(24454002)(189002)(199003)(83506001)(33656002)(19580395003)(106356001)(122386002)(77096005)(40100003)(47776003)(5008740100001)(86362001)(5004730100002)(92566002)(97756001)(5007970100001)(2950100001)(189998001)(19580405001)(61506002)(46406003)(97736004)(50466002)(87976001)(101416001)(66066001)(105586002)(110136002)(5001960100002)(42186005)(76176999)(54356999)(50986999)(81156007)(23726002)(4001350100001)(7099028); DIR:OUT; SFP:1101; SCL:1; SRVR:BLUPR0701MB1971; H:localhost.localdomain; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: caviumnetworks.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BLUPR0701MB1971; 23:kNERAJPpwHxK5jIHc9hR0ufX20WJcRzVAaLPY9u?= =?us-ascii?Q?+paGujEny1zT81JBnUm9xo++QDGLS2VGUz9BLE8oVsLIyBWe8HaBzR0OS/dc?= =?us-ascii?Q?zyeBpWsmgHMZoOtpg3I1uCASjQ21sNmpIdTiKCCWDmMg1EpNqDnLrUH+BlR5?= =?us-ascii?Q?SFrzg4bI19VBD8YS24PhUFQkoyPpk3tvUm7xk/EJi33oh7aNtMezJ7r1xH66?= =?us-ascii?Q?COu5ku25clsxAizDjDNilglfzr15AYN2Hszo+mTdftbAfk8oTq/SHOPVAFPy?= =?us-ascii?Q?T30nLds/av5+EZQRyxI+L0Mcdm3oZcWR9d9ob4dCqMJjOjbM6crk1Ev4dFu0?= =?us-ascii?Q?Qje3UQy3Yvv6wS57fUZRvfvYr2DhMYKjd9+F/pPp1Sh/FhWxuxBPWb3XGiCY?= =?us-ascii?Q?Uph5Y0widTN74MtoXBdeLxlkdfiKXdokPiC/cbs8rCHky8hSEl/rEwnCoILd?= =?us-ascii?Q?NDoxeM9cDLaXlMw8J7LX96BDI8ooHxVl+GzdEj3VAJ/yrUAIrk7ANUDQMArs?= =?us-ascii?Q?hPB3rVBPLt/OQ+tKkre2bzrIiqHhhddFMyEUitGbZgRNfOJXq6sPwUBmVzlx?= =?us-ascii?Q?XYZM2agThfHHR8pjUgGg4AcveMMhRK6aZkhNetOTw/YMNekqZqGUj/BCzgEo?= =?us-ascii?Q?Hm/690sfFuRKYXTDt2TVpdbgmKaQDCNqoAhBnyQz2DuUlCk0JIidxevvH9e0?= =?us-ascii?Q?tbsdYEEXcKE00vEV2m6rPoWOBlpUGys7us2K5d8y4K591PLZ99c7HMmkEdrp?= =?us-ascii?Q?tDzkLKoHMnj0J5oGcD/B8tsgC+plUOCtob5oWJgYrE7OGHC3riHw7ipbg6a+?= =?us-ascii?Q?Gv+GKKz0ZPpSygDobjPhlThdhFia3/dIqA3DIGYLR8oNUUTKU/xXpGcvantk?= =?us-ascii?Q?tVDm/YXOY27YzRA0a5peFgHjAsnAQIiCXJw/5pXH1cDdlymGkE6Ctwb7ZZ23?= =?us-ascii?Q?YcNHgKeWn/j/d1f9UmuGEuonF89HFR5fKji5bZm/V/NvGcBUXhT8/6w9z3tF?= =?us-ascii?Q?gaKQXRqwX7Tv9FnUn+7+JQYBkFnxwxogjkC2htU7Es5uYpS6PuzieXvopkBu?= =?us-ascii?Q?K8JCP7gxdMjFpnf+Ir1LLHYbaS2Xi?= X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1971; 5:SzciZp9Xn6IFDzvzr2GgyEJZNqMSoeKSjK0lzDEHfQs0ABufzaZhjjBgiGoUYQNyRF2Ju4ABKIQdBuD0171WTmlMU9F00l82kAYrJ+9XV1HFlkoPHPWp/kdlTAWlnfSEAkS3hXF9fXJPYSm/MIWBhQ==; 24:znj112sREz+VhSHECB9bfbTe/ngz9VwLZ92IzlG7dOFLUsT+uOeJMueKRQuD9pGNn/1Fz4rQf0F8xNDl/2vVHcNCjVWx3qbkG5Va4TPTJaE=; 20:eXFlUXyxmxpDVt874oozK318jq4t8y1OsF3Lc3y0XGyuafVjZDPOjdhFO+k3HqEYYOc7fElM6liDvyA0F0Ae4g== SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2015 04:44:25.9018 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR0701MB1971 Cc: dev@dpdk.org Subject: Re: [dpdk-dev] [PATCH v3 5/6] mk: add support for armv8 on top of armv7 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Nov 2015 04:44:30 -0000 On Fri, Oct 30, 2015 at 01:49:18PM +0000, David Hunt wrote: > The ARMv8 include files are in the arm directory in > lib/librte_eal/common/include/arch/arm/ with the ARMv7 include files > > Signed-off-by: David Hunt > --- > MAINTAINERS | 3 +- > config/defconfig_arm64-armv8a-linuxapp-gcc | 56 +++++++++++++++++++++++++++++ > doc/guides/rel_notes/release_2_2.rst | 7 ++-- > mk/arch/arm64/rte.vars.mk | 58 ++++++++++++++++++++++++++++++ > mk/machine/armv8a/rte.vars.mk | 57 +++++++++++++++++++++++++++++ > 5 files changed, 177 insertions(+), 4 deletions(-) > create mode 100644 config/defconfig_arm64-armv8a-linuxapp-gcc > create mode 100644 mk/arch/arm64/rte.vars.mk > create mode 100644 mk/machine/armv8a/rte.vars.mk > > diff --git a/MAINTAINERS b/MAINTAINERS > index a8933eb..4569f13 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -124,8 +124,9 @@ IBM POWER > M: Chao Zhu > F: lib/librte_eal/common/include/arch/ppc_64/ > > -ARM v7 > +ARM > M: Jan Viktorin > +M: David Hunt > F: lib/librte_eal/common/include/arch/arm/ > > Intel x86 > diff --git a/config/defconfig_arm64-armv8a-linuxapp-gcc b/config/defconfig_arm64-armv8a-linuxapp-gcc > new file mode 100644 > index 0000000..79a9533 > --- /dev/null > +++ b/config/defconfig_arm64-armv8a-linuxapp-gcc > @@ -0,0 +1,56 @@ > +# BSD LICENSE > +# > +# Copyright(c) 2010-2014 Intel Corporation. All rights reserved. > +# All rights reserved. > +# > +# Redistribution and use in source and binary forms, with or without > +# modification, are permitted provided that the following conditions > +# are met: > +# > +# * Redistributions of source code must retain the above copyright > +# notice, this list of conditions and the following disclaimer. > +# * Redistributions in binary form must reproduce the above copyright > +# notice, this list of conditions and the following disclaimer in > +# the documentation and/or other materials provided with the > +# distribution. > +# * Neither the name of Intel Corporation nor the names of its > +# contributors may be used to endorse or promote products derived > +# from this software without specific prior written permission. > +# > +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS > +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT > +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR > +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT > +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, > +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT > +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, > +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY > +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT > +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE > +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. > +# > + > +#include "common_linuxapp" > + > +CONFIG_RTE_MACHINE="armv8a" > + > +CONFIG_RTE_ARCH="arm64" > +CONFIG_RTE_ARCH_ARM64=y > +CONFIG_RTE_ARCH_64=y > +CONFIG_RTE_ARCH_ARM_NEON=y > + > +CONFIG_RTE_TOOLCHAIN="gcc" > +CONFIG_RTE_TOOLCHAIN_GCC=y > + > +CONFIG_RTE_IXGBE_INC_VECTOR=n > +CONFIG_RTE_LIBRTE_VIRTIO_PMD=n > +CONFIG_RTE_LIBRTE_IVSHMEM=n > +CONFIG_RTE_LIBRTE_EAL_HOTPLUG=n > + > +CONFIG_RTE_LIBRTE_LPM=n > +CONFIG_RTE_LIBRTE_ACL=n > +CONFIG_RTE_LIBRTE_TABLE=n > +CONFIG_RTE_LIBRTE_PIPELINE=n > + > +# This is used to adjust the generic arm timer to align with the cpu cycle count. > +CONFIG_RTE_TIMER_MULTIPLIER=48 Introducing a build-time dependency with cpu clock parameter not a good idea. Either this parameter needs be removed or find out out the multiplier at run-time by introducing a machine specific hook > diff --git a/doc/guides/rel_notes/release_2_2.rst b/doc/guides/rel_notes/release_2_2.rst > index 5b5bb4c..5aa523b 100644 > --- a/doc/guides/rel_notes/release_2_2.rst > +++ b/doc/guides/rel_notes/release_2_2.rst > @@ -31,10 +31,11 @@ New Features > > * **Added vhost-user multiple queue support.** > > -* **Introduce ARMv7 architecture** > +* **Introduce ARMv7 and ARMv8 architectures** > > - It is now possible to build DPDK for the ARMv7 platform and test with > - virtual PMD drivers. > + * It is now possible to build DPDK for the ARMv7 and ARMv8 platforms. > + * ARMv7 can be tested with virtual PMD drivers. > + * ARMv8 can be tested with virtual and physical PMD drivers. > > > Resolved Issues > diff --git a/mk/arch/arm64/rte.vars.mk b/mk/arch/arm64/rte.vars.mk > new file mode 100644 > index 0000000..3aad712 > --- /dev/null > +++ b/mk/arch/arm64/rte.vars.mk > @@ -0,0 +1,58 @@ > +# BSD LICENSE > +# > +# Copyright(c) 2015 Intel Corporation. All rights reserved. > +# > +# Redistribution and use in source and binary forms, with or without > +# modification, are permitted provided that the following conditions > +# are met: > +# > +# * Redistributions of source code must retain the above copyright > +# notice, this list of conditions and the following disclaimer. > +# * Redistributions in binary form must reproduce the above copyright > +# notice, this list of conditions and the following disclaimer in > +# the documentation and/or other materials provided with the > +# distribution. > +# * Neither the name of Intel Corporation nor the names of its > +# contributors may be used to endorse or promote products derived > +# from this software without specific prior written permission. > +# > +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS > +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT > +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR > +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT > +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, > +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT > +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, > +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY > +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT > +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE > +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. > + > +# > +# arch: > +# > +# - define ARCH variable (overridden by cmdline or by previous > +# optional define in machine .mk) > +# - define CROSS variable (overridden by cmdline or previous define > +# in machine .mk) > +# - define CPU_CFLAGS variable (overridden by cmdline or previous > +# define in machine .mk) > +# - define CPU_LDFLAGS variable (overridden by cmdline or previous > +# define in machine .mk) > +# - define CPU_ASFLAGS variable (overridden by cmdline or previous > +# define in machine .mk) > +# - may override any previously defined variable > +# > +# examples for CONFIG_RTE_ARCH: i686, x86_64, x86_64_32 > +# > + > +ARCH ?= arm64 > +# common arch dir in eal headers > +ARCH_DIR := arm > +CROSS ?= > + > +CPU_CFLAGS ?= -DRTE_CACHE_LINE_SIZE=64 cache line size can be moved to MACHINE_CFLAGS as its more of machine parameter.so that if machine has different cache line size(based on arm64) can have new target like defconfig_arm64-xxxxxxx-linuxapp-gcc > +CPU_LDFLAGS ?= > +CPU_ASFLAGS ?= -felf > + > +export ARCH CROSS CPU_CFLAGS CPU_LDFLAGS CPU_ASFLAGS > diff --git a/mk/machine/armv8a/rte.vars.mk b/mk/machine/armv8a/rte.vars.mk > new file mode 100644 > index 0000000..b785062 > --- /dev/null > +++ b/mk/machine/armv8a/rte.vars.mk > @@ -0,0 +1,57 @@ > +# BSD LICENSE > +# > +# Copyright(c) 2015 Intel Corporation. All rights reserved. > +# > +# Redistribution and use in source and binary forms, with or without > +# modification, are permitted provided that the following conditions > +# are met: > +# > +# * Redistributions of source code must retain the above copyright > +# notice, this list of conditions and the following disclaimer. > +# * Redistributions in binary form must reproduce the above copyright > +# notice, this list of conditions and the following disclaimer in > +# the documentation and/or other materials provided with the > +# distribution. > +# * Neither the name of Intel Corporation nor the names of its > +# contributors may be used to endorse or promote products derived > +# from this software without specific prior written permission. > +# > +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS > +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT > +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR > +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT > +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, > +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT > +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, > +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY > +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT > +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE > +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. > + > +# > +# machine: > +# > +# - can define ARCH variable (overridden by cmdline value) > +# - can define CROSS variable (overridden by cmdline value) > +# - define MACHINE_CFLAGS variable (overridden by cmdline value) > +# - define MACHINE_LDFLAGS variable (overridden by cmdline value) > +# - define MACHINE_ASFLAGS variable (overridden by cmdline value) > +# - can define CPU_CFLAGS variable (overridden by cmdline value) that > +# overrides the one defined in arch. > +# - can define CPU_LDFLAGS variable (overridden by cmdline value) that > +# overrides the one defined in arch. > +# - can define CPU_ASFLAGS variable (overridden by cmdline value) that > +# overrides the one defined in arch. > +# - may override any previously defined variable > +# > + > +# ARCH = > +# CROSS = > +# MACHINE_CFLAGS = > +# MACHINE_LDFLAGS = > +# MACHINE_ASFLAGS = > +# CPU_CFLAGS = > +# CPU_LDFLAGS = > +# CPU_ASFLAGS = > + > +MACHINE_CFLAGS += -march=armv8-a > -- > 1.9.1 >