1. NXP DPAA Eventdev Driver

The dpaa eventdev is an implementation of the eventdev API, that provides a wide range of the eventdev features. The eventdev relies on a dpaa based platform to perform event scheduling.

More information can be found at NXP Official Website.

1.1. Features

The DPAA EVENTDEV implements many features in the eventdev API;

  • Hardware based event scheduler
  • 4 event ports
  • 4 event queues
  • Parallel flows
  • Atomic flows

1.2. Supported DPAA SoCs

  • LS1046A/LS1026A
  • LS1043A/LS1023A

1.3. Prerequisites

See NXP QorIQ DPAA Board Support Package for setup information

Currently supported by DPDK:

1.4. Pre-Installation Configuration

1.4.1. Config File Options

The following options can be modified in the config file. Please note that enabling debugging options may affect system performance.

  • CONFIG_RTE_LIBRTE_PMD_DPAA_EVENTDEV (default y)

    Toggle compilation of the librte_pmd_dpaa_event driver.

1.4.2. Driver Compilation

To compile the DPAA EVENTDEV PMD for Linux arm64 gcc target, run the following make command:

cd <DPDK-source-directory>
make config T=arm64-dpaa-linux-gcc install

1.5. Initialization

The dpaa eventdev is exposed as a vdev device which consists of a set of channels and queues. On EAL initialization, dpaa components will be probed and then vdev device can be created from the application code by

  • Invoking rte_vdev_init("event_dpaa1") from the application
  • Using --vdev="event_dpaa1" in the EAL options, which will call rte_vdev_init() internally

Example:

./your_eventdev_application --vdev="event_dpaa1"
  • Use dev arg option disable_intr=1 to disable the interrupt mode

1.6. Limitations

  1. DPAA eventdev can not work with DPAA PUSH mode queues configured for ethdev. Please configure export DPAA_NUM_PUSH_QUEUES=0

1.6.1. Platform Requirement

DPAA drivers for DPDK can only work on NXP SoCs as listed in the Supported DPAA SoCs.

1.6.2. Port-core Binding

DPAA EVENTDEV driver requires event port ‘x’ to be used on core ‘x’.