Installation on Zyxel GS1900-8HP now overwrites both boot partitions, preventing OEM firmware restore as per wiki

The Zyxel GS1900-8HP can boot from two runtime partitions/offsets in flash, originally designed for active/backup booting. The wiki page states that (if following the TFTP installation instructions), OpenWrt installs to RUNTIME 1 (u-boot bootpartition 0), leaving the Zyxel firmware in RUNTIME 2 (u-boot bootpartition 1), providing an easy path to revert to OEM firmware.

However, OpenWrt installation currently overwrites both RUNTIME regions in flash:

u-boot console:

# flinfo
=============== FLASH Partition Layout ===============
Index  Name       Size       Address
------------------------------------------------------
 0     LOADER     0x40000    0xb4000000-0xb403ffff
 1     BDINFO     0x10000    0xb4040000-0xb404ffff
 2     SYSINFO    0x10000    0xb4050000-0xb405ffff
 3     JFFS2_CFG  0x100000   0xb4060000-0xb415ffff
 4     JFFS2_LOG  0x100000   0xb4160000-0xb425ffff
 5     RUNTIME1   0x6d0000   0xb4260000-0xb492ffff
 6     RUNTIME2   0x6d0000   0xb4930000-0xb4ffffff
======================================================

OpenWrt boot log:

[    0.892577] Creating 6 MTD partitions on "spi0.0":
[    0.898130] 0x000000000000-0x000000040000 : "u-boot"
[    0.912542] 0x000000040000-0x000000050000 : "u-boot-env"
[    0.924900] 0x000000050000-0x000000060000 : "u-boot-env2"
[    0.937509] 0x000000060000-0x000000160000 : "jffs"
[    0.949686] 0x000000160000-0x000000260000 : "jffs2"
[    0.961427] 0x000000260000-0x000001000000 : "firmware"
[    0.974167] 2 uimage-fw partitions found on MTD device firmware
[    0.980968] Creating 2 MTD partitions on "firmware":
[    0.986569] 0x000000000000-0x000000380000 : "kernel"
[    0.998323] 0x000000380000-0x000000da0000 : "rootfs"
[    1.010040] mtd: setting mtd7 (rootfs) as root device
[    1.015837] 1 squashfs-split partitions found on MTD device rootfs
[    1.022932] 0x0000005e0000-0x000000da0000 : "rootfs_data"

In the boot log, the "firmware" MTD partition spans the region of both RUNTIME 1 and RUNTIME 2, and in which OpenWrt subsequently creates the "kernel" and "rootfs" MTD partitions.

This behaviour was observed on a first install of OpenWrt 24.10.3 on a B1 revision of the switch. I can't find any other examples of this behaviour or people complaining about an inability to revert to OEM firmware (posts on this forum circa 2022 detail others having success), so I'm unsure whether this is a recent unintended change of behaviour or if that extra space is necessary and the wiki needs updating.

Zyxel provides .bix firmware files containing a Linux image — I'm gonna investigate whether they need any processing to use with u-boot and how to get it back on the device. If my wiki login still works I can update with this and other info it's missing.

The wiki needs updating, both partitions were merged:

You can still revert to OEM firmware AFAIK, just not as easily (from the web UI).

Nice, thank you for the info and finding out the commit. My wiki creds do still work, so I’ll put some time into updating the wiki.

And you’re right about the OEM .bix file, it uploads directly to one of the runtime slots in u-boot.

Edit: (A question regarding the compat notice in the commit which I immediately realised referred specifically to an upgrade to the new partition scheme.) :slight_smile:

2 Likes

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.