Unbrick RT3200 still running old OEM U-Boot?

First, I want to say thank you for your time and energy on this amazing project. I've tried to support OpenWRT with donations to SFC and purchasing the One router, but that is small compared to the work you put in. You guys are awesome and have made the world (and my life) better through your efforts. This is my first post and I hate to bother you with what was probably a dumb mistake. Thank you in advance for your time and thoughts!

I have read through several posts about unbricking the Belkin RT3200 / Linksys E8450 but didn't find any where the description sounded similar to the one I'm working on.

I started with a Belkin RT3200 that was never used. The goal is to use OpenWRT permanently. When I first plugged it in, it was running 1.0.01 OEM firmware. I tried getting past the very buggy OEM web interface and its mandatory 'activation' process in order to run the UBI installer, but with no success (password would be accepted, web dashboard would begin loading but redirect back to the login screen before any of the interface links were active. I tried multiple resets and activations to no avail.) I vaguely remember running into this years ago with a different RT3200 and getting past it by first upgrading to the OEM 1.1.x firmware before running the OpenWRT UBI installer. The OEM activation process offers an auto upgrade which I also tried several times but it never ran successfully. So as a last resort, I connected to the serial port, used wget to download the OEM 1.1.x firmware to /tmp/ and ran sysupgrade -n. I cringe now because that killed the part of the NAND where the master and slave were stored and I neglected to save a copy of the output of that process.

The OEM U-Boot is still working:

Summary

*** U-Boot SPI NAND ***
1. System Load Linux to SDRAM via TFTP.
2. System Load Linux Kernel then write to Flash via TFTP.
3. Boot master system code via Flash.
4. Boot slave system code via Flash.
5. System Load U-Boot then write to Flash via TFTP.
6. System Load U-Boot then write to Flash via Serial.
7. System Load ATF then write to Flash via TFTP.
8. System Load Preloader then write to Flash via TFTP.
U-Boot console

Choosing "3 Boot master system via Flash" produces this error:

Summary

NAND read: device 0 offset 0x500000, size 0x2000
8192 bytes read: OK
[do_read_image_blks] Image format error,neither FIT image nor old image.
Bad Magic Number.

NAND read: device 0 offset 0x500000, size 0x0
0 bytes read: OK
bootm flag=0, states=70f
Wrong Image Format for bootm command
ERROR: can't get kernel image!
MT7622>

And choosing "4 Boot slave system code via Flash" produces the exact same error except the offset is different:

Summary

NAND read: device 0 offset 0x2300000, size 0x2000
8192 bytes read: OK
[do_read_image_blks] Image format error,neither FIT image nor old image.
Bad Magic Number.

NAND read: device 0 offset 0x2300000, size 0x0
0 bytes read: OK
bootm flag=0, states=70f
Wrong Image Format for bootm command
ERROR: can't get kernel image!
MT7622>

I'm not sure what UBoot commands might be helpful.

Summary

MT7622> nand info

Device 0: nand0, sector size 128 KiB
Page size 2048 b
OOB size 64 b
Erase size 131072 b

To quickly see if I could get any image to boot without modifying the flash storage, I tried the "1. System Load Linux to SDRAM via TFTP" with both an OEM firmware image and a current OpenWRT recovery image but both fail.

Summary

Please Input new setting /or enter to choose the default setting
Input kernel file name (lede-mediatek-mt7622-MTK-AX3200-MT7531-squashfs-sysupgrade.bin) ==:
Input server IP (192.168.1.254) ==:
Input device IP (192.168.1.1) ==:
ETH already turn on and power on flow will be skipped...

Waitting for RX_DMA_BUSY status Start... done

mt7531: mt7531_sw_init
mt7531: mt7531_core_pll_setup, hwstrap = 000000ff, xtal=25MHz
mt7531: mt7531_mac_port_setup, port = 6
mt7531: mt7531_set_port_sgmii_force_mode, port = 6
mt7531: timeout waiting for SGMII_LINK
mt7531: mt7531_mac_port_setup, PMCR6 = f805633b

START CALIBRATION:
-------- gephy-calbration (port:0) --------
CALDLY = 40
0x1e-e0 = 2626
0x1f-115 = 4
GE Rext AnaCal Done! (6)(0x26)
GE R50 AnaCal Done! (7) (0x37)(0xb7)
GE R50 AnaCal Done! (7) (0x37)(0xb7)
GE R50 AnaCal Done! (7) (0x37)(0xb7)
GE R50 AnaCal Done! (9) (0x34)(0xb4)
GE 1e_174(0xb7b7), 1e_175(0xb7b4)
GE Tx offset AnaCal Done! (pair-0)(5)(0x24) 0x1e_172=0x2420
GE Tx offset AnaCal Done! (pair-1)(3)(0x22) 0x1e_172=0x2422
GE Tx offset AnaCal Done! (pair-2)(2)(0x21) 0x1e_173=0x2120
GE Tx offset AnaCal Done! (pair-3)(3)(0x22) 0x1e_173=0x2122
GE Tx amp AnaCal Done! (pair-0)(1e_12 = 0x6c1b)
GE Tx amp AnaCal Done! (pair-1)(1e_17 = 0x1919)
GE Tx amp AnaCal Done! (pair-2)(1e_19 = 0x1820)
GE Tx amp AnaCal Done! (pair-3)(1e_21 = 0xe16)
PORT 0 RX_DC_OFFSET
before pairA output = f
after pairA output = 1
before pairB output = 1d
after pairB output = 0
before pairC output = e
after pairC output = fe
before pairD output = 1d
after pairD output = ff
-------- gephy-calbration (port:1) --------
CALDLY = 40
GE R50 AnaCal Done! (10) (0x32)(0xb2)
GE R50 AnaCal Done! (9) (0x34)(0xb4)
GE R50 AnaCal Done! (8) (0x35)(0xb5)
GE R50 AnaCal Done! (9) (0x34)(0xb4)
GE 1e_174(0xb2b4), 1e_175(0xb5b4)
GE Tx offset AnaCal Done! (pair-0)(7)(0x26) 0x1e_172=0x2620
GE Tx offset AnaCal Done! (pair-1)(9)(0x28) 0x1e_172=0x2628
GE Tx offset AnaCal Done! (pair-2)(4)(0x23) 0x1e_173=0x2320
GE Tx offset AnaCal Done! (pair-3)(6)(0x25) 0x1e_173=0x2325
GE Tx amp AnaCal Done! (pair-0)(1e_12 = 0x8421)
GE Tx amp AnaCal Done! (pair-1)(1e_17 = 0x1f1f)
GE Tx amp AnaCal Done! (pair-2)(1e_19 = 0x1c24)
GE Tx amp AnaCal Done! (pair-3)(1e_21 = 0x2129)
PORT 1 RX_DC_OFFSET
before pairA output = 1d
after pairA output = 0
before pairB output = 1c
after pairB output = fe
before pairC output = f
after pairC output = ff
before pairD output = e
after pairD output = 1
-------- gephy-calbration (port:2) --------
CALDLY = 40
GE R50 AnaCal Done! (8) (0x35)(0xb5)
GE R50 AnaCal Done! (7) (0x37)(0xb7)
GE R50 AnaCal Done! (7) (0x37)(0xb7)
GE R50 AnaCal Done! (7) (0x37)(0xb7)
GE 1e_174(0xb5b7), 1e_175(0xb7b7)
GE Tx offset AnaCal Done! (pair-0)(2)(0x2) 0x1e_172=0x220
GE Tx offset AnaCal Done! (pair-1)(2)(0x21) 0x1e_172=0x221
GE Tx offset AnaCal Done! (pair-2)(6)(0x25) 0x1e_173=0x2520
GE Tx offset AnaCal Done! (pair-3)(8)(0x27) 0x1e_173=0x2527
GE Tx amp AnaCal Done! (pair-0)(1e_12 = 0x4c13)
GE Tx amp AnaCal Done! (pair-1)(1e_17 = 0x1818)
GE Tx amp AnaCal Done! (pair-2)(1e_19 = 0x171f)
GE Tx amp AnaCal Done! (pair-3)(1e_21 = 0x1119)
PORT 2 RX_DC_OFFSET
before pairA output = 1e
after pairA output = 0
before pairB output = 1c
after pairB output = fe
before pairC output = 1e
after pairC output = 1
before pairD output = d
after pairD output = 1
-------- gephy-calbration (port:3) --------
CALDLY = 40
GE R50 AnaCal Done! (10) (0x32)(0xb2)
GE R50 AnaCal Done! (8) (0x35)(0xb5)
GE R50 AnaCal Done! (9) (0x34)(0xb4)
GE R50 AnaCal Done! (8) (0x35)(0xb5)
GE 1e_174(0xb2b5), 1e_175(0xb4b5)
GE Tx offset AnaCal Done! (pair-0)(2)(0x21) 0x1e_172=0x2120
GE Tx offset AnaCal Done! (pair-1)(5)(0x24) 0x1e_172=0x2124
GE Tx offset AnaCal Done! (pair-2)(2)(0x2) 0x1e_173=0x220
GE Tx offset AnaCal Done! (pair-3)(5)(0x24) 0x1e_173=0x224
GE Tx amp AnaCal Done! (pair-0)(1e_12 = 0x4c13)
GE Tx amp AnaCal Done! (pair-1)(1e_17 = 0x1919)
GE Tx amp AnaCal Done! (pair-2)(1e_19 = 0x1a22)
GE Tx amp AnaCal Done! (pair-3)(1e_21 = 0x1b23)
PORT 3 RX_DC_OFFSET
before pairA output = f
after pairA output = ff
before pairB output = c
after pairB output = ff
before pairC output = f
after pairC output = ff
before pairD output = e
after pairD output = 1
-------- gephy-calbration (port:4) --------
CALDLY = 40
GE R50 AnaCal Done! (10) (0x32)(0xb2)
GE R50 AnaCal Done! (9) (0x34)(0xb4)
GE R50 AnaCal Done! (8) (0x35)(0xb5)
GE R50 AnaCal Done! (10) (0x32)(0xb2)
GE 1e_174(0xb2b4), 1e_175(0xb5b2)
GE Tx offset AnaCal Done! (pair-0)(2)(0x2) 0x1e_172=0x220
GE Tx offset AnaCal Done! (pair-1)(4)(0x23) 0x1e_172=0x223
GE Tx offset AnaCal Done! (pair-2)(3)(0x22) 0x1e_173=0x2220
GE Tx offset AnaCal Done! (pair-3)(4)(0x23) 0x1e_173=0x2223
GE Tx amp AnaCal Done! (pair-0)(1e_12 = 0x741d)
GE Tx amp AnaCal Done! (pair-1)(1e_17 = 0x1e1e)
GE Tx amp AnaCal Done! (pair-2)(1e_19 = 0x171f)
GE Tx amp AnaCal Done! (pair-3)(1e_21 = 0x151d)
PORT 4 RX_DC_OFFSET
before pairA output = f
after pairA output = 0
before pairB output = d
after pairB output = ff
before pairC output = 1e
after pairC output = 1
before pairD output = f
after pairD output = ff
0x1b000014 = 0x00110214
Using mtk_eth device
TFTP from server 192.168.1.254; our IP address is 192.168.1.1
Filename 'lede-mediatek-mt7622-MTK-AX3200-MT7531-squashfs-sysupgrade.bin'.
Load address: 0x4007ff28
Loading: T #################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
##########################################################
1.6 MiB/s
done
Bytes transferred = 9437488 (900130 hex)
get filesize 0x900130
bootm flag=0, states=70f

Loading kernel from FIT Image at 4007ff28 ...

Using 'config-1' configuration
Trying 'kernel-1' kernel subimage
Description: ARM64 OpenWrt Linux-6.6.89
Type: Kernel Image
Compression: lzma compressed
Data Start: 0x40080010
Data Size: 4455655 Bytes = 4.2 MiB
Architecture: AArch64
OS: Linux
Load Address: 0x44000000
Entry Point: 0x44000000
Hash algo: crc32
Hash value: 324cef77
Hash algo: sha1
Hash value: 834fd84fdf98aecc273dd1922edbb3b79689f6a1
Verifying Hash Integrity ... crc32+ sha1+ OK

Loading fdt from FIT Image at 4007ff28 ...

Using 'config-1' configuration
Trying 'fdt-1' fdt subimage
Description: ARM64 OpenWrt linksys_e8450 device tree blob
Type: Flat Device Tree
Compression: uncompressed
Data Start: 0x404bfe38
Data Size: 31434 Bytes = 30.7 KiB
Architecture: AArch64
Hash algo: crc32
Hash value: 1f343b01
Hash algo: sha1
Hash value: 334d0b6d1b8d633bd0f173942a2d6abed8d40dcd
Verifying Hash Integrity ... crc32+ sha1+ OK
Booting using the fdt blob at 0x404bfe38
Uncompressing Kernel Image ... OK
Loading Device Tree to 5cf08000, end 5cf12ac9 ... OK

Starting kernel ...

[ATF][ 16.797958]save kernel info
[ATF][ 16.800894]Kernel_EL2
[ATF][ 16.803564]Kernel is 64Bit
[ATF][ 16.806653]pc=0x44000000, r0=0x5cf08000, r1=0x0
INFO: BL3-1: Preparing for EL3 exit to normal world, Kernel
INFO: BL3-1: Next image address = 0x44000000
INFO: BL3-1: Next image spsr = 0x3c9
[ATF][ 16.824351]el3_exit
[ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[ 0.000000] Linux version 6.6.89 (builder@buildhost) (aarch64-openwrt-linux-musl-gcc (OpenWrt GCC 14.2.0 r29468-f8da45e25d) 14.2.0, GNU ld (GNU Binutils) 2.42) #0 SMP Mon May 5 06:25:29 2025
[ 0.000000] Machine model: Linksys E8450
[ 0.000000] OF: reserved mem: 0x0000000042ff0000..0x0000000042ffffff (64 KiB) map non-reusable ramoops@42ff0000
[ 0.000000] OF: reserved mem: 0x0000000043000000..0x000000004302ffff (192 KiB) nomap non-reusable secmon@43000000
[ 0.000000] Zone ranges:
[ 0.000000] DMA [mem 0x0000000040000000-0x000000005fffffff]
[ 0.000000] DMA32 empty
[ 0.000000] Normal empty
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x0000000040000000-0x0000000042ffffff]
[ 0.000000] node 0: [mem 0x0000000043000000-0x000000004302ffff]
[ 0.000000] node 0: [mem 0x0000000043030000-0x000000005fffffff]
[ 0.000000] Initmem setup node 0 [mem 0x0000000040000000-0x000000005fffffff]
[ 0.000000] psci: probing for conduit method from DT.
[ 0.000000] psci: PSCIv0.2 detected in firmware.
[ 0.000000] psci: Using standard PSCI v0.2 function IDs
[ 0.000000] psci: Trusted OS migration not required
[ 0.000000] percpu: Embedded 18 pages/cpu s35560 r8192 d29976 u73728
[ 0.000000] pcpu-alloc: s35560 r8192 d29976 u73728 alloc=18*4096
[ 0.000000] pcpu-alloc: [0] 0 [0] 1
[ 0.000000] Detected VIPT I-cache on CPU0
[ 0.000000] CPU features: kernel page table isolation disabled by kernel configuration
[ 0.000000] CPU features: detected: ARM erratum 843419
[ 0.000000] alternatives: applying boot alternatives
[ 0.000000] Kernel command line: console=ttyS0,115200 rootdelay=1 rootfstype=squashfs earlyprintk mtdparts=slave
[ 0.000000] Unknown kernel command line parameters "earlyprintk mtdparts=slave", will be passed to user space.
[ 0.000000] Dentry cache hash table entries: 65536 (order: 7, 524288 bytes, linear)
[ 0.000000] Inode-cache hash table entries: 32768 (order: 6, 262144 bytes, linear)
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 129024
[ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[ 0.000000] software IO TLB: SWIOTLB bounce buffer size adjusted to 0MB
[ 0.000000] software IO TLB: area num 2.
[ 0.000000] software IO TLB: mapped [mem 0x000000005f540000-0x000000005f5c0000] (0MB)
[ 0.000000] Memory: 499472K/524288K available (9216K kernel code, 950K rwdata, 2608K rodata, 448K init, 310K bss, 24816K reserved, 0K cma-reserved)
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
[ 0.000000] rcu: Hierarchical RCU implementation.
[ 0.000000] Tracing variant of Tasks RCU enabled.
[ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
[ 0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[ 0.000000] Root IRQ handler: gic_handle_irq
[ 0.000000] GIC: Using split EOI/Deactivate mode
[ 0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.
[ 0.000000] arch_timer: cp15 timer(s) running at 12.50MHz (phys).
[ 0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x2e2049cda, max_idle_ns: 440795202628 ns
[ 0.000000] sched_clock: 56 bits at 13MHz, resolution 80ns, wraps every 4398046511080ns
[ 0.000225] Calibrating delay loop (skipped), value calculated using timer frequency.. 25.00 BogoMIPS (lpj=125000)
[ 0.000234] pid_max: default: 32768 minimum: 301
[ 0.002997] Mount-cache hash table entries: 1024 (order: 1, 8192 bytes, linear)
[ 0.003007] Mountpoint-cache hash table entries: 1024 (order: 1, 8192 bytes, linear)
[ 0.005664] RCU Tasks Trace: Setting shift to 1 and lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=2.
[ 0.005804] rcu: Hierarchical SRCU implementation.
[ 0.005807] rcu: Max phase no-delay instances is 1000.
[ 0.006201] smp: Bringing up secondary CPUs ...
[ 0.006602] Detected VIPT I-cache on CPU1
[ 0.006675] CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
[ 0.006745] smp: Brought up 1 node, 2 CPUs
[ 0.006750] SMP: Total of 2 processors activated.
[ 0.006753] CPU features: detected: 32-bit EL0 Support
[ 0.006756] CPU features: detected: CRC32 instructions
[ 0.006786] CPU features: emulated: Privileged Access Never (PAN) using TTBR0_EL1 switching
[ 0.006789] CPU: All CPU(s) started at EL2
[ 0.006791] alternatives: applying system-wide alternatives
[ 0.011291] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[ 0.011311] futex hash table entries: 512 (order: 3, 32768 bytes, linear)
[ 0.012522] pinctrl core: initialized pinctrl subsystem
[ 0.013641] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[ 0.013946] DMA: preallocated 128 KiB GFP_KERNEL pool for atomic allocations
[ 0.013970] DMA: preallocated 128 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
[ 0.013991] DMA: preallocated 128 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[ 0.014411] thermal_sys: Registered thermal governor 'fair_share'
[ 0.014414] thermal_sys: Registered thermal governor 'bang_bang'
[ 0.014417] thermal_sys: Registered thermal governor 'step_wise'
[ 0.014420] thermal_sys: Registered thermal governor 'user_space'
[ 0.014484] ASID allocator initialised with 65536 entries
[ 0.015127] pstore: Using crash dump compression: deflate
[ 0.015132] pstore: Registered ramoops as persistent store backend
[ 0.015134] ramoops: using 0x10000@0x42ff0000, ecc: 0
[ 0.025246] Modules: 29344 pages in range for non-PLT usage
[ 0.025256] Modules: 520864 pages in range for PLT usage
[ 0.026214] cryptd: max_cpu_qlen set to 1000
[ 0.027232] SCSI subsystem initialized
[ 0.027386] libata version 3.00 loaded.
[ 0.029087] clocksource: Switched to clocksource arch_sys_counter
[ 0.031253] NET: Registered PF_INET protocol family
[ 0.031356] IP idents hash table entries: 8192 (order: 4, 65536 bytes, linear)
[ 0.032716] tcp_listen_portaddr_hash hash table entries: 256 (order: 0, 4096 bytes, linear)
[ 0.032728] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[ 0.032737] TCP established hash table entries: 4096 (order: 3, 32768 bytes, linear)
[ 0.032767] TCP bind hash table entries: 4096 (order: 5, 131072 bytes, linear)
[ 0.032872] TCP: Hash tables configured (established 4096 bind 4096)
[ 0.033174] MPTCP token hash table entries: 512 (order: 1, 12288 bytes, linear)
[ 0.033274] UDP hash table entries: 256 (order: 1, 8192 bytes, linear)
[ 0.033289] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, linear)
[ 0.033532] NET: Registered PF_UNIX/PF_LOCAL protocol family
[ 0.033565] PCI: CLS 0 bytes, default 64
[ 0.034761] workingset: timestamp_bits=46 max_order=17 bucket_order=0
[ 0.039324] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[ 0.039330] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[ 0.093807] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 251)
[ 0.094947] mt7622-pinctrl 10211000.pinctrl: invalid group "pwm_ch7_2" for function "pwm"
[ 0.105202] mt-pmic-pwrap 10001000.pwrap: unexpected interrupt int=0x1
[ 0.118589] Serial: 8250/16550 driver, 16 ports, IRQ sharing enabled
[ 0.123140] printk: console [ttyS0] disabled
[ 0.143526] 11002000.serial: ttyS0 at MMIO 0x11002000 (irq = 118, base_baud = 1562500) is a ST16650V2
[ 0.143574] printk: console [ttyS0] enabled
[ 0.841744] 11004000.serial: ttyS1 at MMIO 0x11004000 (irq = 119, base_baud = 1562500) is a ST16650V2
[ 0.851921] mtk_rng 1020f000.rng: registered RNG driver
[ 0.852083] random: crng init done
[ 0.863292] loop: module loaded
[ 0.866912] mtk-ecc 1100e000.ecc: probed
[ 0.874144] spi-nand spi2.0: Fidelix SPI NAND was found.
[ 0.879490] spi-nand spi2.0: 128 MiB, block size: 128 KiB, page size: 2048, OOB size: 64
[ 0.887622] mtk-snand 1100d000.spi: ECC strength: 4 bits per 512 bytes
[ 0.895462] [BBT] BMT.v2 is found at 0x3ff
[ 0.899963] 12 fixed-partitions partitions found on MTD device spi2.0
[ 0.906423] OF: Bad cell count for /spi@1100d000/flash@0/partitions
[ 0.912708] OF: Bad cell count for /spi@1100d000/flash@0/partitions
[ 0.919258] OF: Bad cell count for /spi@1100d000/flash@0/partitions
[ 0.925527] OF: Bad cell count for /spi@1100d000/flash@0/partitions
[ 0.931904] Creating 12 MTD partitions on "spi2.0":
[ 0.936776] 0x000000000000-0x000000080000 : "Preloader"
[ 0.942882] 0x000000080000-0x0000000c0000 : "ATF"
[ 0.948126] 0x0000000c0000-0x000000140000 : "u-boot"
[ 0.953894] 0x000000140000-0x0000001c0000 : "u-boot-env"
[ 0.960003] 0x0000001c0000-0x0000002c0000 : "factory"
[ 0.966393] OF: Bad cell count for /spi@1100d000/flash@0/partitions
[ 0.972858] 0x000000300000-0x000000320000 : "devinfo"
[ 0.978339] 0x000000320000-0x000000340000 : "senv"
[ 0.983546] 0x000000360000-0x000000380000 : "bootseq"
[ 0.988997] 0x000000500000-0x000002300000 : "firmware1"
[ 1.025935] 0x000002300000-0x000004100000 : "firmware2"
[ 1.094424] no rootfs found after FIT image in "firmware2"
[ 1.099928] 0x000004100000-0x000005a00000 : "data"
[ 1.130972] 0x000005a00000-0x000006e00000 : "mfg"
[ 1.292908] mtk_soc_eth 1b100000.ethernet eth0: mediatek frame engine at 0xffffffc0815c0000, irq 126
[ 1.302736] i2c_dev: i2c /dev entries driver
[ 1.308475] mtk-wdt 10212000.watchdog: Watchdog enabled (timeout=31 sec, nowayout=0)
[ 1.318450] NET: Registered PF_INET6 protocol family
[ 1.324105] Segment Routing with IPv6
[ 1.327782] In-situ OAM (IOAM) with IPv6
[ 1.331759] NET: Registered PF_PACKET protocol family
[ 1.336820] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this.
[ 1.349984] 8021q: 802.1Q VLAN Support v1.8
[ 1.381690] mtk-pcie 1a143000.pcie: host bridge /pcie@1a143000 ranges:
[ 1.388240] mtk-pcie 1a143000.pcie: Parsing ranges property...
[ 1.394101] mtk-pcie 1a143000.pcie: MEM 0x0020000000..0x0027ffffff -> 0x0020000000
[ 1.665640] mtk-pcie 1a143000.pcie: PCI host bridge to bus 0000:00
[ 1.671857] pci_bus 0000:00: root bus resource [bus 00-ff]
[ 1.677341] pci_bus 0000:00: root bus resource [mem 0x20000000-0x27ffffff]
[ 1.684224] pci_bus 0000:00: scanning bus
[ 1.688415] pci 0000:00:00.0: [14c3:3258] type 01 class 0x060400
[ 1.694604] pci 0000:00:00.0: reg 0x10: [mem 0x00000000-0x1ffffffff 64bit pref]
[ 1.704825] pci_bus 0000:00: fixups for bus
[ 1.709019] pci 0000:00:00.0: scanning [bus 00-00] behind bridge, pass 0
[ 1.715724] pci 0000:00:00.0: bridge configuration invalid ([bus 00-00]), reconfiguring
[ 1.723800] pci 0000:00:00.0: scanning [bus 00-00] behind bridge, pass 1
[ 1.730897] pci_bus 0000:01: scanning bus
[ 1.735055] pci 0000:01:00.0: [14c3:7915] type 00 class 0x000280
[ 1.741242] pci 0000:01:00.0: reg 0x10: [mem 0x00000000-0x000fffff 64bit pref]
[ 1.748566] pci 0000:01:00.0: reg 0x18: [mem 0x00000000-0x00003fff 64bit pref]
[ 1.755895] pci 0000:01:00.0: reg 0x20: [mem 0x00000000-0x00000fff 64bit pref]
[ 1.763870] pci 0000:01:00.0: supports D1 D2
[ 1.768134] pci 0000:01:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 1.774773] pci 0000:01:00.0: PME# disabled
[ 1.779302] pci 0000:01:00.0: 2.000 Gb/s available PCIe bandwidth, limited by 2.5 GT/s PCIe x1 link at 0000:00:00.0 (capable of 4.000 Gb/s with 5.0 GT/s PCIe x1 link)
[ 1.819332] pci_bus 0000:01: fixups for bus
[ 1.823523] pci_bus 0000:01: bus scan returning with max=01
[ 1.829132] pci_bus 0000:01: busn_res: [bus 01-ff] end is updated to 01
[ 1.835767] pci_bus 0000:00: bus scan returning with max=01
[ 1.841382] pci 0000:00:00.0: BAR 0: no space for [mem size 0x200000000 64bit pref]
[ 1.849047] pci 0000:00:00.0: BAR 0: failed to assign [mem size 0x200000000 64bit pref]
[ 1.857051] pci 0000:00:00.0: BAR 8: assigned [mem 0x20000000-0x201fffff]
[ 1.863843] pci 0000:01:00.0: BAR 0: assigned [mem 0x20000000-0x200fffff 64bit pref]
[ 1.871668] pci 0000:01:00.0: BAR 2: assigned [mem 0x20100000-0x20103fff 64bit pref]
[ 1.879494] pci 0000:01:00.0: BAR 4: assigned [mem 0x20104000-0x20104fff 64bit pref]
[ 1.887313] pci 0000:00:00.0: PCI bridge to [bus 01]
[ 1.892279] pci 0000:00:00.0: bridge window [mem 0x20000000-0x201fffff]
[ 1.899194] pcieport 0000:00:00.0: assign IRQ: got 130
[ 1.904334] pcieport 0000:00:00.0: enabling device (0000 -> 0002)
[ 1.910443] pcieport 0000:00:00.0: enabling bus mastering
[ 1.915891] mtk-pcie 1a143000.pcie: msi#0 address_hi 0x0 address_lo 0x450250c0
[ 1.923283] pcieport 0000:00:00.0: PME: Signaling with IRQ 130
[ 1.929197] pcieport 0000:00:00.0: save config 0x00: 0x325814c3
[ 1.935112] pcieport 0000:00:00.0: save config 0x04: 0x00100006
[ 1.941035] pcieport 0000:00:00.0: save config 0x08: 0x06040000
[ 1.946949] pcieport 0000:00:00.0: save config 0x0c: 0x00010000
[ 1.952868] pcieport 0000:00:00.0: save config 0x10: 0x0000000c
[ 1.958781] pcieport 0000:00:00.0: save config 0x14: 0x00000000
[ 1.964697] pcieport 0000:00:00.0: save config 0x18: 0x40010100
[ 1.970615] pcieport 0000:00:00.0: save config 0x1c: 0x04200000
[ 1.976528] pcieport 0000:00:00.0: save config 0x20: 0x20102000
[ 1.982446] pcieport 0000:00:00.0: save config 0x24: 0x00000000
[ 1.988360] pcieport 0000:00:00.0: save config 0x28: 0x00000000
[ 1.994276] pcieport 0000:00:00.0: save config 0x2c: 0x00000000
[ 2.000197] pcieport 0000:00:00.0: save config 0x30: 0x00000000
[ 2.006110] pcieport 0000:00:00.0: save config 0x34: 0x00000050
[ 2.012028] pcieport 0000:00:00.0: save config 0x38: 0x00000000
[ 2.017941] pcieport 0000:00:00.0: save config 0x3c: 0x00020182
[ 2.024314] mtk-pcie 1a145000.pcie: host bridge /pcie@1a145000 ranges:
[ 2.030857] mtk-pcie 1a145000.pcie: Parsing ranges property...
[ 2.036688] mtk-pcie 1a145000.pcie: MEM 0x0028000000..0x002fffffff -> 0x0028000000
[ 2.379110] mtk-pcie 1a145000.pcie: Port1 link down
[ 2.384160] mtk-pcie 1a145000.pcie: PCI host bridge to bus 0001:00
[ 2.390354] pci_bus 0001:00: root bus resource [bus 00-ff]
[ 2.395837] pci_bus 0001:00: root bus resource [mem 0x28000000-0x2fffffff]
[ 2.402715] pci_bus 0001:00: scanning bus
[ 2.408245] pci_bus 0001:00: fixups for bus
[ 2.412428] pci_bus 0001:00: bus scan returning with max=00
[ 2.418608] mtk_hsdma 1b007000.dma-controller: MediaTek HSDMA driver registered
[ 2.506156] mt7530-mdio mdio-bus:1f: configuring for fixed/2500base-x link mode
[ 2.515313] mt7530-mdio mdio-bus:1f: Link is Up - 2.5Gbps/Full - flow control rx/tx
[ 2.526064] mt7530-mdio mdio-bus:1f lan1 (uninitialized): PHY [mt7530-0:00] driver [MediaTek MT7531 PHY] (irq=133)
[ 2.548456] mt7530-mdio mdio-bus:1f lan2 (uninitialized): PHY [mt7530-0:01] driver [MediaTek MT7531 PHY] (irq=134)
[ 2.570482] mt7530-mdio mdio-bus:1f lan3 (uninitialized): PHY [mt7530-0:02] driver [MediaTek MT7531 PHY] (irq=135)
[ 2.592480] mt7530-mdio mdio-bus:1f lan4 (uninitialized): PHY [mt7530-0:03] driver [MediaTek MT7531 PHY] (irq=136)
[ 2.614701] mt7530-mdio mdio-bus:1f wan (uninitialized): PHY [mt7530-0:04] driver [MediaTek MT7531 PHY] (irq=137)
[ 2.625906] mtk_soc_eth 1b100000.ethernet eth0: entered promiscuous mode
[ 2.632651] DSA: tree 0 setup
[ 2.636122] UBI: auto-attach mtd10
[ 2.639540] ubi0: default fastmap pool size: 10
[ 2.644063] ubi0: default fastmap WL pool size: 5
[ 2.648758] ubi0: attaching mtd10
[ 2.709661] ubi0: scanning is finished
[ 2.713417] ubi0 error: ubi_read_volume_table: the layout volume was not found
[ 2.720722] ubi0 error: ubi_attach_mtd_dev: failed to attach mtd10, error -22
[ 2.727905] UBI error: cannot attach mtd10
[ 2.732135] clk: Disabling unused clocks
[ 2.736780] Waiting 1 sec before mounting root device...
[ 3.769736] /dev/root: Can't open blockdev
[ 3.773861] VFS: Cannot open root device "" or unknown-block(0,0): error -6
[ 3.780857] Please append a correct "root=" boot option; here are the available partitions:
[ 3.789258] 1f00 512 mtdblock0
[ 3.789273] (driver?)
[ 3.795811] 1f01 256 mtdblock1
[ 3.795822] (driver?)
[ 3.802377] 1f02 512 mtdblock2
[ 3.802389] (driver?)
[ 3.808924] 1f03 512 mtdblock3
[ 3.808936] (driver?)
[ 3.815488] 1f04 1024 mtdblock4
[ 3.815500] (driver?)
[ 3.822052] 1f05 128 mtdblock5
[ 3.822064] (driver?)
[ 3.828600] 1f06 128 mtdblock6
[ 3.828611] (driver?)
[ 3.835180] 1f07 128 mtdblock7
[ 3.835192] (driver?)
[ 3.841745] 1f08 30720 mtdblock8
[ 3.841757] (driver?)
[ 3.848293] 1f09 30720 mtdblock9
[ 3.848304] (driver?)
[ 3.854856] 1f0a 25600 mtdblock10
[ 3.854868] (driver?)
[ 3.861505] 1f0b 20480 mtdblock11
[ 3.861517] (driver?)
[ 3.868139] List of all bdev filesystems:
[ 3.872162] ext3
[ 3.872169] ext2
[ 3.874093] ext4
[ 3.876016] squashfs
[ 3.877940] f2fs
[ 3.880223]
[ 3.883634] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
[ 3.891896] SMP: stopping secondary CPUs
[ 3.895821] Kernel Offset: disabled
[ 3.899306] CPU features: 0x0,00000004,00000000,0000400b
[ 3.904620] Memory Limit: none
[ 3.917091] pstore: backend (ramoops) writing error (-28)
[ 3.922496] Rebooting in 1 seconds..

I hesitate to run any of the U-Boot options that write to flash until I have your expert advice!

What do you suggest at this point? Should I use the OEM's U-Boot to try flashing an OEM firmware (to then run OpenWRT installer), or use mtk_uartboot to go straight to the OpenWRT installer (or a different image)? Something else? If you suggest using mtk_uartboot, please let me know exactly which bl, fip, preloader, etc. to use... I'm at the edge of my understanding and am still learning.

Thank you again for your help!

I suspect that the stock images you wrote to the device in initially trying to get it to boot were likely signed and wrapped for the web-based tool, and they were not the raw data that gets stored within flash. Because of this extra data, the router doesn't recognize it as a viable image. If you can find a much older image, that might work in recovering to the stock OS since the older images weren't signed.

The good news if you intend to stick with OpenWRT: You're already headed in the right direction. The OpenWRT image you loaded via TFTP is compatible, but it's crashing because it's expecting to find the image on flash. Since you were running it entirely from RAM, it can't find the data and so it can't proceed. However, you can use the stock U-Boot option to System Load Linux Kernel then write to Flash via TFTP (option 2) and that should replace the second (slave) image on the flash with the file from TFTP. From there, you can boot the secondary slot and use OpenWRT to load a new image into the primary slot.

Before performing any flashes beyond the initial load from TFTP, I strongly recommend is that you use the newly running OpenWRT Non-UBI installation to retrieve a copy of the router's Factory partition. In the non-UBI environment, this should be mtd4. You can retrieve this either with the help of dd and scp, or you can do it right from LuCI's firmware update page under the mtdparts section. That partition contains unique data that is critical for OpenWRT. Although there are other unique partitions if you intend to run stock, the Factory partition is the only one you need to fully reload the router to OpenWRT even if the data on the entire flash chip is wiped or corrupted.

@grauerfuchs , thank you very much for your encouraging and detailed reply! I did as you suggested and was able to revive the router, convert it to UBI, and upgrade to 24.10.1. Once again, I'm very grateful for your help!

1 Like