[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