Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
e838e27
arm64: GATEWAY kernel config, device tree, and platform support
Mar 4, 2026
584bbeb
ncsw: port DPAA1 NCSW layer to ARM64
Mar 4, 2026
fc0598a
dpaa: BMan/QMan/FMan portal integration and bus drivers
Mar 4, 2026
3e2f869
dpaa: dTSEC/mEMAC Ethernet driver with checksum offload and RSS
Mar 4, 2026
ea7251c
dpaa: add offline/header manipulation (OH) port driver
Mar 4, 2026
1b25025
mii: add MaxLinear GPY115/GPY2xx PHY driver
Mar 4, 2026
901e407
arm64: peripheral driver fixes for LS1046A
Mar 4, 2026
ea7fec1
iicbus: add INA2xx power monitor driver
Mar 4, 2026
2350c99
dpaa: add CEETM egress QoS traffic management
Mar 4, 2026
7ca4494
net: add bridge L2 offload notification hooks
Mar 4, 2026
0af42bb
pf: add state creation/destruction notification hooks
Mar 4, 2026
726c47c
pci: DesignWare PCIe big-endian CCSR and lane configuration for LS1046A
Mar 4, 2026
689d534
gpio: add FDT gpio-hog processing for boot-time pin configuration
Mar 4, 2026
5269d8b
dpaa: cross-module buffer free for WiFi offload
Mar 4, 2026
14291e6
dpaa: PLCR/KG miss fixup, portal quiesce, OH dist callbacks
Mar 5, 2026
8c11ab7
dpaa: per-VAP FQ registry, dist fallback, OH enqueue EBUSY, refill API
Mar 6, 2026
698bde6
dpaa: start MII tick for LAGG member ports, reprogram MAC on enable
Mar 11, 2026
024c735
ng_pppoe: add NGM_PPPOE_GET_SESSION_INFO for PPPoE offload
Mar 13, 2026
91a5303
dpaa: use opnsense-deps for fmcd headers instead of ASK
Mar 14, 2026
b76979c
dpaa: move fmlib ioctl headers into kernel tree
Mar 14, 2026
40eb99b
dpaa: add SFP module detection and link management for 10GbE ports
Mar 15, 2026
798cf53
dpaa: fix SFP link state semantics and copper module handling
Mar 15, 2026
e33aace
dpaa: add 10GBASE-T copper SFP+ PHY driver via I2C-MDIO bridge
Mar 15, 2026
31c942c
sff: move SFP module management into sfp_fdt state machine
Mar 15, 2026
2c089ae
zfs: switch root filesystem from UFS to ZFS, silence fmcd ioctl spam
Mar 26, 2026
6d82703
kern: add colored timestamps to console output
Mar 26, 2026
991a0d7
build U-Boot booti compatible kernel
maurice-w Mar 30, 2026
a6a34f9
dpaa: implement SIOCGI2C for SFP modules in dTSEC
deGerard Apr 5, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions sys/arm64/arm64/machdep.c
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,7 @@ static struct trapframe proc0_tf;
int early_boot = 1;
int cold = 1;
static int boot_el;
uintptr_t socdev_va;
static uint64_t hcr_el2;

struct kva_md_info kmi;
Expand Down
99 changes: 99 additions & 0 deletions sys/arm64/conf/GATEWAY
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
#
# MONO-GATEWAY -- NXP LS1046A with DPAA1 + CAAM for OPNsense
#
# Based on GENERIC (like SMP-ARM) with hardware-specific additions:
# - DPAA1 packet acceleration (FMan/QMan/BMan)
# - CAAM crypto accelerator (JR + QI paths)
# - GPY115 PHY, SFP+, I2C sensors
# - Early printf via QorIQ ns16550
#

include GENERIC

ident MONO-GATEWAY

# Disable debug for production
nooptions INVARIANTS
nooptions INVARIANT_SUPPORT
nooptions WITNESS
nooptions WITNESS_SKIPSPIN
nooptions LOCK_PROFILING

# OPNsense standard features (from SMP-ARM)
options DDB
options GEOM_BDE
options GEOM_ELI
options GEOM_MIRROR
options IPFIREWALL_DEFAULT_TO_ACCEPT
options IPFIREWALL_VERBOSE
options IPSTEALTH
options MROUTING
options PPS_SYNC
options TCP_SIGNATURE

# Platform
options SOC_NXP_LS

# ZFS (compiled in -- no FreeBSD loader with booti)
options ZFS

# Root filesystem (ZFS pool "pool0")
options ROOTDEVNAME=\"zfs:pool0/ROOT/default\"

# U-Boot (build booti compatible kernel)
options LINUX_BOOT_ABI

# Disable diskid labels so GPT labels (/dev/gpt/*) work with ZFS
# (diskid provider prevents GPT from attaching to the raw device)
envvar kern.geom.label.disk_ident.enable="0"

# Early printf for debugging
options SOCDEV_PA=0x2000000
options EARLY_PRINTF=qoriq

# eMMC (QorIQ ESDHC)
device sdhci

# I2C (board-specific)
device vf_i2c # Freescale Vybrid / QorIQ I2C controller
device pca954x # NXP PCA9545/9546/9548 I2C mux/switch
device ina2xx # TI INA219/INA226/INA234 power monitor
# pcf2131 is built as an out-of-tree module in opnsense-deps/drivers/pcf2131/

# GPIO power-off (STUSB4500 USB-C PD reset)
device gpiopower

# DPAA1 (FMan/QMan/BMan) -- NXP LS1046A packet acceleration
include "dpaa/config.dpaa_arm64"
device dpaa
options QMAN_CEETM_SUPPORT
device sff # Small Form Factor Transceivers (SFP+)

# caam is built as an out-of-tree module in opnsense-deps/drivers/caam/

# Packet filter
device pf
device pflog
device pfsync
device carp

# Networking
device lagg # Link aggregation
device if_bridge # Bridge interface
device enc # IPsec enc(4) interface
device gif # IPv6/IPv4 tunneling
device gre # GRE tunneling
device tuntap # Tunnel/TAP

# OPNsense extras
device wlan_acl
device wlan_xauth
device u3g
device uftdi
device umodem
device uplcom
device uvisor
device uvscom

# DTBs
makeoptions MODULES_EXTRA+="dtb/freescale"
25 changes: 25 additions & 0 deletions sys/arm64/conf/dpaa/config.dpaa_arm64
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@

files "dpaa/files.dpaa_arm64"

makeoptions DPAA_COMPILE_CMD="${LINUXKPI_C} ${DPAAWARNFLAGS} \
-Wno-cast-qual -Wno-unused-function -Wno-init-self -fms-extensions \
-include $S/contrib/ncsw/build/dflags_arm64.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 \
-I$S/contrib/ncsw/inc/ioctls"
131 changes: 131 additions & 0 deletions sys/arm64/conf/dpaa/files.dpaa_arm64
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@

# NetCommSW drivers — ARM64 variant
# Identical source list to powerpc/conf/dpaa/files.dpaa except:
# - core.c -> core_arm64.c (ARM64 CORE_GetId etc.)
# - xx.c -> xx_arm64.c (no PowerPC ccsrbar/LAW/TLB deps)
# - if_dtsec* excluded (LS1046A uses mEMAC, not dTSEC)

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/ncsw_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} -Wno-enum-conversion"
contrib/ncsw/Peripherals/FM/SP/fman_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_ehash.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/Pcd/fm_replic.c optional dpaa \
no-depend compile-with "${DPAA_COMPILE_CMD}"
# mEMAC — the MAC type used by LS1046A FManv3 (DPAA_VERSION >= 11)
contrib/ncsw/Peripherals/FM/MAC/memac.c optional dpaa \
no-depend compile-with "${DPAA_COMPILE_CMD}"
contrib/ncsw/Peripherals/FM/MAC/memac_mii_acc.c optional dpaa \
no-depend compile-with "${DPAA_COMPILE_CMD}"
contrib/ncsw/Peripherals/FM/MAC/fman_memac.c optional dpaa \
no-depend compile-with "${DPAA_COMPILE_CMD}"
contrib/ncsw/Peripherals/FM/MAC/fman_memac_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/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} -Wno-unused-but-set-variable"
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}"
# ARM64 replacements for xx.c and core.c (no PowerPC deps)
contrib/ncsw/user/env/xx_arm64.c optional dpaa \
no-depend compile-with "${DPAA_COMPILE_CMD}"
contrib/ncsw/user/env/core_arm64.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_chardev.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}"
# mEMAC external MDIO controller (fsl,fman-memac-mdio)
dev/dpaa/memac_mdio.c optional dpaa fdt \
no-depend compile-with "${DPAA_COMPILE_CMD}"
# Ethernet driver (reuses dTSEC wrapper with mEMAC via NCSW FM_MAC API)
dev/dpaa/if_dtsec.c optional dpaa fdt \
no-depend compile-with "${DPAA_COMPILE_CMD}"
dev/dpaa/if_dtsec_fdt.c optional dpaa fdt \
no-depend compile-with "${DPAA_COMPILE_CMD}"
dev/dpaa/if_dtsec_im.c optional dpaa fdt \
no-depend compile-with "${DPAA_COMPILE_CMD}"
dev/dpaa/if_dtsec_rm.c optional dpaa fdt \
no-depend compile-with "${DPAA_COMPILE_CMD}"
# Offline / Header Manipulation ports
dev/dpaa/dpaa_oh.c optional dpaa fdt \
no-depend compile-with "${DPAA_COMPILE_CMD}"
# CEETM egress QoS (Class-based Enqueue/Dequeue Traffic Management)
dev/dpaa/qman_ceetm.c optional dpaa fdt \
no-depend compile-with "${DPAA_COMPILE_CMD}"
Loading