Incoplete reboot when using custom built image for TPlink AX23(MT7621)

Hi!
I built custom 25.12 image for my AX23 to use 32 MB flash I upgraded it to.
Everything works except reboot not finishing - device stays off utill power cycle.
Hope I missing something obvious.

Behaviour:
Official image reboots device normally;
Built image without any changes to official config also reboots normally;
Built image with changes only to partitions performs what looks like shutdown;

Serial output after issuing reboot is functionally identical for all images, no errors.
Last serial message is "reboot: Restarting system", no atempt to boot.
Using "echo b > /proc/sysrq-trigger" behaves same (last message "sysrq: Resetting").

What I changed in image:

  • in "mt7621.mk" for "tplink_archer-ax23-v1" increased "IMAGE_SIZE" from "15744k" to "32128k";
  • in "mt7621_tplink_archer-ax23-v1.dts" increased "firmware" partition size and shifted other partitions as reqired:
partitions
Old:							Changed:

partition@0 { 					partition@0 {
	label = "u-boot"; 				label = "u-boot";
	reg = <0x000000 0x040000>; 		reg = <0x0000000 0x0040000>;
	...
partition@40000 { 				partition@40000 {
	label = "firmware"; 			label = "firmware";
	reg = <0x040000 0xf60000>; 		reg = <0x0040000 0x1f60000>;
	...
partition@fa0000 { 				partition@1fa0000 {
	label = "config"; 				label = "config"; 
	reg = <0xfa0000 0x010000>; 		reg = <0x1fa0000 0x0010000>;
	...
partition@fb0000 { 				partition@1fb0000 {
	label = "tplink"; 				label = "tplink";
	reg = <0xfb0000 0x040000>; 		reg = <0x1fb0000 0x0040000>;
	...
partition@ff0000 { 				partition@1ff0000 {
	label = "radio"; 				label = "radio";
	reg = <0xff0000 0x010000>; 		reg = <0x1ff0000 0x0010000>;

Changes outside image:

  • New flash chip itself (tested read/write entire volume, tried different chips).
  • Data from shifted partitions copied to new offsets.
  • Changed bootloader to one from "https://github.com/ec-/u-boot-mt7621".

Original bootloader checked for partition table at fixed addres somwhere in 0xfc0000 region, which now landed in "firmware" partition, not "tplink".
Official image reboots device as expected with new bootloader, so I don't suspect it.

There are no errors in serial output during cold boot as well, only few warnings:

boot warnings
...
pci 0000:00:00.0: BAR 0 [mem size 0x80000000]: can't assign; no space
...
pci_bus 0000:00: Some PCI device resources are unassigned, try booting with pci=realloc
...

I thought maybe this is related to GPIO, but all leds and reset/wps button work properly.
and

[    1.650459] mtd: partition "kernel" doesn't end on an erase/write block -- force read-only
...
[    1.664827] mtd: partition "rootfs" doesn't start on an erase/write block boundary -- force read-only

Don't know if this can be related, as start offset of "firmware" partition not changed

I also checked flash chip signals with scope when device is in this "shutdown" state.
There is no activity on data or cs pins to suspect some bootloop before serial output.
Chip recieves 250kHz clock tho.

Serial outputs:

after reboot command
[350432.800229] mt7915e 0000:02:00.0 phy1-ap0: left allmulticast mode
[350432.806501] mt7915e 0000:02:00.0 phy1-ap0: left promiscuous mode
[350432.812961] br-lan: port 6(phy1-ap0) entered disabled state
[350432.860208] br-lan: port 5(phy0-ap0) entered disabled state
[350432.866278] br-lan: port 1(lan1) entered disabled state
[350432.879097] mt7530-mdio mdio-bus:1f lan1: left allmulticast mode
[350432.885276] mt7530-mdio mdio-bus:1f lan1: left promiscuous mode
[350432.891774] br-lan: port 1(lan1) entered disabled state
[350432.902404] mt7530-mdio mdio-bus:1f lan1: Link is Down
[350432.909988] mt7530-mdio mdio-bus:1f lan2: left allmulticast mode
[350432.916165] mt7530-mdio mdio-bus:1f lan2: left promiscuous mode
[350432.922599] br-lan: port 2(lan2) entered disabled state
[350432.931443] mt7915e 0000:02:00.0 phy0-ap0: left allmulticast mode
[350432.937699] mt7915e 0000:02:00.0 phy0-ap0: left promiscuous mode
[350432.944112] br-lan: port 5(phy0-ap0) entered disabled state
[350432.953520] mt7530-mdio mdio-bus:1f lan3: left allmulticast mode
[350432.959752] mt7530-mdio mdio-bus:1f lan3: left promiscuous mode
[350432.966048] br-lan: port 3(lan3) entered disabled state
[350432.977396] mt7530-mdio mdio-bus:1f lan4: left allmulticast mode
[350432.983600] mtk_soc_eth 1e100000.ethernet eth0: left allmulticast mode
[350432.990263] mt7530-mdio mdio-bus:1f lan4: left promiscuous mode
[350432.996556] br-lan: port 4(lan4) entered disabled state
[350433.013577] mtk_soc_eth 1e100000.ethernet eth0: Link is Down
[350433.893153] mtk_soc_eth 1e100000.ethernet wan: Link is Down
[350437.875024] reboot: Restarting system
cold boot



U-Boot 1.1.3 (Mar 13 2026 - 01:09:20)


Board: MediaTek APSoC DRAM: 128 MB

MediaTek SPI flash driver, SPI clock: 31MHz

SPI chip ID: ef 40 19 00 - Winbond W25Q256FV

Using default environment


============================================ 

MediaTek U-Boot Version: 5.0.1.0-7

-------------------------------------------- 

ASIC MT7621A DualCore (MAC to MT7530 Mode)

DRAM_CONF_FROM: Auto-Detection 

DRAM_TYPE: DDR3 

DRAM bus: 16 bit

Xtal Mode=3 OCP Ratio=1/3

Flash component: 32 MBytes NOR Flash

Date:Mar 13 2026  Time:01:09:20

============================================ 

icache: sets:256, ways:4, linesz:32, total:32768

dcache: sets:256, ways:4, linesz:32, total:32768 


 Reset MT7530


Please choose the operation: 

   1: Load system code to SDRAM via TFTP.

   2: Load system code then write to Flash via TFTP.

   3: Boot system code via Flash (default).

   4: Enter boot command line interface.

   9: Load U-Boot code then write to Flash via TFTP.


   

3: System Boot system code via Flash.

## Checking image at bc040000 ...

   Image Name:   MIPS OpenWrt Linux-6.12.71

   Image Type:   MIPS Linux Kernel Image (lzma compressed)

   Data Size:    3306451 Bytes =  3.2 MB

   Load Address: 80001000

   Entry Point:  80001000

   Verifying Checksum ... OK

   Stopping network ... OK

   Uncompressing Kernel Image ... OK


Starting kernel ...


[    0.000000] Linux version 6.12.71 (builder@buildhost) (mipsel-openwrt-linux-musl-gcc (OpenWrt GCC 14.3.0 r32713-f919e7899d) 14.3.0, GNU ld (GNU Binutils) 2.44) #0 SMP Tue Mar  3 00:14:15 2026
[    0.000000] SoC Type: MediaTek MT7621 ver:1 eco:3
[    0.000000] printk: legacy bootconsole [early0] enabled
[    0.000000] CPU0 revision is: 0001992f (MIPS 1004Kc)
[    0.000000] MIPS: machine is TP-Link Archer AX23 v1
[    0.000000] Initrd not found or empty - disabling initrd
[    0.000000] VPE topology {2,2} total 4
[    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] MIPS secondary cache 256kB, 8-way, 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] OF: reserved mem: Reserved memory: No reserved-memory node in the DT
[    0.000000] percpu: Embedded 13 pages/cpu s22896 r8192 d22160 u53248
[    0.000000] Kernel command line: console=ttyS0,115200 rootfstype=squashfs,jffs2
[    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=00044090
[    0.000000] Readback ErrCtl register=00044090
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 32768
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=4, 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] RCU Tasks Trace: Setting shift to 2 and lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=4.
[    0.000000] NR_IRQS: 256
[    0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.
[    0.000000] clocksource: GIC: mask: 0xffffffffffffffff max_cycles: 0xcaf478abb4, max_idle_ns: 440795247997 ns
[    0.000005] sched_clock: 64 bits at 880MHz, resolution 1ns, wraps every 4398046511103ns
[    0.008048] Calibrating delay loop... 586.13 BogoMIPS (lpj=2930688)
[    0.066143] pid_max: default: 32768 minimum: 301
[    0.080692] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.087929] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.105749] rcu: Hierarchical SRCU implementation.
[    0.110543] rcu: 	Max phase no-delay instances is 1000.
[    0.116170] Timer migration: 1 hierarchy levels; 8 children per group; 1 crossnode level
[    0.124995] smp: Bringing up secondary CPUs ...
[    0.130392] Primary instruction cache 32kB, VIPT, 4-way, linesize 32 bytes.
[    0.130428] Primary data cache 32kB, 4-way, PIPT, no aliases, linesize 32 bytes
[    0.130445] MIPS secondary cache 256kB, 8-way, linesize 32 bytes.
[    0.130495] CPU1 revision is: 0001992f (MIPS 1004Kc)
[    0.186412] Primary instruction cache 32kB, VIPT, 4-way, linesize 32 bytes.
[    0.186441] Primary data cache 32kB, 4-way, PIPT, no aliases, linesize 32 bytes
[    0.186455] MIPS secondary cache 256kB, 8-way, linesize 32 bytes.
[    0.186486] CPU2 revision is: 0001992f (MIPS 1004Kc)
[    0.246671] Primary instruction cache 32kB, VIPT, 4-way, linesize 32 bytes.
[    0.246698] Primary data cache 32kB, 4-way, PIPT, no aliases, linesize 32 bytes
[    0.246711] MIPS secondary cache 256kB, 8-way, linesize 32 bytes.
[    0.246747] CPU3 revision is: 0001992f (MIPS 1004Kc)
[    0.305827] smp: Brought up 1 node, 4 CPUs
[    0.386397] Memory: 116192K/131072K available (8748K kernel code, 650K rwdata, 1088K rodata, 1276K init, 236K bss, 13556K reserved, 0K cma-reserved)
[    0.406209] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.416026] futex hash table entries: 1024 (order: 3, 32768 bytes, linear)
[    0.428596] pinctrl core: initialized pinctrl subsystem
[    0.436884] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.443485] thermal_sys: Registered thermal governor 'step_wise'
[    0.446029] /pinctrl: Fixed dependency cycle(s) with /pinctrl/pinctrl0
[    0.478995] clocksource: Switched to clocksource GIC
[    0.493980] NET: Registered PF_INET protocol family
[    0.499100] IP idents hash table entries: 2048 (order: 2, 16384 bytes, linear)
[    0.507884] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 4096 bytes, linear)
[    0.516226] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.523931] TCP established hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.531541] TCP bind hash table entries: 1024 (order: 2, 16384 bytes, linear)
[    0.538638] TCP: Hash tables configured (established 1024 bind 1024)
[    0.545890] MPTCP token hash table entries: 256 (order: 0, 4096 bytes, linear)
[    0.553450] UDP hash table entries: 256 (order: 1, 8192 bytes, linear)
[    0.559944] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, linear)
[    0.567811] NET: Registered PF_UNIX/PF_LOCAL protocol family
[    0.573480] PCI: CLS 0 bytes, default 32
[    0.581094] workingset: timestamp_bits=14 max_order=15 bucket_order=1
[    0.589845] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.595593] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    0.610333] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 251)
[    0.621337] mt7621_gpio 1e000600.gpio: registering 32 gpios
[    0.627236] mt7621_gpio 1e000600.gpio: registering 32 gpios
[    0.633323] mt7621_gpio 1e000600.gpio: registering 32 gpios
[    0.639522] mt7621-pci 1e140000.pcie: host bridge /pcie@1e140000 ranges:
[    0.646168] mt7621-pci 1e140000.pcie:   No bus range found for /pcie@1e140000, using [bus 00-ff]
[    0.654971] mt7621-pci 1e140000.pcie:      MEM 0x0060000000..0x006fffffff -> 0x0060000000
[    0.663101] mt7621-pci 1e140000.pcie:       IO 0x001e160000..0x001e16ffff -> 0x0000000000
[    0.999018] mt7621-pci 1e140000.pcie: pcie2 no card, disable it (RST & CLK)
[    1.005916] mt7621-pci 1e140000.pcie: PCIE0 enabled
[    1.010794] mt7621-pci 1e140000.pcie: PCIE1 enabled
[    1.015765] PCI coherence region base: 0x60000000, mask/settings: 0xf0000002
[    1.022972] mt7621-pci 1e140000.pcie: PCI host bridge to bus 0000:00
[    1.029285] pci_bus 0000:00: root bus resource [bus 00-ff]
[    1.034689] pci_bus 0000:00: root bus resource [mem 0x60000000-0x6fffffff]
[    1.041543] pci_bus 0000:00: root bus resource [io  0x0000-0xffff]
[    1.047723] pci 0000:00:00.0: [0e8d:0801] type 01 class 0x060400 PCIe Root Port
[    1.054975] pci 0000:00:00.0: BAR 0 [mem 0x00000000-0x7fffffff]
[    1.060857] pci 0000:00:00.0: BAR 1 [mem 0x00000000-0x0000ffff]
[    1.066684] pci 0000:00:00.0: PCI bridge to [bus 00]
[    1.071641] pci 0000:00:00.0:   bridge window [io  0x0000-0x0fff]
[    1.077655] pci 0000:00:00.0:   bridge window [mem 0x00000000-0x000fffff]
[    1.084425] pci 0000:00:00.0:   bridge window [mem 0x00000000-0x000fffff pref]
[    1.091653] pci 0000:00:00.0: supports D1
[    1.095571] pci 0000:00:00.0: PME# supported from D0 D1 D3hot
[    1.102092] pci 0000:00:01.0: [0e8d:0801] type 01 class 0x060400 PCIe Root Port
[    1.109413] pci 0000:00:01.0: BAR 0 [mem 0x00000000-0x7fffffff]
[    1.115251] pci 0000:00:01.0: BAR 1 [mem 0x00000000-0x0000ffff]
[    1.121173] pci 0000:00:01.0: PCI bridge to [bus 00]
[    1.126050] pci 0000:00:01.0:   bridge window [io  0x0000-0x0fff]
[    1.132126] pci 0000:00:01.0:   bridge window [mem 0x00000000-0x000fffff]
[    1.138837] pci 0000:00:01.0:   bridge window [mem 0x00000000-0x000fffff pref]
[    1.146092] pci 0000:00:01.0: supports D1
[    1.150041] pci 0000:00:01.0: PME# supported from D0 D1 D3hot
[    1.157696] pci 0000:00:00.0: bridge configuration invalid ([bus 00-00]), reconfiguring
[    1.165654] pci 0000:00:01.0: bridge configuration invalid ([bus 00-00]), reconfiguring
[    1.173920] pci 0000:01:00.0: [14c3:7916] type 00 class 0x000280 PCIe Endpoint
[    1.181163] pci 0000:01:00.0: BAR 0 [mem 0x00000000-0x000fffff 64bit pref]
[    1.187965] pci 0000:01:00.0: BAR 2 [mem 0x00000000-0x00003fff 64bit pref]
[    1.194825] pci 0000:01:00.0: BAR 4 [mem 0x00000000-0x00000fff 64bit pref]
[    1.201767] pci 0000:01:00.0: supports D1 D2
[    1.205946] pci 0000:01:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[    1.212580] 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.227653] pci 0000:00:00.0: PCI bridge to [bus 01-ff]
[    1.232871] pci_bus 0000:01: busn_res: [bus 01-ff] end is updated to 01
[    1.239719] pci 0000:02:00.0: [14c3:7915] type 00 class 0x000280 PCIe Endpoint
[    1.246893] pci 0000:02:00.0: BAR 0 [mem 0x00000000-0x000fffff 64bit pref]
[    1.253746] pci 0000:02:00.0: BAR 2 [mem 0x00000000-0x00003fff 64bit pref]
[    1.260568] pci 0000:02:00.0: BAR 4 [mem 0x00000000-0x00000fff 64bit pref]
[    1.267478] pci 0000:02:00.0: supports D1 D2
[    1.271686] pci 0000:02:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[    1.278253] pci 0000:02:00.0: 2.000 Gb/s available PCIe bandwidth, limited by 2.5 GT/s PCIe x1 link at 0000:00:01.0 (capable of 4.000 Gb/s with 5.0 GT/s PCIe x1 link)
[    1.293400] pci 0000:00:01.0: PCI bridge to [bus 02-ff]
[    1.298571] pci_bus 0000:02: busn_res: [bus 02-ff] end is updated to 02
[    1.305209] pci 0000:00:00.0: BAR 0 [mem size 0x80000000]: can't assign; no space
[    1.312625] pci 0000:00:00.0: BAR 0 [mem size 0x80000000]: failed to assign
[    1.319536] pci 0000:00:01.0: BAR 0 [mem size 0x80000000]: can't assign; no space
[    1.326932] pci 0000:00:01.0: BAR 0 [mem size 0x80000000]: failed to assign
[    1.333885] pci 0000:00:00.0: bridge window [mem 0x60000000-0x600fffff]: assigned
[    1.341310] pci 0000:00:00.0: bridge window [mem 0x60100000-0x602fffff pref]: assigned
[    1.349176] pci 0000:00:01.0: bridge window [mem 0x60300000-0x603fffff]: assigned
[    1.356569] pci 0000:00:01.0: bridge window [mem 0x60400000-0x605fffff pref]: assigned
[    1.364476] pci 0000:00:00.0: BAR 1 [mem 0x60600000-0x6060ffff]: assigned
[    1.371210] pci 0000:00:01.0: BAR 1 [mem 0x60610000-0x6061ffff]: assigned
[    1.377911] pci 0000:00:00.0: bridge window [io  0x0000-0x0fff]: assigned
[    1.384682] pci 0000:00:01.0: bridge window [io  0x1000-0x1fff]: assigned
[    1.391429] pci 0000:01:00.0: BAR 0 [mem 0x60100000-0x601fffff 64bit pref]: assigned
[    1.399123] pci 0000:01:00.0: BAR 2 [mem 0x60200000-0x60203fff 64bit pref]: assigned
[    1.406778] pci 0000:01:00.0: BAR 4 [mem 0x60204000-0x60204fff 64bit pref]: assigned
[    1.414505] pci 0000:00:00.0: PCI bridge to [bus 01]
[    1.419425] pci 0000:00:00.0:   bridge window [io  0x0000-0x0fff]
[    1.425431] pci 0000:00:00.0:   bridge window [mem 0x60000000-0x600fffff]
[    1.432202] pci 0000:00:00.0:   bridge window [mem 0x60100000-0x602fffff pref]
[    1.439378] pci 0000:02:00.0: BAR 0 [mem 0x60400000-0x604fffff 64bit pref]: assigned
[    1.447041] pci 0000:02:00.0: BAR 2 [mem 0x60500000-0x60503fff 64bit pref]: assigned
[    1.454765] pci 0000:02:00.0: BAR 4 [mem 0x60504000-0x60504fff 64bit pref]: assigned
[    1.462452] pci 0000:00:01.0: PCI bridge to [bus 02]
[    1.467333] pci 0000:00:01.0:   bridge window [io  0x1000-0x1fff]
[    1.473444] pci 0000:00:01.0:   bridge window [mem 0x60300000-0x603fffff]
[    1.480182] pci 0000:00:01.0:   bridge window [mem 0x60400000-0x605fffff pref]
[    1.487316] pci_bus 0000:00: Some PCI device resources are unassigned, try booting with pci=realloc
[    1.496334] pci_bus 0000:00: resource 4 [mem 0x60000000-0x6fffffff]
[    1.502550] pci_bus 0000:00: resource 5 [io  0x0000-0xffff]
[    1.508050] pci_bus 0000:01: resource 0 [io  0x0000-0x0fff]
[    1.513609] pci_bus 0000:01: resource 1 [mem 0x60000000-0x600fffff]
[    1.519829] pci_bus 0000:01: resource 2 [mem 0x60100000-0x602fffff pref]
[    1.526452] pci_bus 0000:02: resource 0 [io  0x1000-0x1fff]
[    1.532016] pci_bus 0000:02: resource 1 [mem 0x60300000-0x603fffff]
[    1.538202] pci_bus 0000:02: resource 2 [mem 0x60400000-0x605fffff pref]
[    1.547285] Serial: 8250/16550 driver, 16 ports, IRQ sharing enabled
[    1.562335] printk: legacy console [ttyS0] disabled
[    1.567998] 1e000c00.uartlite: ttyS0 at MMIO 0x1e000c00 (irq = 18, base_baud = 3125000) is a 16550A
[    1.577078] printk: legacy console [ttyS0] enabled
[    1.577078] printk: legacy console [ttyS0] enabled
[    1.586581] printk: legacy bootconsole [early0] disabled
[    1.586581] printk: legacy bootconsole [early0] disabled
[    1.602931] spi-mt7621 1e000b00.spi: sys_freq: 220000000
[    1.610037] 5 fixed-partitions partitions found on MTD device spi0.0
[    1.616734] Creating 5 MTD partitions on "spi0.0":
[    1.621559] 0x000000000000-0x000000040000 : "u-boot"
[    1.628115] 0x000000040000-0x000001fa0000 : "firmware"
[    1.634532] 2 uimage-fw partitions found on MTD device firmware
[    1.640514] Creating 2 MTD partitions on "firmware":
[    1.645474] 0x000000000000-0x000000327413 : "kernel"
[    1.650459] mtd: partition "kernel" doesn't end on an erase/write block -- force read-only
[    1.659846] 0x000000327413-0x000001f60000 : "rootfs"
[    1.664827] mtd: partition "rootfs" doesn't start on an erase/write block boundary -- force read-only
[    1.675268] mtd: setting mtd3 (rootfs) as root device
[    1.680498] 1 squashfs-split partitions found on MTD device rootfs
[    1.686671] 0x0000007b0000-0x000001f60000 : "rootfs_data"
[    1.693191] 0x000001fa0000-0x000001fb0000 : "config"
[    1.699705] 0x000001fb0000-0x000001ff0000 : "tplink"
[    1.705707] 0x000001ff0000-0x000002000000 : "radio"
[    1.842388] mt7530-mdio mdio-bus:1f: MT7530 adapts as multi-chip module
[    1.859722] mtk_soc_eth 1e100000.ethernet eth0: mediatek frame engine at 0xbe100000, irq 19
[    1.871438] mtk_soc_eth 1e100000.ethernet eth1: mediatek frame engine at 0xbe100000, irq 19
[    1.881515] i2c_dev: i2c /dev entries driver
[    1.889743] NET: Registered PF_INET6 protocol family
[    1.898139] Segment Routing with IPv6
[    1.901986] In-situ OAM (IOAM) with IPv6
[    1.906013] NET: Registered PF_PACKET protocol family
[    1.911153] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this.
[    1.924735] 8021q: 802.1Q VLAN Support v1.8
[    1.957244] mt7530-mdio mdio-bus:1f: MT7530 adapts as multi-chip module
[    1.989972] mt7530-mdio mdio-bus:1f: configuring for fixed/rgmii link mode
[    1.998311] mt7530-mdio mdio-bus:1f lan1 (uninitialized): PHY [mt7530-0:00] driver [MediaTek MT7530 PHY] (irq=21)
[    2.009408] mt7530-mdio mdio-bus:1f: Link is Up - 1Gbps/Full - flow control rx/tx
[    2.019813] mt7530-mdio mdio-bus:1f lan2 (uninitialized): PHY [mt7530-0:01] driver [MediaTek MT7530 PHY] (irq=22)
[    2.032733] mt7530-mdio mdio-bus:1f lan3 (uninitialized): PHY [mt7530-0:02] driver [MediaTek MT7530 PHY] (irq=23)
[    2.045658] mt7530-mdio mdio-bus:1f lan4 (uninitialized): PHY [mt7530-0:03] driver [MediaTek MT7530 PHY] (irq=24)
[    2.058236] mtk_soc_eth 1e100000.ethernet eth0: entered promiscuous mode
[    2.065155] DSA: tree 0 setup
[    2.069397] clk: Disabling unused clocks
[    2.081044] VFS: Mounted root (squashfs filesystem) readonly on device 31:3.
[    2.092330] Freeing unused kernel image (initmem) memory: 1276K
[    2.098278] This architecture does not have kernel memory protection.
[    2.104816] Run /sbin/init as init process
[    2.717254] init: Console is alive
[    2.721118] init: - watchdog -
[    3.577643] kmodloader: loading kernel modules from /etc/modules-boot.d/*
[    3.606349] gpio_button_hotplug: loading out-of-tree module taints kernel.
[    3.624347] kmodloader: done loading kernel modules from /etc/modules-boot.d/*
[    3.639795] init: - preinit -
[    4.411764] mtk_soc_eth 1e100000.ethernet wan: renamed from eth1
[    5.759051] random: crng init done
[    6.213309] mtk_soc_eth 1e100000.ethernet eth0: configuring for fixed/rgmii link mode
[    6.226029] mt7530-mdio mdio-bus:1f lan1: configuring for phy/gmii link mode
[    6.233222] mtk_soc_eth 1e100000.ethernet eth0: Link is Up - 1Gbps/Full - flow control rx/tx
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
[    8.602138] mt7530-mdio mdio-bus:1f lan1: Link is Up - 100Mbps/Full - flow control off
[   10.754082] jffs2: notice: (620) jffs2_build_xattr_subsystem: complete building xattr subsystem, 45 of xdatum (33 unchecked, 9 orphan) and 58 of xref (9 dead, 0 orphan) found.
[   10.772440] mount_root: switching to jffs2 overlay
[   10.783557] overlayfs: upper fs does not support tmpfile.
[   10.872697] urandom-seed: Seeding with /etc/urandom.seed
[   10.985007] mt7530-mdio mdio-bus:1f lan1: Link is Down
[   11.004039] procd: - early -
[   11.007149] procd: - watchdog -
[   11.637943] procd: - watchdog -
[   11.642417] procd: - ubus -
[   11.801969] procd: - init -
Please press Enter to activate this console.
[   12.466763] kmodloader: loading kernel modules from /etc/modules.d/*
[   12.510059] mtk-eip93 1e004000.crypto: EIP93 Crypto Engine Initialized.
[   13.105637] tun: Universal TUN/TAP device driver, 1.6
[   13.122299] Loading modules backported from Linux version v6.18.7-0-g5dfbc5357
[   13.129630] Backport generated by backports.git c8a37ce
[   13.344816] pci 0000:00:00.0: enabling device (0000 -> 0003)
[   13.350712] mt7915e_hif 0000:01:00.0: enabling device (0000 -> 0002)
[   13.357680] pci 0000:00:01.0: enabling device (0000 -> 0003)
[   13.363430] mt7915e 0000:02:00.0: enabling device (0000 -> 0002)
[   13.564433] urngd: v1.0.2 started.
[   13.673952] mt7915e 0000:02:00.0: HW/SW Version: 0x8a108a10, Build Time: 20240429200716a
[   13.673952] 
[   14.146788] mt7915e 0000:02:00.0: WM Firmware Version: ____000000, Build Time: 20240429200752
[   14.181608] mt7915e 0000:02:00.0: WA Firmware Version: DEV_000000, Build Time: 20240429200812
[   14.300878] mt7915e 0000:02:00.0: registering led 'mt76-phy0'
[   14.492776] mt7915e 0000:02:00.0: registering led 'mt76-phy1'
[   14.696954] PPP generic driver version 2.4.2
[   14.703057] NET: Registered PF_PPPOX protocol family
[   14.715065] kmodloader: done loading kernel modules from /etc/modules.d/*
[   24.488901] mtk_soc_eth 1e100000.ethernet eth0: Link is Down
[   24.517391] mtk_soc_eth 1e100000.ethernet eth0: configuring for fixed/rgmii link mode
[   24.525686] mtk_soc_eth 1e100000.ethernet eth0: Link is Up - 1Gbps/Full - flow control rx/tx
[   24.534081] mt7530-mdio mdio-bus:1f lan1: configuring for phy/gmii link mode
[   24.542694] br-lan: port 1(lan1) entered blocking state
[   24.547953] br-lan: port 1(lan1) entered disabled state
[   24.553359] mt7530-mdio mdio-bus:1f lan1: entered allmulticast mode
[   24.559734] mtk_soc_eth 1e100000.ethernet eth0: entered allmulticast mode
[   24.570982] mt7530-mdio mdio-bus:1f lan1: entered promiscuous mode
[   24.588518] mt7530-mdio mdio-bus:1f lan2: configuring for phy/gmii link mode
[   24.597903] br-lan: port 2(lan2) entered blocking state
[   24.603354] br-lan: port 2(lan2) entered disabled state
[   24.608709] mt7530-mdio mdio-bus:1f lan2: entered allmulticast mode
[   24.617729] mt7530-mdio mdio-bus:1f lan2: entered promiscuous mode
[   24.631834] mt7530-mdio mdio-bus:1f lan3: configuring for phy/gmii link mode
[   24.640440] br-lan: port 3(lan3) entered blocking state
[   24.645728] br-lan: port 3(lan3) entered disabled state
[   24.651196] mt7530-mdio mdio-bus:1f lan3: entered allmulticast mode
[   24.659516] mt7530-mdio mdio-bus:1f lan3: entered promiscuous mode
[   24.672557] mt7530-mdio mdio-bus:1f lan4: configuring for phy/gmii link mode
[   24.681043] br-lan: port 4(lan4) entered blocking state
[   24.686313] br-lan: port 4(lan4) entered disabled state
[   24.691755] mt7530-mdio mdio-bus:1f lan4: entered allmulticast mode
[   24.700373] mt7530-mdio mdio-bus:1f lan4: entered promiscuous mode
[   24.746794] mtk_soc_eth 1e100000.ethernet wan: PHY [mt7530-0:04] driver [MediaTek MT7530 PHY] (irq=POLL)
[   24.756494] mtk_soc_eth 1e100000.ethernet wan: configuring for phy/rgmii link mode
[   25.692080] br-lan: port 5(phy0-ap0) entered blocking state
[   25.697722] br-lan: port 5(phy0-ap0) entered disabled state
[   25.703703] mt7915e 0000:02:00.0 phy0-ap0: entered allmulticast mode
[   25.710827] mt7915e 0000:02:00.0 phy0-ap0: entered promiscuous mode
[   26.007585] br-lan: port 5(phy0-ap0) entered blocking state
[   26.013371] br-lan: port 5(phy0-ap0) entered forwarding state
[   26.739466] mt7530-mdio mdio-bus:1f lan1: Link is Up - 100Mbps/Full - flow control off
[   26.747689] br-lan: port 1(lan1) entered blocking state
[   26.753175] br-lan: port 1(lan1) entered forwarding state
[   27.722592] br-lan: port 6(phy1-ap0) entered blocking state
[   27.728275] br-lan: port 6(phy1-ap0) entered disabled state
[   27.734157] mt7915e 0000:02:00.0 phy1-ap0: entered allmulticast mode
[   27.741180] mt7915e 0000:02:00.0 phy1-ap0: entered promiscuous mode
[   27.880155] mtk_soc_eth 1e100000.ethernet wan: Link is Up - 1Gbps/Full - flow control off
[   90.755353] br-lan: port 6(phy1-ap0) entered blocking state
[   90.761028] br-lan: port 6(phy1-ap0) entered forwarding state

I'm pretty sure those boot warnings are normal. Not sure what causes the "BAR 0 can't assign" message, but I always get it on boot and it doesn't seem to cause any problems. The "kernel/rootfs not on erase/write block" messages are expected for a sysupgrade image.

I doubt this will make a difference, but did you also update the partition table in the tplink MTD partition? tplink-safeloder, the tool that generates the images, also knows about that partition layout:
https://github.com/openwrt/firmware-utils/blob/master/src/tplink-safeloader.c
but I don't think it will matter for a sysupgrade image, other than still applying the ~16MB limit for the image. For a factory image, though, I think that's what populates the partition table in the tplink partition. Alternatively, you can just modify the table directly in MTD, it's just a text formatted block.

I can't think of any reason why that would make a difference for warn boot vs cold boot, though. The bootloader should only care where the kernel is, as well as some of the things in tplink.

One of things I tried before I was able to boot new image at all, problem was that original bootloader expected table in old address no matter what. Device boots first time ok, openwrt then overwrites that data with something else (because that address is now inside firmware partition), device does not boot next time.
But yes, process was getting to bootloader after doing reboot, because I was getting errors from it.

While searching how to change that adress in u-boot found new bootloader that worked, and seems it does not care for what in that partition table at all.
Official 16MB image on 32MB flash with new bootloader works and reboots properly, go figure.

======== added: ========
While searching how to change partition table I read that it is important to "update" addresses, for example from "0x040000" to "0x0040000", because "0x040000" can be inerpreted as "0x1040000".
So if command redirects cpu to address "0x000000", is possible it wrongly gets to "0x1000000"?
Sorry if this suggestion is too dumb, I always assumed mcu just trips its own reset pin and thats all.