[openwrt/openwrt] econet: New device: Zyxel PMG5617GA

LEDE Commits lede-commits at lists.infradead.org
Mon Nov 24 15:51:50 PST 2025


hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/31f5fc8fea89ab3ac73445412fee82569bf08d3d

commit 31f5fc8fea89ab3ac73445412fee82569bf08d3d
Author: Caleb James DeLisle <cjd at cjdns.fr>
AuthorDate: Tue Oct 28 18:15:33 2025 +0000

    econet: New device: Zyxel PMG5617GA
    
    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 at cjdns.fr>
    Link: https://github.com/openwrt/openwrt/pull/20580
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 target/linux/econet/base-files/sbin/en75_chboot    |  8 +++
 .../linux/econet/dts/en751221_zyxel_pmg5617ga.dts  | 82 ++++++++++++++++++++++
 target/linux/econet/image/en751221.mk              | 10 +++
 3 files changed, 100 insertions(+)

diff --git a/target/linux/econet/base-files/sbin/en75_chboot b/target/linux/econet/base-files/sbin/en75_chboot
index 0d5cc6239f..ec95596bda 100755
--- a/target/linux/econet/base-files/sbin/en75_chboot
+++ b/target/linux/econet/base-files/sbin/en75_chboot
@@ -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
index 0000000000..12f9c61ef9
--- /dev/null
+++ b/target/linux/econet/dts/en751221_zyxel_pmg5617ga.dts
@@ -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 at 0 {
+		device_type = "memory";
+		reg = <0x00000000 0x8000000>;
+	};
+
+	chosen {
+		stdout-path = "/serial at 1fbf0000:115200";
+		linux,usable-memory-range = <0x00020000 0x07fe0000>;
+	};
+};
+
+&nand {
+	status = "okay";
+	econet,bmt;
+
+	partitions {
+		compatible = "fixed-partitions";
+		#address-cells = <1>;
+		#size-cells = <1>;
+
+		partition at 0 {
+			label = "bootloader";
+			reg = <0x0 0x40000>;
+			read-only;
+		};
+
+		partition at 40000 {
+			label = "romfile";
+			reg = <0x40000 0x40000>;
+			read-only;
+		};
+
+		partition at 80000 {
+			label = "tclinux";
+			reg = <0x80000 0x3800000>;
+			read-only;
+			econet,enable-remap;
+		};
+
+		/* Nested inside of tclinux */
+		partition at 480000 {
+			label = "rootfs";
+			reg = <0x480000 0x3400000>;
+			linux,rootfs;
+			read-only;
+		};
+
+		partition at 3880000 {
+			label = "tclinux_alt";
+			reg = <0x3880000 0x0036c0000>;
+		};
+
+		partition at 6f40000 {
+			label = "wwan";
+			reg = <0x006f40000 0x000100000>;
+		};
+
+		partition at 7040000 {
+			label = "factory_data";
+			reg = <0x007040000 0x000400000>;
+		};
+
+		partition at 7440000 {
+			label = "rom-d";
+			reg = <0x007440000 0x000100000>;
+		};
+
+		partition at 7540000 {
+			label = "reservearea";
+			reg = <0x007540000 0x000080000>;
+		};
+	};
+};
diff --git a/target/linux/econet/image/en751221.mk b/target/linux/econet/image/en751221.mk
index 715687e0c2..16154b3fc0 100644
--- a/target/linux/econet/image/en751221.mk
+++ b/target/linux/econet/image/en751221.mk
@@ -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




More information about the lede-commits mailing list