[dpdk-dev] [PATCH] mk: Introduce NXP dpaa2 architecture based on armv8-a
Santosh Shukla
sshukla at mvista.com
Mon May 9 11:13:56 CEST 2016
On Mon, May 9, 2016 at 2:36 PM, Jerin Jacob <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>
> > ---
> > config/defconfig_arm64-dpaa2-linuxapp-gcc | 44 +++++++++++++++++++++++
> > mk/machine/dpaa2/rte.vars.mk | 60
> +++++++++++++++++++++++++++++++
> > mk/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
> >
> > 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.
>
> > +CONFIG_RTE_EAL_VFIO=y
> > diff --git a/mk/machine/dpaa2/rte.vars.mk b/mk/machine/dpaa2/rte.vars.mk
> > new file mode 100644
> > index 0000000..8541633
> > --- /dev/null
> > +++ b/mk/machine/dpaa2/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 b/mk/rte.module.mk
> > index 53ed4fe..09bf51b 100644
> > --- a/mk/rte.module.mk
> > +++ b/mk/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
> >
>
More information about the dev
mailing list