realtek: rtl930x: add support for GoodTop GT-SWTXG8FM

The GoodTop GT-SWTXG8FM is an eight-port SFP+ managed switch based
on the Realtek RTL9303.

Device specification:
- SoC: Realtek RTL9303 rev B
- RAM: 128 MiB
- Flash: 16 MiB Winbond W25Q128 SPI NOR
- Ethernet: 8x SFP+ cages
- Button: reset, GPIO 5 active-low
- System LED: GPIO 0
- Power input: 12 V DC
- Bootloader: Realtek U-Boot 2011.12
- Vendor board model: RTL9303_8XGE

Serial:
- Stock firmware configures ttyS0 at 38400 baud.
- The physical UART header location and pinout were not identified
  during bring-up. Serial access is not required for normal install.

Flash layout:
- 0x000000-0x0e0000: loader / LOADER
- 0x0e0000-0x0f0000: bdinfo / BDINFO
- 0x0f0000-0x100000: sysinfo / SYSINFO
- 0x100000-0x200000: vendor configuration / JFFS2 CFG
- 0x200000-0x300000: vendor log / JFFS2 LOG
- 0x300000-0xf00000: firmware / RUNTIME
- 0xf00000-0x1000000: oeminfo / OEMINFO

The factory MAC address is read from ethaddr in BDINFO through NVMEM.

The vendor bootloader uses legacy uImage magic 0x83800000.
Generate OpenWrt images with this magic and configure the firmware
splitter accordingly.

A dedicated squashfs-factory.bix image is generated for installation
from the stock web interface. The regular squashfs-sysupgrade.bin image
is used for subsequent OpenWrt upgrades.

Installation:
1. Open Management -> Firmware -> Manual Upgrade in the stock web UI.
2. Select Upgrade and HTTP.
3. Upload the squashfs-factory.bix image.
4. Wait for "Upgrade Image Done", then reboot the switch.

The stock web updater has been verified on hardware. Persistent
squashfs boot, writable JFFS2 overlay, reboot persistence and normal
OpenWrt sysupgrade have also been validated.

All eight SFP+ cages have been individually validated with 10G links.
Port LEDs, the system LED, reset button and DSA VLAN operation have
been tested.

Return to stock was validated using the original 12 MiB RUNTIME backup
from the same physical device. Under OpenWrt, copy that image to
/tmp/RUNTIME.bin and restore only the firmware partition with:

  mtd -f write /tmp/RUNTIME.bin firmware
  mtd verify /tmp/RUNTIME.bin firmware
  sync
  reboot

The loader, BDINFO, SYSINFO and OEMINFO partitions are not rewritten
by this procedure and were verified unchanged after restoration.

Signed-off-by: Christian Talavera <ctalaveraw@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/25391
Signed-off-by: Jonas Jelonek <jonas@jonasjelonek.de>
This commit is contained in:
Christian Talavera authored and Jonas Jelonek committed 2026-09-30 09:30:57 +02:00
1 parent d1d90e8e2c
commit c1fc123ea6
2 files changed
+39

No files matched your search

@@ -0,0 +1,22 @@
// SPDX-License-Identifier: GPL-2.0-or-later
#include "rtl9303_horaco_zx-swtgw2c8f.dtsi"
/*
* The GT-SWTXG8FM appears to be a rebrand of the Horaco ZX-SWTGW2C8F
* with minor LED configuration differences.
*/
/ {
compatible = "goodtop,gt-swtxg8fm", "realtek,rtl9303-soc";
model = "GoodTop GT-SWTXG8FM";
};
&led_set {
clock-frequency = <2500000>;
};
&leds {
pinctrl-0 = <&pinmux_disable_sys_led>,
<&pinmux_enable_led_sync>;
};
+17
View File
@@ -22,6 +22,23 @@ define Device/draytek_g2282x
endef
TARGET_DEVICES += draytek_g2282x
define Device/goodtop_gt-swtxg8fm
SOC := rtl9303
UIMAGE_MAGIC := 0x83800000
DEVICE_VENDOR := GoodTop
DEVICE_MODEL := GT-SWTXG8FM
IMAGE_SIZE := 12288k
$(Device/kernel-lzma)
IMAGES += factory.bix
IMAGE/factory.bix := \
append-kernel | \
pad-to 64k | \
append-rootfs | \
pad-rootfs | \
check-size
endef
TARGET_DEVICES += goodtop_gt-swtxg8fm
define Device/sirivision_sr-st3408f
SOC := rtl9303
UIMAGE_MAGIC := 0x93000000