econet: New device: Zyxel PMG5617GA main master
authorCaleb James DeLisle <cjd@cjdns.fr>
Tue, 28 Oct 2025 18:15:33 +0000 (18:15 +0000)
committerHauke Mehrtens <hauke@hauke-m.de>
Mon, 24 Nov 2025 23:50:54 +0000 (00:50 +0100)
This device has one USB2.0 port, plus ethernet, 2x wifi, ethernet, xPON
and VoIP.

Installation instructions: (Assuming root shell via SSH or serial)
1. Place OpenWrt TRX file on a USB stick formatted VFAT
2. Plug in the stick to the modem
3. Type: mtd write -f -e tclinux /mnt/usb2_sda1/<name of file>.trx tclinux

At this point, both OpenWrt and the vendor OS will be installed
because the device has space for two operating systems. Switch the OS
to boot to OpenWrt:

1. mtd readflash tmpdata 999999999 0 reservearea
2. echo -n '0' | dd of=./tmpdata bs=1 count=1 seek=397311 conv=notrunc
3. mtd write -f -e reservearea ./tmpdata reservearea
4. reboot

WARNING: While you can install with SSH alone, you need serial to use
OpenWrt on EcoNet devices because the Ethernet driver has not yet been
developed.

Signed-off-by: Caleb James DeLisle <cjd@cjdns.fr>
Link: https://github.com/openwrt/openwrt/pull/20580
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
target/linux/econet/base-files/sbin/en75_chboot
target/linux/econet/dts/en751221_zyxel_pmg5617ga.dts [new file with mode: 0644]
target/linux/econet/image/en751221.mk

index 0d5cc6239f050551d4f339b97c0075efddf34a2e..ec95596bdae7eeef2acd05e1193dab2b8ee4455b 100755 (executable)
@@ -124,6 +124,14 @@ main() {
         code_offset=0
         code_openwrt=30000000
         code_factory=31000000
+    elif [ "$machine" = "Zyxel PMG5617GA" ]; then
+        # 00060fff
+        part=$(part_named '"reservearea"')
+        offset_blocks=3
+        block_size=$((1024 * 128))
+        code_offset=4095
+        code_openwrt=30
+        code_factory=31
     else
         echo "Unsupported machine: $machine"
         exit 1
diff --git a/target/linux/econet/dts/en751221_zyxel_pmg5617ga.dts b/target/linux/econet/dts/en751221_zyxel_pmg5617ga.dts
new file mode 100644 (file)
index 0000000..12f9c61
--- /dev/null
@@ -0,0 +1,82 @@
+// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+/dts-v1/;
+
+#include "en751221.dtsi"
+
+/ {
+       model = "Zyxel PMG5617GA";
+       compatible = "tplink,zyxel-pmg5617ga", "econet,en751221";
+
+       memory@0 {
+               device_type = "memory";
+               reg = <0x00000000 0x8000000>;
+       };
+
+       chosen {
+               stdout-path = "/serial@1fbf0000:115200";
+               linux,usable-memory-range = <0x00020000 0x07fe0000>;
+       };
+};
+
+&nand {
+       status = "okay";
+       econet,bmt;
+
+       partitions {
+               compatible = "fixed-partitions";
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               partition@0 {
+                       label = "bootloader";
+                       reg = <0x0 0x40000>;
+                       read-only;
+               };
+
+               partition@40000 {
+                       label = "romfile";
+                       reg = <0x40000 0x40000>;
+                       read-only;
+               };
+
+               partition@80000 {
+                       label = "tclinux";
+                       reg = <0x80000 0x3800000>;
+                       read-only;
+                       econet,enable-remap;
+               };
+
+               /* Nested inside of tclinux */
+               partition@480000 {
+                       label = "rootfs";
+                       reg = <0x480000 0x3400000>;
+                       linux,rootfs;
+                       read-only;
+               };
+
+               partition@3880000 {
+                       label = "tclinux_alt";
+                       reg = <0x3880000 0x0036c0000>;
+               };
+
+               partition@6f40000 {
+                       label = "wwan";
+                       reg = <0x006f40000 0x000100000>;
+               };
+
+               partition@7040000 {
+                       label = "factory_data";
+                       reg = <0x007040000 0x000400000>;
+               };
+
+               partition@7440000 {
+                       label = "rom-d";
+                       reg = <0x007440000 0x000100000>;
+               };
+
+               partition@7540000 {
+                       label = "reservearea";
+                       reg = <0x007540000 0x000080000>;
+               };
+       };
+};
index 715687e0c28287e74146fa999cf79a37e4f12819..16154b3fc09ddbcfb576270d5fbe01e30e176fa1 100644 (file)
@@ -44,3 +44,13 @@ define Device/tplink_archer-vr1200v-v2
     tplink-v2-header -R 0x400000
 endef
 TARGET_DEVICES += tplink_archer-vr1200v-v2
+
+define Device/zyxel_pmg5617ga
+  DEVICE_VENDOR := Zyxel
+  DEVICE_MODEL := PMG5617GA
+  DEVICE_DTS := en751221_zyxel_pmg5617ga
+  IMAGES := tclinux.trx
+  IMAGE/tclinux.trx := append-kernel | lzma | tclinux-trx
+  DEVICE_PACKAGES := kmod-usb3
+endef
+TARGET_DEVICES += zyxel_pmg5617ga