]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
realtek: add support for ZyXEL GS1900-8HP B2 24418/head
authorPeter Putzer <openwrt@mundschenk.at>
Sat, 25 Jul 2026 10:28:06 +0000 (10:28 +0000)
committerJonas Jelonek <jelonek.jonas@gmail.com>
Mon, 27 Jul 2026 20:54:33 +0000 (22:54 +0200)
The ZyXEL GS1900-8HP B2 is an 8-port gigabit switch with PoE+ support. It's a new
hardware revision that uses the `realtek,pse-mcu-gen2` PSE dialect with 115200 baud
like the GS1900-10HP B1. Other hardware changes are unknown, but the switch works
fine using the pre-PSE `zyxel,gs1900-8hp-b1` image with the `realtek-poe` user-space
PoE implementation.

The installation instructions from the initial support for the A1 and B1 revisions
still apply (https://github.com/openwrt/openwrt/commit/c4bfe68c83910e613f07350587a8709a16bd1ffa):

* Configure your client with a static 192.168.1.x IP (e.g. 192.168.1.2).
* Set up a TFTP server on your client and make it serve the initramfs
  image.
* Connect serial, power up the switch, interrupt U-boot by hitting the
  space bar, and enable the network:
  > rtk network on
* Since the GS1900-10HP is a dual-partition device, you want to keep the
  OEM firmware on the backup partition for the time being. OpenWrt can
  only boot off the first partition anyway (hardcoded in the DTS). To
  make sure we are manipulating the first partition, issue the following
  commands:
  > setsys bootpartition 0
  > savesys
* Download the image onto the device and boot from it:
  > tftpboot 0x84f00000 192.168.1.2:openwrt-realtek-generic-zyxel_gs1900-8hp-b2-initramfs-kernel.bin
  > bootm
* Once OpenWrt has booted, scp the sysupgrade image to /tmp and flash it:
  > sysupgrade /tmp//tmp/openwrt-realtek-generic-zyxel_gs1900-8hp-b2-squashfs-sysupgrade.bin

Alternatively, after factory-resetting the switch, you can:

* Log in to OEM management web interface. It should be at http://192.168.1.1
* Navigate to `Maintenance > Firmware > Management`
* If "Active Image" has the first option selected, OpenWrt will need to be
  flashed to the "Active" partition. If the second option is selected, OpenWrt
  will need to be flashed to the "Backup" partition.
* Navigate to `Maintenance > Firmware > Upload`
* Upload the initramfs-kernel.bin file by your preferred method to the previously
  determined partition. When prompted, select to boot from the newly flashed image,
  and reboot the switch.
* Once OpenWrt has booted, scp the sysupgrade.bin image to /tmp and flash it thought SSH.
  - OpenWrt does not include openssh-sftp-server by default. If your SCP client fails due
    to lacking an SFTP server on the device, consider using the legacy SCP protocol
    instead. With OpenSSH's scp this can be done by adding the -O option on the command
    line.
  - `sysupgrade -n /tmp/<sysupgrade file name>`
* It may be necessary to restart the network (/etc/init.d/network restart) on the running
  initramfs image.

See the GS199-8HP A1 wiki page for more information (https://openwrt.org/toh/zyxel/gs1900-8hp_v1).

Signed-off-by: Peter Putzer <openwrt@mundschenk.at>
Link: https://github.com/openwrt/openwrt/pull/24418
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
package/boot/uboot-tools/uboot-envtools/files/realtek
target/linux/realtek/base-files/etc/board.d/02_network
target/linux/realtek/base-files/etc/board.d/05_compat-version
target/linux/realtek/dts/rtl8380_zyxel_gs1900-8hp-b2.dts [new file with mode: 0644]
target/linux/realtek/image/rtl838x.mk

index 6a4e08b3ffb2f0d6c3a6528dd85298b798ef9e12..fd94b498d3a0b92daa2be01d227bc177910b7555 100644 (file)
@@ -20,6 +20,7 @@ d-link,dgs-1210-28|\
 zyxel,gs1900-8-a1|\
 zyxel,gs1900-8hp-a1|\
 zyxel,gs1900-8hp-b1|\
+zyxel,gs1900-8hp-b2|\
 zyxel,gs1900-10hp-a1|\
 zyxel,gs1900-10hp-b1|\
 zyxel,gs1900-16-a1|\
index 6ca07db7bb1d6a6cded6fb7501b2ff97b8eb3c4d..25cf2971b54ce357f6217e4edae8c87589fa23d7 100644 (file)
@@ -156,6 +156,7 @@ realtek_setup_macs()
        zyxel,gs1900-8-b1|\
        zyxel,gs1900-8hp-a1|\
        zyxel,gs1900-8hp-b1|\
+       zyxel,gs1900-8hp-b2|\
        zyxel,gs1920-24hp-v1|\
        zyxel,xgs1250-12-a1|\
        zyxel,xgs1250-12-b1)
index ab4c71905e2781a3d4534e7f97fe1b3ee11ffdad..13c744737c3c4fc6f11f668e3bb47cd3bb9782ca 100644 (file)
@@ -17,6 +17,7 @@ case "$(board_name)" in
        zyxel,gs1900-8-b1 | \
        zyxel,gs1900-8hp-a1 | \
        zyxel,gs1900-8hp-b1 | \
+       zyxel,gs1900-8hp-b2 | \
        zyxel,gs1900-10hp-a1 | \
        zyxel,gs1900-10hp-b1 | \
        zyxel,gs1900-16-a1 | \
diff --git a/target/linux/realtek/dts/rtl8380_zyxel_gs1900-8hp-b2.dts b/target/linux/realtek/dts/rtl8380_zyxel_gs1900-8hp-b2.dts
new file mode 100644 (file)
index 0000000..078679f
--- /dev/null
@@ -0,0 +1,13 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "rtl8380_zyxel_gs1900-8hp.dtsi"
+
+/ {
+       compatible = "zyxel,gs1900-8hp-b2", "realtek,rtl838x-soc";
+       model = "Zyxel GS1900-8HP B2 Switch";
+};
+
+&pse {
+       compatible = "zyxel,gs1900-8hp-b2-pse", "realtek,pse-mcu-gen2";
+       current-speed = <115200>;
+};
index 4e52f83ad9887a48b9388b4ae034c09e54ef5767..884cb04a5bb7cb0bc1917a2de18947aefcd587c3 100644 (file)
@@ -459,6 +459,16 @@ define Device/zyxel_gs1900-8hp-b1
 endef
 TARGET_DEVICES += zyxel_gs1900-8hp-b1
 
+define Device/zyxel_gs1900-8hp-b2
+  $(Device/zyxel_gs1900)
+  SOC := rtl8380
+  DEVICE_MODEL := GS1900-8HP
+  DEVICE_VARIANT := B2
+  ZYXEL_VERS := AAHI
+  DEVICE_PACKAGES += kmod-pse-realtek-mcu-uart
+endef
+TARGET_DEVICES += zyxel_gs1900-8hp-b2
+
 define Device/zyxel_gs1900-24-a1
   $(Device/zyxel_gs1900)
   SOC := rtl8382