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 <lironh@marvell.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
This commit is contained in:
Liron Himi 2020-12-16 23:36:52 +02:00 committed by Ferruh Yigit
parent 3b37cc0c28
commit 7432c8cf8e
7 changed files with 41 additions and 58 deletions

View File

@ -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=$<musdk_install_dir>/lib/pkgconfig/:$PKG_CONFIG_PATH
meson build --cross-file config/arm/arm64_armada_linux_gcc
ninja -C build
Usage Example

View File

@ -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=$<musdk_install_dir>/lib/pkgconfig/:$PKG_CONFIG_PATH
meson build --cross-file config/arm/arm64_armada_linux_gcc
ninja -C build
Usage Example

View File

@ -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')

View File

@ -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']

View File

@ -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'

View File

@ -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',

View File

@ -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,