[1/1] build: add emag(arm64) platform and default config

Message ID 20190912085119.27171-2-jerryhao@os.amperecomputing.com (mailing list archive)
State Superseded, archived
Delegated to: Thomas Monjalon
Headers
Series build: add emag(arm64) platform and default config |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK
ci/iol-dpdk_compile_ovs success Compile Testing PASS
ci/iol-dpdk_compile success Compile Testing PASS
ci/iol-dpdk_compile_spdk success Compile Testing PASS
ci/intel-Performance success Performance Testing PASS
ci/mellanox-Performance success Performance Testing PASS

Commit Message

Jerry Hao OS Sept. 12, 2019, 8:52 a.m. UTC
  This patch is to add the emag default CACHE_LINE_SIZE
settings and ARCH variable definitions;
Added the meson build config.

Signed-off-by: Jerry Hao OS <jerryhao@os.amperecomputing.com>
---
 config/arm/arm64_emag_linux_gcc          | 15 ++++++++++++
 config/arm/meson.build                   | 11 ++++++++-
 config/defconfig_arm64-emag-linux-gcc    |  1 +
 config/defconfig_arm64-emag-linuxapp-gcc | 11 +++++++++
 mk/machine/emag/rte.vars.mk              | 31 ++++++++++++++++++++++++
 5 files changed, 68 insertions(+), 1 deletion(-)
 create mode 100644 config/arm/arm64_emag_linux_gcc
 create mode 120000 config/defconfig_arm64-emag-linux-gcc
 create mode 100644 config/defconfig_arm64-emag-linuxapp-gcc
 create mode 100644 mk/machine/emag/rte.vars.mk
  

Comments

Gavin Hu Sept. 12, 2019, 9:31 a.m. UTC | #1
Hi Jerry,

Please use --in-reply-to and -v options to chain your different versions of patches and make the old ones "Superseded".

/Gavin

> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Jerry Hao OS
> Sent: Thursday, September 12, 2019 4:53 PM
> To: thomas@monjalon.net
> Cc: dev@dpdk.org; Jerry Hao OS <jerryhao@os.amperecomputing.com>
> Subject: [dpdk-dev] [PATCH 1/1] build: add emag(arm64) platform and default
> config
>
> This patch is to add the emag default CACHE_LINE_SIZE
> settings and ARCH variable definitions;
> Added the meson build config.
>
> Signed-off-by: Jerry Hao OS <jerryhao@os.amperecomputing.com>
> ---
>  config/arm/arm64_emag_linux_gcc          | 15 ++++++++++++
>  config/arm/meson.build                   | 11 ++++++++-
>  config/defconfig_arm64-emag-linux-gcc    |  1 +
>  config/defconfig_arm64-emag-linuxapp-gcc | 11 +++++++++
>  mk/machine/emag/rte.vars.mk              | 31 ++++++++++++++++++++++++
>  5 files changed, 68 insertions(+), 1 deletion(-)
>  create mode 100644 config/arm/arm64_emag_linux_gcc
>  create mode 120000 config/defconfig_arm64-emag-linux-gcc
>  create mode 100644 config/defconfig_arm64-emag-linuxapp-gcc
>  create mode 100644 mk/machine/emag/rte.vars.mk
>
> diff --git a/config/arm/arm64_emag_linux_gcc
> b/config/arm/arm64_emag_linux_gcc
> new file mode 100644
> index 000000000..bcb147a5a
> --- /dev/null
> +++ b/config/arm/arm64_emag_linux_gcc
> @@ -0,0 +1,15 @@
> +[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 = '0x50'
> diff --git a/config/arm/meson.build b/config/arm/meson.build
> index 979018e16..6c1b85186 100644
> --- a/config/arm/meson.build
> +++ b/config/arm/meson.build
> @@ -61,6 +61,11 @@ flags_armada = [
>       ['RTE_CACHE_LINE_SIZE', 64],
>       ['RTE_MAX_NUMA_NODES', 1],
>       ['RTE_MAX_LCORE', 16]]
> +flags_emag = [
> +     ['RTE_MACHINE', '"emag"'],
> +     ['RTE_CACHE_LINE_SIZE', 64],
> +     ['RTE_MAX_NUMA_NODES', 1],
> +     ['RTE_MAX_LCORE', 32]]
>
>  flags_default_extra = []
>  flags_thunderx_extra = [
> @@ -98,6 +103,10 @@ machine_args_cavium = [
>       ['0xaf', ['-march=armv8.1-a+crc+crypto','-mcpu=thunderx2t99'],
> flags_thunderx2_extra],
>       ['0xb2', ['-mcpu=octeontx2'], flags_octeontx2_extra]]
>
> +machine_args_emag = [
> +     ['default', ['-march=armv8-a+crc+crypto']],
> +     ['native', ['-march=native']]]
> +
>  ## Arm implementer ID (ARM DDI 0487C.a, Section G7.2.106, Page G7-5321)
>  impl_generic = ['Generic armv8', flags_generic, machine_args_generic]
>  impl_0x41 = ['Arm', flags_arm, machine_args_generic]
> @@ -107,7 +116,7 @@ impl_0x44 = ['DEC', flags_generic,
> machine_args_generic]
>  impl_0x49 = ['Infineon', flags_generic, machine_args_generic]
>  impl_0x4d = ['Motorola', flags_generic, machine_args_generic]
>  impl_0x4e = ['NVIDIA', flags_generic, machine_args_generic]
> -impl_0x50 = ['AppliedMicro', flags_generic, machine_args_generic]
> +impl_0x50 = ['Ampere Computing', flags_emag, machine_args_emag]
>  impl_0x51 = ['Qualcomm', flags_generic, machine_args_generic]
>  impl_0x53 = ['Samsung', flags_generic, machine_args_generic]
>  impl_0x56 = ['Marvell ARMADA', flags_armada, machine_args_generic]
> diff --git a/config/defconfig_arm64-emag-linux-gcc b/config/defconfig_arm64-
> emag-linux-gcc
> new file mode 120000
> index 000000000..21894a31a
> --- /dev/null
> +++ b/config/defconfig_arm64-emag-linux-gcc
> @@ -0,0 +1 @@
> +defconfig_arm64-emag-linuxapp-gcc
> \ No newline at end of file
> diff --git a/config/defconfig_arm64-emag-linuxapp-gcc
> b/config/defconfig_arm64-emag-linuxapp-gcc
> new file mode 100644
> index 000000000..1db654c89
> --- /dev/null
> +++ b/config/defconfig_arm64-emag-linuxapp-gcc
> @@ -0,0 +1,11 @@
> +# SPDX-License-Identifier: BSD-3-Clause
> +# Copyright(c) 2019 Ampere Computing
> +#
> +
> +#include "defconfig_arm64-armv8a-linux-gcc"
> +
> +CONFIG_RTE_MACHINE="emag"
> +
> +CONFIG_RTE_CACHE_LINE_SIZE=64
> +CONFIG_RTE_MAX_NUMA_NODES=1
> +CONFIG_RTE_MAX_LCORE=32
> diff --git a/mk/machine/emag/rte.vars.mk b/mk/machine/emag/rte.vars.mk
> new file mode 100644
> index 000000000..9ce8b6bc9
> --- /dev/null
> +++ b/mk/machine/emag/rte.vars.mk
> @@ -0,0 +1,31 @@
> +# SPDX-License-Identifier: BSD-3-Clause
> +# Copyright(c) 2019 Ampere Computing
> +#
> +
> +#
> +# 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+crc+crypto

Reviewed-by: Gavin Hu <gavin.hu@arm.com>

> --
> 2.17.1

IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
  
Jerin Jacob Sept. 12, 2019, 4:25 p.m. UTC | #2
On Thu, Sep 12, 2019 at 3:02 PM Gavin Hu (Arm Technology China)
<Gavin.Hu@arm.com> wrote:
>
> Hi Jerry,
>
> Please use --in-reply-to and -v options to chain your different versions of patches and make the old ones "Superseded".
>
> /Gavin
>
> > -----Original Message-----
> > From: dev <dev-bounces@dpdk.org> On Behalf Of Jerry Hao OS
> > Sent: Thursday, September 12, 2019 4:53 PM
> > To: thomas@monjalon.net
> > Cc: dev@dpdk.org; Jerry Hao OS <jerryhao@os.amperecomputing.com>
> > Subject: [dpdk-dev] [PATCH 1/1] build: add emag(arm64) platform and default
> > config
> >
> > This patch is to add the emag default CACHE_LINE_SIZE
> > settings and ARCH variable definitions;
> > Added the meson build config.

Please change the git comment to a more reasonable description.

See the example below for a similar config for N1 platform.

config: add arm neoverse N1 SDP configuration

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: Jerry Hao OS <jerryhao@os.amperecomputing.com>

With the above change:

Acked-by: Jerin Jacob <jerinj@marvell.com>


> > ---
> >  config/arm/arm64_emag_linux_gcc          | 15 ++++++++++++
> >  config/arm/meson.build                   | 11 ++++++++-
> >  config/defconfig_arm64-emag-linux-gcc    |  1 +
> >  config/defconfig_arm64-emag-linuxapp-gcc | 11 +++++++++
> >  mk/machine/emag/rte.vars.mk              | 31 ++++++++++++++++++++++++
> >  5 files changed, 68 insertions(+), 1 deletion(-)
> >  create mode 100644 config/arm/arm64_emag_linux_gcc
> >  create mode 120000 config/defconfig_arm64-emag-linux-gcc
> >  create mode 100644 config/defconfig_arm64-emag-linuxapp-gcc
> >  create mode 100644 mk/machine/emag/rte.vars.mk
> >
> > diff --git a/config/arm/arm64_emag_linux_gcc
> > b/config/arm/arm64_emag_linux_gcc
> > new file mode 100644
> > index 000000000..bcb147a5a
> > --- /dev/null
> > +++ b/config/arm/arm64_emag_linux_gcc
> > @@ -0,0 +1,15 @@
> > +[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 = '0x50'
> > diff --git a/config/arm/meson.build b/config/arm/meson.build
> > index 979018e16..6c1b85186 100644
> > --- a/config/arm/meson.build
> > +++ b/config/arm/meson.build
> > @@ -61,6 +61,11 @@ flags_armada = [
> >       ['RTE_CACHE_LINE_SIZE', 64],
> >       ['RTE_MAX_NUMA_NODES', 1],
> >       ['RTE_MAX_LCORE', 16]]
> > +flags_emag = [
> > +     ['RTE_MACHINE', '"emag"'],
> > +     ['RTE_CACHE_LINE_SIZE', 64],
> > +     ['RTE_MAX_NUMA_NODES', 1],
> > +     ['RTE_MAX_LCORE', 32]]
> >
> >  flags_default_extra = []
> >  flags_thunderx_extra = [
> > @@ -98,6 +103,10 @@ machine_args_cavium = [
> >       ['0xaf', ['-march=armv8.1-a+crc+crypto','-mcpu=thunderx2t99'],
> > flags_thunderx2_extra],
> >       ['0xb2', ['-mcpu=octeontx2'], flags_octeontx2_extra]]
> >
> > +machine_args_emag = [
> > +     ['default', ['-march=armv8-a+crc+crypto']],
> > +     ['native', ['-march=native']]]
> > +
> >  ## Arm implementer ID (ARM DDI 0487C.a, Section G7.2.106, Page G7-5321)
> >  impl_generic = ['Generic armv8', flags_generic, machine_args_generic]
> >  impl_0x41 = ['Arm', flags_arm, machine_args_generic]
> > @@ -107,7 +116,7 @@ impl_0x44 = ['DEC', flags_generic,
> > machine_args_generic]
> >  impl_0x49 = ['Infineon', flags_generic, machine_args_generic]
> >  impl_0x4d = ['Motorola', flags_generic, machine_args_generic]
> >  impl_0x4e = ['NVIDIA', flags_generic, machine_args_generic]
> > -impl_0x50 = ['AppliedMicro', flags_generic, machine_args_generic]
> > +impl_0x50 = ['Ampere Computing', flags_emag, machine_args_emag]
> >  impl_0x51 = ['Qualcomm', flags_generic, machine_args_generic]
> >  impl_0x53 = ['Samsung', flags_generic, machine_args_generic]
> >  impl_0x56 = ['Marvell ARMADA', flags_armada, machine_args_generic]
> > diff --git a/config/defconfig_arm64-emag-linux-gcc b/config/defconfig_arm64-
> > emag-linux-gcc
> > new file mode 120000
> > index 000000000..21894a31a
> > --- /dev/null
> > +++ b/config/defconfig_arm64-emag-linux-gcc
> > @@ -0,0 +1 @@
> > +defconfig_arm64-emag-linuxapp-gcc
> > \ No newline at end of file
> > diff --git a/config/defconfig_arm64-emag-linuxapp-gcc
> > b/config/defconfig_arm64-emag-linuxapp-gcc
> > new file mode 100644
> > index 000000000..1db654c89
> > --- /dev/null
> > +++ b/config/defconfig_arm64-emag-linuxapp-gcc
> > @@ -0,0 +1,11 @@
> > +# SPDX-License-Identifier: BSD-3-Clause
> > +# Copyright(c) 2019 Ampere Computing
> > +#
> > +
> > +#include "defconfig_arm64-armv8a-linux-gcc"
> > +
> > +CONFIG_RTE_MACHINE="emag"
> > +
> > +CONFIG_RTE_CACHE_LINE_SIZE=64
> > +CONFIG_RTE_MAX_NUMA_NODES=1
> > +CONFIG_RTE_MAX_LCORE=32
> > diff --git a/mk/machine/emag/rte.vars.mk b/mk/machine/emag/rte.vars.mk
> > new file mode 100644
> > index 000000000..9ce8b6bc9
> > --- /dev/null
> > +++ b/mk/machine/emag/rte.vars.mk
> > @@ -0,0 +1,31 @@
> > +# SPDX-License-Identifier: BSD-3-Clause
> > +# Copyright(c) 2019 Ampere Computing
> > +#
> > +
> > +#
> > +# 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+crc+crypto
>
> Reviewed-by: Gavin Hu <gavin.hu@arm.com>
>
> > --
> > 2.17.1
>
> IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
  

Patch

diff --git a/config/arm/arm64_emag_linux_gcc b/config/arm/arm64_emag_linux_gcc
new file mode 100644
index 000000000..bcb147a5a
--- /dev/null
+++ b/config/arm/arm64_emag_linux_gcc
@@ -0,0 +1,15 @@ 
+[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 = '0x50'
diff --git a/config/arm/meson.build b/config/arm/meson.build
index 979018e16..6c1b85186 100644
--- a/config/arm/meson.build
+++ b/config/arm/meson.build
@@ -61,6 +61,11 @@  flags_armada = [
 	['RTE_CACHE_LINE_SIZE', 64],
 	['RTE_MAX_NUMA_NODES', 1],
 	['RTE_MAX_LCORE', 16]]
+flags_emag = [
+	['RTE_MACHINE', '"emag"'],
+	['RTE_CACHE_LINE_SIZE', 64],
+	['RTE_MAX_NUMA_NODES', 1],
+	['RTE_MAX_LCORE', 32]]
 
 flags_default_extra = []
 flags_thunderx_extra = [
@@ -98,6 +103,10 @@  machine_args_cavium = [
 	['0xaf', ['-march=armv8.1-a+crc+crypto','-mcpu=thunderx2t99'], flags_thunderx2_extra],
 	['0xb2', ['-mcpu=octeontx2'], flags_octeontx2_extra]]
 
+machine_args_emag = [
+	['default', ['-march=armv8-a+crc+crypto']],
+	['native', ['-march=native']]]
+
 ## Arm implementer ID (ARM DDI 0487C.a, Section G7.2.106, Page G7-5321)
 impl_generic = ['Generic armv8', flags_generic, machine_args_generic]
 impl_0x41 = ['Arm', flags_arm, machine_args_generic]
@@ -107,7 +116,7 @@  impl_0x44 = ['DEC', flags_generic, machine_args_generic]
 impl_0x49 = ['Infineon', flags_generic, machine_args_generic]
 impl_0x4d = ['Motorola', flags_generic, machine_args_generic]
 impl_0x4e = ['NVIDIA', flags_generic, machine_args_generic]
-impl_0x50 = ['AppliedMicro', flags_generic, machine_args_generic]
+impl_0x50 = ['Ampere Computing', flags_emag, machine_args_emag]
 impl_0x51 = ['Qualcomm', flags_generic, machine_args_generic]
 impl_0x53 = ['Samsung', flags_generic, machine_args_generic]
 impl_0x56 = ['Marvell ARMADA', flags_armada, machine_args_generic]
diff --git a/config/defconfig_arm64-emag-linux-gcc b/config/defconfig_arm64-emag-linux-gcc
new file mode 120000
index 000000000..21894a31a
--- /dev/null
+++ b/config/defconfig_arm64-emag-linux-gcc
@@ -0,0 +1 @@ 
+defconfig_arm64-emag-linuxapp-gcc
\ No newline at end of file
diff --git a/config/defconfig_arm64-emag-linuxapp-gcc b/config/defconfig_arm64-emag-linuxapp-gcc
new file mode 100644
index 000000000..1db654c89
--- /dev/null
+++ b/config/defconfig_arm64-emag-linuxapp-gcc
@@ -0,0 +1,11 @@ 
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2019 Ampere Computing
+#
+
+#include "defconfig_arm64-armv8a-linux-gcc"
+
+CONFIG_RTE_MACHINE="emag"
+
+CONFIG_RTE_CACHE_LINE_SIZE=64
+CONFIG_RTE_MAX_NUMA_NODES=1
+CONFIG_RTE_MAX_LCORE=32
diff --git a/mk/machine/emag/rte.vars.mk b/mk/machine/emag/rte.vars.mk
new file mode 100644
index 000000000..9ce8b6bc9
--- /dev/null
+++ b/mk/machine/emag/rte.vars.mk
@@ -0,0 +1,31 @@ 
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2019 Ampere Computing
+#
+
+#
+# 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+crc+crypto