=== NXP DPAA2 support

Links +
link:https://github.com/mcusim/freebsd-src/tree/lx2160acex7-dev/sys/dev/dpaa2[Development] URL: https://github.com/mcusim/freebsd-src/tree/lx2160acex7-dev/sys/dev/dpaa2[https://github.com/mcusim/freebsd-src/tree/lx2160acex7-dev/sys/dev/dpaa2] +

Contact: Dmitry Salychev <dsl@mcusim.org> +
Contact: Bjoern A. Zeeb <bz@FreeBSD.org>

Some of the NXP SoCs (LX2160A, LS1088A) are shipped with link:https://www.nxp.com/design/qoriq-developer-resources/second-generation-data-path-acceleration-architecture-dpaa2:DPAA2[DPAA2], the second generation of the data path acceleration architecture.
It allows to dynamically configure and wire packet processing "objects" (like DPNI for a network interface, DPMAC for media access controller, etc.) together to form a network-on-a-chip.

link:https://solidrun.atlassian.net/wiki/spaces/developer/pages/197494288/HoneyComb+LX2+ClearFog+CX+LX2+Quick+Start+Guide[Honeycomb LX2], as one of the powerful ARM64 boards from SolidRun, is also built around NXP LX2160A and lacks on-board GbE support in FreeBSD.
These drivers are about to change it.

It's still work in progress and a rough implementation of the drivers for some DPAA2 objects is available at the moment.
A new network interface (dpni) can be used on Honeycomb for testing.

TODO:

* Update dpaa2_mc_fdt driver for the link:https://www.crowdsupply.com/traverse-technologies/ten64[Traverse Ten64] board

* Review and fix DPAA2 resources allocation to support as many DPNIs as possible

* Free driver resources properly

* Implement CPU affinity for DPIOs and DPNIs

* Implement cached memory-backed software portals

* Profile and mitigate bottlenecks

Sponsor: Bare Enthusiasm :)
