Netgear GS108Tv3/GS110TPv3/GS110TPP switch support

The vendor U-Boot loaders are all different. ZyXEL might do the LED initialization at a different stage than Netgear. TP-Link, for instance, doesn't initialize them at all and does not allow you to change the bootcmd either.

1 Like

Ah, that was my missing piece. at least one of them.

Do you know, how the POE is handled?

ubus call poe info output and POE LEDs are inverted (Right-to-left) on my GS110TPP:

Port 1 POE activates LED of PORT 8, and Port1 consumption shows up on lan8 ubus.
Port 2 POE activates LED of PORT 7, and Port2 consumption shows up on lan7 ubus.
...
Port 7 POE activates LED of PORT 2, and Port7 consumption shows up on lan2 ubus.
Port 8 POE activates LED of PORT 1, and Port8 consumption shows up on lan1 ubus.

Where can I set the correct sequence? Invert the numbers in /etc/config/poe?

Edit: I inverted the IDs in /etc/config/poe. Now my ubus output is correctly reporting the consumption values, but the LEDs are still wrong as detailed above.

During bootup, the POE-LEDs are correct for the first 30 seconds or so, but just before I can login via SSH, the LEDs start misbehaving .

According to this the PoE status LEDs are controlled by the PoE MCU and not the Linux kernel. Hence, there might be some misconfiguration with what you changed in /etc/config/poe or something wrong with the protocol used to talk to the MCU.

Here is the link to the daemon handling PoE management and the forum thread for discussion is here.

1 Like

The MCU probably still needs to be told which PSE outputs belong to which ports, in order to correctly indicate PoE status with the LEDs.

On first sight, this should just require implementation of commands 0x1d (Set port mapping) and 0x02 (Set port map enable), and some way to store this info in the device config.

2 Likes

Yes, probably. FWIW, this was part of the very first lua implementation, and defaulted to configuring the ports in the reverse order. See:

where we had

function setPortRelPrio(pCon, port, prio)
	local cmd = {0x1d, 0x00, port, prio}
	sendCommand(pCon, cmd)
end

and

	for i = 0, 7 do
		setPortRelPrio(pCon, i, 7-i)
	end

I might have accidentally have caused this to be dropped in later lua versions and therefore eventually in the c rewrite, since it seemed both unnecessary and wrong for the ZyXEL GS1900-10HP.

Adding it back to the current c implementation based on the existing per-port id and name attributes look like the right thing to do.

2 Likes

This thread is still open so I'll ask it here --

I'm trying to do an initial flash of OpenWRT to a GS110TPP, starting from Netgear firmware 7.0.9.19 via the Netgear web interface, without success so far.

Output from show startup-config in the Netgear CLI (just to verify the hardware & firmware versions):

myname# show startup-config
SYSTEM CONFIG FILE ::= BEGIN
! Model: GS110TPP
! System Description: GS110TPP 8-Port Gigabit PoE+ Ethernet Smart Managed Pro Switch with 2 Copper Ports and Cloud Management
! Firmware Version: 7.0.9.19 [Oct 30 2023 - 20:31:44]
! Loader Version: 1.0.0.5 [2019-03-15 17:08:23 UTC]
! Config Version: 1
! Hardware Version: 0

The GS110TPP is listed as "supported" in the OpenWRT hardware directory (and in the firmware search / config utility) but there is no specific install / config help page for it, so I tried just following the instructions for the GS308Tv1 instead, directly uploading the latest GS110TPP firmware

openwrt-23.05.2-realtek-rtl838x-netgear_gs110tpp-v1-initramfs-kernel.bin

through the Netgear web interface (Maintenance --> Update --> HTTP Firmware/File Update. It simply won't accept the OpenWRT firmware.

Fails with the following:

I've also tried copying

openwrt-23.05.2-realtek-rtl838x-netgear_gs110tpp-v1-initramfs-kernel.bin

via TFTP from the Netear "CLI Lite" management interface which is accessible at telnet port 60000 on the router, but that also fails:
(* I renamed the full openwrt-23.05...kernel.bin file on the tftp server to 'initramfs.bin' for sake of simplicity/brevity at the command line.)

myname# copy tftp://192.168.1.30/initramfs.bin flash://image1
Downloading file. Please wait...
!
FAILED
myname#

I tried the same tftp copy command to get the GS108T_110TP_TPP_V7.0.9.19.bix firmware instead, just to see whether the CLI tftp was perhaps filtering by file or extension name, but it gave the same result, "FAILED."

(I checked carefully to be sure that my TFTP server was working fine using other test hosts, etc. This isn't a network configuration issue as far as I can see.)

Any hints? Do I need to set up UART / serial access to proceed from here?

Try downgrading the device firmware.

Also, does the command line have an admin mode you must enter before running those commands?

I've tried downgrading to these versions via Netgear browser interface, same result. It simply doesn't accept the upload:

v7.0.5.2
v7.0.1.16 (oldest).

I'll try downgrading to successively newer versions than 7.0.5.2 and see if one of those will work.

( I should also clarify that I know my browser & network are working fine because when I got this GS110TPP in the mail today, first thing I did was go in and upgrade from ... I'm not sure, but I think it was 7.0.9.11, to the current version 7.0.19.19 -- which went just fine.)

Re: CLI admin mode, it does, and to the best of my knowledge I was able to activate that by following instructions in the official Netgear "Smart_Switches_CLI_Manual_EN.pdf" that I downloaded from Netgear. I was able to activate other privileged commands such as switching which of the two firmware images was active, for example.

I was able to carry out the following downgrade path for Netgear's "GS108Tv3_GS110TPv3_GS110TPPv1" firmware:

7.0.19.9 --> 7.0.9.9 --> 7.0.8.4

but can't downgrade any farther back. (Tried all of these further downgrades with no success: version 7.0.7.2, 7.0.6.2, 7.0.5.2, 7.0.4.8. Did a 15-second power-off cold reboot and retried downgrading to 7.0.7.2 just to be sure.)

I also cannot cross-grade from the presently-active Netgear v7.0.8.4 to openwrt-23.05.2-realtek-rtl838x-netgear_gs110tpp-v1-initramfs-kernel.bin.

Of note but no eventual help, in version 7.0.8.4, tftp appears to be working properly at the telnet:60000 administrative command line. It copies files, but is still doing version-checking on the copied files, rejecting anything older than 7.0.8.4 (or not a Netgear-released file, i.e. OpenWRT binaries).


(The !!!!!! characters are progress indicators, appearing at a rate of about 1 Hz during the tftp transfer.)

Seem to have hit a brick wall here. Suggestions for next steps to try?

Can't see anything new and magic in those images. I suspect this is a simple version number check against the "uimage name" field in the header. We're using OpenWrt defaults there for these swicthes
("MIPS OpenWrt Linux-x.x.x"), simply because earlier OEM firmwares didn't care. But there is no reason we can't fake a version number high enough instead, if required. Many devices do that.

Look at e.g. Device/allnet_all-sg8208m in target/linux/realtek/image/rtl838x.mk. It sets

UIMAGE_NAME := 2.2.2.0

You could try adding something similar to the Device/netgear_gs110tpp-v1 definition, using version number strings looking like those used by the OEM firmware. For example

UIMAGE_NAME := 7.0.9.19

If this works then we should try to figure out how high we can set this value without breaking OEM compatibility, and IMHO try to make it easy do identify as an OpenWrt image even if we have to drop "OpenWrt" from the string, I assume this version number will show up here and there in the OEM management interfaces. Numbers matching real OEM versions will be confusing.

1 Like

Hmm.

Once I got a working TFTP going where it was actively and verifiably moving files as-commanded, I did in fact try renaming files.

Using TFTP on the GS110TPP, GETting from an Ubuntu-hosted TFTP server on my LAN, changing the stock Netgear fw. file name from the official GS108T_110TP_TPP_V7.0.8.4.bix to testimage.bin yielded a successful TFTP GET, leading me to believe (almost presume) that it is checking a hash of the file contents, not just the filename:

GS110TPP# copy tftp://192.168.1.30/testimage.bin  flash://image1
Downloading file. Please wait...
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Upgrade firmware success. Do you want to reboot now? (y/n)n

EDIT:

But maybe it's nothing to do with hashes/checksums and indeed it's just a version ID or similar that could be changed in the OpenWRT image to satisfy the Netgear firmware updater.

This is not uncommon as you'll see if you grep for UIMAGE_NAME in the OpenWrt source. It's probably intended to protect users against installing too old firmware on newer hardware revisions. They have no need to prevent image modification.

So,

Changing UIMAGE_NAME := 2.2.2.0 to UIMAGE_NAME := 7.0.9.19 is something I need to set in the source code and then recompile, yes? It's not something that can be implemented as an option in the firmware-builder utility?

I'm not a developer so I don't understand (as yet) the mechanics of attempting a custom build.

If it's easy for someone to do I'd be happy to be a beta-tester for it.

That's correct. Or rather, there is no UIMAGE_NAME to change. You have to add it to the Netgear GS110TPP image rule build the firmware from scratch.

It is possible to binary edit the header of an existing image as an alternative, I don't know any tools that will let you do that in an easy way, but there might be some in the OpenWrt toolbox. Maybe someone else knows? You'll have to update the header checksum too, so doing a manual edit is a hassle.

1 Like

I understand what's needed but it's not in my wheelhouse, i.e. I don't have the dev skills. Maybe a dev with some time to spare wouldn't mind helping out with this. The GS110TPP is listed as 'supported' and there's a firmware built for it already, but I don't see any custom installation instructions for it separate from the GS108Tv3.

If the binary-edit method worked reliably that'd be fine as it could just be added to the OpenWRT installation notes for the GS108Tv3. That's also not something I know how to do.

I poked around using a hex editor to compare 4 different versions of the Netgear firmware. Location of the version number is very consistent, but yes, changing a single digit of the version number causes a Flash image is invalid error when attempting to TFTP-update.

I'm not sure how or where the checksum gets stored in the binary file. Didn't find any human-readable text in the file besides the version number at the start.

I don't think that is necessary. If we can figure out how to build an image which just works, then users don't have to do anything special. If my assumption is correct, then all we need is a successful test of a modified image.

IYou can find a test image at
https://www.mork.no/~bjorn/xx/openwrt-realtek-rtl838x-netgear_gs110tpp-v1-initramfs-kernel-v9.9.9.9.bin

The sha256sum is
a76d53d469c4d81c45cff0bff313e0073881c49bb750c44e877a9c04ab4f1123 openwrt-realtek-rtl838x-netgear_gs110tpp-v1-initramfs-kernel-v9.9.9.9.bin

This is an initramfs image for the GS110TPP v1 built with

UIMAGE_NAME := 9.9.9.9

Note that this is a snapshot build from the head of the current master branch. So there is no LuCi or anything else. You have to log in using ssh and then use sysupgrade to install a proper OpenWrt image. Installing a 23.05.2 sysupgrade image should work fine. In theory.

No guarantees about anything... I have tested a similar image on a GS108Tv3 and it didn't break boot at least. But my switch is in a remote location, with console but only via the same switch... So I can't easily test OEM firmwares or initramfs images at the moment.

2 Likes

Thanks for your efforts, definite progress:

This successfully installed using Netgear's command-line TFTP. (Though I suspect it would also have worked fine via the browser upgrade interface.)
Upon switching the live fw image selector within the Netgear GUI, I rebooted, and can successfully ping & initiate an ssh connection to the device over the LAN at 192.168.1.1.

It's getting late now so I will proceed w/ the next phase, sysupgrade, tomorrow.

-- EDIT: deleted previous text re: "root password," I had left my Wifi adapter also active and was trying to ssh into the wrong device. (!).

Update: TL;DR, stuck in recovery mode. Regardless of what I do at the shell prompt after logging in via SSH, upon rebooting it reverts to your test image.

First attempt, using a custom-configured firmware that simply omitted the firewall package (no other customizations):

root@OpenWrt:/tmp# sysupgrade -v openwrt-23.05.2-0e2918ed85b9-realtek-rtl838x-netgear_gs110tpp-v1-squashfs-sysupgrade.bin
Cannot save config while running from ramdisk.
Wed Feb 14 15:54:20 UTC 2024 upgrade: Commencing upgrade. Closing all shell sessions.

Subsequent attempts I used a stock / plain 23.05.2 image, first with -v, then -n, and finally even -F. Note, the hour timestamps are not in the correct sequence, but the actual commands / files used are listed in the sequence I used them. I did at least (2) 10-second cold reboots before doing the 3rd and 4th attempts.

Additional sysupgrade attempts
root@OpenWrt:/tmp# sysupgrade -v openwrt-23.05.2-realtek-rtl838x-netgear_gs110tpp-v1-squashfs-sysupgrade.bin
Cannot save config while running from ramdisk.
Wed Feb 14 15:40:27 UTC 2024 upgrade: Commencing upgrade. Closing all shell sessions.

----

root@OpenWrt:/tmp# sysupgrade -n openwrt-23.05.2-realtek-rtl838x-netgear_gs110tpp-v1-squashfs-sysupgrade.bin
Wed Feb 14 15:41:40 UTC 2024 upgrade: Commencing upgrade. Closing all shell sessions.
-------

root@OpenWrt:/tmp# sysupgrade -F openwrt-23.05.2-realtek-rtl838x-netgear_gs110tpp-v1-squashfs-sysupgrade.bin
Cannot save config while running from ramdisk.
Wed Feb 14 15:33:26 UTC 2024 upgrade: Commencing upgrade. Closing all shell sessions.

There was nothing in /sys/fs/pstore:

root@OpenWrt:~# cat /sys/fs/pstore/*
cat: can't open '/sys/fs/pstore/*': No such file or directory

Here is dmesg output. Advice/suggestion on what to try next?

Full dmesg output
root@OpenWrt:~# dmesg
[    0.000000] Linux version 5.15.148 (bjorn@canardo) (mips-openwrt-linux-musl-gcc (OpenWrt GCC 12.3.0 r25153-869df9ecdf0a) 12.3.0, GNU ld (GNU Binutils) 2.40.0) #0 Wed Feb 14 15:22:53 2024
[    0.000000] RTL838X model is 83806800
[    0.000000] SoC Type: RTL8380
[    0.000000] printk: bootconsole [early0] enabled
[    0.000000] CPU0 revision is: 00019070 (MIPS 4KEc)
[    0.000000] MIPS: machine is Netgear GS110TPP v1
[    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 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] 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: 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] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] Memory: 110776K/131072K available (6013K kernel code, 608K rwdata, 1328K rodata, 10796K init, 209K bss, 20296K 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] rtl83xx-clk: initialized, CPU 500 MHz, MEM 300 MHz (8 Bit DDR3), LXB 200 MHz
[    0.000000] clocksource: realtek_otto_timer: mask: 0xfffffff max_cycles: 0xfffffff, max_idle_ns: 38225208801 ns
[    0.000005] sched_clock: 28 bits at 3125kHz, resolution 320ns, wraps every 42949672800ns
[    0.009326] Calibrating delay loop... 498.89 BogoMIPS (lpj=2494464)
[    0.136015] pid_max: default: 32768 minimum: 301
[    0.143594] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.151865] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.181247] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.192287] futex hash table entries: 256 (order: -1, 3072 bytes, linear)
[    0.200449] pinctrl core: initialized pinctrl subsystem
[    0.209802] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.255477] rtl83xx-clk clock-controller: rate setting enabled, CPU 300-625 MHz, MEM 300-300 MHz, LXB 200-200 MHz, OVERCLOCK AT OWN RISK
[    0.273868] clocksource: Switched to clocksource realtek_otto_timer
[    0.284761] NET: Registered PF_INET protocol family
[    0.290862] IP idents hash table entries: 2048 (order: 2, 16384 bytes, linear)
[    0.300842] tcp_listen_portaddr_hash hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.310438] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.319193] TCP established hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.327870] TCP bind hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.335856] TCP: Hash tables configured (established 1024 bind 1024)
[    0.343541] UDP hash table entries: 256 (order: 0, 4096 bytes, linear)
[    0.351028] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes, linear)
[    0.359895] NET: Registered PF_UNIX/PF_LOCAL protocol family
[    0.444805] workingset: timestamp_bits=14 max_order=15 bucket_order=1
[    0.466751] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.473287] jffs2: version 2.2 (NAND) (SUMMARY) (ZLIB) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    0.540126] pinctrl-single 1b001000.pinmux: 32 pins, size 4
[    0.547514] pinctrl-single 1b00a000.pinmux: 32 pins, size 4
[    0.556563] Probing RTL8231 GPIOs
[    0.560292] rtl8231_init called, MDIO bus ID: 31
[    0.568346] Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled
[    0.577798] printk: console [ttyS0] disabled
[    0.582700] 18002000.uart: ttyS0 at MMIO 0x18002000 (irq = 31, base_baud = 12500000) is a 16550A
[    0.592644] printk: console [ttyS0] enabled
[    0.602136] printk: bootconsole [early0] disabled
[    0.612766] printk: bootconsole [ns16550a0] disabled
[    0.625559] 18002100.uart: ttyS1 at MMIO 0x18002100 (irq = 30, base_baud = 12500000) is a 16550A
[    0.842733] brd: module loaded
[    0.866418] spi-nor spi0.0: w25q256 (32768 Kbytes)
[    0.871924] 7 fixed-partitions partitions found on MTD device spi0.0
[    0.879228] OF: Bad cell count for /soc/spi@1200/flash@0/partitions
[    0.886424] OF: Bad cell count for /soc/spi@1200/flash@0/partitions
[    0.894198] Creating 7 MTD partitions on "spi0.0":
[    0.899612] 0x000000000000-0x0000000e0000 : "u-boot"
[    0.944858] 0x0000000e0000-0x0000000f0000 : "u-boot-env"
[    0.964770] 0x0000000f0000-0x000000100000 : "u-boot-env2"
[    0.984880] 0x000000100000-0x000000200000 : "jffs"
[    0.993671] 0x000000200000-0x000000300000 : "jffs2"
[    1.014853] 0x000000300000-0x000001180000 : "firmware"
[    1.035939] 2 uimage-fw partitions found on MTD device firmware
[    1.042606] Creating 2 MTD partitions on "firmware":
[    1.048420] 0x000000000000-0x000000240000 : "kernel"
[    1.074838] 0x000000240000-0x000000e80000 : "rootfs"
[    1.083524] mtd: setting mtd7 (rootfs) as root device
[    1.104255] 1 squashfs-split partitions found on MTD device rootfs
[    1.111363] 0x0000004f0000-0x000000e80000 : "rootfs_data"
[    1.135018] 0x000001180000-0x000002000000 : "runtime2"
[    1.168915] Probing RTL838X eth device pdev: 82094000, dev: 82094010
[    1.226664] Found SoC ID: 8380: RTL8380, family 8380
[    1.232375] rtl8380_init_mac
[    1.235770] Using MAC 0000000000010000
[    1.570246] Realtek RTL8218B (internal) mdio-bus:08: Detected internal RTL8218B
[    1.578556] Firmware loaded. Size 1184, magic: 83808380
[    2.404688] Realtek RTL8218B (internal) mdio-bus:08: ERROR: Port 8 not ready for patch.
[    2.413671] Realtek RTL8218B (internal): probe of mdio-bus:08 failed with error -1
[    2.731998] Realtek RTL8214C mdio-bus:10: Detected external RTL8214C
[    2.790826] i2c_dev: i2c /dev entries driver
[    2.806395] NET: Registered PF_INET6 protocol family
[    2.848279] Segment Routing with IPv6
[    2.852630] In-situ OAM (IOAM) with IPv6
[    2.857552] NET: Registered PF_PACKET protocol family
[    2.864334] 8021q: 802.1Q VLAN Support v1.8
[    3.214373] Realtek RTL8218B (internal) rtl838x slave mii-0:08: Detected internal RTL8218B
[    3.223658] Firmware loaded. Size 1184, magic: 83808380
[    4.045070] Realtek RTL8218B (internal) rtl838x slave mii-0:08: ERROR: Port 8 not ready for patch.
[    4.055207] Realtek RTL8218B (internal): probe of rtl838x slave mii-0:08 failed with error -1
[    4.371524] Realtek RTL8214C rtl838x slave mii-0:10: Detected external RTL8214C
[    4.544771] Realtek RTL8380 SERDES rtl838x slave mii-0:18: Detected internal RTL8380 SERDES
[    4.554281] Firmware loaded. Size 1184, magic: 83808380
[    4.560192] SDS power down value: 3
[    4.588224] PLL control register: efffffff
[    4.592863] SDS power down value now: 3f
[    4.597354] Configuration of SERDES done
[    4.900666] In rtl83xx_vlan_setup
[    4.904547] UNKNOWN_MC_PMASK: 000000001fffffff
[    4.909546] VLAN profile 0: L2 learning: 1, UNKN L2MC FLD PMSK 511, 		UNKN IPMC FLD PMSK 511, UNKN IPv6MC FLD PMSK: 511
[    5.943898] rtl83xx_enable_phy_polling:            3ff00
[    6.984675] rtl83xx-switch switch@1b000000: configuring for fixed/internal link mode
[    6.994366] rtl83xx-switch switch@1b000000: Link is Up - 1Gbps/Full - flow control off
[    7.005399] rtl83xx-switch switch@1b000000 lan1 (uninitialized): PHY [mdio-bus:08] driver [Generic PHY] (irq=POLL)
[    7.023207] rtl83xx-switch switch@1b000000 lan2 (uninitialized): PHY [mdio-bus:09] driver [Realtek RTL8218B (internal)] (irq=POLL)
[    7.040125] rtl83xx-switch switch@1b000000 lan3 (uninitialized): PHY [mdio-bus:0a] driver [Realtek RTL8218B (internal)] (irq=POLL)
[    7.060475] rtl83xx-switch switch@1b000000 lan4 (uninitialized): PHY [mdio-bus:0b] driver [Realtek RTL8218B (internal)] (irq=POLL)
[    7.077657] rtl83xx-switch switch@1b000000 lan5 (uninitialized): PHY [mdio-bus:0c] driver [Realtek RTL8218B (internal)] (irq=POLL)
[    7.097907] rtl83xx-switch switch@1b000000 lan6 (uninitialized): PHY [mdio-bus:0d] driver [Realtek RTL8218B (internal)] (irq=POLL)
[    7.115101] rtl83xx-switch switch@1b000000 lan7 (uninitialized): PHY [mdio-bus:0e] driver [Realtek RTL8218B (internal)] (irq=POLL)
[    7.135592] rtl83xx-switch switch@1b000000 lan8 (uninitialized): PHY [mdio-bus:0f] driver [Realtek RTL8218B (internal)] (irq=POLL)
[    7.164436] rtl83xx-switch switch@1b000000 lan9 (uninitialized): PHY [mdio-bus:10] driver [Realtek RTL8214C] (irq=POLL)
[    7.192247] rtl83xx-switch switch@1b000000 lan10 (uninitialized): PHY [mdio-bus:11] driver [Realtek RTL8214C] (irq=POLL)
[    7.206973] DSA: tree 0 setup
[    7.210407] LINK state irq: 20
[    7.214025] In rtl83xx_setup_qos
[    7.217665] Setting up RTL838X QoS
[    7.221463] RTL838X_PRI_SEL_TBL_CTRL(i): 00033112
[    7.226818] Current Intprio2queue setting: 00000000
[    7.232298] QM_PKT2CPU_INTPRI_MAP: 00fac688
[    7.237291] rtl838x_dbgfs_init called
[    7.241536] rtl83xx_fib_event_work_do: FIB4 default rule failed
[    7.377756] Freeing unused kernel image (initmem) memory: 10796K
[    7.384642] This architecture does not have kernel memory protection.
[    7.391887] Run /init as init process
[    7.396080]   with arguments:
[    7.399426]     /init
[    7.401969]   with environment:
[    7.405571]     HOME=/
[    7.408244]     TERM=linux
[    8.529968] init: Console is alive
[    8.535107] init: - watchdog -
[    8.576314] kmodloader: loading kernel modules from /etc/modules-boot.d/*
[    8.599195] kmodloader: done loading kernel modules from /etc/modules-boot.d/*
[    8.618544] init: - preinit -
[    9.298743] random: jshn: uninitialized urandom read (4 bytes read)
[    9.460295] random: jshn: uninitialized urandom read (4 bytes read)
[   10.791128] random: jshn: uninitialized urandom read (4 bytes read)
[   10.889992] random: jshn: uninitialized urandom read (4 bytes read)
[   11.035485] random: jshn: uninitialized urandom read (4 bytes read)
[   11.634072] RESETTING 8380, CPU_PORT 28
[   11.839240] rtl838x-eth 1b00a300.ethernet eth0: configuring for fixed/internal link mode
[   11.848301] In rtl838x_mac_config, mode 1
[   11.855990] rtl83xx-switch switch@1b000000 lan1: configuring for phy/internal link mode
[   11.865287] rtl838x-eth 1b00a300.ethernet eth0: Link is Up - 1Gbps/Full - flow control off
[   11.875003] 8021q: adding VLAN 0 to HW filter on device lan1
[   11.881936] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[   11.889161] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[   11.896752] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[   11.930031] rtl83xx_fib_event_work_do: FIB4 failed
[   11.939240] rtl83xx_fib_event_work_do: FIB4 failed
[   11.954128] rtl83xx_fib_event_work_do: FIB4 failed
[   11.965931] random: procd: uninitialized urandom read (4 bytes read)
[   13.783984] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[   14.338893] rtl83xx_fib4_del: no such gateway: 0.0.0.0
[   14.348465] rtl83xx_fib4_del: no such gateway: 0.0.0.0
[   14.364044] rtl83xx_fib4_del: no such gateway: 0.0.0.0
[   14.413954] procd: - early -
[   14.417992] procd: - watchdog -
[   15.269949] procd: - watchdog -
[   15.274951] procd: - ubus -
[   15.299466] random: ubusd: uninitialized urandom read (4 bytes read)
[   15.329720] random: ubusd: uninitialized urandom read (4 bytes read)
[   15.337820] random: ubusd: uninitialized urandom read (4 bytes read)
[   15.357472] procd: - init -
[   16.585971] random: jshn: uninitialized urandom read (4 bytes read)
[   16.888079] kmodloader: loading kernel modules from /etc/modules.d/*
[   16.908450] GACT probability on
[   16.927154] Mirror/redirect action on
[   16.987284] u32 classifier
[   16.990356]     input device check on
[   16.994567]     Actions configured
[   17.374592] kmodloader: done loading kernel modules from /etc/modules.d/*
[   19.494683] urngd: v1.0.2 started.
[   23.064736] random: crng init done
[   23.068577] random: 24 urandom warning(s) missed due to ratelimiting
[   25.833400] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[   53.715414] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[   53.828995] in rtl838x_eth_stop
[   53.832796] rtl838x-eth 1b00a300.ethernet eth0: Link is Down
[   54.354470] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[   54.361896] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[   54.369440] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[   54.376959] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[   55.693277] Using MAC 000080cc9c97fa0c
[   55.713799] RESETTING 8380, CPU_PORT 28
[   55.918969] rtl838x-eth 1b00a300.ethernet eth0: configuring for fixed/internal link mode
[   55.928029] In rtl838x_mac_config, mode 1
[   55.933076] rtl838x-eth 1b00a300.ethernet eth0: Link is Up - 1Gbps/Full - flow control off
[   55.954076] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[   55.961232] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[   55.968864] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[   56.317261] rtl83xx-switch switch@1b000000 lan1: configuring for phy/internal link mode
[   56.359635] 8021q: adding VLAN 0 to HW filter on device lan1
[   56.383066] switch: port 1(lan1) entered blocking state
[   56.389082] switch: port 1(lan1) entered disabled state
[   56.395874] device lan1 entered promiscuous mode
[   56.401080] device eth0 entered promiscuous mode
[   56.499624] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[   56.536446] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[   57.004645] rtl83xx-switch switch@1b000000 lan2: configuring for phy/internal link mode
[   57.020638] 8021q: adding VLAN 0 to HW filter on device lan2
[   57.077077] switch: port 2(lan2) entered blocking state
[   57.082983] switch: port 2(lan2) entered disabled state
[   57.104327] device lan2 entered promiscuous mode
[   57.304227] rtl83xx-switch switch@1b000000 lan3: configuring for phy/internal link mode
[   57.315074] 8021q: adding VLAN 0 to HW filter on device lan3
[   57.376970] switch: port 3(lan3) entered blocking state
[   57.382870] switch: port 3(lan3) entered disabled state
[   57.404902] device lan3 entered promiscuous mode
[   57.624193] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[   57.631647] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[   57.640825] rtl83xx-switch switch@1b000000 lan4: configuring for phy/internal link mode
[   57.674271] 8021q: adding VLAN 0 to HW filter on device lan4
[   57.758318] switch: port 4(lan4) entered blocking state
[   57.764330] switch: port 4(lan4) entered disabled state
[   57.808780] device lan4 entered promiscuous mode
[   57.978162] RTL8380 Link change: status: 1, ports 1000
[   58.107249] rtl83xx-switch switch@1b000000 lan5: configuring for phy/internal link mode
[   58.139565] 8021q: adding VLAN 0 to HW filter on device lan5
[   58.225600] switch: port 5(lan5) entered blocking state
[   58.231497] switch: port 5(lan5) entered disabled state
[   58.264350] device lan5 entered promiscuous mode
[   58.475724] rtl83xx-switch switch@1b000000 lan6: configuring for phy/internal link mode
[   58.504380] 8021q: adding VLAN 0 to HW filter on device lan6
[   58.564998] switch: port 6(lan6) entered blocking state
[   58.570895] switch: port 6(lan6) entered disabled state
[   58.577805] device lan6 entered promiscuous mode
[   58.791661] rtl83xx-switch switch@1b000000 lan7: configuring for phy/internal link mode
[   58.821897] 8021q: adding VLAN 0 to HW filter on device lan7
[   58.870343] switch: port 7(lan7) entered blocking state
[   58.876361] switch: port 7(lan7) entered disabled state
[   58.883161] device lan7 entered promiscuous mode
[   59.084221] rtl83xx-switch switch@1b000000 lan8: configuring for phy/internal link mode
[   59.104273] 8021q: adding VLAN 0 to HW filter on device lan8
[   59.177333] switch: port 8(lan8) entered blocking state
[   59.183234] switch: port 8(lan8) entered disabled state
[   59.190179] device lan8 entered promiscuous mode
[   59.384212] rtl83xx-switch switch@1b000000 lan9: configuring for phy/qsgmii link mode
[   59.404271] 8021q: adding VLAN 0 to HW filter on device lan9
[   59.468598] switch: port 9(lan9) entered blocking state
[   59.474612] switch: port 9(lan9) entered disabled state
[   59.481459] device lan9 entered promiscuous mode
[   59.633224] rtl83xx-switch switch@1b000000 lan10: configuring for phy/qsgmii link mode
[   59.642932] 8021q: adding VLAN 0 to HW filter on device lan10
[   59.680773] switch: port 10(lan10) entered blocking state
[   59.686972] switch: port 10(lan10) entered disabled state
[   59.694181] device lan10 entered promiscuous mode
[   59.717077] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[   61.198802] RTL8380 Link change: status: 1, ports 1000
[   61.387697] rtl83xx-switch switch@1b000000 lan5: Link is Up - 1Gbps/Full - flow control off
[   61.456685] switch: port 5(lan5) entered blocking state
[   61.462588] switch: port 5(lan5) entered forwarding state
[   61.524064] IPv6: ADDRCONF(NETDEV_CHANGE): switch: link becomes ready
[   61.569870] IPv6: ADDRCONF(NETDEV_CHANGE): switch.1: link becomes ready
[   63.544095] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[   63.551558] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[  105.038833] RTL8380 Link change: status: 1, ports 100
[  105.390284] rtl83xx-switch switch@1b000000 lan1: Link is Up - 1Gbps/Full - flow control rx/tx
[  105.400020] switch: port 1(lan1) entered blocking state
[  105.406051] switch: port 1(lan1) entered forwarding state
[  177.546399] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[  177.564636] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[  177.573007] rtl83xx_fib4_del: found a route with id 1, nh-id 0
[  177.579754] rtl83xx-switch switch@1b000000: unknown nexthop, id 0
[  177.603501] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[  177.611088] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[  177.618630] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[  177.628212] rtl83xx-switch switch@1b000000: unknown nexthop, id 0
[  177.644074] rtl83xx_fib4_del: no such gateway: 0.0.0.0
[  177.674586] switch: port 5(lan5) entered disabled state
[  177.680787] switch: port 1(lan1) entered disabled state
[  177.725376] device lan1 left promiscuous mode
[  177.730619] switch: port 1(lan1) entered disabled state
[  177.754374] rtl83xx-switch switch@1b000000 lan1: Link is Down
[  177.772734] RTL8380 Link change: status: 1, ports 100
[  177.851335] device lan10 left promiscuous mode
[  177.856807] switch: port 10(lan10) entered disabled state
[  177.948904] device lan2 left promiscuous mode
[  177.954314] switch: port 2(lan2) entered disabled state
[  178.044631] device lan3 left promiscuous mode
[  178.049879] switch: port 3(lan3) entered disabled state
[  178.143249] device lan4 left promiscuous mode
[  178.148623] switch: port 4(lan4) entered disabled state
[  178.238278] device lan5 left promiscuous mode
[  178.243524] switch: port 5(lan5) entered disabled state
[  178.252479] rtl83xx-switch switch@1b000000 lan5: Link is Down
[  178.275592] RTL8380 Link change: status: 1, ports 1000
[  178.349184] device lan6 left promiscuous mode
[  178.354570] switch: port 6(lan6) entered disabled state
[  178.444174] device lan7 left promiscuous mode
[  178.449428] switch: port 7(lan7) entered disabled state
[  178.540135] device lan8 left promiscuous mode
[  178.545505] switch: port 8(lan8) entered disabled state
[  178.724304] device lan9 left promiscuous mode
[  178.729594] switch: port 9(lan9) entered disabled state
[  178.784120] device eth0 left promiscuous mode
[  178.796133] in rtl838x_eth_stop
[  178.800679] rtl838x-eth 1b00a300.ethernet eth0: Link is Down
[  179.317083] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[  179.324631] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[  179.332025] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[  179.339557] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[  179.705828] rtl83xx_fib4_del: no such gateway: 0.0.0.0
[  179.711648] rtl83xx_fib4_del: no such gateway: 0.0.0.0
[  179.720371] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[  179.727948] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[  179.764000] rtl83xx_fib4_del: no such gateway: 0.0.0.0
[  183.994670] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[  184.062914] Using MAC 000080cc9c97fa0c
[  184.074997] RESETTING 8380, CPU_PORT 28
[  184.280170] rtl838x-eth 1b00a300.ethernet eth0: configuring for fixed/internal link mode
[  184.289230] In rtl838x_mac_config, mode 1
[  184.294475] rtl838x-eth 1b00a300.ethernet eth0: Link is Up - 1Gbps/Full - flow control off
[  184.303788] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[  184.311037] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[  184.318641] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[  184.516428] rtl83xx-switch switch@1b000000 lan1: configuring for phy/internal link mode
[  184.537345] 8021q: adding VLAN 0 to HW filter on device lan1
[  184.550663] switch: port 1(lan1) entered blocking state
[  184.556690] switch: port 1(lan1) entered disabled state
[  184.563288] device lan1 entered promiscuous mode
[  184.568637] device eth0 entered promiscuous mode
[  184.619755] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[  184.636192] Not offloading default route for now
[  184.647254] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[  184.984553] rtl83xx-switch switch@1b000000 lan2: configuring for phy/internal link mode
[  185.024485] 8021q: adding VLAN 0 to HW filter on device lan2
[  185.074257] switch: port 2(lan2) entered blocking state
[  185.080161] switch: port 2(lan2) entered disabled state
[  185.104220] device lan2 entered promiscuous mode
[  185.294282] rtl83xx-switch switch@1b000000 lan3: configuring for phy/internal link mode
[  185.332090] 8021q: adding VLAN 0 to HW filter on device lan3
[  185.386975] switch: port 3(lan3) entered blocking state
[  185.392940] switch: port 3(lan3) entered disabled state
[  185.414290] device lan3 entered promiscuous mode
[  185.614243] rtl83xx-switch switch@1b000000 lan4: configuring for phy/internal link mode
[  185.654299] 8021q: adding VLAN 0 to HW filter on device lan4
[  185.737712] switch: port 4(lan4) entered blocking state
[  185.743611] switch: port 4(lan4) entered disabled state
[  185.774230] device lan4 entered promiscuous mode
[  186.074224] rtl83xx-switch switch@1b000000 lan5: configuring for phy/internal link mode
[  186.134276] 8021q: adding VLAN 0 to HW filter on device lan5
[  186.230606] switch: port 5(lan5) entered blocking state
[  186.236627] switch: port 5(lan5) entered disabled state
[  186.274403] device lan5 entered promiscuous mode
[  186.281156] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[  186.288789] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[  186.544214] rtl83xx-switch switch@1b000000 lan6: configuring for phy/internal link mode
[  186.584255] 8021q: adding VLAN 0 to HW filter on device lan6
[  186.659689] switch: port 6(lan6) entered blocking state
[  186.665703] switch: port 6(lan6) entered disabled state
[  186.672349] device lan6 entered promiscuous mode
[  186.894222] rtl83xx-switch switch@1b000000 lan7: configuring for phy/internal link mode
[  186.934266] 8021q: adding VLAN 0 to HW filter on device lan7
[  187.006332] switch: port 7(lan7) entered blocking state
[  187.012238] switch: port 7(lan7) entered disabled state
[  187.019067] device lan7 entered promiscuous mode
[  187.214218] rtl83xx-switch switch@1b000000 lan8: configuring for phy/internal link mode
[  187.254256] 8021q: adding VLAN 0 to HW filter on device lan8
[  187.321602] switch: port 8(lan8) entered blocking state
[  187.327610] switch: port 8(lan8) entered disabled state
[  187.334507] device lan8 entered promiscuous mode
[  187.534226] rtl83xx-switch switch@1b000000 lan9: configuring for phy/qsgmii link mode
[  187.565492] 8021q: adding VLAN 0 to HW filter on device lan9
[  187.601776] switch: port 9(lan9) entered blocking state
[  187.607788] switch: port 9(lan9) entered disabled state
[  187.614718] device lan9 entered promiscuous mode
[  187.709290] rtl83xx-switch switch@1b000000 lan10: configuring for phy/qsgmii link mode
[  187.729647] 8021q: adding VLAN 0 to HW filter on device lan10
[  187.766485] switch: port 10(lan10) entered blocking state
[  187.772583] switch: port 10(lan10) entered disabled state
[  187.779698] device lan10 entered promiscuous mode
[  187.801160] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[  189.074178] RTL8380 Link change: status: 1, ports 1000
[  189.392655] rtl83xx-switch switch@1b000000 lan5: Link is Up - 1Gbps/Full - flow control off
[  189.445795] switch: port 5(lan5) entered blocking state
[  189.451698] switch: port 5(lan5) entered forwarding state
[  189.494110] IPv6: ADDRCONF(NETDEV_CHANGE): switch: link becomes ready
[  189.524164] IPv6: ADDRCONF(NETDEV_CHANGE): switch.1: link becomes ready
[  190.744718] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[  190.752178] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported

What does fw_printsys say? If it says bootpartition=1 then try

fw_setsys bootpartition 0

I thought maybe we fixed that up automatically, but maybe we don't?