[dpdk-dev,v3,2/4] drivers/net: add drivers for Cavium NICs to meson build

Message ID 20180119131204.7391-2-pbhagavatula@caviumnetworks.com (mailing list archive)
State Superseded, archived
Delegated to: Bruce Richardson
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation fail Compilation issues

Commit Message

Pavan Nikhilesh Jan. 19, 2018, 1:12 p.m. UTC
  Add Cavium octeontx and thunder nicvf to meson build infrastructure.

Signed-off-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
---
 drivers/net/meson.build                             |  3 ++-
 drivers/net/octeontx/base/meson.build               | 21 +++++++++++++++++++++
 drivers/net/octeontx/meson.build                    | 13 +++++++++++++
 drivers/net/thunderx/Makefile                       |  2 +-
 drivers/net/thunderx/base/meson.build               | 14 ++++++++++++++
 drivers/net/thunderx/meson.build                    | 14 ++++++++++++++
 ...cvf_version.map => rte_pmd_thunderx_version.map} |  0
 7 files changed, 65 insertions(+), 2 deletions(-)
 create mode 100644 drivers/net/octeontx/base/meson.build
 create mode 100644 drivers/net/octeontx/meson.build
 create mode 100644 drivers/net/thunderx/base/meson.build
 create mode 100644 drivers/net/thunderx/meson.build
 rename drivers/net/thunderx/{rte_pmd_thunderx_nicvf_version.map => rte_pmd_thunderx_version.map} (100%)
  

Comments

Bruce Richardson Jan. 19, 2018, 5:16 p.m. UTC | #1
On Fri, Jan 19, 2018 at 06:42:02PM +0530, Pavan Nikhilesh wrote:
> Add Cavium octeontx and thunder nicvf to meson build infrastructure.
> 
> Signed-off-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
> ---
>  drivers/net/meson.build                             |  3 ++-
>  drivers/net/octeontx/base/meson.build               | 21 +++++++++++++++++++++
>  drivers/net/octeontx/meson.build                    | 13 +++++++++++++
>  drivers/net/thunderx/Makefile                       |  2 +-
>  drivers/net/thunderx/base/meson.build               | 14 ++++++++++++++
>  drivers/net/thunderx/meson.build                    | 14 ++++++++++++++
>  ...cvf_version.map => rte_pmd_thunderx_version.map} |  0
>  7 files changed, 65 insertions(+), 2 deletions(-)
>  create mode 100644 drivers/net/octeontx/base/meson.build
>  create mode 100644 drivers/net/octeontx/meson.build
>  create mode 100644 drivers/net/thunderx/base/meson.build
>  create mode 100644 drivers/net/thunderx/meson.build
>  rename drivers/net/thunderx/{rte_pmd_thunderx_nicvf_version.map => rte_pmd_thunderx_version.map} (100%)
> 
<snip>
> diff --git a/drivers/net/thunderx/meson.build b/drivers/net/thunderx/meson.build
> new file mode 100644
> index 000000000..7333738de
> --- /dev/null
> +++ b/drivers/net/thunderx/meson.build
> @@ -0,0 +1,14 @@
> +# SPDX-License-Identifier: BSD-3-Clause
> +# Copyright(c) 2017 Cavium, Inc
> +
> +subdir('base')
> +objs = [base_objs]
> +
> +sources = files('nicvf_rxtx.c',
> +		'nicvf_ethdev.c',
> +		'nicvf_svf.c'
> +	       )
> +
> +cflags += '-fno-prefetch-loop-arrays'
> +

This flag doesn't work with clang (at least with 5.0.0), so needs to
be:

	if cc.has_argument('-fno-prefetch-loop-arrays')
	       cflags += '-fno-prefetch-loop-arrays'
	endif

I'm also getting errors with gcc builds due to maybe-uninitialized
variables, so I also had to add:

	if cc.has_argument('-Wno-maybe-uninitialized')
	       cflags += '-Wno-maybe-uninitialized'
	endif

Regards,
/Bruce
  
Pavan Nikhilesh Jan. 19, 2018, 5:29 p.m. UTC | #2
On Fri, Jan 19, 2018 at 05:16:30PM +0000, Bruce Richardson wrote:
> On Fri, Jan 19, 2018 at 06:42:02PM +0530, Pavan Nikhilesh wrote:
> > Add Cavium octeontx and thunder nicvf to meson build infrastructure.
> >
> > Signed-off-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
> > ---
> >  drivers/net/meson.build                             |  3 ++-
> >  drivers/net/octeontx/base/meson.build               | 21 +++++++++++++++++++++
> >  drivers/net/octeontx/meson.build                    | 13 +++++++++++++
> >  drivers/net/thunderx/Makefile                       |  2 +-
> >  drivers/net/thunderx/base/meson.build               | 14 ++++++++++++++
> >  drivers/net/thunderx/meson.build                    | 14 ++++++++++++++
> >  ...cvf_version.map => rte_pmd_thunderx_version.map} |  0
> >  7 files changed, 65 insertions(+), 2 deletions(-)
> >  create mode 100644 drivers/net/octeontx/base/meson.build
> >  create mode 100644 drivers/net/octeontx/meson.build
> >  create mode 100644 drivers/net/thunderx/base/meson.build
> >  create mode 100644 drivers/net/thunderx/meson.build
> >  rename drivers/net/thunderx/{rte_pmd_thunderx_nicvf_version.map => rte_pmd_thunderx_version.map} (100%)
> >
> <snip>
> > diff --git a/drivers/net/thunderx/meson.build b/drivers/net/thunderx/meson.build
> > new file mode 100644
> > index 000000000..7333738de
> > --- /dev/null
> > +++ b/drivers/net/thunderx/meson.build
> > @@ -0,0 +1,14 @@
> > +# SPDX-License-Identifier: BSD-3-Clause
> > +# Copyright(c) 2017 Cavium, Inc
> > +
> > +subdir('base')
> > +objs = [base_objs]
> > +
> > +sources = files('nicvf_rxtx.c',
> > +		'nicvf_ethdev.c',
> > +		'nicvf_svf.c'
> > +	       )
> > +
> > +cflags += '-fno-prefetch-loop-arrays'
> > +
>
> This flag doesn't work with clang (at least with 5.0.0), so needs to
> be:
>
> 	if cc.has_argument('-fno-prefetch-loop-arrays')
> 	       cflags += '-fno-prefetch-loop-arrays'
> 	endif
>
> I'm also getting errors with gcc builds due to maybe-uninitialized
> variables, so I also had to add:
>
> 	if cc.has_argument('-Wno-maybe-uninitialized')
> 	       cflags += '-Wno-maybe-uninitialized'
> 	endif

Will send out v4 adressing these.

>
> Regards,
> /Bruce

Thanks,
Pavan
  

Patch

diff --git a/drivers/net/meson.build b/drivers/net/meson.build
index 72e1d3578..b132d3558 100644
--- a/drivers/net/meson.build
+++ b/drivers/net/meson.build
@@ -3,7 +3,8 @@ 
 
 drivers = ['af_packet', 'bonding',
 	'e1000', 'fm10k', 'i40e', 'ixgbe',
-	'null', 'pcap', 'ring']
+	'null', 'pcap', 'ring',
+	'octeontx', 'thunderx']
 std_deps = ['ethdev', 'kvargs'] # 'ethdev' also pulls in mbuf, net, eal etc
 std_deps += ['bus_pci']         # very many PMDs depend on PCI, so make std
 std_deps += ['bus_vdev']        # same with vdev bus
diff --git a/drivers/net/octeontx/base/meson.build b/drivers/net/octeontx/base/meson.build
new file mode 100644
index 000000000..82697c4bc
--- /dev/null
+++ b/drivers/net/octeontx/base/meson.build
@@ -0,0 +1,21 @@ 
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2017 Cavium, Inc
+
+sources = [
+	'octeontx_pkovf.c',
+	'octeontx_pkivf.c',
+	'octeontx_bgx.c'
+]
+
+depends = ['ethdev', 'mempool_octeontx']
+static_objs = []
+foreach d: depends
+	static_objs += [get_variable('static_rte_' + d)]
+endforeach
+
+base_lib = static_library('octeontx_base', sources,
+	c_args: cflags,
+	dependencies: static_objs,
+	)
+
+base_objs = base_lib.extract_all_objects()
diff --git a/drivers/net/octeontx/meson.build b/drivers/net/octeontx/meson.build
new file mode 100644
index 000000000..ef789eaa9
--- /dev/null
+++ b/drivers/net/octeontx/meson.build
@@ -0,0 +1,13 @@ 
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2017 Cavium, Inc
+
+subdir('base')
+objs = [base_objs]
+
+sources = files('octeontx_rxtx.c',
+		'octeontx_ethdev.c'
+		)
+
+deps += ['mempool_octeontx', 'eventdev']
+
+includes += include_directories('base')
diff --git a/drivers/net/thunderx/Makefile b/drivers/net/thunderx/Makefile
index cc008bd3a..e6bf49752 100644
--- a/drivers/net/thunderx/Makefile
+++ b/drivers/net/thunderx/Makefile
@@ -16,7 +16,7 @@  LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
 LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
 LDLIBS += -lrte_bus_pci
 
-EXPORT_MAP := rte_pmd_thunderx_nicvf_version.map
+EXPORT_MAP := rte_pmd_thunderx_version.map
 
 LIBABIVER := 1
 
diff --git a/drivers/net/thunderx/base/meson.build b/drivers/net/thunderx/base/meson.build
new file mode 100644
index 000000000..e79c7206f
--- /dev/null
+++ b/drivers/net/thunderx/base/meson.build
@@ -0,0 +1,14 @@ 
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2017 Cavium, Inc
+
+sources = [
+	'nicvf_hw.c',
+	'nicvf_mbox.c',
+	'nicvf_bsvf.c'
+]
+
+base_lib = static_library('nicvf_base', sources,
+	c_args: cflags,
+	dependencies: static_rte_ethdev)
+
+base_objs = base_lib.extract_all_objects()
diff --git a/drivers/net/thunderx/meson.build b/drivers/net/thunderx/meson.build
new file mode 100644
index 000000000..7333738de
--- /dev/null
+++ b/drivers/net/thunderx/meson.build
@@ -0,0 +1,14 @@ 
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2017 Cavium, Inc
+
+subdir('base')
+objs = [base_objs]
+
+sources = files('nicvf_rxtx.c',
+		'nicvf_ethdev.c',
+		'nicvf_svf.c'
+	       )
+
+cflags += '-fno-prefetch-loop-arrays'
+
+includes += include_directories('base')
diff --git a/drivers/net/thunderx/rte_pmd_thunderx_nicvf_version.map b/drivers/net/thunderx/rte_pmd_thunderx_version.map
similarity index 100%
rename from drivers/net/thunderx/rte_pmd_thunderx_nicvf_version.map
rename to drivers/net/thunderx/rte_pmd_thunderx_version.map