xref: /dpdk/doc/guides/platform/bluefield.rst (revision 443b949e17953a1094f80532d600a1ee540f2ba4)
122d1d1ccSYongseok Koh..  SPDX-License-Identifier: BSD-3-Clause
222d1d1ccSYongseok Koh    Copyright 2019 Mellanox Technologies, Ltd
322d1d1ccSYongseok Koh
40f91f952SThomas MonjalonNVIDIA BlueField Board Support Package
50f91f952SThomas Monjalon======================================
622d1d1ccSYongseok Koh
70f91f952SThomas Monjalon.. note::
822d1d1ccSYongseok Koh
90f91f952SThomas Monjalon   NVIDIA acquired Mellanox Technologies in 2020.
100f91f952SThomas Monjalon   The DPDK documentation and code might still include instances
110f91f952SThomas Monjalon   of or references to Mellanox trademarks (like BlueField and ConnectX)
120f91f952SThomas Monjalon   that are now NVIDIA trademarks.
1322d1d1ccSYongseok Koh
140f91f952SThomas MonjalonThis document has information about steps to setup NVIDIA BlueField platform
150f91f952SThomas Monjalonand common offload HW drivers of **NVIDIA BlueField** family SoC.
1622d1d1ccSYongseok Koh
1722d1d1ccSYongseok Koh
1822d1d1ccSYongseok KohSupported BlueField Platforms
1922d1d1ccSYongseok Koh-----------------------------
2022d1d1ccSYongseok Koh
21eb1dcc01SThomas Monjalon- `BlueField-2 <https://docs.nvidia.com/networking/display/BlueField2DPUENUG/Introduction>`_
2272978305SThomas Monjalon- `BlueField-3 <https://docs.nvidia.com/networking/display/BlueField3DPU/Introduction>`_
2322d1d1ccSYongseok Koh
2422d1d1ccSYongseok Koh
2522d1d1ccSYongseok KohCommon Offload HW Drivers
2622d1d1ccSYongseok Koh-------------------------
2722d1d1ccSYongseok Koh
28*443b949eSDavid Marchand#. **NIC Driver**
2922d1d1ccSYongseok Koh
300f91f952SThomas Monjalon   See :doc:`../nics/mlx5` for NVIDIA mlx5 NIC driver information.
3122d1d1ccSYongseok Koh
32*443b949eSDavid Marchand#. **Cryptodev Driver**
3322d1d1ccSYongseok Koh
3422d1d1ccSYongseok Koh   This is based on the crypto extension support of armv8. See
3522d1d1ccSYongseok Koh   :doc:`../cryptodevs/armv8` for armv8 crypto driver information.
3622d1d1ccSYongseok Koh
3722d1d1ccSYongseok Koh.. note::
3822d1d1ccSYongseok Koh
3922d1d1ccSYongseok Koh   BlueField has a variant having no armv8 crypto extension support.
4022d1d1ccSYongseok Koh
4122d1d1ccSYongseok Koh
4222d1d1ccSYongseok KohSteps To Setup Platform
4322d1d1ccSYongseok Koh-----------------------
4422d1d1ccSYongseok Koh
4588d2efd8SAsaf PensoToolchains, OS and drivers can be downloaded and installed individually
4688d2efd8SAsaf Pensofrom the web, but it is recommended to follow instructions at:
4788d2efd8SAsaf Penso
480f91f952SThomas Monjalon- `NVIDIA BlueField Software Website <https://docs.nvidia.com/networking/category/dpuos>`_
4922d1d1ccSYongseok Koh
5022d1d1ccSYongseok Koh
5122d1d1ccSYongseok KohCompile DPDK
5222d1d1ccSYongseok Koh------------
5322d1d1ccSYongseok Koh
5422d1d1ccSYongseok KohDPDK can be compiled either natively on BlueField platforms or cross-compiled on
5522d1d1ccSYongseok Kohan x86 based platform.
5622d1d1ccSYongseok Koh
5722d1d1ccSYongseok KohNative Compilation
5822d1d1ccSYongseok Koh~~~~~~~~~~~~~~~~~~
5922d1d1ccSYongseok Koh
600f91f952SThomas MonjalonRefer to :doc:`../nics/mlx5` for prerequisites. Either NVIDIA MLNX_OFED/EN or
6122d1d1ccSYongseok Kohrdma-core library with corresponding kernel drivers is required.
6222d1d1ccSYongseok Koh
6322d1d1ccSYongseok Koh.. code-block:: console
6422d1d1ccSYongseok Koh
65e24b8ad4SStephen Hemminger        meson setup build
6622d1d1ccSYongseok Koh        ninja -C build
6722d1d1ccSYongseok Koh
6822d1d1ccSYongseok KohCross Compilation
6922d1d1ccSYongseok Koh~~~~~~~~~~~~~~~~~
7022d1d1ccSYongseok Koh
7122d1d1ccSYongseok KohRefer to :doc:`../linux_gsg/cross_build_dpdk_for_arm64` to install the cross
7222d1d1ccSYongseok Kohtoolchain for ARM64. Base on that, additional header files and libraries are
7322d1d1ccSYongseok Kohrequired:
7422d1d1ccSYongseok Koh
7522d1d1ccSYongseok Koh   - libibverbs
7622d1d1ccSYongseok Koh   - libmlx5
7722d1d1ccSYongseok Koh   - libnl-3
7822d1d1ccSYongseok Koh   - libnl-route-3
7922d1d1ccSYongseok Koh
803be167dbSThomas MonjalonSuch header files and libraries can be cross-compiled and installed
813be167dbSThomas Monjalonin the cross toolchain environment.
823be167dbSThomas MonjalonThey can also be simply copied from the filesystem of a working BlueField platform.
833be167dbSThomas MonjalonThe following script can be run on a BlueField platform in order to create
843be167dbSThomas Monjalona supplementary tarball for the cross toolchain.
8522d1d1ccSYongseok Koh
8622d1d1ccSYongseok Koh.. code-block:: console
8722d1d1ccSYongseok Koh
8822d1d1ccSYongseok Koh        mkdir -p aarch64-linux-gnu/libc
8922d1d1ccSYongseok Koh        pushd $PWD
9022d1d1ccSYongseok Koh        cd aarch64-linux-gnu/libc
9122d1d1ccSYongseok Koh
9222d1d1ccSYongseok Koh        # Copy libraries
9322d1d1ccSYongseok Koh        mkdir -p lib64
9422d1d1ccSYongseok Koh        cp -a /lib64/libibverbs* lib64/
9522d1d1ccSYongseok Koh        cp -a /lib64/libmlx5* lib64/
9622d1d1ccSYongseok Koh        cp -a /lib64/libnl-3* lib64/
9722d1d1ccSYongseok Koh        cp -a /lib64/libnl-route-3* lib64/
9822d1d1ccSYongseok Koh
9922d1d1ccSYongseok Koh        # Copy header files
10022d1d1ccSYongseok Koh        mkdir -p usr/include/infiniband
10122d1d1ccSYongseok Koh        cp -a /usr/include/infiniband/ib_user_ioctl_verbs.h usr/include/infiniband/
10222d1d1ccSYongseok Koh        cp -a /usr/include/infiniband/mlx5*.h usr/include/infiniband/
10322d1d1ccSYongseok Koh        cp -a /usr/include/infiniband/tm_types.h usr/include/infiniband/
10422d1d1ccSYongseok Koh        cp -a /usr/include/infiniband/verbs*.h usr/include/infiniband/
10522d1d1ccSYongseok Koh
10622d1d1ccSYongseok Koh        # Create supplementary tarball
10722d1d1ccSYongseok Koh        popd
10822d1d1ccSYongseok Koh        tar cf aarch64-linux-gnu-mlx.tar aarch64-linux-gnu/
10922d1d1ccSYongseok Koh
11022d1d1ccSYongseok KohThen, untar the tarball at the cross toolchain directory on the x86 host.
11122d1d1ccSYongseok Koh
11222d1d1ccSYongseok Koh.. code-block:: console
11322d1d1ccSYongseok Koh
11422d1d1ccSYongseok Koh        cd $(dirname $(which aarch64-linux-gnu-gcc))/..
11522d1d1ccSYongseok Koh        tar xf aarch64-linux-gnu-mlx.tar
11622d1d1ccSYongseok Koh
11722d1d1ccSYongseok Koh.. code-block:: console
11822d1d1ccSYongseok Koh
119e24b8ad4SStephen Hemminger        meson setup build --cross-file config/arm/arm64_bluefield_linux_gcc
12022d1d1ccSYongseok Koh        ninja -C build
121