Bricked TP-Link TL-WPA8631P v3

Thanks for digging that up. It seems the flasher I have is definitely bad, as the SPI communication is corrupted. I'm not going to spend any time on fixing this and will just wait on the new one that is arriving tomorrow.

Something like this might need to be done for adding XM25QH64C to OpenWrt:

But we still need to confirm whether this is the issue. If people with affected devices can provide full serial console output for OpenWrt 22.03.3 and any Snapshot builds we can check for presence/absence of lines like these:

[    0.990803] spi-nor spi0.0: XM25QH64A (8192 Kbytes)
[    1.000637] 4 fixed-partitions partitions found on MTD device spi0.0

If it sees none, thats a good indicator its not supported. @klojsch suggests this could be working in some snapshot builds with specific kernels, but we need to see those lines in the kernel dmesg console log to know for sure what chips it is seeing.


Here is this chip in uboot. Here are one, two patch attempts for upstream Linux, there seemed to be some ID conflicts so not sure where this ended up. I got no hits in a search in Linux kernel or OpenWrt sources on Github, but maybe it is in some version..

On my own WPA8631P v3 (which the kernel log tells me has a XM25QH64A flash chip), I upgraded to OEM firmware 3.0.1 Build 20220330 Rel.52768, then installed openwrt-22.03.3-ramips-mt7621-tplink_tl-wpa8631p-v3-squashfs-factory.bin and it runs OK. This rules out issues due to new uboot or new OpenWrt 22.03.3 version.


So it looks like the problem is due to lack of support in Linux/OpenWrt for XM25QH64C that is showing up in some newer devices.

To fix this, we'll have to submit a patch into OpenWrt. However from skimming the LKML threads above it sounds like there are some ID conflicts for this chip, so we'll have to get someone knowledgeable to review.

Until such a patch is merged and tested in 22.03-SNAPSHOT or the 22.03.4, I'll leave a banner on the wiki page discouraging installing OpenWrt on these devices, as it is not possible to tell which chip a device has without opening it up first, and these are huge pain to debrick without automatic TFTP recovery or an externally accessible serial console.

Here is a patch that might work, but it will need some testing and I don't have a device with that flash chip. If anyone can test it that would be great, (just have a flash programmer handy in case it breaks). (I'll upload some test build images later).

If some people can test and confirm here that it works OK, I will make a PR to get that merged into /master and /openwrt-22.03 so it will be included in the next release.


Update: Here is a build of the above patch applied to /openwrt-22.03.

1 Like

Thanks! I can try the patch once I unbrick my device.
Is it possible to send me a backup copy for SOIC-8 flashing?
When I read back the current content of the (bricked) device, it's mostly 0xFFFF, is that normal? I'm using ch341a and flashrom 1.2-1094-g748575ab mentioned above
Could it be that the bootloader is stuck in a loop (when powered by the 3.3V of the flasher) and not allowing proper SPI access?

Message me with your email and I will send you a copy.

Yes, it can be a bit tricky to get a stable read/write on the flash. If you also connect to the serial console, try interrupting the boot so its idling at the uboot console, that will guarantee the flash is not being accessed while you are using the SPI flash.

Mine startet in a read-only mode after some trial and error. Connect it to a switch and plug it in with reset and LED buttons pressed. Hold them for 10 seconds and wait for the LAN connection.
You may need a few tries.
Connect with SSH to 192.168.1.1 and do a jffs2reset. Restart the thing and it might work again with default settings. If it keeps forgetting settings, flash a new image without keeping settings.

Edit: That does not help with the wrong flash obviously. Sorry, if that is the wrong thread, I was just happy to have mine resurrected.

Just in case people haven't seen it, here is a build of the patch on top of the openwrt-22.03 branch.

https://drive.google.com/drive/folders/1A0OO-DnMyVc6sHrr9GAS3HslYcQutBo6

It includes Factory, Sysupgrade and Initramfs images. For those who already installed OpenWrt 22.03 and bricked their devices, from the uboot console you should be able to boot the Initramfs image over TFTP into RAM, then check the dmesg logs to see what flash chip and partitions were detected (see log examples in this thread). If they show up OK, then post them here. We should expect to see the XM25QH64C be detected. If one person can confirm this and provide the kernel logs, I'll submit the patch.

At that point, AFAIK you can use sysupgrade to flash the sysupgrade file, then it should boot as normal. (There is no LuCi support, it wouldnt fit in this debug build). Then you can revert to stock using sysupgrade (see wiki, you can use the wpa8631pv3_eu-up-ver3-0-1-P1-20220330-rel52768-APPLC.sysupgrade from the directory above) or wait for 22.03.4.

1 Like

Thank you very much for providing the firmware. To be honest, after having version 3.0.0 on my device, I didn't expect to have the new flash chip installed. Here is a log excerpt showing that OpenWRT is booting with it:

[    0.985425] spi-nor spi0.0: XM25QH64C (8192 Kbytes)
[    0.995231] 4 fixed-partitions partitions found on MTD device spi0.0
[    1.007953] OF: Bad cell count for /palmbus@1e000000/spi@b00/flash@0/partitions
[    1.022593] OF: Bad cell count for /palmbus@1e000000/spi@b00/flash@0/partitions
[    1.038048] OF: Bad cell count for /palmbus@1e000000/spi@b00/flash@0/partitions
[    1.052644] OF: Bad cell count for /palmbus@1e000000/spi@b00/flash@0/partitions
[    1.068438] Creating 4 MTD partitions on "spi0.0":
[    1.078010] 0x000000000000-0x000000020000 : "u-boot"
[    1.088959] 0x000000020000-0x000000730000 : "firmware"
[    1.100547] 2 tplink-fw partitions found on MTD device firmware
[    1.112366] Creating 2 MTD partitions on "firmware":
[    1.122257] 0x000000000000-0x0000002a264b : "kernel"
[    1.132149] mtd: partition "kernel" doesn't end on an erase/write block -- force read-only
[    1.149760] 0x0000002a264b-0x000000710000 : "rootfs"
[    1.159697] mtd: partition "rootfs" doesn't start on an erase/write block boundary -- force read-only
[    1.179153] mtd: setting mtd3 (rootfs) as root device
[    1.189434] 1 squashfs-split partitions found on MTD device rootfs
[    1.201780] 0x0000006c0000-0x000000710000 : "rootfs_data"
[    1.213744] 0x000000730000-0x0000007f0000 : "config"
[    1.224798] 0x0000007f0000-0x000000800000 : "radio"
1 Like

Great, as expected. Do you have that image installed to the device and booting OpenWrt on its own? (i.e. directly from flash, without uboot tftp initramfs loading). Can you post a full copy of your dmesg output here? I'll link that in the PR.

These lines look to be this issue here. I'll just mention them in the PR but it looks like we can ignore them here.

First, I updated from 3.0.0 to the 3.0.1 version you provided, and then I installed the factory image, all through the TP-Link web interface. My adapter is still unopened since serial access was not necessary.

Sure, here is the complete kernel log:

[    0.000000] Linux version 5.10.168 (jwm@toolbox) (mipsel-openwrt-linux-musl-gcc (OpenWrt GCC 11.2.0 r20065-7873e229c0) 11.2.0, GNU ld (GNU Binutils) 2.37) #0 SMP Sat Mar 4 16:52:26 2023
[    0.000000] SoC Type: MediaTek MT7621 ver:1 eco:3
[    0.000000] printk: bootconsole [early0] enabled
[    0.000000] CPU0 revision is: 0001992f (MIPS 1004Kc)
[    0.000000] MIPS: machine is TP-Link TL-WPA8631P v3
[    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-0x0000000003ffffff]
[    0.000000]   HighMem  empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000000000-0x0000000003ffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x0000000003ffffff]
[    0.000000] On node 0 totalpages: 16384
[    0.000000]   Normal zone: 144 pages used for memmap
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000]   Normal zone: 16384 pages, LIFO batch:3
[    0.000000] percpu: Embedded 15 pages/cpu s30224 r8192 d23024 u61440
[    0.000000] pcpu-alloc: s30224 r8192 d23024 u61440 alloc=15*4096
[    0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 16240
[    0.000000] Kernel command line: console=ttyS0,57600 rootfstype=squashfs,jffs2
[    0.000000] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes, linear)
[    0.000000] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes, linear)
[    0.000000] Writing ErrCtl register=00010444
[    0.000000] Readback ErrCtl register=00010444
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] Memory: 54376K/65536K available (6743K kernel code, 622K rwdata, 1364K rodata, 1240K init, 235K bss, 11160K reserved, 0K cma-reserved, 0K highmem)
[    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] NR_IRQS: 256
[    0.000000] CPU Clock: 880MHz
[    0.000000] clocksource: GIC: mask: 0xffffffffffffffff max_cycles: 0xcaf478abb4, max_idle_ns: 440795247997 ns
[    0.000013] sched_clock: 64 bits at 880MHz, resolution 1ns, wraps every 4398046511103ns
[    0.015852] clocksource: MIPS: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 4343773742 ns
[    0.033806] Calibrating delay loop... 586.13 BogoMIPS (lpj=2930688)
[    0.106123] pid_max: default: 32768 minimum: 301
[    0.115437] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.129843] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.148163] rcu: Hierarchical SRCU implementation.
[    0.157986] dyndbg: Ignore empty _ddebug table in a CONFIG_DYNAMIC_DEBUG_CORE build
[    0.173573] smp: Bringing up secondary CPUs ...
[    0.183325] Primary instruction cache 32kB, VIPT, 4-way, linesize 32 bytes.
[    0.183335] Primary data cache 32kB, 4-way, PIPT, no aliases, linesize 32 bytes
[    0.183346] MIPS secondary cache 256kB, 8-way, linesize 32 bytes.
[    0.183426] CPU1 revision is: 0001992f (MIPS 1004Kc)
[    0.243367] Synchronize counters for CPU 1: done.
[    0.305208] Primary instruction cache 32kB, VIPT, 4-way, linesize 32 bytes.
[    0.305217] Primary data cache 32kB, 4-way, PIPT, no aliases, linesize 32 bytes
[    0.305225] MIPS secondary cache 256kB, 8-way, linesize 32 bytes.
[    0.305272] CPU2 revision is: 0001992f (MIPS 1004Kc)
[    0.364335] Synchronize counters for CPU 2: done.
[    0.424694] Primary instruction cache 32kB, VIPT, 4-way, linesize 32 bytes.
[    0.424703] Primary data cache 32kB, 4-way, PIPT, no aliases, linesize 32 bytes
[    0.424711] MIPS secondary cache 256kB, 8-way, linesize 32 bytes.
[    0.424763] CPU3 revision is: 0001992f (MIPS 1004Kc)
[    0.483916] Synchronize counters for CPU 3: done.
[    0.543530] smp: Brought up 1 node, 4 CPUs
[    0.555772] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.575295] futex hash table entries: 1024 (order: 3, 32768 bytes, linear)
[    0.589131] pinctrl core: initialized pinctrl subsystem
[    0.601951] NET: Registered protocol family 16
[    0.612833] cpuidle: using governor teo
[    0.639720] FPU Affinity set after 11720 emulations
[    0.669467] clocksource: Switched to clocksource GIC
[    0.681094] NET: Registered protocol family 2
[    0.690150] IP idents hash table entries: 2048 (order: 2, 16384 bytes, linear)
[    0.705431] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes, linear)
[    0.722027] TCP established hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.737159] TCP bind hash table entries: 1024 (order: 1, 8192 bytes, linear)
[    0.751138] TCP: Hash tables configured (established 1024 bind 1024)
[    0.763879] UDP hash table entries: 256 (order: 1, 8192 bytes, linear)
[    0.776770] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, linear)
[    0.790863] NET: Registered protocol family 1
[    0.799442] PCI: CLS 0 bytes, default 32
[    0.809957] workingset: timestamp_bits=14 max_order=14 bucket_order=0
[    0.826620] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.838108] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    0.860383] mt7621_gpio 1e000600.gpio: registering 32 gpios
[    0.871882] mt7621_gpio 1e000600.gpio: registering 32 gpios
[    0.883226] mt7621_gpio 1e000600.gpio: registering 32 gpios
[    0.895290] Serial: 8250/16550 driver, 3 ports, IRQ sharing disabled
[    0.909779] printk: console [ttyS0] disabled
[    0.918246] 1e000c00.uartlite: ttyS0 at MMIO 0x1e000c00 (irq = 19, base_baud = 3125000) is a 16550A
[    0.936181] printk: console [ttyS0] enabled
[    0.952716] printk: bootconsole [early0] disabled
[    0.974467] spi-mt7621 1e000b00.spi: sys_freq: 220000000
[    0.987041] spi-nor spi0.0: XM25QH64C (8192 Kbytes)
[    0.996883] 4 fixed-partitions partitions found on MTD device spi0.0
[    1.009591] OF: Bad cell count for /palmbus@1e000000/spi@b00/flash@0/partitions
[    1.024167] OF: Bad cell count for /palmbus@1e000000/spi@b00/flash@0/partitions
[    1.039580] OF: Bad cell count for /palmbus@1e000000/spi@b00/flash@0/partitions
[    1.054177] OF: Bad cell count for /palmbus@1e000000/spi@b00/flash@0/partitions
[    1.069974] Creating 4 MTD partitions on "spi0.0":
[    1.079550] 0x000000000000-0x000000020000 : "u-boot"
[    1.090540] 0x000000020000-0x000000730000 : "firmware"
[    1.102195] 2 tplink-fw partitions found on MTD device firmware
[    1.114016] Creating 2 MTD partitions on "firmware":
[    1.123915] 0x000000000000-0x0000002a264b : "kernel"
[    1.133797] mtd: partition "kernel" doesn't end on an erase/write block -- force read-only
[    1.151387] 0x0000002a264b-0x000000710000 : "rootfs"
[    1.161332] mtd: partition "rootfs" doesn't start on an erase/write block boundary -- force read-only
[    1.180773] mtd: setting mtd3 (rootfs) as root device
[    1.191035] 1 squashfs-split partitions found on MTD device rootfs
[    1.203418] 0x0000006c0000-0x000000710000 : "rootfs_data"
[    1.215331] 0x000000730000-0x0000007f0000 : "config"
[    1.226430] 0x0000007f0000-0x000000800000 : "radio"
[    1.280958] mt7530 mdio-bus:1f: MT7530 adapts as multi-chip module
[    1.297237] mtk_soc_eth 1e100000.ethernet eth0: mediatek frame engine at 0xbe100000, irq 21
[    1.315069] i2c /dev entries driver
[    1.324528] mt7621-pci 1e140000.pcie: host bridge /pcie@1e140000 ranges:
[    1.337976] mt7621-pci 1e140000.pcie:   No bus range found for /pcie@1e140000, using [bus 00-ff]
[    1.355557] mt7621-pci 1e140000.pcie:      MEM 0x0060000000..0x006fffffff -> 0x0000000000
[    1.371873] mt7621-pci 1e140000.pcie:       IO 0x001e160000..0x001e16ffff -> 0x0000000000
[    1.388269] mt7621-pci 1e140000.pcie: Parsing DT failed
[    1.401071] NET: Registered protocol family 10
[    1.411845] Segment Routing with IPv6
[    1.419227] NET: Registered protocol family 17
[    1.428480] 8021q: 802.1Q VLAN Support v1.8
[    1.440978] gpio-export gpio-export: 1 gpio(s) exported
[    1.451724] mt7530 mdio-bus:1f: MT7530 adapts as multi-chip module
[    1.482248] mt7530 mdio-bus:1f plc0 (uninitialized): PHY [mt7530-0:00] driver [MediaTek MT7530 PHY] (irq=27)
[    1.504337] mt7530 mdio-bus:1f lan1 (uninitialized): PHY [mt7530-0:01] driver [MediaTek MT7530 PHY] (irq=28)
[    1.526430] mt7530 mdio-bus:1f lan2 (uninitialized): PHY [mt7530-0:02] driver [MediaTek MT7530 PHY] (irq=29)
[    1.548514] mt7530 mdio-bus:1f lan3 (uninitialized): PHY [mt7530-0:03] driver [MediaTek MT7530 PHY] (irq=30)
[    1.571478] mt7530 mdio-bus:1f: configuring for fixed/rgmii link mode
[    1.588306] DSA: tree 0 setup
[    1.594568] rt2880-pinmux pinctrl: pcie is already enabled
[    1.605604] mt7621-pci 1e140000.pcie: host bridge /pcie@1e140000 ranges:
[    1.618965] mt7621-pci 1e140000.pcie:   No bus range found for /pcie@1e140000, using [bus 00-ff]
[    1.636502] mt7621-pci 1e140000.pcie:      MEM 0x0060000000..0x006fffffff -> 0x0000000000
[    1.652797] mt7621-pci 1e140000.pcie:       IO 0x001e160000..0x001e16ffff -> 0x0000000000
[    1.669173] mt7621-pci-phy 1e149000.pcie-phy: PHY for 0xbe149000 (dual port = 1)
[    1.684284] mt7621-pci-phy 1e14a000.pcie-phy: PHY for 0xbe14a000 (dual port = 0)
[    1.699303] mt7621-pci 1e140000.pcie: failed to parse bus ranges property: -22
[    1.813829] mt7621-pci-phy 1e149000.pcie-phy: Xtal is 40MHz
[    1.824941] mt7621-pci-phy 1e14a000.pcie-phy: Xtal is 40MHz
[    1.936144] mt7621-pci 1e140000.pcie: pcie2 no card, disable it (RST & CLK)
[    1.950011] mt7621-pci 1e140000.pcie: PCIE0 enabled
[    1.959721] mt7621-pci 1e140000.pcie: PCIE1 enabled
[    1.969435] mt7621-pci 1e140000.pcie: PCI coherence region base: 0x60000000, mask/settings: 0xf0000002
[    1.988133] mt7621-pci 1e140000.pcie: PCI host bridge to bus 0000:00
[    2.000821] pci_bus 0000:00: root bus resource [io  0x1e160000-0x1e16ffff]
[    2.014515] pci_bus 0000:00: root bus resource [mem 0x60000000-0x6fffffff]
[    2.028206] pci_bus 0000:00: root bus resource [bus 00-ff]
[    2.039128] pci_bus 0000:00: root bus resource [mem 0x60000000-0x6fffffff] (bus address [0x00000000-0x0fffffff])
[    2.059457] pci 0000:00:00.0: [0e8d:0801] type 01 class 0x060400
[    2.071444] pci 0000:00:00.0: reg 0x10: [mem 0x00000000-0x7fffffff]
[    2.083926] pci 0000:00:00.0: reg 0x14: initial BAR value 0x00000000 invalid
[    2.097954] pci 0000:00:00.0: reg 0x14: [mem size 0x00010000]
[    2.109476] pci 0000:00:00.0: supports D1
[    2.117445] pci 0000:00:00.0: PME# supported from D0 D1 D3hot
[    2.129569] pci 0000:00:01.0: [0e8d:0801] type 01 class 0x060400
[    2.141611] pci 0000:00:01.0: reg 0x10: [mem 0x00000000-0x7fffffff]
[    2.154106] pci 0000:00:01.0: reg 0x14: initial BAR value 0x00000000 invalid
[    2.168139] pci 0000:00:01.0: reg 0x14: [mem size 0x00010000]
[    2.179654] pci 0000:00:01.0: supports D1
[    2.187622] pci 0000:00:01.0: PME# supported from D0 D1 D3hot
[    2.200854] pci 0000:00:00.0: bridge configuration invalid ([bus 00-00]), reconfiguring
[    2.216825] pci 0000:00:01.0: bridge configuration invalid ([bus 00-00]), reconfiguring
[    2.233058] pci 0000:01:00.0: [14c3:7603] type 00 class 0x028000
[    2.245075] pci 0000:01:00.0: reg 0x10: initial BAR value 0x00000000 invalid
[    2.259122] pci 0000:01:00.0: reg 0x10: [mem size 0x00100000]
[    2.270706] pci 0000:01:00.0: PME# supported from D0 D3hot D3cold
[    2.284521] pci 0000:00:00.0: PCI bridge to [bus 01-ff]
[    2.294960] pci 0000:00:00.0:   bridge window [io  0x0000-0x0fff]
[    2.307091] pci 0000:00:00.0:   bridge window [mem 0x60000000-0x600fffff]
[    2.320622] pci 0000:00:00.0:   bridge window [mem 0x60000000-0x600fffff pref]
[    2.335006] pci_bus 0000:01: busn_res: [bus 01-ff] end is updated to 01
[    2.348455] pci 0000:02:00.0: [14c3:7663] type 00 class 0x000280
[    2.360482] pci 0000:02:00.0: reg 0x10: initial BAR value 0x00000000 invalid
[    2.374522] pci 0000:02:00.0: reg 0x10: [mem size 0x00100000 64bit pref]
[    2.387886] pci 0000:02:00.0: reg 0x18: initial BAR value 0x00000000 invalid
[    2.401923] pci 0000:02:00.0: reg 0x18: [mem size 0x00004000 64bit pref]
[    2.415277] pci 0000:02:00.0: reg 0x20: initial BAR value 0x00000000 invalid
[    2.429305] pci 0000:02:00.0: reg 0x20: [mem size 0x00001000 64bit pref]
[    2.442777] pci 0000:02:00.0: supports D1 D2
[    2.451282] pci 0000:02:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[    2.464487] 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)
[    2.495765] pci 0000:00:01.0: PCI bridge to [bus 02-ff]
[    2.506209] pci 0000:00:01.0:   bridge window [io  0x0000-0x0fff]
[    2.518343] pci 0000:00:01.0:   bridge window [mem 0x60000000-0x600fffff]
[    2.531867] pci 0000:00:01.0:   bridge window [mem 0x60000000-0x600fffff pref]
[    2.546251] pci_bus 0000:02: busn_res: [bus 02-ff] end is updated to 02
[    2.559488] pci 0000:00:00.0: BAR 0: no space for [mem size 0x80000000]
[    2.572658] pci 0000:00:00.0: BAR 0: failed to assign [mem size 0x80000000]
[    2.586518] pci 0000:00:01.0: BAR 0: no space for [mem size 0x80000000]
[    2.599688] pci 0000:00:01.0: BAR 0: failed to assign [mem size 0x80000000]
[    2.613557] pci 0000:00:00.0: BAR 8: assigned [mem 0x60000000-0x600fffff]
[    2.627082] pci 0000:00:00.0: BAR 9: assigned [mem 0x60100000-0x601fffff pref]
[    2.641468] pci 0000:00:01.0: BAR 8: assigned [mem 0x60200000-0x602fffff]
[    2.654985] pci 0000:00:01.0: BAR 9: assigned [mem 0x60300000-0x604fffff pref]
[    2.669363] pci 0000:00:00.0: BAR 1: assigned [mem 0x60500000-0x6050ffff]
[    2.682899] pci 0000:00:01.0: BAR 1: assigned [mem 0x60510000-0x6051ffff]
[    2.696419] pci 0000:00:00.0: BAR 7: assigned [io  0x1e160000-0x1e160fff]
[    2.709940] pci 0000:00:01.0: BAR 7: assigned [io  0x1e161000-0x1e161fff]
[    2.723464] pci 0000:01:00.0: BAR 0: assigned [mem 0x60000000-0x600fffff]
[    2.736987] pci 0000:00:00.0: PCI bridge to [bus 01]
[    2.746880] pci 0000:00:00.0:   bridge window [io  0x1e160000-0x1e160fff]
[    2.760399] pci 0000:00:00.0:   bridge window [mem 0x60000000-0x600fffff]
[    2.773913] pci 0000:00:00.0:   bridge window [mem 0x60100000-0x601fffff pref]
[    2.788300] pci 0000:02:00.0: BAR 0: assigned [mem 0x60300000-0x603fffff 64bit pref]
[    2.803743] pci 0000:02:00.0: BAR 2: assigned [mem 0x60400000-0x60403fff 64bit pref]
[    2.819174] pci 0000:02:00.0: BAR 4: assigned [mem 0x60404000-0x60404fff 64bit pref]
[    2.834603] pci 0000:00:01.0: PCI bridge to [bus 02]
[    2.844488] pci 0000:00:01.0:   bridge window [io  0x1e161000-0x1e161fff]
[    2.858008] pci 0000:00:01.0:   bridge window [mem 0x60200000-0x602fffff]
[    2.871533] pci 0000:00:01.0:   bridge window [mem 0x60300000-0x604fffff pref]
[    2.894919] VFS: Mounted root (squashfs filesystem) readonly on device 31:3.
[    2.913397] Freeing unused kernel memory: 1240K
[    2.922465] This architecture does not have kernel memory protection.
[    2.935306] Run /sbin/init as init process
[    2.943457]   with arguments:
[    2.943463]     /sbin/init
[    2.943468]   with environment:
[    2.943473]     HOME=/
[    2.943478]     TERM=linux
[    2.944067] mt7530 mdio-bus:1f: Link is Up - 1Gbps/Full - flow control rx/tx
[    3.571908] init: Console is alive
[    3.579069] init: - watchdog -
[    4.400791] kmodloader: loading kernel modules from /etc/modules-boot.d/*
[    4.513036] kmodloader: done loading kernel modules from /etc/modules-boot.d/*
[    4.539893] init: - preinit -
[    5.562798] random: jshn: uninitialized urandom read (4 bytes read)
[    5.647649] random: jshn: uninitialized urandom read (4 bytes read)
[    5.693026] random: jshn: uninitialized urandom read (4 bytes read)
[    5.968608] mtk_soc_eth 1e100000.ethernet eth0: configuring for fixed/rgmii link mode
[    5.985384] mt7530 mdio-bus:1f lan1: configuring for phy/gmii link mode
[    5.985416] mtk_soc_eth 1e100000.ethernet eth0: Link is Up - 1Gbps/Full - flow control rx/tx
[    5.999109] 8021q: adding VLAN 0 to HW filter on device lan1
[    6.029311] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[   10.264669] jffs2: notice: (542) jffs2_build_xattr_subsystem: complete building xattr subsystem, 23 of xdatum (17 unchecked, 3 orphan) and 30 of xref (3 dead, 0 orphan) found.
[   10.298837] mount_root: switching to jffs2 overlay
[   10.314709] overlayfs: upper fs does not support tmpfile.
[   10.336098] urandom-seed: Seeding with /etc/urandom.seed
[   10.582711] procd: - early -
[   10.588678] procd: - watchdog -
[   11.239708] procd: - watchdog -
[   11.247242] procd: - ubus -
[   11.327149] random: ubusd: uninitialized urandom read (4 bytes read)
[   11.341853] random: ubusd: uninitialized urandom read (4 bytes read)
[   11.355351] random: ubusd: uninitialized urandom read (4 bytes read)
[   11.375088] procd: - init -
[   12.107574] kmodloader: loading kernel modules from /etc/modules.d/*
[   12.312993] Loading modules backported from Linux version v5.15.92-0-ge515b9902f5f
[   12.328249] Backport generated by backports.git v5.15.92-1-0-gdfe0f60c
[   12.373591] urngd: v1.0.2 started.
[   12.389539] random: crng init done
[   12.396339] random: 30 urandom warning(s) missed due to ratelimiting
[   12.529022] mt7621-pci 1e140000.pcie: bus=1 slot=0 irq=22
[   12.539897] pci 0000:00:00.0: enabling device (0004 -> 0007)
[   12.551194] mt7603e 0000:01:00.0: enabling device (0000 -> 0002)
[   12.563365] mt7603e 0000:01:00.0: ASIC revision: 76030010
[   13.600844] mt7603e 0000:01:00.0: Firmware Version: ap_pcie
[   13.611983] mt7603e 0000:01:00.0: Build Time: 20160107100755
[   13.659465] mt7603e 0000:01:00.0: firmware init done
[   13.839226] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht'
[   13.851656] mt7621-pci 1e140000.pcie: bus=2 slot=1 irq=23
[   13.862495] pci 0000:00:01.0: enabling device (0004 -> 0007)
[   13.873809] mt7615e 0000:02:00.0: enabling device (0000 -> 0002)
[   13.901393] ieee80211 phy1: Selected rate control algorithm 'minstrel_ht'
[   13.901455] ieee80211 phy1: copying sband (band 1) due to VHT EXT NSS BW flag
[   13.957189] PPP generic driver version 2.4.2
[   13.967728] NET: Registered protocol family 24
[   13.986948] kmodloader: done loading kernel modules from /etc/modules.d/*
[   15.549570] mt7615e 0000:02:00.0: mediatek/mt7663pr2h.bin not found, switching to mediatek/mt7663pr2h_rebb.bin
[   15.771797] mt7615e 0000:02:00.0: HW/SW Version: 0x65322d31, Build Time: 2009041715da1a1
[   15.771797]
[   16.005651] mt7615e 0000:02:00.0: N9 Firmware Version: 7663mp1827, Build Time: 20200904171623
[   16.022715] mt7615e 0000:02:00.0: Region number: 0x3
[   16.032860] mt7615e 0000:02:00.0: Parsing tailer Region: 0
[   16.046866] mt7615e 0000:02:00.0: Region 0, override_addr = 0x00112c00
[   16.060153] mt7615e 0000:02:00.0: Parsing tailer Region: 1
[   16.072025] mt7615e 0000:02:00.0: Parsing tailer Region: 2
[   16.083732] mt7615e 0000:02:00.0: override_addr = 0x00112c00, option = 3
[   22.072859] mtk_soc_eth 1e100000.ethernet eth0: Link is Down
[   22.095177] mtk_soc_eth 1e100000.ethernet eth0: configuring for fixed/rgmii link mode
[   22.111300] mtk_soc_eth 1e100000.ethernet eth0: Link is Up - 1Gbps/Full - flow control rx/tx
[   22.115457] mt7530 mdio-bus:1f lan1: configuring for phy/gmii link mode
[   22.142294] 8021q: adding VLAN 0 to HW filter on device lan1
[   22.157431] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[   22.171136] br-lan: port 1(lan1) entered blocking state
[   22.181666] br-lan: port 1(lan1) entered disabled state
[   22.193816] device lan1 entered promiscuous mode
[   22.203134] device eth0 entered promiscuous mode
[   22.245003] mt7530 mdio-bus:1f lan2: configuring for phy/gmii link mode
[   22.259089] 8021q: adding VLAN 0 to HW filter on device lan2
[   22.274452] br-lan: port 2(lan2) entered blocking state
[   22.285055] br-lan: port 2(lan2) entered disabled state
[   22.297024] device lan2 entered promiscuous mode
[   22.321482] mt7530 mdio-bus:1f lan3: configuring for phy/gmii link mode
[   22.335377] 8021q: adding VLAN 0 to HW filter on device lan3
[   22.350807] br-lan: port 3(lan3) entered blocking state
[   22.361286] br-lan: port 3(lan3) entered disabled state
[   22.373423] device lan3 entered promiscuous mode
[   22.396642] mt7530 mdio-bus:1f plc0: configuring for phy/gmii link mode
[   22.410427] 8021q: adding VLAN 0 to HW filter on device plc0
[   22.426019] br-lan: port 4(plc0) entered blocking state
[   22.436934] br-lan: port 4(plc0) entered disabled state
[   22.449013] device plc0 entered promiscuous mode
[   24.646755] mt7530 mdio-bus:1f plc0: Link is Up - 1Gbps/Full - flow control rx/tx
[   24.661764] br-lan: port 4(plc0) entered blocking state
[   24.672193] br-lan: port 4(plc0) entered forwarding state
[   24.683943] IPv6: ADDRCONF(NETDEV_CHANGE): br-lan: link becomes ready

Thanks for providing the link, that puts my mind at ease about that.

1 Like

Patch submitted. Thanks all in the thread for finding out the cause and testing.

A few days after this is merged, it should be possible to use the 22.03-SNAPSHOT images and they should be reasonably stable, but if you want to be sure your device will work and not be bricked, its better to wait until 22.03.4 is released and tested.

1 Like

I installed openwrt successfully thanks to your work and the info in this forum. Now I have the problem that I can't install luci due to a lack of free space. What can I do to help that? Thanks in advance for any hints.

Those images I built above are just for testing this patch and aren't meant for general use.

What is your output from

dmesg | grep "spi0.0"

If it shows the line below, then you can install the current official 22.03.3 release:

# Safe for 22.03.*
spi-nor spi0.0: XM25QH64A (8192 Kbytes)

If it shows the line below, you should wait for this PR to be merged and 22.03.4 to be released. Installing any earlier version will brick your device. Building your own images can easily brick the device and the only way to recover is flashing the SPI flash directly, so as stated on the wiki its not recommended.

# Only safe for 22.03.4 when PR is merged
spi-nor spi0.0: XM25QH64C (8192 Kbytes)

So that means I could install the master right?

No, XM25QH64A means you can safely sysupgrade the existing official 22.03.3 release. Copy the file to your device somehow, then just do:

sysupgrade openwrt-22.03.3-ramips-mt7621-tplink_tl-wpa8631p-v3-squashfs-sysupgrade.bin

See the generic sysupgrade instructions for more information.
Do not use the -F force option, there is no need with OpenWrt sysupgrade files, and not using -F helps prevent accidentally flashing the wrong file which can brick this.

You are brilliant! Thank you so much!

If your problem is solved, please consider marking this topic as [Solved]. See How to mark a topic as [Solved] for a short how-to.
Thanks! :slight_smile:

That was for a side issue, the original thread issue of specific flash chip support is still open, pending PR merge and follow up testing, so we should keep the thread open until then.

Thanks for getting old threads closed though :slight_smile:

1 Like