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