[dpdk-dev] doc: add build steps to mrvl NIC guide

Message ID 20171012023745.23998-1-thomas@monjalon.net (mailing list archive)
State Changes Requested, archived
Delegated to: Ferruh Yigit
Headers

Checks

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

Commit Message

Thomas Monjalon Oct. 12, 2017, 2:37 a.m. UTC
  Show how to compile MUSDK and enable compilation of the mrvl PMD.

The build test tool is also updated to support this new PMD.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
---
 devtools/test-build.sh   |  4 ++++
 doc/guides/nics/mrvl.rst | 15 +++++++++++++++
 2 files changed, 19 insertions(+)
  

Comments

Tomasz Duszynski Oct. 12, 2017, 6:28 a.m. UTC | #1
On Thu, Oct 12, 2017 at 04:37:45AM +0200, Thomas Monjalon wrote:
> Show how to compile MUSDK and enable compilation of the mrvl PMD.
>
> The build test tool is also updated to support this new PMD.
>
> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> ---
>  devtools/test-build.sh   |  4 ++++
>  doc/guides/nics/mrvl.rst | 15 +++++++++++++++
>  2 files changed, 19 insertions(+)
>
> diff --git a/devtools/test-build.sh b/devtools/test-build.sh
> index c6dfaf0a8..4d7eaa499 100755
> --- a/devtools/test-build.sh
> +++ b/devtools/test-build.sh
> @@ -47,6 +47,7 @@ default_path=$PATH
>  # - DPDK_DEP_ZLIB (y/[n])
>  # - DPDK_MAKE_JOBS (int)
>  # - DPDK_NOTIFY (notify-send)
> +# - LIBMUSDK_PATH
>  # - LIBSSO_SNOW3G_PATH
>  # - LIBSSO_KASUMI_PATH
>  # - LIBSSO_ZUC_PATH
> @@ -129,6 +130,7 @@ reset_env ()
>  	unset DPDK_DEP_ZLIB
>  	unset AESNI_MULTI_BUFFER_LIB_PATH
>  	unset ARMV8_CRYPTO_LIB_PATH
> +	unset LIBMUSDK_PATH
>  	unset LIBSSO_SNOW3G_PATH
>  	unset LIBSSO_KASUMI_PATH
>  	unset LIBSSO_ZUC_PATH
> @@ -169,6 +171,8 @@ config () # <directory> <target> <options>
>  		sed -ri       's,(RESOURCE_TAR=)n,\1y,' $1/.config
>  		test "$DPDK_DEP_MOFED" != y || \
>  		sed -ri           's,(MLX._PMD=)n,\1y,' $1/.config
> +		test -z "$LIBMUSDK_PATH" || \
> +		sed -ri           's,(MRVL_PMD=)n,\1y,' $1/.config

test-build.sh modifications come with crypto-mrvl patches. The only
difference is that PMD_MRVL_CRYPTO is enabled instead of MRVL_PMD. Thus
I don't think it will apply after applying crypto patches.

>  		test "$DPDK_DEP_SZE" != y || \
>  		sed -ri       's,(PMD_SZEDATA2=)n,\1y,' $1/.config
>  		test "$DPDK_DEP_ZLIB" != y || \
> diff --git a/doc/guides/nics/mrvl.rst b/doc/guides/nics/mrvl.rst
> index 462bc0e9d..df0032bda 100644
> --- a/doc/guides/nics/mrvl.rst
> +++ b/doc/guides/nics/mrvl.rst
> @@ -221,9 +221,24 @@ Building DPDK
>  Driver needs precompiled MUSDK library during compilation. Please consult
>  ``doc/musdk_get_started.txt`` for the detailed build instructions.
>
> +.. code-block:: console
> +
> +   export CROSS_COMPILE=<toolchain>/bin/aarch64-linux-gnu-
> +   ./bootstrap
> +   ./configure --enable-bpool-dma=64
> +   make install

I personally build MUSDK as follows:

export CROSS_COMPILE=/home/tdu/workspace/gcc-linaro-5.4.1-2017.01-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-

make clean
./configure \
	--prefix=$(pwd)/musdk-install-dir \
	--enable-bpool-dma=64 \
	--enable-sam \
	--disable-shared

make install

'--enable-sam' is of course optional if you're not going to use crypto
engine.

MUSDK ends up in musdk-install-dir then. Otherwise you'll need extra
permissions to install to /usr/local. Of course its up to you where
would you like to have it installed.

The reason I tend to add '--disable-shared' is that during build
DPDK will suck in static libraries and then later on I don't have to
install MUSDK library on the development board.

> +
>  Before the DPDK build process the environmental variable ``LIBMUSDK_PATH`` with
>  the path to the MUSDK installation directory needs to be exported.
>
> +.. code-block:: console
> +
> +   export LIBMUSDK_PATH=<musdk>/usr/local
> +   export CROSS=aarch64-linux-gnu-
> +   make config T=arm64-armv8a-linuxapp-gcc
> +   sed -ri 's,(MRVL_PMD=)n,\1y,' build/.config
> +   make
> +
>
>  Usage Example
>  -------------
> --
> 2.14.1
>

Anyway patch looks good. Thanks.
Acked-by: Tomasz Duszynski <tdu@semihalf.com>

--
- Tomasz Duszyński
  
Thomas Monjalon Oct. 12, 2017, 8:02 a.m. UTC | #2
12/10/2017 08:28, Tomasz Duszynski:
> On Thu, Oct 12, 2017 at 04:37:45AM +0200, Thomas Monjalon wrote:
> > Show how to compile MUSDK and enable compilation of the mrvl PMD.
> >
> > The build test tool is also updated to support this new PMD.
> >
> > Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> > ---
> >  devtools/test-build.sh   |  4 ++++
> >  doc/guides/nics/mrvl.rst | 15 +++++++++++++++
> >  2 files changed, 19 insertions(+)
> >
> > diff --git a/devtools/test-build.sh b/devtools/test-build.sh
> > index c6dfaf0a8..4d7eaa499 100755
> > --- a/devtools/test-build.sh
> > +++ b/devtools/test-build.sh
> > @@ -47,6 +47,7 @@ default_path=$PATH
> >  # - DPDK_DEP_ZLIB (y/[n])
> >  # - DPDK_MAKE_JOBS (int)
> >  # - DPDK_NOTIFY (notify-send)
> > +# - LIBMUSDK_PATH
> >  # - LIBSSO_SNOW3G_PATH
> >  # - LIBSSO_KASUMI_PATH
> >  # - LIBSSO_ZUC_PATH
> > @@ -129,6 +130,7 @@ reset_env ()
> >  	unset DPDK_DEP_ZLIB
> >  	unset AESNI_MULTI_BUFFER_LIB_PATH
> >  	unset ARMV8_CRYPTO_LIB_PATH
> > +	unset LIBMUSDK_PATH
> >  	unset LIBSSO_SNOW3G_PATH
> >  	unset LIBSSO_KASUMI_PATH
> >  	unset LIBSSO_ZUC_PATH
> > @@ -169,6 +171,8 @@ config () # <directory> <target> <options>
> >  		sed -ri       's,(RESOURCE_TAR=)n,\1y,' $1/.config
> >  		test "$DPDK_DEP_MOFED" != y || \
> >  		sed -ri           's,(MLX._PMD=)n,\1y,' $1/.config
> > +		test -z "$LIBMUSDK_PATH" || \
> > +		sed -ri           's,(MRVL_PMD=)n,\1y,' $1/.config
> 
> test-build.sh modifications come with crypto-mrvl patches. The only
> difference is that PMD_MRVL_CRYPTO is enabled instead of MRVL_PMD. Thus
> I don't think it will apply after applying crypto patches.

OK I will adapt with crypto patches.

> > --- a/doc/guides/nics/mrvl.rst
> > +++ b/doc/guides/nics/mrvl.rst
> > @@ -221,9 +221,24 @@ Building DPDK
> >  Driver needs precompiled MUSDK library during compilation. Please consult
> >  ``doc/musdk_get_started.txt`` for the detailed build instructions.
> >
> > +.. code-block:: console
> > +
> > +   export CROSS_COMPILE=<toolchain>/bin/aarch64-linux-gnu-
> > +   ./bootstrap
> > +   ./configure --enable-bpool-dma=64
> > +   make install
> 
> I personally build MUSDK as follows:
> 
> export CROSS_COMPILE=/home/tdu/workspace/gcc-linaro-5.4.1-2017.01-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-
> 
> make clean
> ./configure \
> 	--prefix=$(pwd)/musdk-install-dir \
> 	--enable-bpool-dma=64 \
> 	--enable-sam \
> 	--disable-shared
> 
> make install
> 
> '--enable-sam' is of course optional if you're not going to use crypto
> engine.
> 
> MUSDK ends up in musdk-install-dir then. Otherwise you'll need extra
> permissions to install to /usr/local. Of course its up to you where
> would you like to have it installed.

No, the default is to install in usr/local inside musdk directory.

> The reason I tend to add '--disable-shared' is that during build
> DPDK will suck in static libraries and then later on I don't have to
> install MUSDK library on the development board.
> 
> > +
> >  Before the DPDK build process the environmental variable ``LIBMUSDK_PATH`` with
> >  the path to the MUSDK installation directory needs to be exported.
> >
> > +.. code-block:: console
> > +
> > +   export LIBMUSDK_PATH=<musdk>/usr/local
> > +   export CROSS=aarch64-linux-gnu-
> > +   make config T=arm64-armv8a-linuxapp-gcc
> > +   sed -ri 's,(MRVL_PMD=)n,\1y,' build/.config
> > +   make
> > +
[...]
> 
> Anyway patch looks good. Thanks.
> Acked-by: Tomasz Duszynski <tdu@semihalf.com>
> 
> --
> - Tomasz Duszyński

Thanks
  

Patch

diff --git a/devtools/test-build.sh b/devtools/test-build.sh
index c6dfaf0a8..4d7eaa499 100755
--- a/devtools/test-build.sh
+++ b/devtools/test-build.sh
@@ -47,6 +47,7 @@  default_path=$PATH
 # - DPDK_DEP_ZLIB (y/[n])
 # - DPDK_MAKE_JOBS (int)
 # - DPDK_NOTIFY (notify-send)
+# - LIBMUSDK_PATH
 # - LIBSSO_SNOW3G_PATH
 # - LIBSSO_KASUMI_PATH
 # - LIBSSO_ZUC_PATH
@@ -129,6 +130,7 @@  reset_env ()
 	unset DPDK_DEP_ZLIB
 	unset AESNI_MULTI_BUFFER_LIB_PATH
 	unset ARMV8_CRYPTO_LIB_PATH
+	unset LIBMUSDK_PATH
 	unset LIBSSO_SNOW3G_PATH
 	unset LIBSSO_KASUMI_PATH
 	unset LIBSSO_ZUC_PATH
@@ -169,6 +171,8 @@  config () # <directory> <target> <options>
 		sed -ri       's,(RESOURCE_TAR=)n,\1y,' $1/.config
 		test "$DPDK_DEP_MOFED" != y || \
 		sed -ri           's,(MLX._PMD=)n,\1y,' $1/.config
+		test -z "$LIBMUSDK_PATH" || \
+		sed -ri           's,(MRVL_PMD=)n,\1y,' $1/.config
 		test "$DPDK_DEP_SZE" != y || \
 		sed -ri       's,(PMD_SZEDATA2=)n,\1y,' $1/.config
 		test "$DPDK_DEP_ZLIB" != y || \
diff --git a/doc/guides/nics/mrvl.rst b/doc/guides/nics/mrvl.rst
index 462bc0e9d..df0032bda 100644
--- a/doc/guides/nics/mrvl.rst
+++ b/doc/guides/nics/mrvl.rst
@@ -221,9 +221,24 @@  Building DPDK
 Driver needs precompiled MUSDK library during compilation. Please consult
 ``doc/musdk_get_started.txt`` for the detailed build instructions.
 
+.. code-block:: console
+
+   export CROSS_COMPILE=<toolchain>/bin/aarch64-linux-gnu-
+   ./bootstrap
+   ./configure --enable-bpool-dma=64
+   make install
+
 Before the DPDK build process the environmental variable ``LIBMUSDK_PATH`` with
 the path to the MUSDK installation directory needs to be exported.
 
+.. code-block:: console
+
+   export LIBMUSDK_PATH=<musdk>/usr/local
+   export CROSS=aarch64-linux-gnu-
+   make config T=arm64-armv8a-linuxapp-gcc
+   sed -ri 's,(MRVL_PMD=)n,\1y,' build/.config
+   make
+
 
 Usage Example
 -------------