From: Santosh Shukla [mailto:sshu...@mvista.com] Sent: Monday, May 09, 2016 2:44 PM To: Jerin Jacob <jerin.jacob at caviumnetworks.com> Cc: Hemant Agrawal <hemant.agrawal at nxp.com>; dpdk <dev at dpdk.org>; Jianbo Liu <jianbo.liu at linaro.org>; Shukla, Santosh <santosh.shukla at caviumnetworks.com> Subject: Re: [dpdk-dev] [PATCH] mk: Introduce NXP dpaa2 architecture based on armv8-a
On Mon, May 9, 2016 at 2:36 PM, Jerin Jacob <jerin.jacob at caviumnetworks.com<mailto:jerin.jacob at caviumnetworks.com>> wrote: On Mon, May 09, 2016 at 07:18:22PM +0530, Hemant Agrawal wrote: > This patch introduces dpaa2 machine target to address difference > in cpu parameter, number of core to 8 and no numa support > w.r.t default armv8-a machine > > Signed-off-by: Hemant Agrawal <hemant.agrawal at > nxp.com<mailto:hemant.agrawal at nxp.com>> > --- > config/defconfig_arm64-dpaa2-linuxapp-gcc | 44 +++++++++++++++++++++++ > mk/machine/dpaa2/rte.vars.mk<http://rte.vars.mk> | 60 > +++++++++++++++++++++++++++++++ > mk/rte.module.mk<http://rte.module.mk> | 5 +++ > 3 files changed, 109 insertions(+) > create mode 100644 config/defconfig_arm64-dpaa2-linuxapp-gcc > create mode 100644 mk/machine/dpaa2/rte.vars.mk<http://rte.vars.mk> > > diff --git a/config/defconfig_arm64-dpaa2-linuxapp-gcc > b/config/defconfig_arm64-dpaa2-linuxapp-gcc > new file mode 100644 > index 0000000..80bda26 > --- /dev/null > +++ b/config/defconfig_arm64-dpaa2-linuxapp-gcc > @@ -0,0 +1,44 @@ > +# BSD LICENSE > +# > +# Copyright(c) 2016 Freescale Semiconductor, Inc. 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 Freescale Semiconductor 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 "defconfig_arm64-armv8a-linuxapp-gcc" > + > +# NXP (Freescale) - Soc Architecture with WRIOP and QBMAN support > +CONFIG_RTE_MACHINE="dpaa2" > +CONFIG_RTE_ARCH_ARM_TUNE="cortex-a57+fp+simd" > + > +# > +# Compile Environment Abstraction Layer > +# > +CONFIG_RTE_MAX_LCORE=8 > +CONFIG_RTE_MAX_NUMA_NODES=1 > +CONFIG_RTE_EAL_IGB_UIO=n I think it makes sense to move this option to generic arm64 config as upstream arm64 kernel does not have support for sysfs based PCI mmap resource file,(/sys/bus/pci/devices/B:D:F/resource[_wc]X) need for CONFIG_RTE_EAL_IGB_UIO to work) and use VFIO for all cases. Any objections? Make sense. IGB_UIO for arm64 is NA. +1 I can take care of it in next version of patch > +CONFIG_RTE_EAL_VFIO=y > diff --git a/mk/machine/dpaa2/rte.vars.mk<http://rte.vars.mk> > b/mk/machine/dpaa2/rte.vars.mk<http://rte.vars.mk> > new file mode 100644 > index 0000000..8541633 > --- /dev/null > +++ b/mk/machine/dpaa2/rte.vars.mk<http://rte.vars.mk> > @@ -0,0 +1,60 @@ > +# BSD LICENSE > +# > +# Copyright(c) 2016 Freescale Semiconductor, Inc. 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 Freescale Semiconductor 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 > + > +ifdef CONFIG_RTE_ARCH_ARM_TUNE > +MACHINE_CFLAGS += -mcpu=$(CONFIG_RTE_ARCH_ARM_TUNE) > +endif > diff --git a/mk/rte.module.mk<http://rte.module.mk> > b/mk/rte.module.mk<http://rte.module.mk> > index 53ed4fe..09bf51b 100644 > --- a/mk/rte.module.mk<http://rte.module.mk> > +++ b/mk/rte.module.mk<http://rte.module.mk> > @@ -29,6 +29,11 @@ > # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE > # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. > > +#### Linaro toolchain usages arm64 instread of aarch64 in kernel > +ifeq ($(ARCH), aarch64) > +ARCH = arm64 > +endif > + > ##### if sourced from kernel Kbuild system > ifneq ($(KERNELRELEASE),) > override EXTRA_CFLAGS = $(MODULE_CFLAGS) $(EXTRA_KERNEL_CFLAGS) > -- > 1.9.1 >