xref: /dpdk/doc/guides/eventdevs/octeontx.rst (revision a912cb5bdd373b2db8052ee7f21a3216dfc144d0)
1a9263e3cSJerin Jacob..  SPDX-License-Identifier: BSD-3-Clause
2a9263e3cSJerin Jacob    Copyright(c) 2017 Cavium, Inc
38616e6e2SJerin Jacob
48616e6e2SJerin JacobOCTEON TX SSOVF Eventdev Driver
595a6b04fSAnoob Joseph===============================
68616e6e2SJerin Jacob
7*8809f78cSBruce RichardsonThe OCTEON TX SSOVF PMD (**librte_event_octeontx**) provides poll mode
88616e6e2SJerin Jacobeventdev driver support for the inbuilt event device found in the **Cavium OCTEON TX**
98616e6e2SJerin JacobSoC family as well as their virtual functions (VF) in SR-IOV context.
108616e6e2SJerin Jacob
113abcd29fSJerin JacobMore information can be found at `Cavium, Inc Official Website
128616e6e2SJerin Jacob<http://www.cavium.com/OCTEON-TX_ARM_Processors.html>`_.
138616e6e2SJerin Jacob
148616e6e2SJerin JacobFeatures
158616e6e2SJerin Jacob--------
168616e6e2SJerin Jacob
178616e6e2SJerin JacobFeatures of the OCTEON TX SSOVF PMD are:
188616e6e2SJerin Jacob
198616e6e2SJerin Jacob- 64 Event queues
208616e6e2SJerin Jacob- 32 Event ports
218616e6e2SJerin Jacob- HW event scheduler
228616e6e2SJerin Jacob- Supports 1M flows per event queue
238616e6e2SJerin Jacob- Flow based event pipelining
248616e6e2SJerin Jacob- Flow pinning support in flow based event pipelining
258616e6e2SJerin Jacob- Queue based event pipelining
268616e6e2SJerin Jacob- Supports ATOMIC, ORDERED, PARALLEL schedule types per flow
278616e6e2SJerin Jacob- Event scheduling QoS based on event queue priority
288616e6e2SJerin Jacob- Open system with configurable amount of outstanding events
298616e6e2SJerin Jacob- HW accelerated dequeue timeout support to enable power management
308616e6e2SJerin Jacob- SR-IOV VF
31fd5baf09SPavan Nikhilesh- HW managed event timers support through TIMVF, with high precision and
32fd5baf09SPavan Nikhilesh  time granularity of 1us.
33fd5baf09SPavan Nikhilesh- Up to 64 event timer adapters.
348616e6e2SJerin Jacob
358616e6e2SJerin JacobSupported OCTEON TX SoCs
3695a6b04fSAnoob Joseph------------------------
378616e6e2SJerin Jacob- CN83xx
388616e6e2SJerin Jacob
398616e6e2SJerin JacobPrerequisites
408616e6e2SJerin Jacob-------------
418616e6e2SJerin Jacob
4226cb0a72SSantosh ShuklaSee :doc:`../platform/octeontx` for setup information.
438616e6e2SJerin Jacob
448616e6e2SJerin Jacob
458616e6e2SJerin JacobInitialization
468616e6e2SJerin Jacob--------------
478616e6e2SJerin Jacob
4895a6b04fSAnoob JosephThe OCTEON TX eventdev is exposed as a vdev device which consists of a set
498616e6e2SJerin Jacobof SSO group and work-slot PCIe VF devices. On EAL initialization,
508616e6e2SJerin JacobSSO PCIe VF devices will be probed and then the vdev device can be created
518616e6e2SJerin Jacobfrom the application code, or from the EAL command line based on
528616e6e2SJerin Jacobthe number of probed/bound SSO PCIe VF device to DPDK by
538616e6e2SJerin Jacob
542f6fec53SThomas Monjalon* Invoking ``rte_vdev_init("event_octeontx")`` from the application
558616e6e2SJerin Jacob
568616e6e2SJerin Jacob* Using ``--vdev="event_octeontx"`` in the EAL options, which will call
572f6fec53SThomas Monjalon  rte_vdev_init() internally
588616e6e2SJerin Jacob
598616e6e2SJerin JacobExample:
608616e6e2SJerin Jacob
618616e6e2SJerin Jacob.. code-block:: console
628616e6e2SJerin Jacob
638616e6e2SJerin Jacob    ./your_eventdev_application --vdev="event_octeontx"
648616e6e2SJerin Jacob
653516327eSPavan Nikhilesh
66d1925c87SPavan NikhileshEnable TIMvf stats
67d1925c87SPavan Nikhilesh------------------
68d1925c87SPavan NikhileshTIMvf stats can be enabled by using this option, by default the stats are
69d1925c87SPavan Nikhileshdisabled.
70d1925c87SPavan Nikhilesh
71d1925c87SPavan Nikhilesh.. code-block:: console
72d1925c87SPavan Nikhilesh
73d1925c87SPavan Nikhilesh    --vdev="event_octeontx,timvf_stats=1"
74d1925c87SPavan Nikhilesh
75d1925c87SPavan Nikhilesh
768616e6e2SJerin JacobLimitations
778616e6e2SJerin Jacob-----------
788616e6e2SJerin Jacob
798616e6e2SJerin JacobBurst mode support
808616e6e2SJerin Jacob~~~~~~~~~~~~~~~~~~
818616e6e2SJerin Jacob
828616e6e2SJerin JacobBurst mode is not supported. Dequeue and Enqueue functions accepts only single
838616e6e2SJerin Jacobevent at a time.
848616e6e2SJerin Jacob
8545a914c5SPavan NikhileshRx adapter support
8645a914c5SPavan Nikhilesh~~~~~~~~~~~~~~~~~~
8745a914c5SPavan Nikhilesh
8845a914c5SPavan NikhileshWhen eth_octeontx is used as Rx adapter event schedule type
8945a914c5SPavan Nikhilesh``RTE_SCHED_TYPE_PARALLEL`` is not supported.
90f874c1ebSPavan Nikhilesh
91f874c1ebSPavan NikhileshEvent timer adapter support
92f874c1ebSPavan Nikhilesh~~~~~~~~~~~~~~~~~~~~~~~~~~~
93f874c1ebSPavan Nikhilesh
94f874c1ebSPavan NikhileshWhen timvf is used as Event timer adapter the clock source mapping is as
95f874c1ebSPavan Nikhileshfollows:
96f874c1ebSPavan Nikhilesh
97f874c1ebSPavan Nikhilesh.. code-block:: console
98f874c1ebSPavan Nikhilesh
99f874c1ebSPavan Nikhilesh        RTE_EVENT_TIMER_ADAPTER_CPU_CLK  = TIM_CLK_SRC_SCLK
100f874c1ebSPavan Nikhilesh        RTE_EVENT_TIMER_ADAPTER_EXT_CLK0 = TIM_CLK_SRC_GPIO
101f874c1ebSPavan Nikhilesh        RTE_EVENT_TIMER_ADAPTER_EXT_CLK1 = TIM_CLK_SRC_GTI
102f874c1ebSPavan Nikhilesh        RTE_EVENT_TIMER_ADAPTER_EXT_CLK2 = TIM_CLK_SRC_PTP
103f874c1ebSPavan Nikhilesh
104f874c1ebSPavan NikhileshWhen timvf is used as Event timer adapter event schedule type
105f874c1ebSPavan Nikhilesh``RTE_SCHED_TYPE_PARALLEL`` is not supported.
106b4134b2dSPavan Nikhilesh
107227f2835SPavan NikhileshMax number of events
108227f2835SPavan Nikhilesh~~~~~~~~~~~~~~~~~~~~
109b4134b2dSPavan Nikhilesh
110227f2835SPavan NikhileshMax number of events in OCTEON TX Eventdev (SSO) are only limited by DRAM size
111227f2835SPavan Nikhileshand they can be configured by passing limits to kernel bootargs as follows:
112227f2835SPavan Nikhilesh
113227f2835SPavan Nikhilesh.. code-block:: console
114227f2835SPavan Nikhilesh
115227f2835SPavan Nikhilesh        ssopf.max_events=4194304
116227f2835SPavan Nikhilesh
117227f2835SPavan NikhileshThe same can be verified by looking at the following sysfs entry:
118227f2835SPavan Nikhilesh
119227f2835SPavan Nikhilesh.. code-block:: console
120227f2835SPavan Nikhilesh
121227f2835SPavan Nikhilesh        # cat /sys/module/ssopf/parameters/max_events
122227f2835SPavan Nikhilesh        4194304
123227f2835SPavan Nikhilesh
124227f2835SPavan NikhileshThe maximum number of events that can be added to SSO by the event adapters such
125227f2835SPavan Nikhileshas (Rx/Timer) should be limited to the above configured value.
126