OpenWrt support for Xiaomi AX3000T

Definitely 1.0.47

I see, i was wondering if you'd gotten the 1.0.84 hardware issue which results in that issue as it uses a new ethernet switch.
I'm sorry, I don't have enough expertise to help you further, maybe someone else can- but your machine's definitely not bricked and you can use the below guide to revert it to original fw if you wish

This guide

I see, thanks because I seemed to have missed it
Just to clarify though, that's a custom version of immortalwrt with the correct drivers right? Not the 'official' version listed on the first message of this topic

Try restarting the wireless interface. Go to Network > Interfaces restart your wireless interface. My setup is different but that's what fixed my issue with the 9/13/24 snapshot.

Quick update: I probably pressed and held factory reset button like a million times and rebooted the router just as much.
Finally it has restarted into the Xiaomi firmware and I have access to the router again.
I think this time I will use SSH rather than the XMIR method.

There was no need to try to flash ubootmod firmware using XMiR.
XMiR is not to blame here.

Yep, custom version of Immortal branch 21 (5.4 kernel) with proprietary mtk drivers and an8855 support.

Thanks for the help, it worked.

Ah, that explains it. My bad!

Hi, everyone! After some attempts to recovery my router from softbrick as was described by some members in this thread, I'm here. I'll be glad to recieve some help! (It was the first <> time I'm trying to patch router, so...)

What I have: softbricked RD23, UART chip and completed all staff about putty/tftp from this thread.

Router startup error:

System halt on router startup
F0: 102B 0000
FA: 1040 0000
FA: 1040 0000 [0200]
F9: 3903 0041
F3: 1001 0000 [0200]
F3: 1001 0000
F6: 102C 0000
F5: 480A 0031
00: 1005 0000
FA: 1040 0000
FA: 1040 0000 [0200]
F9: 3903 0041
F3: 1001 0000 [0200]
F3: 1001 0000
F6: 102C 0000
01: 102A 0001
02: 1005 0000
BP: 2000 00C0 [0001]
EC: 0000 0000 [1000]
T0: 0000 00ED [010F]
System halt!

I supposed that I damaged bootloader :frowning:

===

But using mtk_uartboot I still can load image to router:

p.s. I understood that mtk_uartboot is tool for load and execute binaries over UART, but have vague ideas what are the payload and fip payload that I have used:

mtk_uartboot -s COM8 --payload bl2-mt7981-bga-ddr3-ram.bin --aarch64 --fip openwrt-mediatek-filogic-xiaomi_mi-router-ax3000t-ubootmod-bl31-uboot.fip && putty.exe -serial COM8 -sercfg 115200,8,n,1,N

Windows shell log after rebooting router
mtk_uartboot - 0.1.1
Using serial port: COM8
Handshake...
hw code: 0x7981
hw sub code: 0x8a00
hw ver: 0xca00
sw ver: 0x1
Baud rate set to 460800
sending payload to 0x201000...
Checksum: 0x8f29
Setting baudrate back to 115200
Jumping to 0x201000 in aarch64...
Waiting for BL2. Message below:

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

NOTICE:  BL2: v2.10.0   (release):v2.10.0-mtk
NOTICE:  BL2: Built : 13:17:06, Mar  1 2024
NOTICE:  WDT: Cold boot
NOTICE:  WDT: disabled
NOTICE:  EMI: Using DDR3 settings
NOTICE:  EMI: Detected DRAM size: 256MB
NOTICE:  EMI: complex R/W mem test passed
NOTICE:  CPU: MT7981 (1300MHz)
NOTICE:  Starting UART download handshake ...

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

BL2 UART DL version: 0x10
Baudrate set to: 921600
FIP sent.

==================================
NOTICE:  Received FIP 0xbc351 @ 0x40400000 ...

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

I use tftp server to load openwrt-mediatek-filogic-xiaomi_mi-router-ax3000t-ubootmod-initramfs-recovery.itb from 192.168.1.254 local PC IP.

So, here we are:

Putty output
#################################################################
         #################################################################
         ####################################################
         1.5 MiB/s
done
Bytes transferred = 8388608 (800000 hex)
## Loading kernel from FIT Image at 46000000 ...
   Using 'config-1' configuration
   Trying 'kernel-1' kernel subimage
     Description:  ARM64 OpenWrt Linux-6.6.50
     Type:         Kernel Image
     Compression:  lzma compressed
     Data Start:   0x460000e8
     Data Size:    4326793 Bytes = 4.1 MiB
     Architecture: AArch64
     OS:           Linux
     Load Address: 0x48000000
     Entry Point:  0x48000000
     Hash algo:    crc32
     Hash value:   f492b938
     Hash algo:    sha1
     Hash value:   baf82a2bc58865cff3b16951a5dd380195b60dc8
   Verifying Hash Integrity ... crc32+ sha1+ OK
## Loading ramdisk from FIT Image at 46000000 ...
   Using 'config-1' configuration
   Trying 'initrd-1' ramdisk subimage
     Description:  ARM64 OpenWrt xiaomi_mi-router-ax3000t-ubootmod initrd
     Type:         RAMDisk Image
     Compression:  uncompressed
     Data Start:   0x464207c0
     Data Size:    3971676 Bytes = 3.8 MiB
     Architecture: AArch64
     OS:           Linux
     Load Address: unavailable
     Entry Point:  unavailable
     Hash algo:    crc32
     Hash value:   263b887e
     Hash algo:    sha1
     Hash value:   0583af0a1646e4452e307660c338a59bbf940fee
   Verifying Hash Integrity ... crc32+ sha1+ OK
## Loading fdt from FIT Image at 46000000 ...
   Using 'config-1' configuration
   Trying 'fdt-1' fdt subimage
     Description:  ARM64 OpenWrt xiaomi_mi-router-ax3000t-ubootmod device tree b                                                                                                                              lob
     Type:         Flat Device Tree
     Compression:  uncompressed
     Data Start:   0x467ea33c
     Data Size:    23313 Bytes = 22.8 KiB
     Architecture: AArch64
     Hash algo:    crc32
     Hash value:   fbf58fd7
     Hash algo:    sha1
     Hash value:   afbf81fe89a958ed11261240d85da339537aea78
   Verifying Hash Integrity ... crc32+ sha1+ OK
   Booting using the fdt blob at 0x467ea33c
Working FDT set to 467ea33c
   Uncompressing Kernel Image to 48000000
   Loading Ramdisk to 4f430000, end 4f7f9a5c ... OK
   Loading Device Tree to 000000004f427000, end 000000004f42fb10 ... OK
Working FDT set to 4f427000
Add 'ramoops@42ff0000' node failed: FDT_ERR_EXISTS

Starting kernel ...

<6>[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
<5>[    0.000000] Linux version 6.6.50 (builder@buildhost) (aarch64-openwrt-linu                                                                                                                              x-musl-gcc (OpenWrt GCC 13.3.0 r27350-c4a9265160) 13.3.0, GNU ld (GNU Binutils)                                                                                                                               2.42) #0 SMP Thu Sep 12 13:43:05 2024
<6>[    0.000000] Machine model: Xiaomi Mi Router AX3000T (OpenWrt U-Boot layout                                                                                                                              )
<6>[    0.000000] OF: reserved mem: 0x0000000042ff0000..0x0000000042ffffff (64 K                                                                                                                              iB) map non-reusable ramoops@42ff0000
<6>[    0.000000] OF: reserved mem: 0x0000000043000000..0x000000004302ffff (192                                                                                                                               KiB) nomap non-reusable secmon@43000000
<6>[    0.000000] OF: reserved mem: 0x0000000047c80000..0x0000000047d7ffff (1024                                                                                                                               KiB) nomap non-reusable wmcpu-reserved@47c80000
<6>[    0.000000] OF: reserved mem: 0x0000000047d80000..0x0000000047dbffff (256                                                                                                                               KiB) nomap non-reusable wo-emi@47d80000
<6>[    0.000000] OF: reserved mem: 0x0000000047dc0000..0x0000000047ffffff (2304                                                                                                                               KiB) nomap non-reusable wo-data@47dc0000
<6>[    0.000000] Zone ranges:
<6>[    0.000000]   DMA      [mem 0x0000000040000000-0x000000004fffffff]
<6>[    0.000000]   DMA32    empty
<6>[    0.000000]   Normal   empty
<6>[    0.000000] Movable zone start for each node
<6>[    0.000000] Early memory node ranges
<6>[    0.000000]   node   0: [mem 0x0000000040000000-0x0000000042ffffff]
<6>[    0.000000]   node   0: [mem 0x0000000043000000-0x000000004302ffff]
<6>[    0.000000]   node   0: [mem 0x0000000043030000-0x0000000047c7ffff]
<6>[    0.000000]   node   0: [mem 0x0000000047c80000-0x0000000047ffffff]
<6>[    0.000000]   node   0: [mem 0x0000000048000000-0x000000004fffffff]
<6>[    0.000000] Initmem setup node 0 [mem 0x0000000040000000-0x000000004ffffff                                                                                                                              f]
<6>[    0.000000] psci: probing for conduit method from DT.
<6>[    0.000000] psci: PSCIv1.1 detected in firmware.
<6>[    0.000000] psci: Using standard PSCI v0.2 function IDs
<6>[    0.000000] psci: MIGRATE_INFO_TYPE not supported.
<6>[    0.000000] psci: SMC Calling Convention v1.4
<6>[    0.000000] percpu: Embedded 18 pages/cpu s35112 r8192 d30424 u73728
<7>[    0.000000] pcpu-alloc: s35112 r8192 d30424 u73728 alloc=18*4096
<7>[    0.000000] pcpu-alloc: [0] 0 [0] 1
<6>[    0.000000] Detected VIPT I-cache on CPU0
<6>[    0.000000] CPU features: detected: GIC system register CPU interface
<6>[    0.000000] CPU features: kernel page table isolation disabled by kernel c                                                                                                                              onfiguration
<6>[    0.000000] alternatives: applying boot alternatives
<5>[    0.000000] Kernel command line: console=ttyS0,115200n8 console_msg_format                                                                                                                              =syslog root=/dev/fit0 rootwait
<6>[    0.000000] Dentry cache hash table entries: 32768 (order: 6, 262144 bytes                                                                                                                              , linear)
<6>[    0.000000] Inode-cache hash table entries: 16384 (order: 5, 131072 bytes,                                                                                                                               linear)
<6>[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 64512
<6>[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
<6>[    0.000000] software IO TLB: SWIOTLB bounce buffer size adjusted to 0MB
<6>[    0.000000] software IO TLB: area num 2.
<6>[    0.000000] software IO TLB: SWIOTLB bounce buffer size roundup to 0MB
<6>[    0.000000] software IO TLB: mapped [mem 0x000000004fe47000-0x000000004fec                                                                                                                              7000] (0MB)
<6>[    0.000000] Memory: 235364K/262144K available (8896K kernel code, 902K rwd                                                                                                                              ata, 2588K rodata, 448K init, 302K bss, 26780K reserved, 0K cma-reserved)
<6>[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
<6>[    0.000000] rcu: Hierarchical RCU implementation.
<6>[    0.000000] rcu:  RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2.
<6>[    0.000000]       Tracing variant of Tasks RCU enabled.
<6>[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10                                                                                                                               jiffies.
<6>[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2
<6>[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
<6>[    0.000000] GICv3: GIC: Using split EOI/Deactivate mode
<6>[    0.000000] GICv3: 640 SPIs implemented
<6>[    0.000000] GICv3: 0 Extended SPIs implemented
<6>[    0.000000] Root IRQ handler: gic_handle_irq
<6>[    0.000000] GICv3: GICv3 features: 16 PPIs
<6>[    0.000000] GICv3: CPU0: found redistributor 0 region 0:0x000000000c080000
<6>[    0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.
<6>[    0.000000] arch_timer: cp15 timer(s) running at 13.00MHz (phys).
<6>[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycl                                                                                                                              es: 0x2ff89eacb, max_idle_ns: 440795202429 ns
<6>[    0.000000] sched_clock: 56 bits at 13MHz, resolution 76ns, wraps every 43                                                                                                                              98046511101ns
<6>[    0.000075] Calibrating delay loop (skipped), value calculated using timer                                                                                                                               frequency.. 26.00 BogoMIPS (lpj=130000)
<6>[    0.000083] pid_max: default: 32768 minimum: 301
<6>[    0.002988] Mount-cache hash table entries: 512 (order: 0, 4096 bytes, lin                                                                                                                              ear)
<6>[    0.002996] Mountpoint-cache hash table entries: 512 (order: 0, 4096 bytes                                                                                                                              , linear)
<4>[    0.005153] cacheinfo: Unable to detect cache hierarchy for CPU 0
<6>[    0.005689] RCU Tasks Trace: Setting shift to 1 and lim to 1 rcu_task_cb_a                                                                                                                              djust=1.
<6>[    0.005829] rcu: Hierarchical SRCU implementation.
<6>[    0.005832] rcu:  Max phase no-delay instances is 1000.
<6>[    0.006241] smp: Bringing up secondary CPUs ...
<6>[    0.006607] Detected VIPT I-cache on CPU1
<6>[    0.006651] GICv3: CPU1: found redistributor 1 region 0:0x000000000c0a0000
<6>[    0.006681] CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
<6>[    0.006748] smp: Brought up 1 node, 2 CPUs
<6>[    0.006753] SMP: Total of 2 processors activated.
<6>[    0.006756] CPU features: detected: 32-bit EL0 Support
<6>[    0.006759] CPU features: detected: CRC32 instructions
<6>[    0.006792] CPU features: emulated: Privileged Access Never (PAN) using TT                                                                                                                              BR0_EL1 switching
<6>[    0.006795] CPU: All CPU(s) started at EL2
<6>[    0.006797] alternatives: applying system-wide alternatives
<6>[    0.010459] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff,                                                                                                                               max_idle_ns: 19112604462750000 ns
<6>[    0.010476] futex hash table entries: 512 (order: 3, 32768 bytes, linear)
<6>[    0.011723] pinctrl core: initialized pinctrl subsystem
<6>[    0.012826] NET: Registered PF_NETLINK/PF_ROUTE protocol family
<6>[    0.013425] DMA: preallocated 128 KiB GFP_KERNEL pool for atomic allocatio                                                                                                                              ns
<6>[    0.013452] DMA: preallocated 128 KiB GFP_KERNEL|GFP_DMA pool for atomic a                                                                                                                              llocations
<6>[    0.013472] DMA: preallocated 128 KiB GFP_KERNEL|GFP_DMA32 pool for atomic                                                                                                                               allocations
<6>[    0.013838] thermal_sys: Registered thermal governor 'fair_share'
<6>[    0.013843] thermal_sys: Registered thermal governor 'bang_bang'
<6>[    0.013845] thermal_sys: Registered thermal governor 'step_wise'
<6>[    0.013848] thermal_sys: Registered thermal governor 'user_space'
<6>[    0.013929] ASID allocator initialised with 65536 entries
<6>[    0.014943] pstore: Using crash dump compression: deflate
<6>[    0.014949] pstore: Registered ramoops as persistent store backend
<6>[    0.014951] ramoops: using 0x10000@0x42ff0000, ecc: 0
<6>[    0.021931] Modules: 29456 pages in range for non-PLT usage
<6>[    0.021939] Modules: 520976 pages in range for PLT usage
<6>[    0.022765] cryptd: max_cpu_qlen set to 1000
<5>[    0.023888] SCSI subsystem initialized
<7>[    0.024085] libata version 3.00 loaded.
<6>[    0.025630] clocksource: Switched to clocksource arch_sys_counter
<6>[    0.027902] NET: Registered PF_INET protocol family
<6>[    0.028005] IP idents hash table entries: 4096 (order: 3, 32768 bytes, lin                                                                                                                              ear)
<6>[    0.029252] tcp_listen_portaddr_hash hash table entries: 256 (order: 0, 40                                                                                                                              96 bytes, linear)
<6>[    0.029267] Table-perturb hash table entries: 65536 (order: 6, 262144 byte                                                                                                                              s, linear)
<6>[    0.029275] TCP established hash table entries: 2048 (order: 2, 16384 byte                                                                                                                              s, linear)
<6>[    0.029293] TCP bind hash table entries: 2048 (order: 4, 65536 bytes, line                                                                                                                              ar)
<6>[    0.029342] TCP: Hash tables configured (established 2048 bind 2048)
<6>[    0.029414] UDP hash table entries: 256 (order: 1, 8192 bytes, linear)
<6>[    0.029438] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, linear                                                                                                                              )
<6>[    0.029703] NET: Registered PF_UNIX/PF_LOCAL protocol family
<6>[    0.029731] PCI: CLS 0 bytes, default 64
<6>[    0.029878] Unpacking initramfs...
<6>[    0.036625] workingset: timestamp_bits=46 max_order=16 bucket_order=0
<6>[    0.041392] squashfs: version 4.0 (2009/01/31) Phillip Lougher
<6>[    0.041401] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIO                                                                                                                              RITY) (c) 2001-2006 Red Hat, Inc.
<6>[    0.074580] Block layer SCSI generic (bsg) driver version 0.4 loaded (majo                                                                                                                              r 251)
<6>[    0.085520] Serial: 8250/16550 driver, 16 ports, IRQ sharing enabled
<6>[    0.088620] printk: console [ttyS0] disabled
<6>[    0.108955] 11002000.serial: ttyS0 at MMIO 0x11002000 (irq = 72, base_baud                                                                                                                               = 2500000) is a ST16650V2
<6>[    0.108999] printk: console [ttyS0] enabled
<6>[    0.896247] loop: module loaded
<6>[    0.901887] spi-nand spi0.0: ESMT SPI NAND was found.
<6>[    0.907235] spi-nand spi0.0: 128 MiB, block size: 128 KiB, page size: 2048                                                                                                                              , OOB size: 64
<6>[    1.183434] Freeing initrd memory: 3876K
<5>[    1.194932] 9 fixed-partitions partitions found on MTD device spi0.0
<5>[    1.201840] Creating 9 MTD partitions on "spi0.0":
<5>[    1.206911] 0x000000000000-0x000000100000 : "BL2"
<5>[    1.213036] 0x000000100000-0x000000140000 : "Nvram"
<5>[    1.218750] 0x000000140000-0x000000180000 : "Bdata"
<5>[    1.224443] 0x000000180000-0x000000380000 : "Factory"
<5>[    1.232038] 0x000000380000-0x000000580000 : "FIP"
<5>[    1.238439] 0x000000580000-0x0000005c0000 : "crash"
<5>[    1.244176] 0x0000005c0000-0x000000600000 : "crash_log"
<5>[    1.250268] 0x000007600000-0x000007640000 : "KF"
<5>[    1.255793] 0x000000600000-0x000007600000 : "ubi"
<5>[    1.314007] ubi0: default fastmap pool size: 40
<5>[    1.318817] ubi0: default fastmap WL pool size: 20
<5>[    1.323862] ubi0: attaching mtd8
<5>[    1.709700] ubi0: scanning is finished
<5>[    1.719656] ubi0: attached mtd8 (name "ubi", size 112 MiB)
<5>[    1.725407] ubi0: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
<5>[    1.732549] ubi0: min./max. I/O unit sizes: 2048/2048, sub-page size 2048
<5>[    1.739596] ubi0: VID header offset: 2048 (aligned 2048), data offset: 409                                                                                                                              6
<5>[    1.746811] ubi0: good PEBs: 896, bad PEBs: 0, corrupted PEBs: 0
<5>[    1.753064] ubi0: user volume: 3, internal volumes: 1, max. volumes count:                                                                                                                               128
<5>[    1.760535] ubi0: max/mean erase counter: 14/9, WL threshold: 4096, image                                                                                                                               sequence number: 755264530
<5>[    1.769916] ubi0: available PEBs: 786, total reserved PEBs: 110, PEBs rese                                                                                                                              rved for bad PEB handling: 20
<5>[    1.779566] ubi0: background thread "ubi_bgt0d" started, PID 260
<6>[    1.926754] mtk_soc_eth 15100000.ethernet eth0: mediatek frame engine at 0                                                                                                                              xffffffc081180000, irq 75
<6>[    1.936733] i2c_dev: i2c /dev entries driver
<6>[    1.943799] mtk-wdt 1001c000.watchdog: Watchdog enabled (timeout=31 sec, n                                                                                                                              owayout=0)
<6>[    1.953185] NET: Registered PF_INET6 protocol family
<6>[    1.959237] Segment Routing with IPv6
<6>[    1.963177] In-situ OAM (IOAM) with IPv6
<6>[    1.967447] NET: Registered PF_PACKET protocol family
<6>[    1.972794] bridge: filtering via arp/ip/ip6tables is no longer available                                                                                                                               by default. Update your scripts to load br_netfilter if you need this.
<6>[    1.986488] 8021q: 802.1Q VLAN Support v1.8
<6>[    2.107550] mt7530-mdio mdio-bus:1f: configuring for fixed/2500base-x link                                                                                                                               mode
<6>[    2.116795] mt7530-mdio mdio-bus:1f: Link is Up - 2.5Gbps/Full - flow cont                                                                                                                              rol rx/tx
<6>[    2.127770] mt7530-mdio mdio-bus:1f wan (uninitialized): PHY [mt7530-0:00]                                                                                                                               driver [MediaTek MT7531 PHY] (irq=80)
<6>[    2.150338] mt7530-mdio mdio-bus:1f lan2 (uninitialized): PHY [mt7530-0:01                                                                                                                              ] driver [MediaTek MT7531 PHY] (irq=81)
<6>[    2.172607] mt7530-mdio mdio-bus:1f lan3 (uninitialized): PHY [mt7530-0:02                                                                                                                              ] driver [MediaTek MT7531 PHY] (irq=82)
<6>[    2.194887] mt7530-mdio mdio-bus:1f lan4 (uninitialized): PHY [mt7530-0:03                                                                                                                              ] driver [MediaTek MT7531 PHY] (irq=83)
<6>[    2.206690] mtk_soc_eth 15100000.ethernet eth0: entered promiscuous mode
<6>[    2.213693] DSA: tree 0 setup
<6>[    2.217422] clk: Disabling unused clocks
<6>[    2.222216] Freeing unused kernel memory: 448K
<6>[    2.227003] Run /init as init process
<7>[    2.230914]   with arguments:
<7>[    2.234128]     /init
<7>[    2.236665]   with environment:
<7>[    2.240055]     HOME=/
<7>[    2.242662]     TERM=linux
<14>[    2.402775] init: Console is alive
<14>[    2.406689] init: - watchdog -
<14>[    2.414693] kmodloader: loading kernel modules from /etc/modules-boot.d/*
<4>[    2.426010] gpio_button_hotplug: loading out-of-tree module taints kernel.
<14>[    2.436332] kmodloader: done loading kernel modules from /etc/modules-boo                                                                                                                              t.d/*
<14>[    2.454230] init: - preinit -
<6>[    2.573560] mtk_soc_eth 15100000.ethernet eth0: configuring for fixed/2500                                                                                                                              base-x link mode
<6>[    2.582400] mtk_soc_eth 15100000.ethernet eth0: Link is Up - 2.5Gbps/Full                                                                                                                               - flow control rx/tx
<6>[    2.614106] mt7530-mdio mdio-bus:1f lan4: configuring for phy/gmii link mo                                                                                                                              de
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
<5>[    4.784022] random: procd: uninitialized urandom read (4 bytes read)
<14>[    4.786585] procd: - early -
<14>[    4.794020] procd: - watchdog -
<14>[    5.330613] procd: - watchdog -
<14>[    5.334339] procd: - ubus -
<5>[    6.385635] random: crng init done
<14>[    6.391784] procd: - init -
Please press Enter to activate this console.
<14>[    6.574685] kmodloader: loading kernel modules from /etc/modules.d/*
<6>[    6.591290] crypto-safexcel 10320000.crypto: EIP97:230(0,1,4,4)-HIA:270(0,                                                                                                                              5,5),PE:150/433(alg:7fcdfc00)/0/0/0
<6>[    6.606153] Loading modules backported from Linux version v6.9.9-0-g28fdf4                                                                                                                              518483
<6>[    6.613807] Backport generated by backports.git v6.1.97-1-29-gf1d24a3683b2
<14>[    6.793687] urngd: v1.0.2 started.
<6>[    6.975785] mt798x-wmac 18000000.wifi: HW/SW Version: 0x8a108a10, Build Ti                                                                                                                              me: 20240823161240a
<6>[    6.975785]
<6>[    6.998262] mt798x-wmac 18000000.wifi: WM Firmware Version: ____000000, Bu                                                                                                                              ild Time: 20240823161304
<6>[    7.038482] mt798x-wmac 18000000.wifi: WA Firmware Version: DEV_000000, Bu                                                                                                                              ild Time: 20240823161841
<4>[    7.136577] mt798x-wmac 18000000.wifi: eeprom load fail, use default bin
<4>[    7.143596] mt798x-wmac 18000000.wifi: Direct firmware load for mediatek/m                                                                                                                              t7981_eeprom_mt7976_dbdc.bin failed with error -2
<4>[    7.154990] mt798x-wmac 18000000.wifi: Falling back to sysfs fallback for:                                                                                                                               mediatek/mt7981_eeprom_mt7976_dbdc.bin
<4>[    7.191929] mt798x-wmac: probe of 18000000.wifi failed with error -12
<6>[    7.219632] PPP generic driver version 2.4.2
<6>[    7.224974] NET: Registered PF_PPPOX protocol family
<14>[    7.232990] kmodloader: done loading kernel modules from /etc/modules.d/*
<4>[    8.316285] mtdblock: MTD device 'Bdata' is NAND, please consider using UB                                                                                                                              I block devices instead.
<6>[   11.713057] mtk_soc_eth 15100000.ethernet eth0: Link is Down
<6>[   11.735578] mtk_soc_eth 15100000.ethernet eth0: configuring for fixed/2500                                                                                                                              base-x link mode
<6>[   11.744324] mtk_soc_eth 15100000.ethernet eth0: Link is Up - 2.5Gbps/Full                                                                                                                               - flow control rx/tx
<6>[   11.750815] mt7530-mdio mdio-bus:1f lan2: configuring for phy/gmii link mo                                                                                                                              de
<6>[   11.765987] br-lan: port 1(lan2) entered blocking state
<6>[   11.771478] br-lan: port 1(lan2) entered disabled state
<6>[   11.777017] mt7530-mdio mdio-bus:1f lan2: entered allmulticast mode
<6>[   11.783537] mtk_soc_eth 15100000.ethernet eth0: entered allmulticast mode
<6>[   11.793438] mt7530-mdio mdio-bus:1f lan2: entered promiscuous mode
<6>[   11.814275] mt7530-mdio mdio-bus:1f lan3: configuring for phy/gmii link mo                                                                                                                              de
<6>[   12.328732] br-lan: port 2(lan3) entered blocking state
<6>[   12.334222] br-lan: port 2(lan3) entered disabled state
<6>[   12.339740] mt7530-mdio mdio-bus:1f lan3: entered allmulticast mode
<6>[   12.347917] mt7530-mdio mdio-bus:1f lan3: entered promiscuous mode
<6>[   12.363553] mt7530-mdio mdio-bus:1f lan4: configuring for phy/gmii link mo                                                                                                                              de
<6>[   12.375942] br-lan: port 3(lan4) entered blocking state
<6>[   12.381425] br-lan: port 3(lan4) entered disabled state
<6>[   12.386956] mt7530-mdio mdio-bus:1f lan4: entered allmulticast mode
<6>[   12.395299] mt7530-mdio mdio-bus:1f lan4: entered promiscuous mode
<6>[   12.412568] mt7530-mdio mdio-bus:1f wan: configuring for phy/gmii link mod                                                                                                                              e
<6>[   15.043937] mt7530-mdio mdio-bus:1f lan3: Link is Up - 1Gbps/Full - flow c                                                                                                                              ontrol rx/tx
<6>[   15.043965] br-lan: port 2(lan3) entered blocking state
<6>[   15.057609] br-lan: port 2(lan3) entered forwarding state
<6>[   17.755784] platform fitblk: deferred probe pending
^CPlease press Enter to activate this console.



BusyBox v1.36.1 (2024-09-12 13:43:05 UTC) built-in shell (ash)

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 OpenWrt SNAPSHOT, r27350-c4a9265160
 -----------------------------------------------------
=== WARNING! =====================================
There is no root password defined on this device!
Use the "passwd" command to set up a new password
in order to prevent unauthorized SSH logins.
--------------------------------------------------


===

Some info (I supposed it's the environment of .bin I have loaded tih mtk_uartboot?):

root@OpenWrt:~# cat /proc/cmdline
console=ttyS0,115200n8 console_msg_format=syslog root=/dev/fit0 rootwait

===

So, the answer is: how can I fix System halt (fix bootloader?) using tftp recovery? The method to just sysupgrade image loaded with WinSCP doesn't make any effort --- after reboot System Halt met :frowning: :frowning:

I will be very glad to resolve my problem (and help all faced the same issue)

Try this:

opkg install kmod-mtd-rw
insmod mtd-rw i_want_a_brick=1
mtd write preloader.bin BL2
1 Like

Thank you very much for response! I have some troubles with opkg manager:

  1. Failed to update indexes (and changing https -> http doesn't work). And ping 1.1.1.1 have no pong, so router doesn't see internet :frowning:
    Can I download it manually through WinSCP, and how can I install it from binary?
  2. I recieved message "operation is not permitted" afterwards...

UPD: So I have fixed internet connection issue with just plug-in the internet cabel to LAN4, and it works! So opkg manage with as at the moment!

What do you mean by uboot.bin file?

inside uboot you should see
Load BL2 preloader via TFTP then write to NAND
Load BL31+U-Boot FIP via TFTP then write to NAND

so you can flash them in uboot or boot openwrt and manually flash

https://downloads.openwrt.org/releases/23.05.4/targets/mediatek/filogic/openwrt-23.05.4-mediatek-filogic-xiaomi_mi-router-ax3000t-ubootmod-preloader.bin
to BL2

and

https://downloads.openwrt.org/releases/23.05.4/targets/mediatek/filogic/openwrt-23.05.4-mediatek-filogic-xiaomi_mi-router-ax3000t-ubootmod-bl31-uboot.fip

to FIP

1 Like

Thank you very much!!! Router is back to life without System fault error after reboot!! The problem with System fault is sovled.

And what are the BL2 preloader and B31+U-Boot FIP? NAND - smth like entrypoint?

https://openwrt.org/inbox/toh/xiaomi/ax3000t#change_to_openwrt_u-boot help too.

1 Like
  1. mt7981 CPU tries to read preloader from 0x0, then from 0x0 + 256KB, then from 0x0 + 512KB, then from 0x0 + 768KB (four "slots" for preloader, so bad block in first 256KB will not be fatal)
  2. on success preloader will read fip (which could be in UBIFS/nmbm)
  3. uboot in fip will load kernel

That's an oversimplification of booting process.

In the Wiki, the last step of the OpenWrt Installation => Flash instructions process finishes with the sysupgrade command, assuming that the entire process is complete and user stays with the stock bootloader. (e.g. don't want install OpenWrt U-Boot).

  • Question: in case the user stays with the stock bootloader, would the flag_try_sys1_failed and flag_try_sys2_failed remain at 0 after router reboot unless these flags are explicitly set to be enforced in /etc/rc.local?

Shouldn't additional step 6 be added to the Flash instructions section to reflect the action to update /etc/rc.local like :

suggestion to add step 6

if firmware=0

sed -i '/exit 0/i fw_setenv flag_try_sys1_failed 0' /etc/rc.local

if firmware=1

sed -i '/exit 0/i fw_setenv flag_try_sys2_failed 0' /etc/rc.local

@remittor , or anyone with RD03 on the stock bootloader, what are your thoughts?

What do you mean it has build date of 2421? What kind of date is it?

This case should not happen at all after installing the sysupgrade image!
This situation is possible only when install and running an initramfs image.

Before installing the sysupgrade image, the user must enter the following commands (when running into initramfs firmware):

fw_setenv boot_fw1 "run boot_rd_img;bootm"
fw_setenv flag_boot_rootfs 0
fw_setenv flag_last_success 0
fw_setenv flag_boot_success 1
fw_setenv flag_try_sys1_failed 0
fw_setenv flag_try_sys2_failed 0

It's probably better to make a common method for everyone:

fw_setenv flag_boot_rootfs 0
fw_setenv flag_last_success 0
fw_setenv flag_boot_success 1
fw_setenv flag_try_sys1_failed 0
fw_setenv flag_try_sys2_failed 0