From 7432c8cf8e94679cce89d3fc6baa218c9de5307d Mon Sep 17 00:00:00 2001 From: Liron Himi Date: Wed, 16 Dec 2020 23:36:52 +0200 Subject: [PATCH] build: update meson for Marvell Armada drivers With pkg-config support available within musdk library (from musdk-release-SDK-10.3.5.0-PR2 version), meson option 'lib_musdk_dir' can be removed. PKG_CONFIG_PATH environment variable should be set appropriately to use the musdk library. docs are updated with new musdk version and meson instructions. Signed-off-by: Liron Himi Reviewed-by: Ferruh Yigit --- doc/guides/nics/mvneta.rst | 16 ++++++++++------ doc/guides/nics/mvpp2.rst | 18 +++++++++++------- drivers/common/mvep/meson.build | 14 +++++--------- drivers/crypto/mvsam/meson.build | 15 +++++---------- drivers/net/mvneta/meson.build | 19 +++++-------------- drivers/net/mvpp2/meson.build | 15 +++++---------- meson_options.txt | 2 -- 7 files changed, 41 insertions(+), 58 deletions(-) diff --git a/doc/guides/nics/mvneta.rst b/doc/guides/nics/mvneta.rst index 4238b00066..b7f279c3cb 100644 --- a/doc/guides/nics/mvneta.rst +++ b/doc/guides/nics/mvneta.rst @@ -56,7 +56,7 @@ Prerequisites .. code-block:: console - git clone https://github.com/MarvellEmbeddedProcessors/musdk-marvell.git -b musdk-armada-18.09 + git clone https://github.com/MarvellEmbeddedProcessors/musdk-marvell.git -b musdk-release-SDK-10.3.5.0-PR2 MUSDK is a light-weight library that provides direct access to Marvell's NETA. Alternatively prebuilt MUSDK library can be @@ -94,8 +94,8 @@ be passed as part of EAL arguments. -c 3 -- -i --p 3 -a -Building DPDK -------------- +Building MUSDK +-------------- Driver needs precompiled MUSDK library during compilation. @@ -109,12 +109,16 @@ Driver needs precompiled MUSDK library during compilation. MUSDK will be installed to `usr/local` under current directory. For the detailed build instructions please consult ``doc/musdk_get_started.txt``. -The path to the MUSDK installation directory needs to set in meson, shown in the -following command: +Building DPDK +------------- + +Add path to libmusdk.pc in PKG_CONFIG_PATH environment variable. .. code-block:: console - meson -Dlib_musdk_dir=/path/to/musdk build ninja -C build + export PKG_CONFIG_PATH=$/lib/pkgconfig/:$PKG_CONFIG_PATH + meson build --cross-file config/arm/arm64_armada_linux_gcc + ninja -C build Usage Example diff --git a/doc/guides/nics/mvpp2.rst b/doc/guides/nics/mvpp2.rst index 17e8e347bb..e1246efae1 100644 --- a/doc/guides/nics/mvpp2.rst +++ b/doc/guides/nics/mvpp2.rst @@ -91,7 +91,7 @@ Prerequisites .. code-block:: console - git clone https://github.com/MarvellEmbeddedProcessors/musdk-marvell.git -b musdk-armada-18.09 + git clone https://github.com/MarvellEmbeddedProcessors/musdk-marvell.git -b musdk-release-SDK-10.3.5.0-PR2 MUSDK is a light-weight library that provides direct access to Marvell's PPv2 (Packet Processor v2). Alternatively prebuilt MUSDK library can be @@ -108,8 +108,8 @@ Prerequisites DPDK environment. -Building DPDK -------------- +Building MUSDK +-------------- Driver needs precompiled MUSDK library during compilation. @@ -123,14 +123,18 @@ Driver needs precompiled MUSDK library during compilation. MUSDK will be installed to `usr/local` under current directory. For the detailed build instructions please consult ``doc/musdk_get_started.txt``. -The path to the MUSDK installation directory needs to set in meson, shown in the -command below. -For additional instructions regarding DPDK cross compilation please refer to :doc:`Cross compile DPDK for ARM64 <../linux_gsg/cross_build_dpdk_for_arm64>`. +Building DPDK +------------- + +Add path to libmusdk.pc in PKG_CONFIG_PATH environment variable. .. code-block:: console - meson -Dlib_musdk_dir=/path/to/musdk build ninja -C build + export PKG_CONFIG_PATH=$/lib/pkgconfig/:$PKG_CONFIG_PATH + + meson build --cross-file config/arm/arm64_armada_linux_gcc + ninja -C build Usage Example diff --git a/drivers/common/mvep/meson.build b/drivers/common/mvep/meson.build index 8df4bc6e0b..863a20ab90 100644 --- a/drivers/common/mvep/meson.build +++ b/drivers/common/mvep/meson.build @@ -3,18 +3,14 @@ # Copyright(c) 2018 Semihalf. # All rights reserved. # -path = get_option('lib_musdk_dir') -lib_dir = path + '/lib' -inc_dir = path + '/include' -lib = cc.find_library('libmusdk', dirs: [lib_dir], required: false) -if not lib.found() +dep = dependency('libmusdk', required: false) +if not dep.found() build = false reason = 'missing dependency, "libmusdk"' -else - ext_deps += lib - includes += include_directories(inc_dir) - cflags += ['-DMVCONF_TYPES_PUBLIC', '-DMVCONF_DMA_PHYS_ADDR_T_PUBLIC'] + subdir_done() endif +ext_deps += dep + sources = files('mvep_common.c') diff --git a/drivers/crypto/mvsam/meson.build b/drivers/crypto/mvsam/meson.build index 6d97dc8a23..384eacff03 100644 --- a/drivers/crypto/mvsam/meson.build +++ b/drivers/crypto/mvsam/meson.build @@ -3,20 +3,15 @@ # Copyright(c) 2018 Semihalf. # All rights reserved. -path = get_option('lib_musdk_dir') -lib_dir = path + '/lib' -inc_dir = path + '/include' - -lib = cc.find_library('libmusdk', dirs: [lib_dir], required: false) -if not lib.found() +dep = dependency('libmusdk', required: false) +if not dep.found() build = false reason = 'missing dependency, "libmusdk"' -else - ext_deps += lib - includes += include_directories(inc_dir) - cflags += ['-DMVCONF_TYPES_PUBLIC', '-DMVCONF_DMA_PHYS_ADDR_T_PUBLIC'] + subdir_done() endif +ext_deps += dep + sources = files('rte_mrvl_pmd.c', 'rte_mrvl_pmd_ops.c') deps += ['bus_vdev', 'common_mvep'] diff --git a/drivers/net/mvneta/meson.build b/drivers/net/mvneta/meson.build index 8d72027883..c887ddc104 100644 --- a/drivers/net/mvneta/meson.build +++ b/drivers/net/mvneta/meson.build @@ -3,24 +3,15 @@ # Copyright(c) 2018 Semihalf. # All rights reserved. -path = get_option('lib_musdk_dir') -lib_dir = path + '/lib' -inc_dir = path + '/include' - -lib = cc.find_library('libmusdk', dirs : [lib_dir], required: false) -if not lib.found() +dep = dependency('libmusdk', required: false) +if not dep.found() build = false reason = 'missing dependency, "libmusdk"' -else - ext_deps += lib - includes += include_directories(inc_dir) - cflags += [ - '-DMVCONF_TYPES_PUBLIC', - '-DMVCONF_DMA_PHYS_ADDR_T_PUBLIC', - '-DMVCONF_DMA_PHYS_ADDR_T_SIZE=64' - ] + subdir_done() endif +ext_deps += dep + sources = files( 'mvneta_ethdev.c', 'mvneta_rxtx.c' diff --git a/drivers/net/mvpp2/meson.build b/drivers/net/mvpp2/meson.build index e06eddaac2..3015a5559c 100644 --- a/drivers/net/mvpp2/meson.build +++ b/drivers/net/mvpp2/meson.build @@ -3,20 +3,15 @@ # Copyright(c) 2018 Semihalf. # All rights reserved. -path = get_option('lib_musdk_dir') -lib_dir = path + '/lib' -inc_dir = path + '/include' - -lib = cc.find_library('libmusdk', dirs : [lib_dir], required: false) -if not lib.found() +dep = dependency('libmusdk', required: false) +if not dep.found() build = false reason = 'missing dependency, "libmusdk"' -else - ext_deps += lib - includes += include_directories(inc_dir) - cflags += ['-DMVCONF_TYPES_PUBLIC', '-DMVCONF_DMA_PHYS_ADDR_T_PUBLIC'] + subdir_done() endif +ext_deps += dep + sources = files( 'mrvl_ethdev.c', 'mrvl_flow.c', diff --git a/meson_options.txt b/meson_options.txt index e384e6dbb2..4604328224 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -18,8 +18,6 @@ option('include_subdir_arch', type: 'string', value: '', description: 'subdirectory where to install arch-dependent headers') option('kernel_dir', type: 'string', value: '', description: 'Path to the kernel for building kernel modules. Headers must be in $kernel_dir/build. Modules will be installed in $DEST_DIR/$kernel_dir/extra/dpdk.') -option('lib_musdk_dir', type: 'string', value: '', - description: 'path to the MUSDK library installation directory') option('machine', type: 'string', value: 'native', description: 'set the target machine type') option('max_ethports', type: 'integer', value: 32, -- 2.20.1