xref: /dpdk/doc/guides/compressdevs/octeontx.rst (revision 25d11a86c56d50947af33d0b79ede622809bd8b9)
1..  SPDX-License-Identifier: BSD-3-Clause
2    Copyright(c) 2018 Cavium Networks.
3
4OCTEON TX ZIP Compression Poll Mode Driver
5==========================================
6
7The OCTEON TX ZIP PMD (**librte_pmd_octeontx_zip**) provides poll mode
8compression & decompression driver for ZIP HW offload device, found in
9**Cavium OCTEON TX** SoC family.
10
11More information can be found at `Cavium, Inc Official Website
12<http://www.cavium.com/OCTEON-TX_ARM_Processors.html>`_.
13
14Features
15--------
16
17OCTEON TX ZIP PMD has support for:
18
19Compression/Decompression algorithm:
20
21* DEFLATE
22
23Huffman code type:
24
25* FIXED
26* DYNAMIC
27
28Window size support:
29
30* 2 to 2^14
31
32Limitations
33-----------
34
35* Chained mbufs are not supported.
36
37Supported OCTEON TX SoCs
38------------------------
39
40- CN83xx
41
42Steps 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
59Installation
60------------
61
62Driver Compilation
63~~~~~~~~~~~~~~~~~~
64
65To compile the OCTEON TX ZIP PMD for Linux arm64 gcc target, run the
66following ``make`` command:
67
68   .. code-block:: console
69
70      cd <DPDK-source-directory>
71      make config T=arm64-thunderx-linuxapp-gcc install
72
73
74Initialization
75--------------
76
77The OCTEON TX zip is exposed as pci device which consists of a set of
78PCIe VF devices. On EAL initialization, ZIP PCIe VF devices will be
79probed. 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
106