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