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:
LS-5.15.71-2.2.0: DPDK 21.11.2 (NXP fork): GitHub - nxp-qoriq/dpdk tag lf-5.15.71-2.2.0
LSDK-21.08 (legacy): DPDK 20.11.2 (NXP fork): GitHub - nxp-qoriq/dpdk tag LSDK-21.08
apt-get install build-essential git meson pciutils |
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 .. |
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 |
DPDK may be executed from inside the build-directory, or installed system-wide:
meson install -C dpdk-build |
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
The LX216XA SoCs are using specially managed network interfaces that must be prepared for use with DPDK.
Network interface drivers must first be unbound from the Linux kernel before they are usable with DPDK.
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. |
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. |
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 |
TBD.