Support for Zyxel - PX3321-T1

Any hopes? Zyxel - PX3321-T1

 cat /proc/cpuinfo 
processor	: 0
model name	: ARMv7 Processor rev 4 (v7l)
BogoMIPS	: 50.00
Features	: half thumb fastmult edsp tls idiva idivt lpae evtstrm crc32 
CPU implementer	: 0x41
CPU architecture: 7
CPU variant	: 0x0
CPU part	: 0xd03
CPU revision	: 4

processor	: 1
model name	: ARMv7 Processor rev 4 (v7l)
BogoMIPS	: 50.00
Features	: half thumb fastmult edsp tls idiva idivt lpae evtstrm crc32 
CPU implementer	: 0x41
CPU architecture: 7
CPU variant	: 0x0
CPU part	: 0xd03
CPU revision	: 4

Hardware	: ECONET (Device Tree)
Revision	: 0000
Serial		: 0000000000000000

I think this is an: [

Airoha EN7523 SoC

](https://patchwork.kernel.org/comment/24717334/)

fw_printenv 
bootcmd=flash imgread 2048;bootm
bootdelay=3
baudrate=115200
ipaddr=192.168.1.1
serverip=192.168.1.126
bootfile=tclinux.bin
loadaddr=0x81800000
arch=arm
cpu=armv7
board=en7523_evb
board_name=en7523_evb
vendor=ecnt
soc=en7523
root=/dev/mtdblock3 ro
console=ttyS0,115200n8 earlycon
intf_mode=0
sdram_conf=0x00108893
VendorName=Zyxel Communications Corp.
ProductName=PX3321-T1
snmp_sysobjid=1.2.3.4.5
ether_gpio=0c
power_gpio=1515
username=telecomadmin
password=nE7jA%5m
dsl_gpio=0a
internet_gpio=01
multi_upgrade_gpio=0b0a03010604051b1a00000000000000
gpio_active_high=0000000000000000000000000000000000000000000000000000000000111100
onu_type=2
qdma_init=31
serdes_sel=0
kernel_filename=tclinux.bin
uboot_filename=tcboot.bin
fdt_high=0xac000000
invaild_env=no
stdin=serial
stdout=serial
stderr=serial
MrdVer=01
FeatureBits=04050c050000000000000000000000000000000000000000000000000000
sn81=0Y2341119586
SerialNumber=xxxxxxxxxx
GponSerialNumber=xxxxxxxxxx
supervisor=
admin=
WpaPskKey=
ethaddr=aa:aa:aa:aa:aa:aa
country_code=D0
EngDebugFlag=0
MainFeatureBit=0
NumMacAddrs=16
cat /proc/cmdline
sdram_conf=0x00108893 ethaddr=14:33:75:9a:1f:b0 snmp_sysobjid=1.2.3.4.5 country_code=D0 ether_gpio=0c power_gpio=1515 username=telecomadmin password=nE7jA%5m dsl_gpio=0a internet_gpio=01 multi_upgrade_gpio=0b0a03010604051b1a00000000000000 onu_type=2 qdma_init=31 root=/dev/mtdblock6 ro console=ttyS0,115200n8 earlycon bootflag=1 serdes_sel=0 tclinux_info=0x1cd1af7,0x2090,0x28f62f,0x2917b8,0x1a40004,0x1cd4543,0x2124,0x291fe6,0x294204,0x1a40004 
cat /proc/meminfo
MemTotal:         466772 kB
MemFree:          216628 kB
MemAvailable:     219640 kB
Buffers:           15204 kB
Cached:            64796 kB
SwapCached:            0 kB
Active:            53148 kB
Inactive:          45664 kB
Active(anon):      19296 kB
Inactive(anon):     2456 kB
Active(file):      33852 kB
Inactive(file):    43208 kB
Unevictable:           0 kB
Mlocked:               0 kB
HighTotal:             0 kB
HighFree:              0 kB
LowTotal:         466772 kB
LowFree:          216628 kB
SwapTotal:             0 kB
SwapFree:              0 kB
Dirty:                 0 kB
Writeback:             0 kB
AnonPages:         18836 kB
Mapped:            23456 kB
Shmem:              2916 kB
Slab:              63072 kB
SReclaimable:       2924 kB
SUnreclaim:        60148 kB
KernelStack:        2736 kB
PageTables:         1400 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:      233384 kB
Committed_AS:     536304 kB
VmallocTotal:     507904 kB
VmallocUsed:           0 kB
VmallocChunk:          0 kB
cat /proc/devices
Character devices:
  1 mem
  2 pty
  3 ttyp
  4 ttyS
  5 /dev/tty
  5 /dev/console
  5 /dev/ptmx
 10 misc
 13 input
 90 mtd
108 ppp
111 qostype
119 qdma_lan
120 qdma_wan
123 accesslimit
124 urlfilter
128 ptm
136 pts
166 ttyACM
180 usb
184 gpon_flow
185 xpon_igmp
188 ttyUSB
189 usb_device
190 pon
210 /dev/xponmap
215 ponvlan
216 ponmacfilter
220 hwnat0
221 epon_mac
224 /dev/cpu_interrupt
225 /dev/pcie
226 /dev/fe
231 slic
232 vdsp
233 spi
241 /dev/ifc
248 led_button
254 hidraw

Block devices:
  1 ramdisk
259 blkext
  8 sd
 31 mtdblock
 65 sd
 66 sd
 67 sd
 68 sd
 69 sd
 70 sd
 71 sd
128 sd
129 sd
130 sd
131 sd
132 sd
133 sd
134 sd
135 sd
ls /sys/devices/platform
1e800000.npu                  1fa02000.wed                  1fa11000.spi_spi2nfi          1fa72100.sgmii_p0             1faa1000.trng                 1fb30000.gdma                 1fbe2200.i2s                  1fbf0300.serial               alarmtimer                    psci
1efbc800.cpu_top              1fa02000.wed2                 1fa12000.spi_ecc              1fa77100.sgmii_p1             1fab0000.xhci                 1fb50000.frame_engine         1fbe3300.i2c_slave            1fbf8000.i2c                  mdio-bus                      snor
1efbd000.thermal_phy          1fa02b00.wed_test             1fa40000.sram                 1fa81100.sgmii_u0             1fad0000.usb_phy              1fb64000.xpon                 1fbf0000.serial               1fbf9000.gdump                nand@1fa10000                 timer
1fa00000.rbus                 1fa06000.wdma                 1fa60000.xsi                  1fa91000.pcie                 1faf0000.pon_phy              1fb70000.crypto_k             1fbf0100.apb_timer1           9000000.interrupt-controller  pmu                           uevent
1fa01800.dma-controller       1fa10000.spi_controller       1fa65100.pon_hsgmii           1fa93700.pcie_phy             1fb00000.scu                  1fbd0000.pcm                  1fbf0200.gpio                 Fixed MDIO bus.0              power
cat /sys/class/mtd/mtd*/offset
0
524288
107741184
108789760
232521728
786432
3479852
786432
51118080
53822328
51118080
102498304
103546880
ls /sys/class/net
apcli0       br0          eth0.1       eth0.3       ip6tnl0      lan_int2_if  lan_int4_if  lro_lan_dev  nas10        omci         ra0          ra2          rai0         rai2         rai4         sit0         wan_int3_if
apclii0      eth0         eth0.2       eth0.4       ip_vti0      lan_int3_if  lo           lro_wan_dev  oam          pon          ra1          ra3          rai1         rai3         rai5         wan_int2_if  wan_int4_if
 brctl show
bridge name	bridge id		STP enabled	interfaces
br0		8000.1433759a1fb0	no		eth0.1
							eth0.2
							eth0.3
							eth0.4
							ra0
							rai0
cat /sys/kernel/debug/
bdi/                clk/                extfrag/            fault_around_bytes  hid/                memblock/           pm_qos/             sched_features      sleep_time          suspend_stats       usb/                wakeup_sources
cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00080000 00020000 "bootloader"
mtd1: 00040000 00020000 "romfile"
mtd2: 00291833 00020000 "kernel"
mtd3: 01a40004 00020000 "rootfs"
mtd4: 03000000 00020000 "tclinux"
mtd5: 0029427e 00020000 "kernel_slave"
mtd6: 01a40004 00020000 "rootfs_slave"
mtd7: 03100000 00020000 "tclinux_slave"
mtd8: 00100000 00020000 "wwan"
mtd9: 00400000 00020000 "data"
mtd10: 00100000 00020000 "rom-d"
mtd11: 07600000 00020000 "misc"
mtd12: 00240000 00020000 "reservearea"

Enabling ssh, ftp, http: (logged as admin in ssh)

zycli mgmtsrvctl config -s SSH 0
zycli mgmtsrvctl config -s FTP 0
zycli mgmtsrvctl config -s HTTP 0

Wireless card (seems to be an): MT7916

lsmod
Module                  Size  Used by    Tainted: P  
usb_storage            39372  0 
usblp                   9887  0 
hfsplus                84626  0 
hfs                    41887  0 
exfat                  92479  0 
nls_cp936             120999  0 
nls_utf8                1190  0 
sd_mod                 27675  0 
scsi_mod               97634  2 usb_storage,sd_mod
zyinetled              10655  0 
ebt_mark_m              1012  2 
iptable_filter          1281  1 
ip6t_REJECT             1368  0 
ip6table_raw            1126  0 
ip6table_filter         1221  1 
xt_policer              1795  0 
xt_AUTOMAP              1413  0 
ovdsp                 266514  2 
foip                  429206  1 ovdsp
acodec_x              300649  1 ovdsp
ortp                  117559  1 ovdsp
ksocket                 4771  2 ovdsp,ortp
slic3_silicon         362424  0 
fxs3_silicon          405936  5 ovdsp,ortp,slic3_silicon
mapfilter              43453  0 
mt_whnat               53122  0 
spi                    37405  2 slic3_silicon,fxs3_silicon
lec                    64040  2 ovdsp,fxs3_silicon
mt7916_ap            9043336  4 mt_whnat
pcm1                   22657  2 fxs3_silicon,spi
DSPCore                40308  6 ovdsp,ortp,fxs3_silicon,spi,lec,pcm1
sys_mod                 6104  6 ovdsp,ortp,fxs3_silicon,spi,pcm1,DSPCore
urlfilter              49411  0 
lro_wan                17519  0 
lro_lan                17286  0 
sch_prio                3818  0 
sch_htb                13289  0 
cls_fw                  3769  0 
act_mirred              3106  0 
xpon_igmp              90731  0 
ponmacfilter           10030  0 
ponvlan               288923  1 xpon_igmp
multiwan               32724  0 
vlantag_ct              7273  1 multiwan
gpon_flow              79723  0 
xponmap                38103  1 gpon_flow
xpon_int                3947  0 
xpon                  338761  8 xpon_igmp,ponmacfilter,ponvlan,xponmap
phy                   245199  0 
tso2                   32848  0 
hostadpt                6470  0 
npu                     3260  0 
hw_nat                434359  0 
qdma_wan              280186  1 xpon
eth_ephy               87158  0 
hsgmii_lan             29383  0 
eth                   187897  6 ortp,xpon_igmp,ponvlan,xpon,hw_nat,eth_ephy
qdma_lan              296925  0 
ifc                    78560  2 qdma_wan,qdma_lan
fe_core               152288  2 qdma_wan,qdma_lan
crypto_k               54190  0 
nlk_msg                 1598  0 
sif                    20012  1 phy,[permanent]
tccicmd                18407  5 xpon,eth_ephy,eth,sif
accesslimit            22249  0 
tcledctrl              73190  8 zyinetled,fxs3_silicon,mt7916_ap,xpon,phy,hw_nat,eth,tccicmd
module_sel              4336  0 
ebt_arp                 1903  0 
ebt_vlan                1458  0 
ebt_mark                1074  0 
ebtable_broute          1323  1 
ebt_policer             1919  0 
xt_layer7              10893  0 
ebt_ip6                 2095  0 
ebt_ip                  3979  0 
ebtable_filter          1493  1 
ebtables               17356  2 ebtable_broute,ebtable_filter
attackprotector         3042  0 
ip6table_mangle         1714  1 

ls /etc/init.d/
button_disable_for_manufacture.sh           disable_lan.sh                              init_cdbg.sh                                mount_zymisc.sh                             smbd.sh                                     zyee-init.sh
button_disable_for_manufacture_extender.sh  dnsmasq.sh                                  init_mosapp.sh                              netprobe                                    syslog-ng.sh                                zyinetled_module_install.sh
conntrackd                                  dummpy.file                                 lxc.sh                                      openssl                                     telnet                                      zyusbinit.sh
cron                                        fstab                                       makeDevs.sh                                 radvd.sh                                    zcmd.sh                                     zywifid.sh
crond.sh                                    igmpproxy                                   miniboot_rcS                                rcS                                         zybtnchk.sh

led.conf

; led_no 
; ======================================================
; LED_DSL_STATUS		= 0		
; LED_DSL_ACT_STATUS		= 1		
; LED_DSL_NOACT_STATUS		= 2	
; LED_DSL_IDLE_STATUS		= 3	
; LED_DSL_HANDSHAKE_STATUS	= 4	
; LED_DSL_TRAINING_STATUS	= 5		
; LED_DSL_SHOWTIME_STATUS	= 6		
; LED_PPP_STATUS		= 7		
; LED_PPP_ACT_STATUS		= 8
; LED_PPP_NOACT_STATUS		= 9
; LED_USB_STATUS		= 10		
; LED_USB_ACT_STATUS		= 11		
; LED_USB_NOACT_STATUS		= 12		
; LED_WLAN_STATUS		= 13		
; LED_WLAN_ACT_STATUS		= 14		
; LED_WLAN_NOACT_STATUS		= 15	
; LED_ETHER_STATUS		= 16	
; LED_ETHER_ACT_STATUS		= 17		
; LED_ETHER_NOACT_STATUS	= 18		
; LED_FLASH_STATUS		= 19	
; LED_SYS_BOOT_STATUS		= 20		
; LED_SYS_STATUS		= 21		
; LED_SYS_INIT_STATUS 		= 22
; LED_ETHER_10M_STATUS		= 23
; LED_ETHER_10M_ACT_STATUS	= 24
; LED_ETHER_10M_NOACT_STATUS	= 25
; LED_ETHER_100M_STATUS		= 26
; LED_ETHER_100M_ACT_STATUS	= 27
; LED_ETHER_100M_NOACT_STATUS	= 28
; LED_PPP_ON_DSL_OFF	    	= 29
; LED_WLAN_RESET		= 30
; LED_LAN_RESET			= 31
; LED_BOOT_BICOLOR		= 32
; LED_INTERNET_STATUS	    	= 33
; LED_INTERNET_ACT_STATUS   	= 34
; LED_INTERNET_NOACT_STATUS	= 35
; LED_PPP_ACT_BICOLOR   	= 36
; LED_PPP_NOACT_BICOLOR		= 37
; LED_INTERNET_TRYING_STATUS	= 38
; LED_BOOT_FAILURE		= 39
; LED_TR68_PWR_BOOTING		= 40
; LED_TR68_PWR_BOOTED		= 41
; LED_PHY_TX_POWER_DISABLE	= 42
; LED_WLAN_WPS_STATUS		= 43
; LED_WLAN_WPS_ACT_STATUS	= 44
; LED_WLAN_WPS_NOACT_STATUS	= 45
; LED_VOIP_HOOK1_STATUS		= 49
; LED_VOIP_HOOK2_STATUS		= 50
; LED_USB2_STATUS		= 54		
; LED_USB2_ACT_STATUS		= 55				
; LED_SYS_RESET			= 56 (BUTTON)
; LED_WLAN_RADIO		= 57 (BUTTON)
; LED_WLAN_WPS			= 58 (BUTTON)
; LED_PWR_USB			= 61   
; LED_XPON_STATUS		= 64
; LED_XPON_TRYING_STATUS	= 65
; LED_XPON_LOS_ON_STATUS	= 66
; LED_XPON_LOS_STATUS		= 67
; LED_LANPORT1_STATUS		= 68
; LED_LANPORT1_ACT_STATUS	= 69
; LED_LANPORT2_STATUS		= 70
; LED_LANPORT2_ACT_STATUS	= 71
; LED_LANPORT3_STATUS		= 72
; LED_LANPORT3_ACT_STATUS	= 73
; LED_LANPORT4_STATUS		= 74
; LED_LANPORT4_ACT_STATUS	= 75
;
; ZyXEL proprietary LEDs
; LED_WLAN_WPS_5G_STATUS        = 77
; LED_WLAN_WPS_5G_ACT_STATUS    = 78
; LED_WLAN_WPS_5G_NOACT_STATUS  = 79
; LED_PWR_GREEN_STATUS	        = 80
; LED_PWR_GREEN_ACT_STATUS	    = 81
; LED_PWR_RED_STATUS	        = 82
; LED_PWR_RED_ACT_STATUS	    = 83
; LED_INTERNET_RED_STATUS	    = 84
; LED_INTERNET_RED_ACT_STATUS	= 85
; LED_VOIP1_GREEN_STATUS	    = 86
; LED_VOIP1_GREEN_ACT_STATUS	= 87
; LED_VOIP1_AMBER_STATUS	    = 88
; LED_VOIP1_AMBER_ACT_STATUS	= 89
; LED_VOIP2_GREEN_STATUS	    = 90
; LED_VOIP2_GREEN_ACT_STATUS	= 91
; LED_VOIP2_AMBER_STATUS	    = 92
; LED_VOIP2_AMBER_ACT_STATUS	= 93
; LED_VDSL_STATUS			    = 94
; LED_VDSL_ACT_STATUS			= 95
; LED_VDSL_NOACT_STATUS			= 96
; LED_VDSL_IDLE_STATUS			= 97
; LED_VDSL_HANDSHAKE_STATUS		= 98
; LED_VDSL_TRAINING_STATUS		= 99
; LED_VDSL_SHOWTIME_STATUS		= 100
; LED_VOIP_REG_STATUS           = 101
; LED_PHY_VCC_DISABLE           = 102
; LED_GE_ETH_WAN_STATUS			= 103
;
; SDK original index
; LED_WLAN_WPS_5G			= 104
; LED_WLAN_RADIO_5G			= 105
;
; ZyXEL properity LEDs
; LED_UPS_BATT					= 107
; LED_UPS_BATT_BLINK			= 108
; GPIO_UPS_BATT_FAIL			= 109
; GPIO_UPS_BATT_LOW				= 110
; GPIO_UPS_BATT_ON				= 111
; GPIO_UPS_BATT_MISSING			= 112
; LED_WLAN_5G_STATUS			= 113
; LED_WLAN_5G_ACT_STATUS		= 114
; LED_WLAN_5G_NOACT_STATUS		= 115
; LED_ALL_POWER_ON_OFF_STATUS	= 116
; GPIO_WLAN_ACTIVE_5G_STATUS	= 117
; GPIO_WLAN_ACTIVE_STATUS		= 118
; LED_WPS_RED_STATUS			= 119
; LED_WPS_RED_ACT_STATUS		= 120
; LED_QUALITY_RED_STATUS		= 121
; LED_QUALITY_RED_ACT_STATUS	= 122
; LED_QUALITY_GREEN_STATUS		= 123
; LED_QUALITY_GREEN_ACT_STATUS	= 124
; LED_QUALITY_AMBER_STATUS		= 125
; LED_QUALITY_AMBER_ACT_STATUS	= 126
; LED_EXT_PHY_RESET_STATUS	    = 127
; mode
; ======================================================
; LED_MODE_NOT_USED			= 0
; LED_MODE_ONOFF			= 1
; LED_MODE_BLINK			= 2
; LED_MODE_NOACT			= 3
; LED_MODE_INPUT			= 5
; 
; speed
; ======================================================
; LED_SPEED_FAST		= 0
; LED_SPEED_MED			= 1
; LED_SPEED_SLOW		= 2
; LED_SPEED_VERY_SLOW		= 3
;
;led_no  gpio    mode    speed   onoff
;======================================================
0	0	0	0	0
1	0	0	0	0
2	0	0	0	0
3	0	0	0	0
4	0	0	0	0
5	0	0	0	0
6	0	0	0	0
7	0	0	0	0
8	0	0	0	0
9	0	0	0	0
10 	27	1	0	0
11	27	2	0	0
12	27	3	3	0
13	6	1	0	0
14	6	2	0	0
15	6	3	3	1
16	0	0	0	0
17	0	0	0	0
18	0	0	0	0
19	0	0	0	0
20	0	0	0	0
21	0	0	0	0
22	0	0	0	0
23	0	0	0	0
24	0	0	0	0
25	0	0	0	0
26	0	0	0	0
27	0	0	0	0
28	0	0	0	0
29	0	0	0	0
30	0	0	0	0
31	0	0	0	0
32	0	0	0	0
33	1	1	0	0
34	1	2	0	0
35	1	3	3	1
36	0	0	0	0
37	0	0	0	0
38	1	2	0	0
39	0	0	0	0
40	11	1	0	0
41	11	1	0	0
42	16	1	0	1
43	26	1	0	0
44	26	2	0	0
45	26	3	3	1
46	0	0	0	0
47	0	0	0	0
48	0	0	0	0
49	5	1	0	1
50	0	0	0	0
51	0	0	0	0
52	0	0	0	0
53	0	0	0	0
54	0	0	0	0
55	0	0	0	0
56	0	5	0	0
57	0	0	0	0
58	7	5	0	0
59	0	0	0	0
60	0	0	0	0
61	0	0	0	0
62	0	0	0	0
63	0	0	0	0
64	10	1	0	0
65	10	2	0	0
66	3	1	1	1
67	3	2	1	1
68	22	1	0	0
69	22	2	0	0
70	23	1	0	0
71	23	2	0	0
72	24	1	0	0
73	24	2	0	0
74	25 	1	0	0
75	25	2	0	0
76	0	0	0	0
77	9	1	0	0
78	9	2	0	0
79	9	3	3	1
80	11	1	0	0
81	11	2	0	0
82	0	0	0	0
83	0	0	0	0
84	0	0	0	0
85	0	0	0	0
86	5	1	0	1
87	5	2	0	1
88	0	0	0	0
89	0	0	0	0
90	0	0	0	0
91	0	0	0	0
92	0	0	0	0
93	0	0	0	0
94	0	0	0	0
95	0	0	0	0
96	0	0	0	0
97	0	0	0	0
98	0	0	0	0
99	0	0	0	0
100	0	0	0	0
101	0	0	0	0
102	0	0	0	0
103	0	0	0	0
104	0	0	0	0
105	0	0	0	0
106	0	0	0	0
107	0	0	0	0
108	0	0	0	0
109	0	0	0	0
110	0	0	0	0
111	0	0	0	0
112	0	0	0	0
113	8	1	0	0
114	8	2	0	0
115	8	3	3	1
116	0	0	0	0
117	8	1	0	0
118	6	1	0	0
119	0	0	0	0
120	0	0	0	0
121	0	0	0	0
122	0	0	0	0
123	0	0	0	0
124	0	0	0	0
125	0	0	0	0
126	0	0	0	0
127	0	0	0	0
128	0	0	0	0
129	0	0	0	0
130	0	0	0	0
131	0	0	0	0
132	0	0	0	0
133	0	0	0	0
134	0	0	0	0
135	0	0	0	0

Any other information is necessary?

same SoC Adding Support for RAISECOM DR5364

https://openwrt.org/docs/guide-developer/add.new.device
https://openwrt.org/docs/guide-developer/adding_new_device

Very similar, yes. I edited the post to included more information (following your links). I'm not a programmer (just a philosopher professor tinkering with hardware).

I already asked to Zyxel the GPL source code, and waiting their response.

Seems like an old version of openwrt (kernel: Linux 4.4.115), backported to include a frankenstein SOC from Airoha/Mediatek/Ralink [I expected a mediatek filogic - like openwrt-one; not an armv7 with `Econet` CPU].

I just want to be able to use it in client mode.

I have full (root) access to the board and have done a full backup of the mtd.

While there is some (very early/ initial) work ongoing for this (by 3rd parties) in the mainline kernel, it's going to take quite a long and winding road.

Can I ask a more general question?

Why some companies like Zyxel are using this old kernel/openwrt versions, backporting with patches and not using an up to date kernel?

Wouldn't they benefit from the open source community working for them? Something like new security implementations? I was able to get a root from this ("new") device with no prior knowledge at all.

Because they aren't using OpenWrt, they are using the vendor SDK provided to them by the chipset designer and change only the visible parts they need or want to change.

1 Like