New upstream version 18.11-rc1
[deb_dpdk.git] / doc / guides / compressdevs / octeontx.rst
1 ..  SPDX-License-Identifier: BSD-3-Clause
2     Copyright(c) 2018 Cavium Networks.
3
4 OCTEON TX ZIP Compression Poll Mode Driver
5 ==========================================
6
7 The OCTEON TX ZIP PMD (**librte_pmd_octeontx_zip**) provides poll mode
8 compression & decompression driver for ZIP HW offload device, found in
9 **Cavium OCTEON TX** SoC family.
10
11 More information can be found at `Cavium, Inc Official Website
12 <http://www.cavium.com/OCTEON-TX_ARM_Processors.html>`_.
13
14 Features
15 --------
16
17 OCTEON TX ZIP PMD has support for:
18
19 Compression/Decompression algorithm:
20
21 * DEFLATE
22
23 Huffman code type:
24
25 * FIXED
26 * DYNAMIC
27
28 Window size support:
29
30 * 2 to 2^14
31
32 Limitations
33 -----------
34
35 * Chained mbufs are not supported.
36
37 Supported OCTEON TX SoCs
38 ------------------------
39
40 - CN83xx
41
42 Steps To Setup Platform
43 -----------------------
44
45    OCTEON TX SDK includes kernel image which provides OCTEON TX ZIP PF
46    driver to manage configuration of ZIPVF device
47    Required version of SDK is "OCTEONTX-SDK-6.2.0-build35" or above.
48
49    SDK can be install by using below command.
50    #rpm -ivh OCTEONTX-SDK-6.2.0-build35.x86_64.rpm --force --nodeps
51    It will install OCTEONTX-SDK at following default location
52    /usr/local/Cavium_Networks/OCTEONTX-SDK/
53
54    For more information on building and booting linux kernel on OCTEON TX
55    please refer /usr/local/Cavium_Networks/OCTEONTX-SDK/docs/OcteonTX-SDK-UG_6.2.0.pdf.
56
57    SDK and related information can be obtained from: `Cavium support site <https://support.cavium.com/>`_.
58
59 Installation
60 ------------
61
62 Driver Compilation
63 ~~~~~~~~~~~~~~~~~~
64
65 To compile the OCTEON TX ZIP PMD for Linux arm64 gcc target, run the
66 following ``make`` command:
67
68    .. code-block:: console
69
70       cd <DPDK-source-directory>
71       make config T=arm64-thunderx-linuxapp-gcc install
72
73
74 Initialization
75 --------------
76
77 The OCTEON TX zip is exposed as pci device which consists of a set of
78 PCIe VF devices. On EAL initialization, ZIP PCIe VF devices will be
79 probed. To use the PMD in an application, user must:
80
81 * run dev_bind script to bind eight ZIP PCIe VFs to the ``vfio-pci`` driver:
82
83    .. code-block:: console
84
85       ./usertools/dpdk-devbind.py -b vfio-pci 0001:04:00.1
86       ./usertools/dpdk-devbind.py -b vfio-pci 0001:04:00.2
87       ./usertools/dpdk-devbind.py -b vfio-pci 0001:04:00.3
88       ./usertools/dpdk-devbind.py -b vfio-pci 0001:04:00.4
89       ./usertools/dpdk-devbind.py -b vfio-pci 0001:04:00.5
90       ./usertools/dpdk-devbind.py -b vfio-pci 0001:04:00.6
91       ./usertools/dpdk-devbind.py -b vfio-pci 0001:04:00.7
92       ./usertools/dpdk-devbind.py -b vfio-pci 0001:04:01.0
93
94 * The unit test cases can be tested as below:
95
96    .. code-block:: console
97
98       reserve enough huge pages
99       cd to the top-level DPDK directory
100       export RTE_TARGET=arm64-thunderx-linuxapp-gcc
101       export RTE_SDK=`pwd`
102       cd to test/test
103       type the command "make" to compile
104       run the tests with "./test"
105       type the command "compressdev_autotest" to test