[dpdk-dev] [PATCH v2 2/3] config: add arm neoverse N1 SDP configuration

Jerin Jacob jerinjacobk at gmail.com
Fri Oct 18 09:23:07 CEST 2019


On Fri, Oct 18, 2019 at 10:42 AM Honnappa Nagarahalli
<Honnappa.Nagarahalli at arm.com> wrote:
>
> <snip>
>
> >
> > On Thu, 2019-08-01 at 07:48 +0800, Gavin Hu wrote:
> > > Arm N1 SDP is an infrastructure segment development platform based on
> > > armv8.2-a Neoverse N1 CPU. For more information, refer to:
> > > https://community.arm.com/developer/tools-software/oss-platforms/w/
> > > docs/440/neoverse-n1-sdp
> > >
> > > Signed-off-by: Gavin Hu <gavin.hu at arm.com>
> > > Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli at arm.com>
> > > Reviewed-by: Steve Capper <steve.capper at arm.com>
> > > ---
> > >  config/arm/meson.build                         |  9 ++++++-
> > >  config/defconfig_arm64-neoversen1-linux-gcc    |  1 +
> > >  config/defconfig_arm64-neoversen1-linuxapp-gcc | 15 ++++++++++++
> > >  mk/machine/neoversen1/rte.vars.mk              | 34

> >
> > > diff --git a/config/defconfig_arm64-neoversen1-linuxapp-gcc
> > > b/config/defconfig_arm64-neoversen1-linuxapp-gcc
> > > new file mode 100644
> > > index 0000000..39b9e1f
> > > --- /dev/null
> > > +++ b/config/defconfig_arm64-neoversen1-linuxapp-gcc
> > > >
> > > @@ -0,0 +1,15 @@
> > > +# SPDX-License-Identifier: BSD-3-Clause # Copyright(c) 2019 Arm Ltd.
> > > +#
> > > +
> > > +#include "defconfig_arm64-armv8a-linux-gcc"
> > > +
> > > +CONFIG_RTE_MACHINE="neoversen1"
> > This should probably be "n1sdp" as this is the name of the platform that
> > matches the below configuration.
> A clear definition of RTE_MACHINE is required. Jerin?

I think, In the existing scheme of things, RTE_MACHINE defines, where
to take the MACHINE_CFLAGS
mk/machine/xxxx/rte.vars.mk

Considering the fact that there will be a lot of reusable IPs(for CPU)
from ARM for  armv8, I think,
it would make sense to introduce  RTE_MICRO_ARCH to avoid a lot of
code duplications and
confusion.

RTE_ARCH                             example: "x86" or "arm64"
RTE_MICRO_ARCH               example: "a72" or "thunderx3" - defines
mcpu and armv8 verion arch etc
RTE_MACHINE                       example: "bluefield" or "thunderx3"
- defines, number of cores, NUMA or not? etc

RTE_MACHINE should be probe based  on "implementation ID" for arm64
and reuse already defined RTE_MICRO_ARCH
to avoid code duplication.


>
> >
> > > +CONFIG_RTE_ARCH_ARM_TUNE="neoverse-n1"
> > > +CONFIG_RTE_MAX_LCORE=4
> > > +CONFIG_RTE_MAX_NUMA_NODES=1
> > > +CONFIG_RTE_CACHE_LINE_SIZE=64
> > > +
> > > +# Doesn't support NUMA
> > > +CONFIG_RTE_EAL_NUMA_AWARE_HUGEPAGES=n
> > > +CONFIG_RTE_LIBRTE_VHOST_NUMA=n
> > > diff --git a/mk/machine/neoversen1/rte.vars.mk
> > > b/mk/machine/neoversen1/rte.vars.mk
> > > new file mode 100644
> > > index 0000000..6d69de0
> > > --- /dev/null
> > > +++ b/mk/machine/neoversen1/rte.vars.mk
> > > @@ -0,0 +1,34 @@
> > > +# SPDX-License-Identifier: BSD-3-Clause # Copyright(c) 2019 Arm Ltd #
> > > +
> > > +#
> > > +# 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 =
> > > +
> > > +include $(RTE_SDK)/mk/rte.helper.mk
> > > +
> > > +MACHINE_CFLAGS += $(call rte_cc_has_argument,
> > > +-march=armv8.2-a+crc+crypto) MACHINE_CFLAGS += $(call
> > > +rte_cc_has_argument, -mcpu=neoverse-n1)
> > >
> > >
> > --
> > Ola Liljedahl, Networking System Architect, Arm Phone +46706866373, Skype
> > ola.liljedahl
>


More information about the dev mailing list