doc: add octeontx platform guide
[dpdk.git] / doc / guides / eventdevs / octeontx.rst
1 ..  BSD LICENSE
2     Copyright (C) Cavium, Inc. 2017.
3     All rights reserved.
4
5     Redistribution and use in source and binary forms, with or without
6     modification, are permitted provided that the following conditions
7     are met:
8
9     * Redistributions of source code must retain the above copyright
10     notice, this list of conditions and the following disclaimer.
11     * Redistributions in binary form must reproduce the above copyright
12     notice, this list of conditions and the following disclaimer in
13     the documentation and/or other materials provided with the
14     distribution.
15     * Neither the name of Cavium, Inc nor the names of its
16     contributors may be used to endorse or promote products derived
17     from this software without specific prior written permission.
18
19     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20     "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21     LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22     A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23     OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25     LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26     DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27     THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30
31 OCTEONTX SSOVF Eventdev Driver
32 ==============================
33
34 The OCTEONTX SSOVF PMD (**librte_pmd_octeontx_ssovf**) provides poll mode
35 eventdev driver support for the inbuilt event device found in the **Cavium OCTEONTX**
36 SoC family as well as their virtual functions (VF) in SR-IOV context.
37
38 More information can be found at `Cavium, Inc Official Website
39 <http://www.cavium.com/OCTEON-TX_ARM_Processors.html>`_.
40
41 Features
42 --------
43
44 Features of the OCTEONTX SSOVF PMD are:
45
46 - 64 Event queues
47 - 32 Event ports
48 - HW event scheduler
49 - Supports 1M flows per event queue
50 - Flow based event pipelining
51 - Flow pinning support in flow based event pipelining
52 - Queue based event pipelining
53 - Supports ATOMIC, ORDERED, PARALLEL schedule types per flow
54 - Event scheduling QoS based on event queue priority
55 - Open system with configurable amount of outstanding events
56 - HW accelerated dequeue timeout support to enable power management
57 - SR-IOV VF
58
59 Supported OCTEONTX SoCs
60 -----------------------
61 - CN83xx
62
63 Prerequisites
64 -------------
65
66 See :doc: `../platform/octeontx` for setup information.
67
68 Pre-Installation Configuration
69 ------------------------------
70
71 Config File Options
72 ~~~~~~~~~~~~~~~~~~~
73
74 The following options can be modified in the ``config`` file.
75 Please note that enabling debugging options may affect system performance.
76
77 - ``CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF`` (default ``y``)
78
79   Toggle compilation of the ``librte_pmd_octeontx_ssovf`` driver.
80
81 - ``CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF_DEBUG`` (default ``n``)
82
83   Toggle display of generic debugging messages
84
85 Driver Compilation
86 ~~~~~~~~~~~~~~~~~~
87
88 To compile the OCTEONTX SSOVF PMD for Linux arm64 gcc target, run the
89 following ``make`` command:
90
91 .. code-block:: console
92
93    cd <DPDK-source-directory>
94    make config T=arm64-thunderx-linuxapp-gcc install
95
96
97 Initialization
98 --------------
99
100 The octeontx eventdev is exposed as a vdev device which consists of a set
101 of SSO group and work-slot PCIe VF devices. On EAL initialization,
102 SSO PCIe VF devices will be probed and then the vdev device can be created
103 from the application code, or from the EAL command line based on
104 the number of probed/bound SSO PCIe VF device to DPDK by
105
106 * Invoking ``rte_vdev_init("event_octeontx")`` from the application
107
108 * Using ``--vdev="event_octeontx"`` in the EAL options, which will call
109   rte_vdev_init() internally
110
111 Example:
112
113 .. code-block:: console
114
115     ./your_eventdev_application --vdev="event_octeontx"
116
117 Limitations
118 -----------
119
120 Burst mode support
121 ~~~~~~~~~~~~~~~~~~
122
123 Burst mode is not supported. Dequeue and Enqueue functions accepts only single
124 event at a time.
125
126 Rx adapter support
127 ~~~~~~~~~~~~~~~~~~
128
129 When eth_octeontx is used as Rx adapter event schedule type
130 ``RTE_SCHED_TYPE_PARALLEL`` is not supported.