Cannot get any OpenWrt image to run on Zyxel GS1900-8HP (boot loop / reset)

Hi everyone,

unfortunately I cannot get any OpenWRT image to run on a Zyxel GS1900-8HP switch I just bought.

  • As a starting point I installed the most up2date vendor firmware to both active partition 0 and backup partition 1 (V2.70)

  • Then I tried to boot several initramfs-kernel binaries from uboot via serial / tftp or even flash it via the original web interface.

  • No matter which image I take, it ends it a boot loop with sudden resets. Here is the complete logfile:

-- START --
�II: Copied Preloader data from 0x9fc00000(15356B) to 0x9f000000.
II: Cleared Preloader BSS section at 0x9f003bfc(0B).
II: PLL...
II: PLL is set by SW... OK
Setting DTR
INFO: Applying ZQ result directly by plat_memctl_ZQ_force_config()
II: DRAM is set by software calibration... Start claibation test...PASSED
d
MCR (0xb8001000):0x100421e0, 0x20320000, 0x54422830, 0x0404030f
DTR2 (0xb8001010):0x0630d000
DIDER(0xb8001050):0x80000000
DCDR (0xb8001060):0x9b540000
ZQPCR(0xb8001090):0x1f000000, 0x00000000, 0x00000000
PHY Registers(0xb8001500):
0xb8001500:0x80000010, 0x0000007f, 0x00000000, 0x00000000
0xb8001510:0x0a1e0f00, 0x0a1e0f00, 0x0a1e0f00, 0x0a1e0f00
0xb8001520:0x0a1e0f00, 0x0a1e0f00, 0x0a1e0f00, 0x0a1e0f00
0xb8001530:0x1e000000, 0x1e000000, 0x1e000000, 0x1e000000
0xb8001540:0x1e000000, 0x1e000000, 0x1e000000, 0x1e000000
0xb8001550:0x001e0f00, 0x001e0f00, 0x001e0f00, 0x001e0f00
0xb8001560:0x001e0f00, 0x001e0f00, 0x001e0f00, 0x001e0f00
0xb8001570:0x00000000, 0x00000000, 0x00000000, 0x00000000
0xb8001580:0x00000000, 0x00000000, 0x00000000, 0x00000000
0xb8001590:0x08000000, 0x66996699, 0x00000000, 0xaa55aa55
0xb80015a0:0x00000000, 0x00000000, 0x00000000, 0x00000000
II: Selected DRAM model #0.
II: Copying U-Boot from 0x9fc03bfc(237328B) to 0x83f00000... OK
II: NOR SPI Flash... searching flash parameters... supported flash ID: [c22018][c22019][c22019]... detected flash ID: [c22018]... OK
U-Boot 2011.12.39239-svn41394 (Jul 24 2013 - 09:34:28)
Board: RTL838x CPU:500MHz LXB:200MHz MEM:300MHz
DRAM: 128 MB
SPI-F: 1x16 MB
Loading 1024B env. variables from offset 0x40000
Switch Model: ZyXEL_GS1900_8HP (Port Count: 8)
Switch Chip: RTL8382M
**************************************************
#### RTL8218B config - MAC ID = 8 ####
Now Internal PHY-A
REG32(0xbb00a17c) is 0
PHY[0]: disable EEE on port [0x0000ff00]
Net: Net Initialization Skipped
rtl8380#0
Hit any key to stop autoboot: 1  0
## Booting image from partition ... 0
## Booting kernel from Legacy Image at b4260000 ...
Image Name: MIPS OpenWrt Linux-5.10.138
Created: 2022-09-03 2:55:34 UTC
Image Type: MIPS Linux Kernel Image (gzip compressed)
Data Size: 6861216 Bytes = 6.5 MB
Load Address: 80000000
Entry Point: 80000400
Verifying Checksum ... OK
Uncompressing Kernel Image ... OK
Starting kernel ...
[ 0.000000] Linux version 5.10.138 (builder@buildhost) (mips-openwrt-linux-musl-gcc (OpenWrt GCC 11.2.0 r19685-512e76967f) 11.2.0, GNU ld (GNU Binutils) 2.37) #0 Sat Sep 3 02:55:34 2022
[ 0.000000] RTL838X model is 83806800
[ 0.000000] SoC Type: RTL8380
[ 0.000000] Kernel command line:
[ 0.000000] printk: bootconsole [early0] enabled
[ 0.000000] CPU0 revision is: 00019070 (MIPS 4KEc)
[ 0.000000] MIPS: machine is ZyXEL GS1900-8HP v1 Switch
[ 0.000000] Initrd not found or empty - disabling initrd
[ 0.000000] Using appended Device Tree.
[ 0.000000] Primary instruction cache 16kB, VIPT, 4-way, linesize 16 bytes.
[ 0.000000] Primary data cache 16kB, 2-way, VIPT, cache aliases, linesize 16 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] On node 0 totalpages: 32768
[ 0.000000] Normal zone: 288 pages used for memmap
[ 0.000000] Normal zone: 0 pages reserved
[ 0.000000] Normal zone: 32768 pages, LIFO batch:7
[ 0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
[ 0.000000] pcpu-alloc: [0] 0
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 32480
[ 0.000000] Kernel command line: console=ttyS0,115200
[ 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] mem auto-init: stack:off, heap alloc:off, heap free:off
[ 0.000000] Memory: 112520K/131072K available (5865K kernel code, 623K rwdata, 716K rodata, 9812K init, 211K bss, 18552K 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] CPU frequency from device tree: 500MHz
[ 0.000000] clocksource: MIPS: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041786 ns
[ 0.000017] sched_clock: 32 bits at 250MHz, resolution 4ns, wraps every 8589934590ns
[ 0.008808] Calibrating delay loop... 498.89 BogoMIPS (lpj=2494464)
[ 0.075654] pid_max: default: 32768 minimum: 301
[ 0.081133] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[ 0.089182] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[ 0.104151] dyndbg: Ignore empty _ddebug table in a CONFIG_DYNAMIC_DEBUG_CORE build
[ 0.118901] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[ 0.129815] futex hash table entries: 256 (order: -1, 3072 bytes, linear)
[ 0.137478] pinctrl core: initialized pinctrl subsystem
[ 0.148956] NET: Registered protocol family 16
[ 0.309141] clocksource: Switched to clocksource MIPS
[ 0.317693] NET: Registered protocol family 2
[ 0.323168] IP idents hash table entries: 2048 (order: 2, 16384 bytes, linear)
[ 0.332936] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 4096 bytes, linear)
[ 0.342407] TCP established hash table entries: 1024 (order: 0, 4096 bytes, linear)
[ 0.350971] TCP bind hash table entries: 1024 (order: 0, 4096 bytes, linear)
[ 0.358726] TCP: Hash tables configured (established 1024 bind 1024)
[ 0.366371] UDP hash table entries: 256 (order: 0, 4096 bytes, linear)
[ 0.373735] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes, linear)
[ 0.382154] NET: Registered protocol family 1
[ 0.951858] workingset: timestamp_bits=14 max_order=15 bucket_order=1
[ 0.968016] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[ 0.974564] jffs2: version 2.2 (NAND) (SUMMARY) (ZLIB) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[ 0.990121] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
[ 1.001647] pinctrl-single 1b001000.pinmux: 32 pins, size 4
[ 1.008434] pinctrl-single 1b00a000.pinmux: 32 pins, size 4
[ 1.015503] realtek_gpio_probe probing RTL GPIO
[ 1.021803] Probing RTL8231 GPIOs
[ 1.025418] rtl8231_init called, MDIO bus ID: 0
-- RESET --

Any help appreciated :slight_smile:
Thanks


I tried to find help via the following threads, but somehow it didn't seem to fit quite right. Please let me know if I should post there at a place after all

Support for RTL838x based managed switches

Zyxel gs1900-8hpv2 firmware bricked my device

Brick Zyxel GS1900-8 - all few seconds boot without lan

is it the right version ? seems v1 and v2 are supported ...

1 Like

Did you buy this new or second hand?

Chances you are getting a v1 new are very slim. I've got an older device, and that was a v1. But anything sold new nowadays is probably a v2 unless you helped someone empty their ancient stock. Which is rather unlikely.

1 Like

I bought it 2nd hand. There is no version number printed on it from the outside. The web interface says "Revision A1", so I guess it's a version 1.

I just noticed that the sudden reset also happens after the line

[ 0.970661] rtl8231_init called, MDIO bus ID: 0

which was mentioned over there as well

1 Like

Any improvement if you try a master image? Barring that, you might need to build an image yourself and disable the GPIO mentioned in that post you linked...

Can you give me a link / a hint how to do this the easiest way ? :slightly_smiling_face:

I also found this issue now