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 <http://www.mellanox.com/page/products_dyn?product_family=256&mtag=soc_overview>`_ 15 16 17Supported BlueField Platforms 18----------------------------- 19 20- `BlueField SmartNIC <http://www.mellanox.com/page/products_dyn?product_family=275&mtag=bluefield_smart_nic>`_ 21- `BlueField Reference Platforms <http://www.mellanox.com/page/products_dyn?product_family=286&mtag=bluefield_platforms>`_ 22- `BlueField Controller Card <http://www.mellanox.com/page/products_dyn?product_family=288&mtag=bluefield_controller_card>`_ 23 24 25Common Offload HW Drivers 26------------------------- 27 281. **NIC Driver** 29 30 See :doc:`../nics/mlx5` for Mellanox mlx5 NIC driver information. 31 322. **Cryptodev Driver** 33 34 This is based on the crypto extension support of armv8. See 35 :doc:`../cryptodevs/armv8` for armv8 crypto driver information. 36 37.. note:: 38 39 BlueField has a variant having no armv8 crypto extension support. 40 41 42Steps To Setup Platform 43----------------------- 44 45Toolchains, OS and drivers can be downloaded and installed individually from the 46Web. But it is recommended to follow instructions at 47`Mellanox BlueField Software Website 48<http://www.mellanox.com/page/products_dyn?product_family=279&mtag=bluefield_software>`_. 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 on to the 81cross toolchain directory like depicted in 82:ref:`arm_cross_build_getting_the_prerequisite_library`, but those can also be 83simply copied from the filesystem of a working BlueField platform. The following 84script can be run on a BlueField platform in order to create a supplementary 85tarball for the cross toolchain. 86 87.. code-block:: console 88 89 mkdir -p aarch64-linux-gnu/libc 90 pushd $PWD 91 cd aarch64-linux-gnu/libc 92 93 # Copy libraries 94 mkdir -p lib64 95 cp -a /lib64/libibverbs* lib64/ 96 cp -a /lib64/libmlx5* lib64/ 97 cp -a /lib64/libnl-3* lib64/ 98 cp -a /lib64/libnl-route-3* lib64/ 99 100 # Copy header files 101 mkdir -p usr/include/infiniband 102 cp -a /usr/include/infiniband/ib_user_ioctl_verbs.h usr/include/infiniband/ 103 cp -a /usr/include/infiniband/mlx5*.h usr/include/infiniband/ 104 cp -a /usr/include/infiniband/tm_types.h usr/include/infiniband/ 105 cp -a /usr/include/infiniband/verbs*.h usr/include/infiniband/ 106 107 # Create supplementary tarball 108 popd 109 tar cf aarch64-linux-gnu-mlx.tar aarch64-linux-gnu/ 110 111Then, untar the tarball at the cross toolchain directory on the x86 host. 112 113.. code-block:: console 114 115 cd $(dirname $(which aarch64-linux-gnu-gcc))/.. 116 tar xf aarch64-linux-gnu-mlx.tar 117 118.. code-block:: console 119 120 meson build --cross-file config/arm/arm64_bluefield_linux_gcc 121 ninja -C build 122