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 5785FA0096 for ; Thu, 9 May 2019 01:39:34 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 80B612BD5; Thu, 9 May 2019 01:39:33 +0200 (CEST) Received: from mellanox.co.il (mail-il-dmz.mellanox.com [193.47.165.129]) by dpdk.org (Postfix) with ESMTP id 6E03D2862 for ; Thu, 9 May 2019 01:39:32 +0200 (CEST) Received: from Internal Mail-Server by MTLPINE2 (envelope-from yskoh@mellanox.com) with ESMTPS (AES256-SHA encrypted); 9 May 2019 02:39:19 +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 x48NdHZq016142; Thu, 9 May 2019 02:39:18 +0300 From: Yongseok Koh To: thomas@monjalon.net Cc: dev@dpdk.org, jerinj@marvell.com, shahafs@mellanox.com, Honnappa.Nagarahalli@arm.com Date: Wed, 8 May 2019 16:39:15 -0700 Message-Id: <20190508233915.49047-1-yskoh@mellanox.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190508020400.37317-1-yskoh@mellanox.com> References: <20190508020400.37317-1-yskoh@mellanox.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [dpdk-dev] [PATCH v2] 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: <20190508233915.rkh57vheDVDB9ie8Aetvc8LdXJIf8hDF44AJrOcgn9Q@z> Platform specific guide for Mellanox BlueField SoC is added. Signed-off-by: Yongseok Koh --- v2: * remove release note update * cosmetic changes * make contents clearer .../linux_gsg/cross_build_dpdk_for_arm64.rst | 2 + doc/guides/platform/bluefield.rst | 147 ++++++++++++++++++ doc/guides/platform/index.rst | 1 + 3 files changed, 150 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..bba9b92039 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/ +.. _arm_cross_build_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..0bb58e50ac --- /dev/null +++ b/doc/guides/platform/bluefield.rst @@ -0,0 +1,147 @@ +.. 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 from 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 header files and libraries can be cross-compiled and installed on to the +cross toolchain directory like depicted in +:ref:`arm_cross_build_getting_the_prerequisite_library`, but those can also be +simply copied from the filesystem of a working BlueField platform. The following +script can be run on a BlueField platform in order to create a supplementary +tarball for the cross toolchain. + +.. 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 -- 2.21.0