1 .. SPDX-License-Identifier: BSD-3-Clause
2 Copyright 2019 Mellanox Technologies, Ltd
4 Mellanox BlueField Board Support Package
5 ========================================
7 This document has information about steps to setup Mellanox BlueField platform
8 and common offload HW drivers of **Mellanox BlueField** family SoC.
11 Supported BlueField family SoCs
12 -------------------------------
14 - `BlueField <http://www.mellanox.com/page/products_dyn?product_family=256&mtag=soc_overview>`_
17 Supported BlueField Platforms
18 -----------------------------
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>`_
25 Common Offload HW Drivers
26 -------------------------
30 See :doc:`../nics/mlx5` for Mellanox mlx5 NIC driver information.
32 2. **Cryptodev Driver**
34 This is based on the crypto extension support of armv8. See
35 :doc:`../cryptodevs/armv8` for armv8 crypto driver information.
39 BlueField has a variant having no armv8 crypto extension support.
42 Steps To Setup Platform
43 -----------------------
45 Toolchains, OS and drivers can be downloaded and installed individually from the
46 Web. 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>`_.
54 DPDK can be compiled either natively on BlueField platforms or cross-compiled on
55 an x86 based platform.
60 Refer to :doc:`../nics/mlx5` for prerequisites. Either Mellanox OFED/EN or
61 rdma-core library with corresponding kernel drivers is required.
63 .. code-block:: console
71 Refer to :doc:`../linux_gsg/cross_build_dpdk_for_arm64` to install the cross
72 toolchain for ARM64. Base on that, additional header files and libraries are
80 Such header files and libraries can be cross-compiled and installed on to the
81 cross toolchain directory like depicted in
82 :ref:`arm_cross_build_getting_the_prerequisite_library`, but those can also be
83 simply copied from the filesystem of a working BlueField platform. The following
84 script can be run on a BlueField platform in order to create a supplementary
85 tarball for the cross toolchain.
87 .. code-block:: console
89 mkdir -p aarch64-linux-gnu/libc
91 cd aarch64-linux-gnu/libc
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/
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/
107 # Create supplementary tarball
109 tar cf aarch64-linux-gnu-mlx.tar aarch64-linux-gnu/
111 Then, untar the tarball at the cross toolchain directory on the x86 host.
113 .. code-block:: console
115 cd $(dirname $(which aarch64-linux-gnu-gcc))/..
116 tar xf aarch64-linux-gnu-mlx.tar
118 .. code-block:: console
120 meson build --cross-file config/arm/arm64_bluefield_linux_gcc