[PATCH] econet: add EN751627 subtarget and ZyXEL EX3301-T0 support
kpursoty at proton.me
kpursoty at proton.me
Wed Apr 15 12:48:25 PDT 2026
This adds support for the ZyXEL EX3301-T0, a DSL+WiFi gateway based on
the EcoNet EN751627 (big-endian dual-core, 2-VPE-per-core MIPS 1004Kc SoC).
The device has two MT7915/MT7916 PCIe WiFi cards, a QDMA Ethernet
controller, NAND flash, and boots via the EcoNet ZHAL bootloader using
TRX images.
New files:
target/linux/econet/dts/en751627.dtsi
target/linux/econet/dts/en751627_zyxel_ex3301-t0.dts
target/linux/econet/en751627/config-6.12
target/linux/econet/en751627/target.mk (CPU_TYPE=1004kc -> -mips32r2)
target/linux/econet/image/en751627.mk
target/linux/econet/files/drivers/net/ethernet/econet/ (EcoNet SoC Ethernet driver)
target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit_tclinux.c
Modified upstream files:
target/linux/econet/Makefile (register en751627 subtarget)
target/linux/econet/image/Makefile (tclinux-trx build integration)
target/linux/econet/image/tclinux-trx.sh (JAMCRC header writer)
target/linux/generic/files/drivers/mtd/mtdsplit/Kconfig
target/linux/generic/files/drivers/mtd/mtdsplit/Makefile
include/target.mk (CPU_CFLAGS_1004kc = -mips32r2 -mtune=1004kc)
Patches carried until upstream kernel merges land:
018: dt-bindings: clock: airoha: update EN7523 binding for reset (v6.19-rc1 backport)
020: dt-bindings: clock: airoha: add reset support to EN7523 clock (v6.19-rc1 backport)
102: mips: econet: add EN751627 SoC Kconfig entry
104: clocksource: fix timer block mapping at boot (submitted upstream)
104b: clocksource: fix IRQ ack storm on interrupt handler (submitted upstream)
310: mips: econet: enable subsystem drivers (|| ECONET in Kconfigs + DMA_NONCOHERENT)
888: serial: base: console TX guard (submitted upstream)
930: net: econet: add EcoNet SoC Ethernet driver
Upstream kernel patches 104 and 104b were sent to linux-kernel on
2026-04-15 and have received Reviewed-by / Tested-by from Caleb James
DeLisle. Patch 888 was sent to linux-serial on the same date.
A note on CPU_TYPE: the EN751627 is a MIPS 1004Kc. CPU_TYPE must be set to
1004kc (not 24kc) to get -mips32r2 -mtune=1004kc compiler flags. Without
this, userspace is compiled as MIPS I baseline and every binary causes
SIGILL on boot. The companion patch to include/target.mk adds the missing
CPU_CFLAGS_1004kc entry (consistent with the existing 4kec, 24kc, 74kc
entries) and is included in this series.
Build verified on vanilla upstream openwrt/openwrt main (368f49ff85):
TRX VERDICT: PASS. Device booted to SSH, 4 CPUs online, LAN1-4 up,
PCIe WiFi enumerated, UBIFS overlay mounted.
Branch: econet/zyxel-ex3301-t0-pr (198thread/openwrt.git)
Signed-off-by: Kervin Pursoty <kpursoty at proton.me>
More information about the openwrt-devel
mailing list