OpenWrt support for Xiaomi AX3000T

Patches for 23.05.x:

  1. kmod-switch-an8855:
  1. patch for support switch-an8855 via DSA:
  1. patch AX3000T dts (add switch2):

I builded OpenWrt 23.05.5 with this patches and W25N01KV support.

Download my OpenWrt 23.05.5:

10 Likes

Hi, a new/noob openwrt user here.

Could anyone tell me how hot AX300T normally runs with openwrt?

I flashed mine with the snapshot version and I configured it to be a "dumb AP" with an ethernet backhaul. It consistently hovers around 65 degrees while its CPU usage around 0-2%. Around that temperature over a long period of time (12+ hours), the Wifi (any bands) will become erratic and all clients connected to it experiences drastic slowdowns dropping internet speeds from hundreds of megabits per seconds to a hundred kilobits per second.

I honestly suspect its the heat that causes this or has anyone experienced this as well?

P.S. My Ax3000T lays on a flat table by itself without any other things around it. My other AP works fine in the same network. I also tested and confirmed that my Ethernet cable (between the APs) are fine.

Tested. I can confirm that it works!

BusyBox v1.36.1 (2024-09-23 12:34:46 UTC) built-in shell (ash)

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 OpenWrt 23.05.5, r24106-10cc5fcd00, 241012
 -----------------------------------------------------
=== 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.
--------------------------------------------------
root@OpenWrt:~# cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00100000 00020000 "BL2"
mtd1: 00040000 00020000 "Nvram"
mtd2: 00040000 00020000 "Bdata"
mtd3: 00200000 00020000 "Factory"
mtd4: 00200000 00020000 "FIP"
mtd5: 00040000 00020000 "crash"
mtd6: 00040000 00020000 "crash_log"
mtd7: 00040000 00020000 "KF"
mtd8: 02200000 00020000 "ubi_kernel"
mtd9: 04e00000 00020000 "ubi"

config interface 'loopback'
        option device 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'

config globals 'globals'
        option ula_prefix 'fd9e:b453:4e96::/48'

config device
        option name 'br-lan'
        option type 'bridge'
        list ports 'lan2'
        list ports 'lan3'
        list ports 'lan4'

config interface 'lan'
        option device 'br-lan'
        option proto 'static'
        option ipaddr '192.168.1.1'
        option netmask '255.255.255.0'
        option ip6assign '60'

config device
        option name 'wan'
        option macaddr '44:f7:70:78:54:6a'

config interface 'wan'
        option device 'wan'
        option proto 'dhcp'

config interface 'wan6'
        option device 'wan'
        option proto 'dhcpv6'
4 Likes

Could you please run the following? (just to confirm the hardware of your router)

dmesg | grep -i an8855
dmesg | grep nand
1 Like

Hi,

I recently flashed RD23 with ESMT chip, Openwrt ran fine until I rebooted it and it went to bootloop. I could restore it with Mifiwi repair tool.

Is there a way to fix this issue without changing the stock bootloader?

Thanks

It works. Thanks for your work! I look forward to official support for openWrt!!!

login as: root


BusyBox v1.36.1 (2024-09-23 12:34:46 UTC) built-in shell (ash)

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 OpenWrt 23.05.5, r24106-10cc5fcd00, 241012
 -----------------------------------------------------
=== 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.
--------------------------------------------------
root@OpenWrt:~# dmesg | grep -i an8855
[    4.020904] an8855 mdio-bus:01: Airoha AN8855 DSA driver, version 1.0.2
[    4.523449] an8855 mdio-bus:01: configuring for fixed/2500base-x link mode
[    4.530437] an8855 mdio-bus:01: Link is Up - 2.5Gbps/Full - flow control rx/tx
[    4.530680] an8855 mdio-bus:01 wan (uninitialized): PHY [dsa-0.0:00] driver [Generic PHY] (irq=POLL)
[    4.547996] an8855 mdio-bus:01 lan2 (uninitialized): PHY [dsa-0.0:01] driver [Generic PHY] (irq=POLL)
[    4.557990] an8855 mdio-bus:01 lan3 (uninitialized): PHY [dsa-0.0:02] driver [Generic PHY] (irq=POLL)
[    4.567954] an8855 mdio-bus:01 lan4 (uninitialized): PHY [dsa-0.0:03] driver [Generic PHY] (irq=POLL)
[    4.580686] an8855-nl: genl_register_family_with_ops
[    5.039800] an8855 mdio-bus:01 lan4: configuring for phy/gmii link mode
[   23.371443] an8855 mdio-bus:01 lan2: configuring for phy/gmii link mode
[   23.427603] an8855 mdio-bus:01 lan3: configuring for phy/gmii link mode
[   23.473929] an8855 mdio-bus:01 lan4: configuring for phy/gmii link mode
[   23.511129] an8855 mdio-bus:01 wan: configuring for phy/gmii link mode
[   25.604063] an8855 mdio-bus:01 wan: Link is Up - 100Mbps/Full - flow control rx/tx
[   27.524068] an8855 mdio-bus:01 lan2: Link is Up - 1Gbps/Full - flow control rx/tx
root@OpenWrt:~# dmesg | grep nand
[    0.770949] spi-nand spi0.0: Winbond SPI NAND was found.
[    0.776292] spi-nand spi0.0: 128 MiB, block size: 128 KiB, page size: 2048, OOB size: 96
root@OpenWrt:~#

3 Likes
an8855 mdio-bus:01: configuring for fixed/2500base-x link mode

How should I understand this correctly?
Are all these ports 2.5G?

No, ports in the AX3000T are 1Gb only.
The 2.5 Gbps is related to internal bus or interfaces between the AN8855 switch and the Filogic 820 CPU.

Previous versions of the AX3000T returns the same output:

root@OpenWrt:~# dmesg | grep -i mt7530
[    1.242411] mt7530-mdio mdio-bus:1f: configuring for fixed/2500base-x link mode
3 Likes

So, there are 2 confirmations that AX8855 switch support works

@remittor , could you please create a PR with AN8855 support into the official OpenWrt repository?
So that it starts appearing in the official Snapshot images.

3 Likes

And finally, please, official repair of xmir-patcher, so that it could make backup copies...

1 Like

It won't be accepted in its current form, otherwise I would have made this PR myself.

1 Like

Hello @all ,

I'm currently at the

Change to OpenWrt U-Boot

point, but I couldn't found the uboot binary at https://firmware-selector.openwrt.org/?version=23.05.5&target=mediatek%2Ffilogic&id=xiaomi_mi-router-ax3000t .

Is there a stable version or only the unstable version from the snapshot version?

Regards

I confirmed its work with te AN8855 switch, but after few restart its switchet to bot from system1 partition and caused bootloop.
I tried use:

sed -i '/exit 0/i sleep 5\nfw_setenv flag_try_sys1_failed 0' /etc/rc.local

but it not helped. How to set bootloader flag? how to read them?

I found that in this version of uboot the flags flag_try_sys1_failed and flag_try_sys2_failed cannot be 0, so I set to 2:

sed -i '/exit 0/i sleep 5\nfw_setenv flag_try_sys1_failed 2' /etc/rc.local

and now after ten rebbots still is OK

5 Likes

About the bootloop issue with the new version of the stock firmware
(bootloader)

I have the script (bootcount + platforms.sh) in my build to properly update the boot flags (from boot env), but missed info about the issue from SNAPSHOT (absent in the 23.5 branch):
"mediatek: filogic: Update bootcount init script permissions" - https://github.com/openwrt/openwrt/commit/cb86e313d3ad6faf894b626bdd311fb106223ddf

I have uploaded:

and update info repository about permissions (see step 5 in the README.md file)

Attention!
My build include fix for anti-bootloop & Winbond chip only, no changes for the ‘an8855 driver.

Feedback
Test passed for:

  • RD03 + ESMT
  • RD23 + ESMT
  • RD03 + Windbond
5 Likes

It's not enough information to suggest something.

Before reboot, run the following to gain better insight into what is going on:

ubus call system board
fw_printenv

I know something more. After every boot even boot was successful causing flag_try_sys1_failed being increased. When flag value is 6 or 12 etc. bootloader trying boot from another partition and bootloop started.

FYI:
This build has the same issue, the script does not run when the router is booted (no execution rights).

And the script is different from mine, I haven't tested it.

I'm also concerned about a few entries in logread:

Sat Oct 12 22:21:26 2024 kern.err kernel: [ 2.154458] mt7530-mdio mdio-bus:1f: reset timeout
Sat Oct 12 22:21:26 2024 kern.warn kernel: [ 2.159311] mt7530-mdio: probe of mdio-bus:1f failed with error -110

Sat Oct 12 22:21:28 2024 daemon.notice procd: /etc/rc.d/S25packet_steering: uci: Entry not found

Sat Oct 12 22:21:26 2024 kern.notice kernel: [ 0.000000] Kernel command line: console=ttyS0,115200n1 loglevel=8 swiotlb=512 rootfstype=squashfs firmware=0 mtd=ubi uart_en=1
Sat Oct 12 22:21:26 2024 kern.notice kernel: [ 0.000000] Unknown kernel command line parameters "firmware=0 mtd=ubi uart_en=1", will be passed to user space.

Hi,
Please be aware

If your switch is an8855 - try tftp method to restore stock