NXP LX216X SoC and SolidRun products based on it support DPDK for all native network interfaces, as well as certain PCI cards.

There are several options for versions, including NXP forks and upstream. SolidRun supports the NXP fork matching the respective NXP BSP release:

Building from Source

Native Build on LX2160 (Ubuntu)

Install Dependencies

apt-get install build-essential git meson pciutils

Download Sources

git clone https://github.com/nxp-qoriq/dpdk
cd dpdk
# pick desired tag here from list above
git reset --hard lf-5.15.71-2.2.0
cd ..

Compile

To configure and compile dpdk using an out-of-tree build directory dpdk-build:

meson setup --reconfigure -Dexamples=all --buildtype release --strip dpdk-build dpdk
meson compile -C dpdk-build

Install

DPDK may be executed from inside the build-directory, or installed system-wide:

meson install -C dpdk-build

Cross Build on PC

The SolidRun LX2160A Reference BSP performs cross-compilation of DPDK as part of a full build - for details please refer to it’s build-script: GitHub - SolidRun/lx2160a_build - runme.sh

Alternatively DPDK may be built as part of Yocto: GitHub - SolidRun/meta-solidrun-arm-lx2xxx - Yocto BSP

Run Examples

Native Interface Preparation

The LX216XA SoCs are using specially managed network interfaces that must be prepared for use with DPDK.

Unbind Linux Drivers

Network interface drivers must first be unbound from the Linux kernel before they are usable with DPDK.

LX2160A Honeycomb & Clearfog-CX

On LX2160A Honeycomb & Clearfog-CX after boot only the 1Gbps RJ45 port has a driver attached that must be unbound if this port should be used with DPDK:

Port Names

dpmac.17 (RJ45)

TBD.

LX2162A Clearfog

On LX2162A Clearfog all interfaces have a driver attached that must be unbound for each port that should be used with DPDK:

Port Names

dpmac.5 (SFP+)

dpmac.3 (SFP+)

dpmac.16 (RJ45)

dpmac.15 (RJ45)

dpmac.13 (RJ45)

dpmac.14 (RJ45)

dpmac.6 (SFP+)

dpmac.4 (SFP+)

dpmac.12 (RJ45)

dpmac.11 (RJ45)

dpmac.17 (RJ45)

dpmac.18 (RJ45)

TBD.

Bind to DPDK

After selecting the list of interfaces that DPDK should use, they can be bound using the nxp/dpaa2/dynamic_dpl.sh script:

# bind Honeycomb / Clearfog-CX SFP+ ports
bash dynamic_dpl.sh dpmac.7 dpmac.8 dpmac.9 dpmac.10
export DPRC=dprc.2

testpmd

TBD.