[PATCH] econet: add EN751627 subtarget and ZyXEL EX3301-T0 support

Caleb James DeLisle cjd at cjdns.fr
Wed Apr 15 15:13:29 PDT 2026


It looks like we both just crossed each others' paths on the same day, 
right down to adding the EX3301-T0.

See: https://github.com/openwrt/openwrt/pull/22945

I guess this is your patch: 
https://github.com/openwrt/openwrt/compare/main...198thread:openwrt:econet/zyxel-ex3301-t0-pr

It's pretty massive so I don't think it can be accepted as it is, but I 
have some notes:

1. econet_eth should not be internalized as part of another PR, it's 
currently external as https://github.com/cjdelisle/econet_eth and it 
does not work on EN751627, if you have fixes for the problems then 
please make a PR for it over there.

2. tclinux-trx.sh 
<https://github.com/openwrt/openwrt/compare/main...198thread:openwrt:econet/zyxel-ex3301-t0-pr#diff-5aa6c2f83ed5cb7b89fb95b6ac4fb228b3dec3317f18d4c6ca38e914fbc6109c>-> 
Have you tested that this installs from the webapp? If yes, I'd like to 
carve this out as it's own PR because it will make Zyxel units able to 
install from web.

3. en75_sw_mdio_init -> Not really correct, that's not supposed to be 
the eth driver, it's supposed to be a MMIO based switch, I'm mapping it 
in the eth driver because I don't have a good switch driver ATM.

4. Kervin Pursoty and claude committed 2 days ago -> I can't speak for 
the OpenWrt policy, but for me personally I'm OK with people using AI as 
a tool, but I would encourage you to focus on small and obvious patches.

But more importantly than that, I want to make sure you understand what 
you're submitting; PARTICULARLY the description and comments. These Are 
Your Words.

Open source lives by trust that when someone says "I found a rare and 
difficult to reproduce crash which is caused by <explanation>", that 
this is written in honesty. Unfortunately, AI is infamous for 
hallucinating messages just like that. So blindly forwarding commit 
messages written by AI will almost certainly lead to committing the 
equivalent of academic fraud.

Thanks,

Caleb

On 15/04/2026 21:48, kpursoty at proton.me wrote:
> 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