DPDK patches and discussions
 help / color / mirror / Atom feed
From: Yongseok Koh <yskoh@mellanox.com>
To: thomas@monjalon.net
Cc: dev@dpdk.org, jerinj@marvell.com, shahafs@mellanox.com,
	Honnappa.Nagarahalli@arm.com
Subject: [dpdk-dev] [PATCH] doc: add Mellanox BlueField platform guide
Date: Tue,  7 May 2019 19:04:00 -0700	[thread overview]
Message-ID: <20190508020400.37317-1-yskoh@mellanox.com> (raw)
Message-ID: <20190508020400.cWfe9uz15iVA9JQOEf0-qNLzeFc2opVOJ2HImM7HSd0@z> (raw)

Platform specific guide for Mellanox BlueField SoC is added.

Signed-off-by: Yongseok Koh <yskoh@mellanox.com>
---
 .../linux_gsg/cross_build_dpdk_for_arm64.rst  |   2 +
 doc/guides/platform/bluefield.rst             | 141 ++++++++++++++++++
 doc/guides/platform/index.rst                 |   1 +
 doc/guides/rel_notes/release_19_05.rst        |   4 +
 4 files changed, 148 insertions(+)
 create mode 100644 doc/guides/platform/bluefield.rst

diff --git a/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst b/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
index f19e2edadb..4bf8f17ab0 100644
--- a/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
+++ b/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
@@ -34,6 +34,8 @@ Unzip and add into the PATH
 
    For the host requirements and other info, refer to the release note section: https://releases.linaro.org/components/toolchain/binaries/
 
+.. _getting_the_prerequisite_library:
+
 Getting the prerequisite library
 --------------------------------
 
diff --git a/doc/guides/platform/bluefield.rst b/doc/guides/platform/bluefield.rst
new file mode 100644
index 0000000000..c4ed306667
--- /dev/null
+++ b/doc/guides/platform/bluefield.rst
@@ -0,0 +1,141 @@
+..  SPDX-License-Identifier: BSD-3-Clause
+    Copyright 2019 Mellanox Technologies, Ltd
+
+Mellanox BlueField Board Support Package
+========================================
+
+This document has information about steps to setup Mellanox BlueField platform
+and common offload HW drivers of **Mellanox BlueField** family SoC.
+
+
+Supported BlueField family SoCs
+-------------------------------
+
+- `BlueField <http://www.mellanox.com/page/products_dyn?product_family=256&mtag=soc_overview>`_
+
+
+Supported BlueField Platforms
+-----------------------------
+
+- `BlueField SmartNIC <http://www.mellanox.com/page/products_dyn?product_family=275&mtag=bluefield_smart_nic>`_
+- `BlueField Reference Platforms <http://www.mellanox.com/page/products_dyn?product_family=286&mtag=bluefield_platforms>`_
+- `BlueField Controller Card <http://www.mellanox.com/page/products_dyn?product_family=288&mtag=bluefield_controller_card>`_
+
+
+Common Offload HW Drivers
+-------------------------
+
+1. **NIC Driver**
+
+   See :doc:`../nics/mlx5` for Mellanox mlx5 NIC driver information.
+
+2. **Cryptodev Driver**
+
+   This is based on the crypto extension support of armv8. See
+   :doc:`../cryptodevs/armv8` for armv8 crypto driver information.
+
+.. note::
+
+   BlueField has a variant having no armv8 crypto extension support.
+
+
+Steps To Setup Platform
+-----------------------
+
+Toolchains, OS and drivers can be downloaded and installed individually on the
+Web. But it is recommended to follow instructions at `Mellanox BlueField
+Software Website <http://www.mellanox.com/page/products_dyn?product_family=279&mtag=bluefield_software>`_.
+
+
+Compile DPDK
+------------
+
+DPDK can be compiled either natively on BlueField platforms or cross-compiled on
+an x86 based platform.
+
+Native Compilation
+~~~~~~~~~~~~~~~~~~
+
+Refer to :doc:`../nics/mlx5` for prerequisites. Either Mellanox OFED/EN or
+rdma-core library with corresponding kernel drivers is required.
+
+- make build
+
+.. code-block:: console
+
+        make config T=arm64-bluefield-linuxapp-gcc
+        make -j
+
+- meson build
+
+.. code-block:: console
+
+        meson build
+        ninja -C build
+
+Cross Compilation
+~~~~~~~~~~~~~~~~~
+
+Refer to :doc:`../linux_gsg/cross_build_dpdk_for_arm64` to install the cross
+toolchain for ARM64. Base on that, additional header files and libraries are
+required:
+
+   - libibverbs
+   - libmnl
+   - libmlx5
+   - libnl-3
+   - libnl-route-3
+
+Such required libraries can be cross-compiled and installed on to the cross
+toolchain directory like depicted in :ref:`getting_the_prerequisite_library`,
+but those can also be simply copied from the filesystem of a working BlueField
+platform. The following is to create such supplementary tarball on a BlueField
+platform.
+
+.. code-block:: console
+
+        mkdir -p aarch64-linux-gnu/libc
+        pushd $PWD
+        cd aarch64-linux-gnu/libc
+
+        # Copy libraries
+        mkdir -p lib64
+        cp -a /lib64/libibverbs* lib64/
+        cp -a /lib64/libmnl* lib64/
+        cp -a /lib64/libmlx5* lib64/
+        cp -a /lib64/libnl-3* lib64/
+        cp -a /lib64/libnl-route-3* lib64/
+
+        # Copy header files
+        mkdir -p usr/include/infiniband
+        mkdir -p usr/include/libmnl
+        cp -a /usr/include/infiniband/ib_user_ioctl_verbs.h usr/include/infiniband/
+        cp -a /usr/include/infiniband/mlx5*.h usr/include/infiniband/
+        cp -a /usr/include/infiniband/tm_types.h usr/include/infiniband/
+        cp -a /usr/include/infiniband/verbs*.h usr/include/infiniband/
+        cp -a /usr/include/libmnl/libmnl.h usr/include/libmnl/
+
+        # Create supplementary tarball
+        popd
+        tar cf aarch64-linux-gnu-mlx.tar aarch64-linux-gnu/
+
+Then, untar the tarball at the cross toolchain directory on the x86 host.
+
+.. code-block:: console
+
+        cd $(dirname $(which aarch64-linux-gnu-gcc))/..
+        tar xf aarch64-linux-gnu-mlx.tar
+
+- make build
+
+.. code-block:: console
+
+        make config T=arm64-bluefield-linuxapp-gcc
+        make -j CROSS=aarch64-linux-gnu- CONFIG_RTE_KNI_KMOD=n CONFIG_RTE_EAL_IGB_UIO=n
+
+- meson build
+
+.. code-block:: console
+
+        meson build --cross-file config/arm/arm64_bluefield_linux_gcc
+        ninja -C build
diff --git a/doc/guides/platform/index.rst b/doc/guides/platform/index.rst
index 98c66389d0..a17de2efba 100644
--- a/doc/guides/platform/index.rst
+++ b/doc/guides/platform/index.rst
@@ -10,6 +10,7 @@ The following are platform specific guides and setup information.
     :maxdepth: 2
     :numbered:
 
+    bluefield
     dpaa
     dpaa2
     octeontx
diff --git a/doc/guides/rel_notes/release_19_05.rst b/doc/guides/rel_notes/release_19_05.rst
index 5044ac7df1..5bd17c1bc5 100644
--- a/doc/guides/rel_notes/release_19_05.rst
+++ b/doc/guides/rel_notes/release_19_05.rst
@@ -60,6 +60,10 @@ New Features
   * OcteonTX2 (Marvell)
   * ThunderX2 (Marvell)
 
+* **Added new platform specific guide:**
+
+  * BlueField (Mellanox)
+
 * **Introduced Windows Support.**
 
   Added Windows support to build Hello World sample application.
-- 
2.21.0


             reply	other threads:[~2019-05-08  2:04 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-05-08  2:04 Yongseok Koh [this message]
2019-05-08  2:04 ` Yongseok Koh
2019-05-08  8:27 ` Thomas Monjalon
2019-05-08  8:27   ` Thomas Monjalon
2019-05-08  9:37   ` Yongseok Koh
2019-05-08  9:37     ` Yongseok Koh
2019-05-08 23:39 ` [dpdk-dev] [PATCH v2] " Yongseok Koh
2019-05-08 23:39   ` Yongseok Koh
2019-05-09 15:18   ` Mcnamara, John
2019-05-09 15:18     ` Mcnamara, John
2019-05-09 22:47     ` Thomas Monjalon
2019-05-09 22:47       ` Thomas Monjalon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190508020400.37317-1-yskoh@mellanox.com \
    --to=yskoh@mellanox.com \
    --cc=Honnappa.Nagarahalli@arm.com \
    --cc=dev@dpdk.org \
    --cc=jerinj@marvell.com \
    --cc=shahafs@mellanox.com \
    --cc=thomas@monjalon.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).