> > <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 Ok, thank you
> > 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 Looking at mk/machine/ directory, looks like RTE_MACHINE seems to be defining micro-architecture for Intel. For ex: hsw, nhm, wsm. I see the same for Arm as well. Are you suggesting that we use RTE_MICRO_ARCH to pick mk/micro-arch/xxxx/rte.vars.mk? and RTE_MACHINE would pick mk/machine/xxxx/rte.vars.mk, but contain NUMA, #of cores 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 > >