aboutsummaryrefslogtreecommitdiff
path: root/sys/powerpc/conf/dpaa
diff options
context:
space:
mode:
authorJustin Hibbits <jhibbits@FreeBSD.org>2026-04-24 03:38:19 +0000
committerJustin Hibbits <jhibbits@FreeBSD.org>2026-05-03 19:09:29 +0000
commitfd8d34ce272ba40f3e0218198ba542a29c390a4a (patch)
treed5860795f3a55f35784e6a87dc8629537197f3fc /sys/powerpc/conf/dpaa
parentd22051b18e9b7512c5cf033d7b6eee2df03c985b (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')
-rw-r--r--sys/powerpc/conf/dpaa/DPAA99
-rw-r--r--sys/powerpc/conf/dpaa/config.dpaa24
-rw-r--r--sys/powerpc/conf/dpaa/files.dpaa122
3 files changed, 0 insertions, 245 deletions
diff --git a/sys/powerpc/conf/dpaa/DPAA b/sys/powerpc/conf/dpaa/DPAA
deleted file mode 100644
index 323c71048c12..000000000000
--- a/sys/powerpc/conf/dpaa/DPAA
+++ /dev/null
@@ -1,99 +0,0 @@
-#
-# Common kernel config for Freescale QorIQ DPAA development boards like the
-# P2041RDB, P3041DS and P5020DS.
-#
-# This is not standalone kernel config. Use it only for including
-# purposes.
-#
-
-cpu BOOKE
-cpu BOOKE_E500
-
-machine powerpc powerpc
-#makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols
-#makeoptions WERROR="-Werror -Wno-format"
-makeoptions NO_MODULES=yes
-
-# Platform support
-options MPC85XX #Freescale SoC family
-
-options SMP #Symmetric Multi Processing
-
-#options SCHED_4BSD #4BSD scheduler
-options INET #InterNETworking
-options INET6 #IPv6 communications protocols
-options FFS #Berkeley Fast Filesystem
-options NFSCL #New Network Filesystem Client
-options SOFTUPDATES #Enable FFS soft updates support
-options PROCFS #Process filesystem (requires PSEUDOFS)
-options PSEUDOFS #Pseudo-filesystem framework
-options GEOM_PART_GPT #GUID Partition Tables.
-options GEOM_LABEL
-options COMPAT_43 #Compatible with BSD 4.3 [KEEP THIS!]
-options SYSVSHM #SYSV-style shared memory
-options SYSVMSG #SYSV-style message queues
-options SYSVSEM #SYSV-style semaphores
-options _KPOSIX_PRIORITY_SCHEDULING #Posix P1003_1B real-time extensions
-
-options KDB #Enable the kernel debugger
-options DDB #Support DDB
-options GDB
-
-options ALT_BREAK_TO_DEBUGGER
-options BREAK_TO_DEBUGGER
-options DIAGNOSTIC
-options INVARIANTS #Enable calls of extra sanity checking
-options INVARIANT_SUPPORT #Extra sanity checks of internal structures, required by INVARIANTS
-
-options KTR
-options KTR_COMPILE=0xffffffff
-options KTR_MASK=KTR_PMAP
-options KTR_ENTRIES=8192
-
-options WITNESS #Enable checks to detect deadlocks and cycles
-#options WITNESS_KDB
-
-# RamFS Root
-#options GEOM_UZIP
-#options MD_ROOT
-#options MD_ROOT_SIZE=10240
-
-# Netbooting
-options BOOTP
-options BOOTP_NFSROOT
-options BOOTP_NFSV3
-options BOOTP_WIRED_TO=dtsec3
-options NFS_ROOT
-
-# Block devices
-device mmc
-device mmcsd
-device sdhci
-
-# Network devices
-device miibus # MII bus support
-device iflib
-device em
-
-
-# I2C support
-device iicbus
-device iic
-
-device uart
-device ehci
-device usb
-device scbus
-device da
-device umass
-device pty
-device cfi
-
-device pci
-
-# Pseudo devices
-device ether # Ethernet support
-device loop # Network loopback
-device bpf # Berkeley packet filter
-device md # Memory "disks"
-
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"
diff --git a/sys/powerpc/conf/dpaa/files.dpaa b/sys/powerpc/conf/dpaa/files.dpaa
deleted file mode 100644
index 4af0f896d883..000000000000
--- a/sys/powerpc/conf/dpaa/files.dpaa
+++ /dev/null
@@ -1,122 +0,0 @@
-
-# NetCommSw drivers
-contrib/ncsw/etc/error.c optional dpaa \
- no-depend compile-with "${DPAA_COMPILE_CMD}"
-contrib/ncsw/etc/ncsw_list.c optional dpaa \
- no-depend compile-with "${DPAA_COMPILE_CMD}"
-contrib/ncsw/etc/memcpy.c optional dpaa \
- no-depend compile-with "${DPAA_COMPILE_CMD}"
-contrib/ncsw/etc/mm.c optional dpaa \
- no-depend compile-with "${DPAA_COMPILE_CMD}"
-contrib/ncsw/etc/ncsw_mem.c optional dpaa \
- no-depend compile-with "${DPAA_COMPILE_CMD}"
-contrib/ncsw/etc/sprint.c optional dpaa \
- no-depend compile-with "${DPAA_COMPILE_CMD}"
-contrib/ncsw/Peripherals/BM/bm.c optional dpaa \
- no-depend compile-with "${DPAA_COMPILE_CMD}"
-contrib/ncsw/Peripherals/BM/bman_low.c optional dpaa \
- no-depend compile-with "${DPAA_COMPILE_CMD}"
-contrib/ncsw/Peripherals/BM/bm_pool.c optional dpaa \
- no-depend compile-with "${DPAA_COMPILE_CMD}"
-contrib/ncsw/Peripherals/BM/bm_portal.c optional dpaa \
- no-depend compile-with "${DPAA_COMPILE_CMD}"
-contrib/ncsw/Peripherals/FM/SP/fm_sp.c optional dpaa \
- no-depend compile-with "${DPAA_COMPILE_CMD}"
-contrib/ncsw/Peripherals/FM/Rtc/fm_rtc.c optional dpaa \
- no-depend compile-with "${DPAA_COMPILE_CMD}"
-contrib/ncsw/Peripherals/FM/Rtc/fman_rtc.c optional dpaa \
- no-depend compile-with "${DPAA_COMPILE_CMD}"
-contrib/ncsw/Peripherals/FM/Port/fman_port.c optional dpaa \
- no-depend compile-with "${DPAA_COMPILE_CMD}"
-contrib/ncsw/Peripherals/FM/Port/fm_port.c optional dpaa \
- no-depend compile-with "${DPAA_COMPILE_CMD}"
-contrib/ncsw/Peripherals/FM/Port/fm_port_im.c optional dpaa \
- no-depend compile-with "${DPAA_COMPILE_CMD}"
-contrib/ncsw/Peripherals/FM/Pcd/fm_cc.c optional dpaa \
- no-depend compile-with "${DPAA_COMPILE_CMD}"
-contrib/ncsw/Peripherals/FM/Pcd/fm_kg.c optional dpaa \
- no-depend compile-with "${DPAA_COMPILE_CMD}"
-contrib/ncsw/Peripherals/FM/Pcd/fman_kg.c optional dpaa \
- no-depend compile-with "${DPAA_COMPILE_CMD}"
-contrib/ncsw/Peripherals/FM/Pcd/fm_manip.c optional dpaa \
- no-depend compile-with "${DPAA_COMPILE_CMD}"
-contrib/ncsw/Peripherals/FM/Pcd/fm_pcd.c optional dpaa \
- no-depend compile-with "${DPAA_COMPILE_CMD}"
-contrib/ncsw/Peripherals/FM/Pcd/fm_plcr.c optional dpaa \
- no-depend compile-with "${DPAA_COMPILE_CMD}"
-contrib/ncsw/Peripherals/FM/Pcd/fm_prs.c optional dpaa \
- no-depend compile-with "${DPAA_COMPILE_CMD}"
-contrib/ncsw/Peripherals/FM/Pcd/fman_prs.c optional dpaa \
- no-depend compile-with "${DPAA_COMPILE_CMD}"
-contrib/ncsw/Peripherals/FM/MAC/dtsec.c optional dpaa \
- no-depend compile-with "${DPAA_COMPILE_CMD}"
-contrib/ncsw/Peripherals/FM/MAC/dtsec_mii_acc.c optional dpaa \
- no-depend compile-with "${DPAA_COMPILE_CMD}"
-contrib/ncsw/Peripherals/FM/MAC/fman_dtsec.c optional dpaa \
- no-depend compile-with "${DPAA_COMPILE_CMD}"
-contrib/ncsw/Peripherals/FM/MAC/fman_dtsec_mii_acc.c optional dpaa \
- no-depend compile-with "${DPAA_COMPILE_CMD}"
-contrib/ncsw/Peripherals/FM/MAC/fm_mac.c optional dpaa \
- no-depend compile-with "${DPAA_COMPILE_CMD}"
-contrib/ncsw/Peripherals/FM/MAC/fman_dtsec.c optional dpaa \
- no-depend compile-with "${DPAA_COMPILE_CMD}"
-contrib/ncsw/Peripherals/FM/MAC/tgec.c optional dpaa \
- no-depend compile-with "${DPAA_COMPILE_CMD}"
-contrib/ncsw/Peripherals/FM/MAC/tgec_mii_acc.c optional dpaa \
- no-depend compile-with "${DPAA_COMPILE_CMD}"
-contrib/ncsw/Peripherals/FM/MAC/fman_tgec.c optional dpaa \
- no-depend compile-with "${DPAA_COMPILE_CMD}"
-contrib/ncsw/Peripherals/FM/HC/hc.c optional dpaa \
- no-depend compile-with "${DPAA_COMPILE_CMD}"
-contrib/ncsw/Peripherals/FM/fm_muram.c optional dpaa \
- no-depend compile-with "${DPAA_COMPILE_CMD}"
-contrib/ncsw/Peripherals/FM/fm_ncsw.c optional dpaa \
- no-depend compile-with "${DPAA_COMPILE_CMD}"
-contrib/ncsw/Peripherals/FM/fman_ncsw.c optional dpaa \
- no-depend compile-with "${DPAA_COMPILE_CMD} ${NO_WMISLEADING_INDENTATION}"
-contrib/ncsw/Peripherals/QM/qm.c optional dpaa \
- no-depend compile-with "${DPAA_COMPILE_CMD}"
-contrib/ncsw/Peripherals/QM/qm_portal_fqr.c optional dpaa \
- no-depend compile-with "${DPAA_COMPILE_CMD}"
-contrib/ncsw/user/env/stdlib.c optional dpaa \
- no-depend compile-with "${DPAA_COMPILE_CMD}"
-contrib/ncsw/user/env/xx.c optional dpaa \
- no-depend compile-with "${DPAA_COMPILE_CMD}"
-contrib/ncsw/user/env/core.c optional dpaa \
- no-depend compile-with "${DPAA_COMPILE_CMD}"
-
-# FreeBSD Wrappers
-dev/dpaa/portals_common.c optional dpaa \
- no-depend compile-with "${DPAA_COMPILE_CMD}"
-dev/dpaa/bman_portals.c optional dpaa fdt \
- no-depend compile-with "${DPAA_COMPILE_CMD}"
-dev/dpaa/bman.c optional dpaa \
- no-depend compile-with "${DPAA_COMPILE_CMD}"
-dev/dpaa/bman_fdt.c optional dpaa fdt \
- no-depend compile-with "${DPAA_COMPILE_CMD}"
-dev/dpaa/qman_portals.c optional dpaa fdt \
- no-depend compile-with "${DPAA_COMPILE_CMD}"
-dev/dpaa/qman.c optional dpaa \
- no-depend compile-with "${DPAA_COMPILE_CMD}"
-dev/dpaa/qman_fdt.c optional dpaa fdt \
- no-depend compile-with "${DPAA_COMPILE_CMD}"
-dev/dpaa/fman.c optional dpaa fdt \
- no-depend compile-with "${DPAA_COMPILE_CMD}"
-dev/dpaa/fman_mdio.c optional dpaa fdt \
- no-depend compile-with "${DPAA_COMPILE_CMD}"
-dev/dpaa/fman_fdt.c optional dpaa fdt \
- no-depend compile-with "${DPAA_COMPILE_CMD}"
-dev/dpaa/if_dtsec.c optional dpaa \
- no-depend compile-with "${DPAA_COMPILE_CMD}"
-dev/dpaa/if_dtsec_im.c optional dpaa \
- no-depend compile-with "${DPAA_COMPILE_CMD}"
-dev/dpaa/if_dtsec_rm.c optional dpaa \
- no-depend compile-with "${DPAA_COMPILE_CMD}"
-dev/dpaa/if_dtsec_fdt.c optional dpaa \
- no-depend compile-with "${DPAA_COMPILE_CMD}"
-
-# Examples
-dev/dpaa/bman-example.c optional bman_example dpaa \
- no-depend compile-with "${DPAA_COMPILE_CMD}"
-dev/dpaa/qman-example.c optional qman_example dpaa \
- no-depend compile-with "${DPAA_COMPILE_CMD}"