diff options
| author | Justin Hibbits <jhibbits@FreeBSD.org> | 2026-04-24 03:38:19 +0000 |
|---|---|---|
| committer | Justin Hibbits <jhibbits@FreeBSD.org> | 2026-05-03 19:09:29 +0000 |
| commit | fd8d34ce272ba40f3e0218198ba542a29c390a4a (patch) | |
| tree | d5860795f3a55f35784e6a87dc8629537197f3fc /sys/powerpc/conf/dpaa/config.dpaa | |
| parent | d22051b18e9b7512c5cf033d7b6eee2df03c985b (diff) | |
dpaa: Migrate from NCSW base to a home-grown driver
The NCSW reference base requires tuning for each target, and currently
is configured for FMANv2. This doesn't readily work on FMANv3 devices,
such as the T-series powerpc, or the LS1043 ARM. Since Freescale/NXP
abandoned the NCSW driver a decade ago, it makes sense to abandon it
ourselves as well. This new driver uses a combination of the NCSW
driver and the Linux driver (BSD/GPL dual licensed) as a reference, but
contains no actual code from them.
The DPAA (Data Path Acceleration Architecture) subsystem consists of the
following components:
* BMan -- Buffer Manager. Manages buffer pools of different sizes (one
size per pool, up to 64 pools)
* QMan -- Queue Manager. Manages the interfaces between DPAA-based
components and the CPU(s).
* FMan -- Frame Manager. Responsible for all ethernet-related
processing. Consists itself of the following components:
* Ports -- interfaces to the QMan. An ethernet interface consists of
2 ports.
Ports use "Next-invoked action" (NIA) descriptors to form a pipeline
for processing on receive and transmit.
* Parser -- performs protocol header parsing and validation. Both
hardware and software parsers are available.
* KeyGen -- Key generator, used to start the classification process
(for the Policer), generating FQIDs and other keys based on the
frame input.
* Policer -- performs traffic shaping and classification
* MAC -- SoC specific ethernet MAC (dTSEC, TGEC, mEMAC). Currently
supports dTSEC and mEMAC, along with their MDIO blocks.
Additional components not yet handled:
SEC -- Security engine (crypto)
RE -- RAID engine
RapidIO
DCE -- Decompression/Compression engine, supports ZLIB, DEFLATE, and
GZIP, as well as base64 encoding and decoding.
BMan and QMan are accessed via cache-coherent portals, using ring
buffers as I/O. The intent is for portals to be per-CPU (core/thread)
to reduce locking contention and improve performance. This driver pins
interrupt handlers to the CPU "owning" a given portal, and uses critical
sections to prevent switching while accessing the portal.
Diffstat (limited to 'sys/powerpc/conf/dpaa/config.dpaa')
| -rw-r--r-- | sys/powerpc/conf/dpaa/config.dpaa | 24 |
1 files changed, 0 insertions, 24 deletions
diff --git a/sys/powerpc/conf/dpaa/config.dpaa b/sys/powerpc/conf/dpaa/config.dpaa deleted file mode 100644 index 0b7c8fcf3b29..000000000000 --- a/sys/powerpc/conf/dpaa/config.dpaa +++ /dev/null @@ -1,24 +0,0 @@ - -files "dpaa/files.dpaa" - -makeoptions DPAA_COMPILE_CMD="${LINUXKPI_C} ${DPAAWARNFLAGS} \ - -Wno-cast-qual -Wno-unused-function -Wno-init-self \ - -include $S/contrib/ncsw/build/dflags.h \ - -Wno-error=missing-prototypes \ - -I$S/contrib/ncsw/build/ \ - -I$S/contrib/ncsw/inc \ - -I$S/contrib/ncsw/inc/cores \ - -I$S/contrib/ncsw/inc/etc \ - -I$S/contrib/ncsw/inc/Peripherals \ - -I$S/contrib/ncsw/etc \ - -I$S/contrib/ncsw/Peripherals/BM \ - -I$S/contrib/ncsw/Peripherals/FM \ - -I$S/contrib/ncsw/Peripherals/FM/HC \ - -I$S/contrib/ncsw/Peripherals/FM/inc \ - -I$S/contrib/ncsw/Peripherals/FM/MAC \ - -I$S/contrib/ncsw/Peripherals/FM/Pcd \ - -I$S/contrib/ncsw/Peripherals/FM/Port \ - -I$S/contrib/ncsw/Peripherals/FM/Rtc \ - -I$S/contrib/ncsw/Peripherals/QM \ - -I$S/contrib/ncsw/inc/flib \ - -I$S/contrib/ncsw/inc/integrations" |
