Zyxel XGS1250-12: No network after flashing stable

Hi there! I have just bought my first device for using OpenWRT, a Zyxel XGS1250-12 network switch. After flashing the snapshot firmware linked on the hardware page, I was able to ping the device on 192.168.1.1. But the wiki page says the device is supported in 24.10, so I flashed openwrt-realtek-rtl930x-zyxel_xgs1250-12-squashfs-sysupgrade.bin from the firmware selector.

Now, I can no longer access the device over network. Serial connection still works, and link is detected when I plug in the ethernet cable, but the indicator lights of the port don't light up, and it doesn't respond to ping.

Does that mean the device is not really supported by the stable firmware? If yes, how can I flash the snapshot firmware again without having network access? Is there anything else I can check?

See the full boot log below:

U-Boot Version V2.0.0.5 (Oct 19 2023 - 16:25:52)

Board: RTL9300 CPU:800MHz LX:175MHz DDR:600MHz
DRAM:  128 MB
SPI-F: MXIC/C22018/MMIO16-1/ModeC 1x16 MB (plr_flash_info @ 83f958e0)
Loading 65536B env. variables from offset 0xe0000
Net:   Net Initialization Skipped
No ethernet found.
RTCORE Driver Module Initialize
  IOAL init
  Hardware-profile probe  GPIO probe (unit 0): (found)
  GPIO Init
 (XGS1250_12_V2)
  Hardware-profile init
  GPIO probe (unit 0): (found)
  GPIO Init rtl9300_gpio_init had already been initialized!

  SPI init (unit 0) 
  I2C probe (unit 0)
  I2C init (unit 0)
  NIC probe (unit 0)
  Loader RTNIC Driver Module Initialize
  IOAL init
  CPU  : 800 MHz
  RAM  : 128 MB
  FLASH: 16 MB
  Model: XGS1250_12_V2
  MAC  : 70:49:A2:16:A5:AE

 0 
Enable network
RTK Driver Module Initialize
  MAC probe (unit 0)
    Chip 9302 (found)
  MAC init (unit 0)
  SMI protocol probe (unit 0)
  PHY probe (unit 0)
  Chip Construct (unit 0)
    Chip Construct
    Disable PHY Polling
    PHY Reset
    MAC Construct
    Turn Off Serdes
    Serdes Construct
    PHY Construct
    Turn On Serdes
    Mac_Polling_PHY Config
    Enable PHY Polling
    Misc
  PHY init (unit 0)
  Mgmt_dev init (unit 0) 
Please wait for PHY init-time ...

## Booting kernel from Legacy Image at 81000000 ...
   Image Name:   MIPS OpenWrt Linux-6.6.73
   Created:      2025-02-03  23:09:37 UTC
   Image Type:   MIPS Linux Kernel Image (gzip compressed)
   Data Size:    3616505 Bytes = 3.4 MB
   Load Address: 80100000
   Entry Point:  80100000
   Verifying Checksum ... OK
   Uncompressing Kernel Image ... OK

Starting kernel ...

[    0.000000] Linux version 6.6.73 (builder@buildhost) (mips-openwrt-linux-musl-gcc (OpenWrt GCC 13.3.0 r28427-6df0e3d02a) 13.3.0, GNU ld (GNU Binutils) 2.42) #0 Mon Feb  3 23:09:37 2025
[    0.000000] RTL838X model is 0
[    0.000000] RTL839X model is 0
[    0.000000] RTL93XX model is 93021001
[    0.000000] SoC Type: RTL9302B
[    0.000000] printk: bootconsole [early0] enabled
[    0.000000] CPU0 revision is: 00019555 (MIPS 34Kc)
[    0.000000] MIPS: machine is Zyxel XGS1250-12 Switch
[    0.000000] earlycon: ns16550a0 at MMIO 0x18002000 (options '115200n8')
[    0.000000] printk: bootconsole [ns16550a0] enabled
[    0.000000] Initrd not found or empty - disabling initrd
[    0.000000] Using appended Device Tree.
[    0.000000] Primary instruction cache 32kB, VIPT, 4-way, linesize 32 bytes.
[    0.000000] Primary data cache 32kB, 4-way, PIPT, no aliases, linesize 32 bytes
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000000000000-0x0000000007ffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000000000-0x0000000007ffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x0000000007ffffff]
[    0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
[    0.000000] pcpu-alloc: [0] 0 
[    0.000000] Kernel command line: earlycon
[    0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes, linear)
[    0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes, linear)
[    0.000000] Writing ErrCtl register=00021877
[    0.000000] Readback ErrCtl register=00021877
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 32480
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] Memory: 119836K/131072K available (6940K kernel code, 627K rwdata, 884K rodata, 1204K init, 235K bss, 11236K reserved, 0K cma-reserved)
[    0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] NR_IRQS: 256
[    0.000000] Failed to get CPU clock: -2
[    0.000000] CPU frequency from device tree: 800MHz
[    0.000000] clocksource: realtek_otto_timer: mask: 0xfffffff max_cycles: 0xfffffff, max_idle_ns: 38225208801 ns
[    0.000002] sched_clock: 28 bits at 3125kHz, resolution 320ns, wraps every 42949672800ns
[    0.009030] Calibrating delay loop... 531.66 BogoMIPS (lpj=2658304)
[    0.065701] pid_max: default: 32768 minimum: 301
[    0.080797] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.088791] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.106877] RCU Tasks Trace: Setting shift to 0 and lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=1.
[    0.123769] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.134565] futex hash table entries: 256 (order: -1, 3072 bytes, linear)
[    0.144643] pinctrl core: initialized pinctrl subsystem
[    0.152967] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.160196] thermal_sys: Registered thermal governor 'step_wise'
[    0.174755] clocksource: Switched to clocksource realtek_otto_timer
[    0.199418] NET: Registered PF_INET protocol family
[    0.205090] IP idents hash table entries: 2048 (order: 2, 16384 bytes, linear)
[    0.214563] tcp_listen_portaddr_hash hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.223872] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.232368] TCP established hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.240775] TCP bind hash table entries: 1024 (order: 1, 8192 bytes, linear)
[    0.248522] TCP: Hash tables configured (established 1024 bind 1024)
[    0.256261] MPTCP token hash table entries: 512 (order: 0, 6144 bytes, linear)
[    0.264424] UDP hash table entries: 256 (order: 0, 4096 bytes, linear)
[    0.271653] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes, linear)
[    0.280281] NET: Registered PF_UNIX/PF_LOCAL protocol family
[    0.292714] workingset: timestamp_bits=14 max_order=15 bucket_order=1
[    0.301574] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.308020] jffs2: version 2.2 (NAND) (SUMMARY) (ZLIB) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    0.327231] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
[    0.336877] pinctrl-single 1b00cc00.pinmux: 32 pins, size 4
[    0.344933] Serial: 8250/16550 driver, 16 ports, IRQ sharing enabled
[    0.359091] printk: console [ttyS0] disabled
[    0.364359] 18002000.uart: ttyS0 at MMIO 0x18002000 (irq = 30, base_baud = 10937500) is a 16550A
[    0.374071] printk: console [ttyS0] enabled
[    0.374071] printk: console [ttyS0] enabled
[    0.383414] printk: bootconsole [early0] disabled
[    0.383414] printk: bootconsole [early0] disabled
[    0.429438] printk: bootconsole [ns16550a0] disabled
[    0.429438] printk: bootconsole [ns16550a0] disabled
[    0.479937] brd: module loaded
[    0.487384] spi-nor spi0.0: mx25l12805d (16384 Kbytes)
[    0.493301] 7 fixed-partitions partitions found on MTD device spi0.0
[    0.500478] OF: Bad cell count for /soc/spi@1200/flash@0/partitions
[    0.507524] OF: Bad cell count for /soc/spi@1200/flash@0/partitions
[    0.514815] Creating 7 MTD partitions on "spi0.0":
[    0.520169] 0x000000000000-0x0000000e0000 : "u-boot"
[    0.529005] 0x0000000e0000-0x0000000f0000 : "u-boot-env"
[    0.537524] 0x0000000f0000-0x000000100000 : "u-boot-env2"
[    0.546046] 0x000000100000-0x000000200000 : "jffs"
[    0.553770] 0x000000200000-0x000000300000 : "jffs2"
[    0.561691] 0x000000300000-0x000000fe0000 : "firmware"
[    0.570123] 2 uimage-fw partitions found on MTD device firmware
[    0.576796] Creating 2 MTD partitions on "firmware":
[    0.582327] 0x000000000000-0x000000380000 : "kernel"
[    0.590309] 0x000000380000-0x000000ce0000 : "rootfs"
[    0.598300] mtd: setting mtd7 (rootfs) as root device
[    0.604000] 1 squashfs-split partitions found on MTD device rootfs
[    0.610942] 0x0000005e0000-0x000000ce0000 : "rootfs_data"
[    0.619393] 0x000000fe0000-0x000001000000 : "log"
[    0.640305] Probing RTL838X eth device pdev: 818a9a00, dev: 818a9a10
[    0.666676] Found SoC ID: 9302: RTL9302B, family 9300
[    0.672427] Using MAC 000000e04c000000
[    0.676700] set sds port 0 to 2
[    0.680229] set sds port 24 to 6
[    0.683813] set sds port 25 to 7
[    0.687459] set sds port 26 to 8
[    0.691055] set sds port 27 to 9
[    0.695513] c45_mask: 000e0000
[    0.763869] mdio_bus mdio-bus: MDIO device at address 24 is missing.
[    0.777438] mdio_bus mdio-bus: MDIO device at address 25 is missing.
[    0.790955] mdio_bus mdio-bus: MDIO device at address 26 is missing.
[    0.801636] REALTEK RTL9300 SERDES mdio-bus:1b: Detected internal RTL9300 Serdes
[    0.819302] i2c_dev: i2c /dev entries driver
[    0.824316] rtl9300_i2c_probe probing I2C adapter
[    0.829661] i2c-rtl9300 1b00036c.i2c-rtl9300: SCL speed 100000, mode is 0
[    0.837253] rtl9300_i2c_probe scl_num 0
[    0.841526] rtl9300_i2c_probe sda_num 1
[    0.849726] NET: Registered PF_INET6 protocol family
[    0.869408] Segment Routing with IPv6
[    0.873608] In-situ OAM (IOAM) with IPv6
[    0.878248] NET: Registered PF_PACKET protocol family
[    0.883944] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this.
[    0.899095] 8021q: 802.1Q VLAN Support v1.8
[    0.927716] sfp sfp-p12: Host maximum power 1.0W
[    0.998408] REALTEK RTL9300 SERDES rtl838x slave mii-0:1b: Detected internal RTL9300 Serdes
[    1.019809] REALTEK RTL9300 SERDES rtl838x slave mii-0:3f: Detected internal RTL9300 Serdes
[    1.039338] rtl93xx_setup called
[    1.042992] In rtl83xx_vlan_setup
[    1.046733] In rtl930x_vlan_profile_setup
[    1.051194] In rtl930x_vlan_profile_setup
[    1.055675] UNKNOWN_MC_PMASK: 000000001fffffff
[    1.060621] VLAN 0: L2 learn: 0; Unknown MC PMasks: L2 1fffffff, IPv4 1fffffff, IPv6: 1fffffff
[    1.060635]   Routing enabled: IPv4 UC y, IPv6 UC y, IPv4 MC y, IPv6 MC y
[    1.077791]   Bridge enabled: IPv4 MC n, IPv6 MC n,
[    1.083212] VLAN profile 0: raw 00033000 00000000 1fffffff 1fffffff 1fffffff
[    2.174799] rtl83xx_enable_phy_polling:          f0000ff
[    2.180728] rtl930x_pie_init
[    2.184136] rtl930x_led_init called
[    2.188155] rtl930x_led_init led_set configuration invalid skipping over this set
[    2.196546] rtl930x_led_init bb00cc00: 01052659
[    2.201588] rtl930x_led_init bb00cc04: aaaa5555
[    2.206644] rtl930x_led_init bb00cc08: 007faaaa
[    2.211680] rtl930x_led_init bb00cc0c: 00000000
[    2.216737] rtl930x_led_init bb00cc10: 00000000
[    2.221774] rtl930x_led_init bb00cc14: 00000000
[    2.226831] rtl930x_led_init bb00cc18: 0a200a01
[    2.231869] rtl930x_led_init bb00cc1c: 0a0b0a28
[    2.236925] rtl930x_led_init bb00cc20: 0a820a0b
[    2.241962] rtl930x_led_init bb00cc24: 00000000
[    2.247018] rtl930x_led_init bb00cc28: 0a200b80
[    2.252055] rtl930x_led_init bb00cc2c: 00000000
[    2.257111] rtl930x_led_init bb00cc30: 00950000
[    2.262150] rtl930x_led_init bb00cc34: 00000000
[    2.267206] rtl930x_led_init bb00cc38: 00950000
[    2.272243] rtl930x_led_init bb00cc3c: 0f0000ff
[    2.277315] rtl930x_led_init bb00cc40: 0f0000ff
[    2.282363] rtl930x_led_init bb00cc44: 0f0000ff
[    2.287427] rtl930x_led_init bb00cc48: 00000000
[    2.292465] rtl930x_led_init bb00cc4c: 00000000
[    2.297530] rtl930x_led_init bb00cc50: 00000000
[    2.302576] rtl930x_led_init bb00cc54: 00000000
[    2.307638] rtl930x_led_init bb00cc58: 00000000
[    2.312679] rtl930x_led_init bb00cc5c: 00000000
[    2.317903] rtl83xx-switch switch@1b000000: configuring for fixed/internal link mode
[    2.326590] rtl93xx_phylink_mac_config port 28, mode 1, phy-mode: internal, speed -1, link 0
[    2.337681] rtl83xx-switch switch@1b000000 lan1 (uninitialized): PHY [mdio-bus:00] driver [Generic PHY] (irq=POLL)
[    2.352088] rtl83xx-switch switch@1b000000 lan2 (uninitialized): PHY [mdio-bus:01] driver [Generic PHY] (irq=POLL)
[    2.366622] rtl83xx-switch switch@1b000000 lan3 (uninitialized): PHY [mdio-bus:02] driver [Generic PHY] (irq=POLL)
[    2.381182] rtl83xx-switch switch@1b000000 lan4 (uninitialized): PHY [mdio-bus:03] driver [Generic PHY] (irq=POLL)
[    2.395594] rtl83xx-switch switch@1b000000 lan5 (uninitialized): PHY [mdio-bus:04] driver [Generic PHY] (irq=POLL)
[    2.410056] rtl83xx-switch switch@1b000000 lan6 (uninitialized): PHY [mdio-bus:05] driver [Generic PHY] (irq=POLL)
[    2.424461] rtl83xx-switch switch@1b000000 lan7 (uninitialized): PHY [mdio-bus:06] driver [Generic PHY] (irq=POLL)
[    2.438874] rtl83xx-switch switch@1b000000 lan8 (uninitialized): PHY [mdio-bus:07] driver [Generic PHY] (irq=POLL)
[    2.452172] rtl83xx-switch switch@1b000000 lan9 (uninitialized): no phy at 24
[    2.460207] rtl83xx-switch switch@1b000000 lan9 (uninitialized): failed to connect to PHY: -ENODEV
[    2.470219] rtl83xx-switch switch@1b000000 lan9 (uninitialized): error -19 setting up PHY for tree 0, switch 0, port 24
[    2.482469] rtl83xx-switch switch@1b000000 lan10 (uninitialized): no phy at 25
[    2.490586] rtl83xx-switch switch@1b000000 lan10 (uninitialized): failed to connect to PHY: -ENODEV
[    2.500694] rtl83xx-switch switch@1b000000 lan10 (uninitialized): error -19 setting up PHY for tree 0, switch 0, port 25
[    2.513039] rtl83xx-switch switch@1b000000 lan11 (uninitialized): no phy at 26
[    2.521167] rtl83xx-switch switch@1b000000 lan11 (uninitialized): failed to connect to PHY: -ENODEV
[    2.531285] rtl83xx-switch switch@1b000000 lan11 (uninitialized): error -19 setting up PHY for tree 0, switch 0, port 26
[    2.545238] rtl838x-eth 1b00a300.ethernet eth0: entered promiscuous mode
[    2.552812] DSA: tree 0 setup
[    2.556253] LINK state irq: 23
[    2.559694] In rtl83xx_setup_qos
[    2.563342] L3_IPUC_ROUTE_CTRL 00002000, IPMC_ROUTE 0000077e, IP6UC_ROUTE 00014400, IP6MC_ROUTE 0001db7e
[    2.573936] L3_IPUC_ROUTE_CTRL 00002001, IPMC_ROUTE 00000501, IP6UC_ROUTE 00014581, IP6MC_ROUTE 00012881
[    2.584510] L3_IP_ROUTE_CTRL 0000013f
[    2.588745] rtl930x_dbgfs_init called
[    2.597713] rtl83xx-switch switch@1b000000: Link is Up - 10Gbps/Full - flow control off
[    2.606882] rtl83xx_fib_event_work_do: FIB4 default rule failed
[    2.613495] rtl83xx_fib_event_work_do: FIB4 default rule failed
[    2.632602] clk: Disabling unused clocks
[    2.643126] VFS: Mounted root (squashfs filesystem) readonly on device 31:7.
[    2.656189] Freeing unused kernel image (initmem) memory: 1204K
[    2.662794] This architecture does not have kernel memory protection.
[    2.670003] Run /sbin/init as init process
[    2.674561]   with arguments:
[    2.677884]     /sbin/init
[    2.680889]   with environment:
[    2.684373]     HOME=/
[    2.687016]     TERM=linux
[    3.158570] init: Console is alive
[    3.162783] init: - watchdog -
[    3.463448] kmodloader: loading kernel modules from /etc/modules-boot.d/*
[    3.503466] gpio_button_hotplug: loading out-of-tree module taints kernel.
[    3.515796] kmodloader: done loading kernel modules from /etc/modules-boot.d/*
[    3.534532] init: - preinit -
[    7.124818] random: crng init done
Cannot parse config file '/etc/fw_env.config': No such file or directory
Failed to find NVMEM device
[    8.686652] RESETTING 9300, CPU_PORT 28
[    8.891296] rtl838x-eth 1b00a300.ethernet eth0: configuring for fixed/internal link mode
[    8.900299] In rtl838x_mac_config, mode 1
[    8.905548] rtl83xx-switch switch@1b000000 lan1: configuring for phy/xgmii link mode
[    8.914197] rtl93xx_phylink_mac_config port 0, mode 0, phy-mode: xgmii, speed -1, link 0
[    8.923256] rtl93xx_phylink_mac_config SDS is 2
[    8.928524] 8021q: adding VLAN 0 to HW filter on device lan1
[    8.935168] rtl838x-eth 1b00a300.ethernet eth0: Link is Up - 1Gbps/Full - flow control off
[    8.946027] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[    8.953414] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[    8.967874] rtl83xx_fib_event_work_do: FIB4 failed
[    8.973234] rtl83xx_fib_event_work_do: FIB4 failed
[    8.978669] rtl83xx_fib_event_work_do: FIB4 failed
Press the [f] key and hit [enter] to enter failsafe mode
Press the [1], [2], [3] or [4] key and hit [enter] to select the debug level
[   10.494810] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[   12.095516] rtl83xx-switch switch@1b000000 lan1: Link is Up - 1Gbps/Full - flow control rx/tx
[   13.235588] mount_root: jffs2 not ready yet, using temporary tmpfs overlay
[   13.248144] urandom-seed: Seed file not found (/etc/urandom.seed)
[   13.335326] rtl83xx_fib4_del: no such gateway: 0.0.0.0
[   13.341081] rtl83xx_fib4_del: no such gateway: 0.0.0.0
[   13.351926] rtl83xx-switch switch@1b000000 lan1: Link is Down
[   13.371910] procd: - early -
[   13.375655] procd: - watchdog -
[   13.380613] rtl83xx_fib4_del: no such gateway: 0.0.0.0
[   14.085806] procd: - watchdog -
[   14.090423] procd: - ubus -
[   14.156525] procd: - init -
Please press Enter to activate this console.
[   15.220967] kmodloader: loading kernel modules from /etc/modules.d/*
[   15.299511] gpio-fan gpio-fan: GPIO fan initialized
[   15.471008] kmodloader: done loading kernel modules from /etc/modules.d/*
[   16.963647] urngd: v1.0.2 started.
[   22.039687] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[   52.598472] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[   52.701576] in rtl838x_eth_stop
[   52.706381] rtl838x-eth 1b00a300.ethernet eth0: Link is Down
[   53.227745] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[   53.235143] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[   53.242443] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[   53.249795] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[   53.474969] Using MAC 00007049a216a5ae
[   53.479392] RESETTING 9300, CPU_PORT 28
[   53.684031] rtl838x-eth 1b00a300.ethernet eth0: configuring for fixed/internal link mode
[   53.693034] In rtl838x_mac_config, mode 1
[   53.713960] rtl838x-eth 1b00a300.ethernet eth0: Link is Up - 1Gbps/Full - flow control off
[   53.723356] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[   53.730790] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[   53.785344] rtl83xx-switch switch@1b000000 lan1: configuring for phy/xgmii link mode
[   53.793992] rtl93xx_phylink_mac_config port 0, mode 0, phy-mode: xgmii, speed -1, link 0
[   53.803078] rtl93xx_phylink_mac_config SDS is 2
[   53.808541] 8021q: adding VLAN 0 to HW filter on device lan1
[   53.865370] switch: port 1(lan1) entered blocking state
[   53.871211] switch: port 1(lan1) entered disabled state
[   53.877139] rtl83xx-switch switch@1b000000 lan1: entered allmulticast mode
[   53.884849] rtl838x-eth 1b00a300.ethernet eth0: entered allmulticast mode
[   53.893277] rtl83xx-switch switch@1b000000 lan1: entered promiscuous mode
[   53.977141] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[   53.985431] rtl930x_set_l3_egress_intf writing to index 0: 00000201 10101492
[   54.005716] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[   54.177366] rtl83xx-switch switch@1b000000 lan2: configuring for phy/xgmii link mode
[   54.186074] rtl93xx_phylink_mac_config port 1, mode 0, phy-mode: xgmii, speed -1, link 0
[   54.195135] rtl93xx_phylink_mac_config SDS is -1
[   54.200553] 8021q: adding VLAN 0 to HW filter on device lan2
[   54.225052] switch: port 2(lan2) entered blocking state
[   54.230890] switch: port 2(lan2) entered disabled state
[   54.236815] rtl83xx-switch switch@1b000000 lan2: entered allmulticast mode
[   54.344384] rtl83xx-switch switch@1b000000 lan2: entered promiscuous mode
[   54.418007] rtl83xx-switch switch@1b000000 lan3: configuring for phy/xgmii link mode
[   54.426710] rtl93xx_phylink_mac_config port 2, mode 0, phy-mode: xgmii, speed -1, link 0
[   54.435762] rtl93xx_phylink_mac_config SDS is -1
[   54.441124] 8021q: adding VLAN 0 to HW filter on device lan3
[   54.510040] switch: port 3(lan3) entered blocking state
[   54.515945] switch: port 3(lan3) entered disabled state
[   54.521806] rtl83xx-switch switch@1b000000 lan3: entered allmulticast mode
[   54.575439] rtl83xx-switch switch@1b000000 lan3: entered promiscuous mode
[   54.620899] rtl83xx-switch switch@1b000000 lan4: configuring for phy/xgmii link mode
[   54.629602] rtl93xx_phylink_mac_config port 3, mode 0, phy-mode: xgmii, speed -1, link 0
[   54.638661] rtl93xx_phylink_mac_config SDS is -1
[   54.644018] 8021q: adding VLAN 0 to HW filter on device lan4
[   54.695588] switch: port 4(lan4) entered blocking state
[   54.701433] switch: port 4(lan4) entered disabled state
[   54.707361] rtl83xx-switch switch@1b000000 lan4: entered allmulticast mode
[   54.755482] rtl83xx-switch switch@1b000000 lan4: entered promiscuous mode
[   54.808445] rtl83xx-switch switch@1b000000 lan5: configuring for phy/xgmii link mode
[   54.817175] rtl93xx_phylink_mac_config port 4, mode 0, phy-mode: xgmii, speed -1, link 0
[   54.826239] rtl93xx_phylink_mac_config SDS is -1
[   54.831610] 8021q: adding VLAN 0 to HW filter on device lan5
[   54.905410] switch: port 5(lan5) entered blocking state
[   54.911251] switch: port 5(lan5) entered disabled state
[   54.917180] rtl83xx-switch switch@1b000000 lan5: entered allmulticast mode
[   54.955488] rtl83xx-switch switch@1b000000 lan5: entered promiscuous mode
[   54.974920] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[   54.982296] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[   55.027878] rtl83xx-switch switch@1b000000 lan6: configuring for phy/xgmii link mode
[   55.036580] rtl93xx_phylink_mac_config port 5, mode 0, phy-mode: xgmii, speed -1, link 0
[   55.045633] rtl93xx_phylink_mac_config SDS is -1
[   55.050992] 8021q: adding VLAN 0 to HW filter on device lan6
[   55.198868] switch: port 6(lan6) entered blocking state
[   55.204714] switch: port 6(lan6) entered disabled state
[   55.210646] rtl83xx-switch switch@1b000000 lan6: entered allmulticast mode
[   55.219271] rtl83xx-switch switch@1b000000 lan6: entered promiscuous mode
[   55.386867] rtl83xx-switch switch@1b000000 lan7: configuring for phy/xgmii link mode
[   55.395575] rtl93xx_phylink_mac_config port 6, mode 0, phy-mode: xgmii, speed -1, link 0
[   55.404582] rtl93xx_phylink_mac_config SDS is -1
[   55.410015] 8021q: adding VLAN 0 to HW filter on device lan7
[   55.529501] switch: port 7(lan7) entered blocking state
[   55.535400] switch: port 7(lan7) entered disabled state
[   55.541261] rtl83xx-switch switch@1b000000 lan7: entered allmulticast mode
[   55.549893] rtl83xx-switch switch@1b000000 lan7: entered promiscuous mode
[   55.714077] rtl83xx-switch switch@1b000000 lan8: configuring for phy/xgmii link mode
[   55.722806] rtl93xx_phylink_mac_config port 7, mode 0, phy-mode: xgmii, speed -1, link 0
[   55.731861] rtl93xx_phylink_mac_config SDS is -1
[   55.737245] 8021q: adding VLAN 0 to HW filter on device lan8
[   55.855822] switch: port 8(lan8) entered blocking state
[   55.861666] switch: port 8(lan8) entered disabled state
[   55.867605] rtl83xx-switch switch@1b000000 lan8: entered allmulticast mode
[   55.876231] rtl83xx-switch switch@1b000000 lan8: entered promiscuous mode
[   56.013212] rtl83xx-switch switch@1b000000 lan12: configuring for inband/1000base-x link mode
[   56.022792] rtl93xx_phylink_mac_config port 27, mode 2, phy-mode: 1000base-x, speed -1, link 0
[   56.032429] rtl93xx_phylink_mac_config SDS is 9
[   56.037512] rtl9300_sds_rst 31
[   56.167794] rtl9300_phy_enable_10g_1g 1gbit phy: 00001140
[   56.174842] rtl9300_phy_enable_10g_1g 1gbit phy enabled: 00001140
[   56.182619] rtl9300_phy_enable_10g_1g 10gbit phy: 00002040
[   56.189747] rtl9300_phy_enable_10g_1g 10gbit phy after: 00002040
[   56.197462] rtl9300_phy_enable_10g_1g set medium: 00000002
[   56.204561] rtl9300_phy_enable_10g_1g set medium after: 00000002
[   56.231254] rtl9300_serdes_setup: Configuring RTL9300 SERDES 9
[   56.239778] rtl9300_serdes_mac_link_config: registers before 00000000 00001403
[   56.251834] rtl9300_serdes_mac_link_config: registers after 00000000 00001403
[   56.259828] rtl9300_force_sds_mode: SDS: 9, mode 23
[   56.265290] rtl9300_force_sds_mode --------------------- serdes 9 forcing to 4 ...
[   56.530341] rtl9300_force_sds_mode --------------------- serdes 9 forced to 4 DONE
[   56.840501] rtl9300_sds_10g_idle WARNING: Waiting for RX idle timed out, SDS 9
[   56.848582] start_1.1.1 initial value for sds 9
[   56.910602] end_1.1.1 --
[   56.913425] start_1.1.2 Load DFE init. value
[   56.920193] end_1.1.2
[   56.922720] start_1.1.3 disable LEQ training,enable DFE clock
[   56.941119] end_1.1.3 --
[   56.943934] start_1.1.4 offset cali setting
[   56.950607] end_1.1.4
[   56.953132] start_1.1.5 LEQ and DFE setting
[   56.971789] end_1.1.5
[   56.983335] start_1.2.1 ForegroundOffsetCal_Manual
[   56.992686] end_1.2.1
[   57.003690] start_1.2.3 Foreground Calibration
[   57.022170] rtl9300_do_rx_calibration_2_3: fgcal_gray: 31, fgcal_binary 31
[   57.030845] rtl9300_do_rx_calibration_2_3: end_1.2.3
[   57.036400] start_1.4.1
[   57.260019] end_1.4.1
[   57.262747] start_1.4.2
[   57.275307] vth_set_bin = 7
[   57.278036] vth_set_bin = 3
[   57.282130] Vth Maunal = 0
[   57.401066] Tap0 Sign : +
[   57.404085] tap0_coef_bin = 31
[   57.408021] tap0 manual = 0
[   57.417432] end_1.4.2
[   57.518572] 8021q: adding VLAN 0 to HW filter on device lan12
[   57.865414] switch: port 9(lan12) entered blocking state
[   57.871351] switch: port 9(lan12) entered disabled state
[   57.877384] rtl83xx-switch switch@1b000000 lan12: entered allmulticast mode
[   57.886127] rtl83xx-switch switch@1b000000 lan12: entered promiscuous mode
[   57.950377] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[   60.747319] jffs2_scan_eraseblock(): End of filesystem marker found at 0x0
[   60.775167] jffs2_build_filesystem(): unlocking the mtd device... 
[   60.775228] done.
[   60.784224] jffs2_build_filesystem(): erasing all blocks after the end marker... 
[   65.859239] rtl83xx-switch switch@1b000000 lan1: Link is Up - 1Gbps/Full - flow control rx/tx
[   65.877199] switch: port 1(lan1) entered blocking state
[   65.883039] switch: port 1(lan1) entered forwarding state
[   67.214886] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[   67.222233] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
BusyBox v1.36.1 (2025-02-03 23:09:37 UTC) built-in shell (ash)

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 OpenWrt 24.10.0, r28427-6df0e3d02a
 -----------------------------------------------------
=== WARNING! =====================================
There is no root password defined on this device!
Use the "passwd" command to set up a new password
in order to prevent unauthorized SSH logins.
--------------------------------------------------
root@OpenWrt:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1504 qdisc mq state UP qlen 1000
    link/ether 70:49:a2:16:a5:ae brd ff:ff:ff:ff:ff:ff
    inet6 fe80::7249:a2ff:fe16:a5ae/64 scope link 
       valid_lft forever preferred_lft forever
3: lan1@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master switch state UP qlen 1000
    link/ether 70:49:a2:16:a5:ae brd ff:ff:ff:ff:ff:ff
4: lan2@eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue master switch state LOWERLAYERDOWN qlen 1000
    link/ether 72:49:a2:16:a5:af brd ff:ff:ff:ff:ff:ff
5: lan3@eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue master switch state LOWERLAYERDOWN qlen 1000
    link/ether 72:49:a2:16:a5:b0 brd ff:ff:ff:ff:ff:ff
6: lan4@eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue master switch state LOWERLAYERDOWN qlen 1000
    link/ether 72:49:a2:16:a5:b1 brd ff:ff:ff:ff:ff:ff
7: lan5@eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue master switch state LOWERLAYERDOWN qlen 1000
    link/ether 72:49:a2:16:a5:b2 brd ff:ff:ff:ff:ff:ff
8: lan6@eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue master switch state LOWERLAYERDOWN qlen 1000
    link/ether 72:49:a2:16:a5:b3 brd ff:ff:ff:ff:ff:ff
9: lan7@eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue master switch state LOWERLAYERDOWN qlen 1000
    link/ether 72:49:a2:16:a5:b4 brd ff:ff:ff:ff:ff:ff
10: lan8@eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue master switch state LOWERLAYERDOWN qlen 1000
    link/ether 72:49:a2:16:a5:b5 brd ff:ff:ff:ff:ff:ff
11: lan12@eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue master switch state LOWERLAYERDOWN qlen 1000
    link/ether 72:49:a2:16:a5:b6 brd ff:ff:ff:ff:ff:ff
12: switch: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000
    link/ether 70:49:a2:16:a5:ae brd ff:ff:ff:ff:ff:ff
    inet6 fe80::7249:a2ff:fe16:a5ae/64 scope link 
       valid_lft forever preferred_lft forever
13: switch.1@switch: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000
    link/ether 70:49:a2:16:a5:ae brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.1/24 brd 192.168.1.255 scope global switch.1
       valid_lft forever preferred_lft forever
    inet6 fd01:4c1f:39a::1/60 scope global noprefixroute 
       valid_lft forever preferred_lft forever
    inet6 fe80::7249:a2ff:fe16:a5ae/64 scope link 
       valid_lft forever preferred_lft forever
root@OpenWrt:~# [   94.298201] done.
[   94.300374] jffs2: notice: (2167) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and 0 of xref (0 dead, 0 orphan) found.
[   94.422237] overlayfs: upper fs does not support tmpfile.

Hardware version 2 ("Rev. B1" on the label) is not yet supported by OpenWrt. I uses different PHYs, for the Gigabit ports, as well as the multi-gig ports.

There is a pull request for the RTL8218E (Gigabit ports): https://github.com/openwrt/openwrt/pull/18362

I think there was some discussion about this on the Realtek switch thread: Support for RTL838x based managed switches

Oh no, I missed that detail. How can I get back to the snapshot firmware were at least the 1GbE ports were working?

You can switch between different OpenWrt versions by doing a regular sysupgrade (OpenWrt 24.10 and current main branch would probably even work with keeping settings).

Which version of OpenWrt 24.10 are you using right now? In the initial release, all PHYs were broken on RTL930x devices, but a fix for that is included since 24.10.1.

Yes, but can I use sysupgrade without network?

Unfortunately, it's 24.10.0, as that was linked on the device page. I didn't notice that there's a newer release already.

you can transfer the file over serial, it'll take a while though.
like https://github.com/c0mpute/serial-transfer

Thanks for the suggestion, I already tried to transfer the file via sysupgrade, but https://github.com/c0mpute/serial-transfer didn't work, I think it was written for p
python2. Are there other tools for serial file transfer that are known to work with OpenWRT? Otherwise, I'll have to try my luck in getting the Python2 code to run.

trial and error, but there are other, similar projects on github.

I'm also not sure that one would actually work, since it seems to require bash on the client side ?

here's another one https://github.com/mattmart3/serio/tree/python3, for python3.

another option is to transfer (using the script) the lszrz package, then use that to transfer the actual openwrt image.
it won't be faster, but the protocols will detect any transfer errors and retransmit, if needed.

you need Teraterm (Win) or rzsz (Linux) to transfer the image.

this WP page describes the work involved, even if they transferred they file "manually", not using a script https://acassis.wordpress.com/2012/10/21/how-to-transfer-files-to-a-linux-embedded-system-over-serial/.
the package they sent across (and linked to) might not be the one for your arch, make sure you transfer the correct lszrz package.
nothing will break if you get it wrong, but you'll have to redo the transfer.

Sorry, I didn't really think about how to transfer the file.

And I just remembered that there was a previous topic about this: Semi-bricked ZyXEL XGS1250-12

So reinstalling through the bootloader is also not easily possible, because the only way to access the U-Boot console is changing the boot command.

So, the suggestion by @frollic to first manually transfer lszrz and then use that is probably the safest way in this case.

this could be an option, if OP transfers the uboot-envtools package ...

It should already be there, as it is part of the default package set on the realtek target.

indeed, didn't know this ...

Thanks a lot for your help! So there's hope after all. I'll definitely try the serio script, but what do you mean by reinstalling through the bootloader? Do you mean the procedure using tftp described as "booting from ram" on the device page? https://openwrt.org/toh/zyxel/xgs1250-12#booting_openwrt_from_ram

basically fw_setenv bootcmd 'blah.blah' from within openwrt, verify using fw_printenv, reboot, and keep your fingers crossed.

switch has no ip address, do firstboot ; reboot in the console

So that the U-Boot environment drops me into a shell and I can load the ramdisk via TFTP?

@brada4 What do you mean by

in the logs in the first post, I can see an IP address on the switch interface:

13: switch.1@switch: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000
    link/ether 70:49:a2:16:a5:ae brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.1/24 brd 192.168.1.255 scope global switch.1

that's how I read it, but for me it's on an Accenture level of "knowledge", Power Points created by reading the DOC (wiki).

problem is you only get one chance, if it doesn't work as expected it might boot loop, the serial way is slower, but safer.

Okay, thanks, I'll try the serial method first! Probably tonight, I'll let you know whether it worked.

fingers X:ed !

1 Like