doc: fix build
[dpdk.git] / doc / guides / platform / bluefield.rst
1 ..  SPDX-License-Identifier: BSD-3-Clause
2     Copyright 2019 Mellanox Technologies, Ltd
3
4 Mellanox BlueField Board Support Package
5 ========================================
6
7 This document has information about steps to setup Mellanox BlueField platform
8 and common offload HW drivers of **Mellanox BlueField** family SoC.
9
10
11 Supported BlueField family SoCs
12 -------------------------------
13
14 - `BlueField <https://docs.mellanox.com/category/bluefieldsnic>`_
15
16
17 Supported 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
24 Common Offload HW Drivers
25 -------------------------
26
27 1. **NIC Driver**
28
29    See :doc:`../nics/mlx5` for Mellanox mlx5 NIC driver information.
30
31 2. **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
41 Steps To Setup Platform
42 -----------------------
43
44 Toolchains, OS and drivers can be downloaded and installed individually
45 from 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
51 Compile DPDK
52 ------------
53
54 DPDK can be compiled either natively on BlueField platforms or cross-compiled on
55 an x86 based platform.
56
57 Native Compilation
58 ~~~~~~~~~~~~~~~~~~
59
60 Refer to :doc:`../nics/mlx5` for prerequisites. Either Mellanox OFED/EN or
61 rdma-core library with corresponding kernel drivers is required.
62
63 .. code-block:: console
64
65         meson build
66         ninja -C build
67
68 Cross Compilation
69 ~~~~~~~~~~~~~~~~~
70
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
73 required:
74
75    - libibverbs
76    - libmlx5
77    - libnl-3
78    - libnl-route-3
79
80 Such header files and libraries can be cross-compiled and installed
81 in the cross toolchain environment.
82 They can also be simply copied from the filesystem of a working BlueField platform.
83 The following script can be run on a BlueField platform in order to create
84 a 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
110 Then, 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