openwrt/target/linux/realtek/image/rtl839x.mk
Jonas Jelonek 0c98150650 realtek: add support for Zyxel GS1920-24HPv2
Add support for V2 of Zyxel GS1920-24HP with 24 copper ports, 4 combo
SFP/copper ports and PoE.

Specifications:
---------------

 * SoC: Realtek RTL8391M
 * Flash: 32MiB Flash
 * RAM: 256MiB
 * Ethernet: 24x 10/100/1000 Mbps
 * SFP: 4 combo copper/SFP ports (via RTL8214FC)
 * PoE: 24x
 * Fan controller: ADT7468
 * Serial: UART 3.3V TTL logic, 115200 8N1
     * pinout (front to back): GND RX TX VCC
 * Buttons: 1x Reset, 1x Restore

Notable differences to V1 (which require dedicated support):
 * "smaller" SoC (RTL8391M)
 * more RAM (256MiB vs 128MiB)
 * more Flash (32MiB vs 16MiB) + different layout
 * RTL8214FC uses different port numbers
 * SFP 25 and 26 use shared SCL
 * SFP 27 and 28 use different SDA
 * different monitoring IC (LM96000 vs ADT7468)
 * faster serial console by default
 * serial header easier accessible

Note that the port LEDs do not work correctly yet due to missing
LED configuration for RTL839X.

Installation:
-------------

(copied mostly as-is from 2a55846bf4)

This device uses ZyNOS instead of Linux, this makes installation a bit
more cumbersome. Serial console is required!

1. Set the switch to boot from the first image. This step is crucial,
   it will fail to boot if this is not set properly.

2. Connect to the switch using serial and interrupt the boot process
   to enter debug/recovery mode.

3. Load the OpenWrt initramfs image via XMODEM. You need to obtain an
   unlock code, based on your MAC address, first. See the excellent write
   up at https://www.ixo.de/info/zyxel_uclinux/ for details. Replace
   unlock_code in the commands below by the code obtained.
   The file length in bytes needs to be given instead of file_length below.
   You also need an XMODEM upload utility like "lrzsz-sx -X" to transfer
   the file. Start the XMODEM upload after running the ATUPxxxx command:

     > ATEN1,unlock_code
     > ATUP80100000,file_length
     > ATGO80100000

4. Wait for OpenWrt to boot. Once this is done, transfer the loader binary
   and the sysupgrade image to "/tmp" using scp.

5. Install OpenWrt permanently by running the following two commands on
   the switch (over SSH):

    > mtd write /tmp/loader.bin loader
    > mtd write /tmp/sysupgrade.bin firmware

6. Reboot the switch and enjoy OpenWrt.

NB: You do not need to touch the loader binary unless it's recommended.
    The loader is not part of a regular sysupgrade file and will be left
    untouched. The boot loader only checks if the loader is valid to be
    able to boot.

Recovery/ Return to stock:
--------------------------

Just spam the "u" key during (or "z" for 9600 baud) during memory testing
to trigger a recovery XMODEM upload at 115200 baud. A standard OEM upgrade
image works properly.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21944
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-02-13 23:33:25 +01:00

140 lines
3.1 KiB
Makefile

# SPDX-License-Identifier: GPL-2.0-only
include ./common.mk
define Device/d-link_dgs-1210-52
$(Device/d-link_dgs-1210)
SOC := rtl8393
DEVICE_MODEL := DGS-1210-52
endef
TARGET_DEVICES += d-link_dgs-1210-52
define Device/edgecore_ecs4100-12ph
$(Device/uimage-rt-loader)
SOC := rtl8393
DEVICE_VENDOR := Edgecore
DEVICE_MODEL := ECS4100-12PH
IMAGE_SIZE := 14336k
DEVICE_PACKAGES := \
kmod-eeprom-at24 \
kmod-hwmon-adt7470 \
kmod-hwmon-lm75 \
kmod-thermal \
realtek-poe
endef
TARGET_DEVICES += edgecore_ecs4100-12ph
define Device/hpe_1920-48g
$(Device/hpe_1920)
SOC := rtl8393
DEVICE_MODEL := 1920-48G (JG927A)
H3C_DEVICE_ID := 0x0001002a
endef
TARGET_DEVICES += hpe_1920-48g
define Device/hpe_1920-48g-poe
$(Device/hpe_1920)
SOC := rtl8393
DEVICE_MODEL := 1920-48G-PoE (JG928A)
DEVICE_PACKAGES += realtek-poe kmod-hwmon-gpiofan
H3C_DEVICE_ID := 0x0001002b
endef
TARGET_DEVICES += hpe_1920-48g-poe
# When the factory image won't fit anymore, it can be removed.
# New installation will be performed booting the initramfs image from
# ram and then flashing the sysupgrade image from OpenWrt
define Device/netgear_gs750e
SOC := rtl8393
IMAGE_SIZE := 7552k
FACTORY_SIZE := 6528k
DEVICE_VENDOR := NETGEAR
DEVICE_MODEL := GS750E
UIMAGE_MAGIC := 0x174e4741
IMAGES += factory.bix
IMAGE/factory.bix := \
append-kernel | \
pad-to 64k | \
append-rootfs | \
pad-rootfs | \
check-size $$$$(FACTORY_SIZE)
endef
TARGET_DEVICES += netgear_gs750e
define Device/panasonic_m48eg-pn28480k
SOC := rtl8393
IMAGE_SIZE := 16384k
DEVICE_VENDOR := Panasonic
DEVICE_MODEL := Switch-M48eG
DEVICE_VARIANT := PN28480K
DEVICE_PACKAGES := \
kmod-hwmon-gpiofan \
kmod-hwmon-lm75 \
kmod-i2c-mux-pca954x \
kmod-thermal
endef
TARGET_DEVICES += panasonic_m48eg-pn28480k
define Device/tplink_sg2452p-v4
SOC := rtl8393
KERNEL_SIZE := 6m
IMAGE_SIZE := 26m
DEVICE_VENDOR := TP-Link
DEVICE_MODEL := SG2452P
DEVICE_VARIANT := v4
DEVICE_PACKAGES := \
kmod-hwmon-gpiofan \
kmod-hwmon-tps23861
endef
TARGET_DEVICES += tplink_sg2452p-v4
define Device/zyxel_gs1900-48-a1
$(Device/zyxel_gs1900)
SOC := rtl8393
DEVICE_MODEL := GS1900-48
DEVICE_VARIANT := A1
ZYXEL_VERS := AAHN
SUPPORTED_DEVICES += zyxel,gs1900-48
endef
TARGET_DEVICES += zyxel_gs1900-48-a1
define Device/zyxel_gs1920-24hp
ifeq ($(IB),)
ARTIFACTS := loader.bin
ARTIFACT/loader.bin := \
rt-loader-standalone | \
zynsig
endif
DEVICE_VENDOR := Zyxel
DEVICE_MODEL := GS1920-24HP
DEVICE_PACKAGES := \
kmod-hwmon-lm85
KERNEL := \
kernel-bin | \
append-dtb | \
rt-compress | \
uImage lzma
KERNEL_INITRAMFS := \
kernel-bin | \
append-dtb | \
rt-compress | \
rt-loader
endef
define Device/zyxel_gs1920-24hp-v1
$(Device/zyxel_gs1920-24hp)
SOC := rtl8392
FLASH_ADDR := 0xb40c0000
IMAGE_SIZE := 12144k
DEVICE_VARIANT := v1
endef
TARGET_DEVICES += zyxel_gs1920-24hp-v1
define Device/zyxel_gs1920-24hp-v2
$(Device/zyxel_gs1920-24hp)
SOC := rtl8391
FLASH_ADDR := 0xb4210000
IMAGE_SIZE := 30720k
DEVICE_VARIANT := v2
endef
TARGET_DEVICES += zyxel_gs1920-24hp-v2