1.. SPDX-License-Identifier: BSD-3-Clause 2 Copyright 2019 Mellanox Technologies, Ltd 3 4Mellanox BlueField Board Support Package 5======================================== 6 7This document has information about steps to setup Mellanox BlueField platform 8and common offload HW drivers of **Mellanox BlueField** family SoC. 9 10 11Supported BlueField family SoCs 12------------------------------- 13 14- `BlueField <https://docs.mellanox.com/category/bluefieldsnic>`_ 15 16 17Supported BlueField Platforms 18----------------------------- 19 20- `BlueField-1 <https://docs.mellanox.com/display/bluefieldsniceth/Introduction>`_ 21- `BlueField-2 <https://docs.mellanox.com/display/BlueField2DPUENUG/Introduction>`_ 22 23 24Common Offload HW Drivers 25------------------------- 26 271. **NIC Driver** 28 29 See :doc:`../nics/mlx5` for Mellanox mlx5 NIC driver information. 30 312. **Cryptodev Driver** 32 33 This is based on the crypto extension support of armv8. See 34 :doc:`../cryptodevs/armv8` for armv8 crypto driver information. 35 36.. note:: 37 38 BlueField has a variant having no armv8 crypto extension support. 39 40 41Steps To Setup Platform 42----------------------- 43 44Toolchains, OS and drivers can be downloaded and installed individually 45from the web, but it is recommended to follow instructions at: 46 47- `Mellanox BlueField-1 Software Website <https://docs.mellanox.com/display/BlueFieldSWv31011424/SmartNIC+Bring-Up+and+Driver+Installation>`_ 48- `Mellanox BlueField-2 Software Website <https://docs.mellanox.com/display/NVIDIABlueField2DPUQSG#NVIDIABlueField2DPUSoftwareQuickStartGuide-Post-installationProcedurePost-installationProcedure>`_ 49 50 51Compile DPDK 52------------ 53 54DPDK can be compiled either natively on BlueField platforms or cross-compiled on 55an x86 based platform. 56 57Native Compilation 58~~~~~~~~~~~~~~~~~~ 59 60Refer to :doc:`../nics/mlx5` for prerequisites. Either Mellanox OFED/EN or 61rdma-core library with corresponding kernel drivers is required. 62 63.. code-block:: console 64 65 meson build 66 ninja -C build 67 68Cross Compilation 69~~~~~~~~~~~~~~~~~ 70 71Refer to :doc:`../linux_gsg/cross_build_dpdk_for_arm64` to install the cross 72toolchain for ARM64. Base on that, additional header files and libraries are 73required: 74 75 - libibverbs 76 - libmlx5 77 - libnl-3 78 - libnl-route-3 79 80Such header files and libraries can be cross-compiled and installed 81in the cross toolchain environment. 82They can also be simply copied from the filesystem of a working BlueField platform. 83The following script can be run on a BlueField platform in order to create 84a supplementary tarball for the cross toolchain. 85 86.. code-block:: console 87 88 mkdir -p aarch64-linux-gnu/libc 89 pushd $PWD 90 cd aarch64-linux-gnu/libc 91 92 # Copy libraries 93 mkdir -p lib64 94 cp -a /lib64/libibverbs* lib64/ 95 cp -a /lib64/libmlx5* lib64/ 96 cp -a /lib64/libnl-3* lib64/ 97 cp -a /lib64/libnl-route-3* lib64/ 98 99 # Copy header files 100 mkdir -p usr/include/infiniband 101 cp -a /usr/include/infiniband/ib_user_ioctl_verbs.h usr/include/infiniband/ 102 cp -a /usr/include/infiniband/mlx5*.h usr/include/infiniband/ 103 cp -a /usr/include/infiniband/tm_types.h usr/include/infiniband/ 104 cp -a /usr/include/infiniband/verbs*.h usr/include/infiniband/ 105 106 # Create supplementary tarball 107 popd 108 tar cf aarch64-linux-gnu-mlx.tar aarch64-linux-gnu/ 109 110Then, untar the tarball at the cross toolchain directory on the x86 host. 111 112.. code-block:: console 113 114 cd $(dirname $(which aarch64-linux-gnu-gcc))/.. 115 tar xf aarch64-linux-gnu-mlx.tar 116 117.. code-block:: console 118 119 meson build --cross-file config/arm/arm64_bluefield_linux_gcc 120 ninja -C build 121