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