From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by dpdk.space (Postfix) with ESMTP id D61ACA0096 for ; Wed, 8 May 2019 04:04:13 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id B5EF2DE3; Wed, 8 May 2019 04:04:13 +0200 (CEST) Received: from mellanox.co.il (mail-il-dmz.mellanox.com [193.47.165.129]) by dpdk.org (Postfix) with ESMTP id 319411D7 for ; Wed, 8 May 2019 04:04:12 +0200 (CEST) Received: from Internal Mail-Server by MTLPINE2 (envelope-from yskoh@mellanox.com) with ESMTPS (AES256-SHA encrypted); 8 May 2019 05:04:11 +0300 Received: from scfae-sc-2.mti.labs.mlnx (scfae-sc-2.mti.labs.mlnx [10.101.0.96]) by labmailer.mlnx (8.13.8/8.13.8) with ESMTP id x48248rh028299; Wed, 8 May 2019 05:04:09 +0300 From: Yongseok Koh To: thomas@monjalon.net Cc: dev@dpdk.org, jerinj@marvell.com, shahafs@mellanox.com, Honnappa.Nagarahalli@arm.com Date: Tue, 7 May 2019 19:04:00 -0700 Message-Id: <20190508020400.37317-1-yskoh@mellanox.com> X-Mailer: git-send-email 2.21.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [dpdk-dev] [PATCH] doc: add Mellanox BlueField platform guide X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Content-Type: text/plain; charset="UTF-8" Message-ID: <20190508020400.cWfe9uz15iVA9JQOEf0-qNLzeFc2opVOJ2HImM7HSd0@z> Platform specific guide for Mellanox BlueField SoC is added. Signed-off-by: Yongseok Koh --- .../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 `_ + + +Supported BlueField Platforms +----------------------------- + +- `BlueField SmartNIC `_ +- `BlueField Reference Platforms `_ +- `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 `_. + + +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