[v7,3/4] config: add thunderx2 machine config
Checks
Commit Message
From: Jerin Jacob <jerinj@marvell.com>
Optimized configuration for Marvell thunderx2 SoC.
Updated meson build to support Marvell thunderx2 SoC.
Added meson cross compile target.
Product details are here:
https://www.marvell.com/server-processors/thunderx2-arm-processors/
Signed-off-by: Jerin Jacob <jerinj@marvell.com>
Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
Reviewed-by: Gavin Hu <gavin.hu@arm.com>
---
config/arm/arm64_thunderx2_linux_gcc | 16 +++++++++
config/arm/meson.build | 9 ++++-
config/defconfig_arm64-thunderx2-linux-gcc | 1 +
config/defconfig_arm64-thunderx2-linuxapp-gcc | 11 ++++++
mk/machine/thunderx2/rte.vars.mk | 34 +++++++++++++++++++
5 files changed, 70 insertions(+), 1 deletion(-)
create mode 100644 config/arm/arm64_thunderx2_linux_gcc
create mode 120000 config/defconfig_arm64-thunderx2-linux-gcc
create mode 100644 config/defconfig_arm64-thunderx2-linuxapp-gcc
create mode 100644 mk/machine/thunderx2/rte.vars.mk
Comments
06/04/2019 16:27, jerinjacobk@gmail.com:
> --- /dev/null
> +++ b/config/arm/arm64_thunderx2_linux_gcc
> @@ -0,0 +1,16 @@
> +[binaries]
> +c = 'aarch64-linux-gnu-gcc'
> +cpp = 'aarch64-linux-gnu-cpp'
> +ar = 'aarch64-linux-gnu-gcc-ar'
> +strip = 'aarch64-linux-gnu-strip'
> +pcap-config = ''
Strangely, I still see the same issue:
In file included from /usr/include/inttypes.h:27,
from /usr/include/pcap/pcap-inttypes.h:114,
from /usr/include/pcap/pcap.h:74,
from /usr/include/pcap.h:43,
from ../drivers/net/pcap/rte_eth_pcap.c:19:
/usr/include/stdint.h:109: error: "__INT64_C" redefined [-Werror]
How may I help to debug it?
08/04/2019 12:32, Thomas Monjalon:
> 06/04/2019 16:27, jerinjacobk@gmail.com:
> > --- /dev/null
> > +++ b/config/arm/arm64_thunderx2_linux_gcc
> > @@ -0,0 +1,16 @@
> > +[binaries]
> > +c = 'aarch64-linux-gnu-gcc'
> > +cpp = 'aarch64-linux-gnu-cpp'
> > +ar = 'aarch64-linux-gnu-gcc-ar'
> > +strip = 'aarch64-linux-gnu-strip'
> > +pcap-config = ''
>
> Strangely, I still see the same issue:
>
> In file included from /usr/include/inttypes.h:27,
> from /usr/include/pcap/pcap-inttypes.h:114,
> from /usr/include/pcap/pcap.h:74,
> from /usr/include/pcap.h:43,
> from ../drivers/net/pcap/rte_eth_pcap.c:19:
> /usr/include/stdint.h:109: error: "__INT64_C" redefined [-Werror]
>
> How may I help to debug it?
Thanks Bruce for telling me to remove the build directory.
Now it works!
On Mon, Apr 08, 2019 at 02:05:00PM +0200, Thomas Monjalon wrote:
> 08/04/2019 12:32, Thomas Monjalon:
> > 06/04/2019 16:27, jerinjacobk@gmail.com:
> > > --- /dev/null
> > > +++ b/config/arm/arm64_thunderx2_linux_gcc
> > > @@ -0,0 +1,16 @@
> > > +[binaries]
> > > +c = 'aarch64-linux-gnu-gcc'
> > > +cpp = 'aarch64-linux-gnu-cpp'
> > > +ar = 'aarch64-linux-gnu-gcc-ar'
> > > +strip = 'aarch64-linux-gnu-strip'
> > > +pcap-config = ''
> >
> > Strangely, I still see the same issue:
> >
> > In file included from /usr/include/inttypes.h:27,
> > from /usr/include/pcap/pcap-inttypes.h:114,
> > from /usr/include/pcap/pcap.h:74,
> > from /usr/include/pcap.h:43,
> > from ../drivers/net/pcap/rte_eth_pcap.c:19:
> > /usr/include/stdint.h:109: error: "__INT64_C" redefined [-Werror]
> >
> > How may I help to debug it?
>
> Thanks Bruce for telling me to remove the build directory.
> Now it works!
>
For reference, official documentation on this point - unlike most things in
meson, changing the cross-build file does require you to start from scratch
with a new build folder.
https://mesonbuild.com/Cross-compilation.html#changing-cross-file-settings
/Bruce
new file mode 100644
@@ -0,0 +1,16 @@
+[binaries]
+c = 'aarch64-linux-gnu-gcc'
+cpp = 'aarch64-linux-gnu-cpp'
+ar = 'aarch64-linux-gnu-gcc-ar'
+strip = 'aarch64-linux-gnu-strip'
+pcap-config = ''
+
+[host_machine]
+system = 'linux'
+cpu_family = 'aarch64'
+cpu = 'armv8-a'
+endian = 'little'
+
+[properties]
+implementor_id = '0x43'
+implementor_pn = '0xaf'
@@ -73,6 +73,12 @@ flags_default_extra = []
flags_thunderx_extra = [
['RTE_MACHINE', '"thunderx"'],
['RTE_USE_C11_MEM_MODEL', false]]
+flags_thunderx2_extra = [
+ ['RTE_MACHINE', '"thunderx2"'],
+ ['RTE_CACHE_LINE_SIZE', 64],
+ ['RTE_MAX_NUMA_NODES', 2],
+ ['RTE_MAX_LCORE', 256],
+ ['RTE_USE_C11_MEM_MODEL', true]]
machine_args_generic = [
['default', ['-march=armv8-a+crc+crypto']],
@@ -89,7 +95,8 @@ machine_args_cavium = [
['native', ['-march=native']],
['0xa1', ['-mcpu=thunderxt88'], flags_thunderx_extra],
['0xa2', ['-mcpu=thunderxt81'], flags_thunderx_extra],
- ['0xa3', ['-mcpu=thunderxt83'], flags_thunderx_extra]]
+ ['0xa3', ['-mcpu=thunderxt83'], flags_thunderx_extra],
+ ['0xaf', ['-mcpu=thunderx2t99'], flags_thunderx2_extra]]
## Arm implementer ID (ARM DDI 0487C.a, Section G7.2.106, Page G7-5321)
impl_generic = ['Generic armv8', flags_generic, machine_args_generic]
new file mode 120000
@@ -0,0 +1 @@
+defconfig_arm64-thunderx2-linuxapp-gcc
\ No newline at end of file
new file mode 100644
@@ -0,0 +1,11 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Marvell International Ltd
+#
+
+#include "defconfig_arm64-armv8a-linux-gcc"
+
+CONFIG_RTE_MACHINE="thunderx2"
+
+CONFIG_RTE_CACHE_LINE_SIZE=64
+CONFIG_RTE_MAX_NUMA_NODES=2
+CONFIG_RTE_MAX_LCORE=256
new file mode 100644
@@ -0,0 +1,34 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Marvell International 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.1-a+crc+crypto)
+MACHINE_CFLAGS += $(call rte_cc_has_argument, -mcpu=thunderx2t99)