From c8c2dfc30e90998149da185ddbdbb368e993276a Mon Sep 17 00:00:00 2001 From: David Evans Date: Sun, 19 Jul 2026 14:39:19 +0000 Subject: [PATCH] realtek: add support for Zyxel GS1920-24 v1 The GS1920-24 v1 is the non-PoE, fanless sibling of the already supported GS1920-24HP v1 (ZyNOS firmware code AAOB vs. AAOC) and shares its board layout and flash map. Hardware: * SoC: Realtek RTL8392M * Flash: 16 MiB SPI NOR (Macronix MX25L12835F) * RAM: 128 MiB DDR3 * Ethernet: 24x 10/100/1000BASE-T (3x RTL8218B), 4x combo RJ45/SFP (RTL8214FC) * Hardware monitor: Analog Devices ADT7463C * LEDs: PWR, SYS, ALM, LOCATOR, per-port link/activity * Buttons: 1x reset (front) * UART: RS-232 level (not TTL) on header J2, DCE pinout (Tx pin 2, Rx pin 3, GND pin 5), 9600 8N1 * Power: 100-240 V AC, 50/60 Hz, 25.9 W max * No PoE, no fan MAC address: * Ethernet: factory MAC from the bootbase partition at offset 0x1fff8 through the factory_macaddr nvmem cell * ethernet0 is the label MAC device; 02_network uses this address for the LAN/bridge without assigning individual per-port MAC addresses The hardware monitor at I2C address 0x2e was identified on hardware as an ADT7463C from company ID 0x41 and VERSTEP 0x6a. The GS1920-24HP v1 uses an ADT7468, while the v2 uses an lm85-family hardware monitor at the same address. All GS1920-24 variants use hardware monitors supported by kmod-hwmon-lm85. The shared GS1920 device recipe therefore supplies that package, while the GS1920-24HP-specific recipe additionally supplies the PSE driver. Installation: 1. Connect to the console. Optionally switch BootBase to 115200 baud with ATBA5 (and reconnect at that rate). 2. Load an initramfs image into RAM: ATUP80100000, send the image via XMODEM, then ATGO80100000. 3. Copy loader.bin and the sysupgrade image to /tmp on the running initramfs system. 4. Flash both: mtd write /tmp/loader.bin loader mtd write /tmp/*-squashfs-sysupgrade.bin firmware 5. Reboot. The SFP side of the combo ports is untested (no modules available); the copper side of all 28 ports works. Tested on hardware: Flash installation and runtime operation verified. Signed-off-by: David Evans Link: https://github.com/openwrt/openwrt/pull/24962 Signed-off-by: Jonas Jelonek --- .../realtek/base-files/etc/board.d/02_network | 1 + .../dts/rtl8392_zyxel_gs1920-24-v1.dts | 22 +++++++++++++++++++ target/linux/realtek/image/rtl839x.mk | 10 +++++++++ 3 files changed, 33 insertions(+) create mode 100644 target/linux/realtek/dts/rtl8392_zyxel_gs1920-24-v1.dts diff --git a/target/linux/realtek/base-files/etc/board.d/02_network b/target/linux/realtek/base-files/etc/board.d/02_network index f33b5200f4e..6f5975c41e3 100644 --- a/target/linux/realtek/base-files/etc/board.d/02_network +++ b/target/linux/realtek/base-files/etc/board.d/02_network @@ -97,6 +97,7 @@ realtek_setup_macs() plasmacloud,psx28|\ sirivision,sr-st3408f|\ ubnt,usw-pro-xg-8-poe|\ + zyxel,gs1920-24-v1|\ zyxel,gs1920-24hp-v2) lan_mac="$(get_mac_label)" ;; diff --git a/target/linux/realtek/dts/rtl8392_zyxel_gs1920-24-v1.dts b/target/linux/realtek/dts/rtl8392_zyxel_gs1920-24-v1.dts new file mode 100644 index 00000000000..74785182e5a --- /dev/null +++ b/target/linux/realtek/dts/rtl8392_zyxel_gs1920-24-v1.dts @@ -0,0 +1,22 @@ +// SPDX-License-Identifier: GPL-2.0-or-later + +/dts-v1/; + +#include "rtl839x_zyxel_gs1920-24-common.dtsi" +#include "rtl8392_zyxel_gs1920-24-v1-common.dtsi" + +/ { + compatible = "zyxel,gs1920-24-v1", "realtek,rtl8392-soc"; + model = "Zyxel GS1920-24v1"; + + aliases { + label-mac-device = ðernet0; + }; +}; + +&i2c4 { + adt7463: adt7463@2e { + compatible = "adi,adt7463"; + reg = <0x2e>; + }; +}; diff --git a/target/linux/realtek/image/rtl839x.mk b/target/linux/realtek/image/rtl839x.mk index 16e61ab2483..2f8a284d5df 100644 --- a/target/linux/realtek/image/rtl839x.mk +++ b/target/linux/realtek/image/rtl839x.mk @@ -138,6 +138,16 @@ endif $(Device/rt-loader-bootbase) endef +define Device/zyxel_gs1920-24-v1 + $(Device/zyxel_gs1920) + SOC := rtl8392 + FLASH_ADDR := 0xb40c0000 + IMAGE_SIZE := 12144k + DEVICE_MODEL := GS1920-24 + DEVICE_VARIANT := v1 +endef +TARGET_DEVICES += zyxel_gs1920-24-v1 + define Device/zyxel_gs1920-24hp $(Device/zyxel_gs1920) DEVICE_MODEL := GS1920-24HP