On Fri, Oct 18, 2019 at 10:42 AM Honnappa Nagarahalli <honnappa.nagaraha...@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...@arm.com> > > > Reviewed-by: Honnappa Nagarahalli <honnappa.nagaraha...@arm.com> > > > Reviewed-by: Steve Capper <steve.cap...@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 >