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