Support for ASUS 4G-AC86U (Mediatek)

Unlike its sibling without modem RT-AC86U, this one is based on Mediatek MT7622AV SoC. UART is exposed with all pins described, so I gathered some information on this device:

Hardware
SoC MT7622AV
NAND 128MB - 25N01GVZE1G
RAM 512MB
Switch RTL8367S
WiFi MT7615N
LTE Modem M2 slot - Quectel EM12-G

Partitions:

dev:    size   erasesize  name
mtd0: 00080000 00020000 "Preloader"
mtd1: 00040000 00020000 "ATF"
mtd2: 00080000 00020000 "Bootloader"
mtd3: 00100000 00020000 "nvram"
mtd4: 00100000 00020000 "Factory"
mtd5: 00100000 00020000 "Factory2"
mtd6: 03200000 00020000 "Kernel"
mtd7: 00280000 00020000 "linux"
mtd8: 02f9d234 00020000 "rootfs"
mtd9: 03200000 00020000 "Kernel2"
mtd10: 00d80000 00020000 "jffs2"

PCB Photos:



IMO its built very well - When is the last time You seen tantalum caps on a router?

Full bootlog:

DTS:

Would appreciate any help to make this device work with OpenWRT.

Since it is MT7622, I would start by comparing the DTS with an already supported mt7622 board that has NAND and MT7615, then add only the ASUS-specific GPIOs/LEDs/buttons and partition layout. The LTE modem is probably best treated separately at first: get Ethernet, switch, flash layout and serial recovery solid before trying to make the M.2 modem nice in LuCI. Also keep the full OEM bootlog and ART/Factory dumps safe before flashing anything.

Closest device I found is Totolink A8000RU - same soc, ram size, rtl switch, wlan( totolink has 2x mt7615 while asus has only 1), and using nand.

Initramfs boots fully:
WiFi - integrated 2.4 radio works, but mt7615 not detected at all ( link down for both pcie lanes)
Lan is messed up - I get IP via DHCP when I connect laptop lan ports, luci works.
WAN is detected, works VERY slowly, there are no prompts when i plug on unplug cable from any lan/wan port

missing ports tab in luci


'Switch' tab loads couple good seconds and look like this:

Official builds use rtk-gsw so swconfig.
There is work in progress on DSA realtek driver:
https://forum.openwrt.org/t/reduce-number-of-drivers-for-rtl8367s/

So I decided to give it a try, cloned repo:

..and ethernet seem to behave exactly as before, but 5g wifi got detected and working :man_mage:
There are some changes to wifi in dts, and cloned version i used do not have DSA/rtl8367mb implemented yet.. still use swconfig

diff
=======================
<not working | >working
-----------------------
110c110,111
< 	mt7615@0,0 {
---
> 	wmac1: wifi@0,0 {
> 		compatible = "mediatek,mt76";
112,113d112
< 		mediatek,mtd-eeprom = <&factory 0x5000>;
< 		ieee80211-freq-limit = <5490000 6000000>;
124c123,124
< 	mt7615@0,0 {
---
> 	wmac2: wifi@0,0 {
> 		compatible = "mediatek,mt76";
126,127d125
< 		mediatek,mtd-eeprom = <&factory 0x10000>;
< 		ieee80211-freq-limit = <5000000 5490000>;
285c283
< 			factory: partition@1c0000 {
---
> 			partition@1c0000 {
294a293,296
> 					eeprom_factory_0: eeprom@0 {
> 						reg = <0x0 0x4da8>; /* actual length 0x400 */
> 					};
> 
301a304,311
> 
> 					eeprom_factory_5000: eeprom@5000 {
> 						reg = <0x5000 0x4da8>;
> 					};
> 
> 					eeprom_factory_10000: eeprom@10000 {
> 						reg = <0x10000 0x4da8>;
> 					};
346a357,358
> 	status = "okay";
> 
349,350c361,375
< 	mediatek,mtd-eeprom = <&factory 0x0>;
< 	status = "okay";
---
> 
> 	nvmem-cells = <&eeprom_factory_0>;
> 	nvmem-cell-names = "eeprom";
> };
> 
> &wmac1 {
> 	nvmem-cells = <&eeprom_factory_5000>;
> 	nvmem-cell-names = "eeprom";
> 	ieee80211-freq-limit = <5490000 6000000>;
> };
> 
> &wmac2 {
> 	nvmem-cells = <&eeprom_factory_10000>;
> 	nvmem-cell-names = "eeprom";
> 	ieee80211-freq-limit = <5000000 5490000>;

So I did apply those differences to fresh cloned openwrt 25.12 repo, compiled.. and no detect.

Bootlog with working wifi:

[    2.078227] mtk-pcie 1a143000.pcie: host bridge /pcie@1a143000 ranges:
[    2.084803] mtk-pcie 1a143000.pcie: Parsing ranges property...
[    2.090639] mtk-pcie 1a143000.pcie:      MEM 0x0020000000..0x0027ffffff -> 0x0020000000
[    2.304529] mtk-pcie 1a143000.pcie: Port0 link down
[    2.309813] mtk-pcie 1a143000.pcie: PCI host bridge to bus 0000:00
[    2.316021] pci_bus 0000:00: root bus resource [bus 00-ff]
[    2.321511] pci_bus 0000:00: root bus resource [mem 0x20000000-0x27ffffff]
[    2.328402] pci_bus 0000:00: scanning bus
[    2.334125] pci_bus 0000:00: fixups for bus
[    2.338311] pci_bus 0000:00: bus scan returning with max=00
[    2.343880] pci_bus 0000:00: resource 4 [mem 0x20000000-0x27ffffff]
[    2.350548] mtk-pcie 1a145000.pcie: host bridge /pcie@1a145000 ranges:
[    2.357093] mtk-pcie 1a145000.pcie: Parsing ranges property...
[    2.362925] mtk-pcie 1a145000.pcie:      MEM 0x0028000000..0x002fffffff -> 0x0028000000
[    2.488864] mtk-pcie 1a145000.pcie: PCI host bridge to bus 0001:00
[    2.495083] pci_bus 0001:00: root bus resource [bus 00-ff]
[    2.500575] pci_bus 0001:00: root bus resource [mem 0x28000000-0x2fffffff]
[    2.507452] pci_bus 0001:00: scanning bus
[    2.511813] pci 0001:00:01.0: [14c3:3258] type 01 class 0x060400 PCIe Root Port
[    2.519383] pci 0001:00:01.0: BAR 0 [mem 0x00000000-0x1ffffffff 64bit pref]
[    2.526373] pci 0001:00:01.0: PCI bridge to [bus 00]
[    2.531403] pci 0001:00:01.0:   bridge window [mem 0x00000000-0x000fffff]
[    2.540706] pci_bus 0001:00: fixups for bus
[    2.544914] pci 0001:00:01.0: scanning [bus 00-00] behind bridge, pass 0
[    2.551612] pci 0001:00:01.0: bridge configuration invalid ([bus 00-00]), reconfiguring
[    2.559689] pci 0001:00:01.0: scanning [bus 00-00] behind bridge, pass 1
[    2.566775] pci_bus 0001:01: scanning bus
[    2.571005] pci 0001:01:00.0: [14c3:7615] type 00 class 0x000280 PCIe Endpoint
[    2.578666] pci 0001:01:00.0: BAR 0 [mem 0x00000000-0x000fffff 64bit]
[    2.585934] pci 0001:01:00.0: 2.000 Gb/s available PCIe bandwidth, limited by 2.5 GT/s PCIe x1 link at 0001:00:01.0 (capable of 4.000 Gb/s with 5.0 GT/s PCIe x1 link)
[    2.614422] pci 0001:01:00.0: ASPM: default states L0s L1
[    2.619879] pci_bus 0001:01: fixups for bus
[    2.624065] pci_bus 0001:01: bus scan returning with max=01
[    2.629650] pci_bus 0001:01: busn_res: [bus 01-ff] end is updated to 01
[    2.636308] pci_bus 0001:00: bus scan returning with max=01
[    2.641890] pci 0001:00:01.0: BAR 0 [mem size 0x200000000 64bit pref]: can't assign; no space
[    2.650423] pci 0001:00:01.0: BAR 0 [mem size 0x200000000 64bit pref]: failed to assign
[    2.658436] pci 0001:00:01.0: bridge window [mem 0x28000000-0x280fffff]: assigned
[    2.665923] pci 0001:00:01.0: bridge window [mem 0x28000000-0x280fffff]: releasing
[    2.673490] pci 0001:00:01.0: BAR 0 [mem size 0x200000000 64bit pref]: can't assign; no space
[    2.682020] pci 0001:00:01.0: BAR 0 [mem size 0x200000000 64bit pref]: failed to assign
[    2.690027] pci 0001:00:01.0: bridge window [mem 0x28000000-0x280fffff]: assigned
[    2.697520] pci 0001:01:00.0: BAR 0 [mem 0x28000000-0x280fffff 64bit]: assigned
[    2.704920] pci 0001:00:01.0: PCI bridge to [bus 01]
[    2.709916] pci 0001:00:01.0:   bridge window [mem 0x28000000-0x280fffff]
[    2.716779] pci_bus 0001:00: Some PCI device resources are unassigned, try booting with pci=realloc
[    2.725825] pci_bus 0001:00: resource 4 [mem 0x28000000-0x2fffffff]
[    2.732089] pci_bus 0001:01: resource 1 [mem 0x28000000-0x280fffff]
[    2.738394] pci 0001:00:01.0: save config 0x00: 0x325814c3
[    2.743887] pci 0001:00:01.0: save config 0x04: 0x00100000
[    2.749387] pci 0001:00:01.0: save config 0x08: 0x06040000
[    2.754885] pci 0001:00:01.0: save config 0x0c: 0x00010000
[    2.760377] pci 0001:00:01.0: save config 0x10: 0x0000000c
[    2.765876] pci 0001:00:01.0: save config 0x14: 0x00000000
[    2.771368] pci 0001:00:01.0: save config 0x18: 0x40010100
[    2.776868] pci 0001:00:01.0: save config 0x1c: 0x04200000
[    2.782360] pci 0001:00:01.0: save config 0x20: 0x28002800
[    2.787859] pci 0001:00:01.0: save config 0x24: 0x00000000
[    2.793350] pci 0001:00:01.0: save config 0x28: 0x00000000
[    2.798852] pci 0001:00:01.0: save config 0x2c: 0x00000000
[    2.804344] pci 0001:00:01.0: save config 0x30: 0x00000000
[    2.809842] pci 0001:00:01.0: save config 0x34: 0x00000050
[    2.815342] pci 0001:00:01.0: save config 0x38: 0x00000000
[    2.820834] pci 0001:00:01.0: save config 0x3c: 0x00020100
[    2.826817] pcieport 0001:00:01.0: assign IRQ: got 128
[    2.831990] pcieport 0001:00:01.0: enabling device (0000 -> 0002)
[    2.838207] pcieport 0001:00:01.0: enabling bus mastering
[    2.843755] mtk-pcie 1a145000.pcie: msi#0 address_hi 0x0 address_lo 0x450f50c0
[    2.851449] pcieport 0001:00:01.0: PME: Signaling with IRQ 128
[    2.857490] pcieport 0001:00:01.0: bwctrl: enabled with IRQ 128
[    2.863442] pcieport 0001:00:01.0: save config 0x00: 0x325814c3
[    2.869379] pcieport 0001:00:01.0: save config 0x04: 0x00100006
[    2.875313] pcieport 0001:00:01.0: save config 0x08: 0x06040000
[    2.881239] pcieport 0001:00:01.0: save config 0x0c: 0x00010000
[    2.887171] pcieport 0001:00:01.0: save config 0x10: 0x0000000c
[    2.893097] pcieport 0001:00:01.0: save config 0x14: 0x00000000
[    2.899031] pcieport 0001:00:01.0: save config 0x18: 0x40010100
[    2.904962] pcieport 0001:00:01.0: save config 0x1c: 0x04200000
[    2.910889] pcieport 0001:00:01.0: save config 0x20: 0x28002800
[    2.916826] pcieport 0001:00:01.0: save config 0x24: 0x00000000
[    2.922753] pcieport 0001:00:01.0: save config 0x28: 0x00000000
[    2.928689] pcieport 0001:00:01.0: save config 0x2c: 0x00000000
[    2.934621] pcieport 0001:00:01.0: save config 0x30: 0x00000000
[    2.940547] pcieport 0001:00:01.0: save config 0x34: 0x00000050
[    2.946479] pcieport 0001:00:01.0: save config 0x38: 0x00000000
[    2.952405] pcieport 0001:00:01.0: save config 0x3c: 0x00020180
[    2.958733] pci 0001:01:00.0: save config 0x00: 0x761514c3
[    2.964227] pci 0001:01:00.0: save config 0x04: 0x00100000
[    2.969727] pci 0001:01:00.0: save config 0x08: 0x00028000
[    2.975231] pci 0001:01:00.0: save config 0x0c: 0x00000000
[    2.980724] pci 0001:01:00.0: save config 0x10: 0x28000004
[    2.986222] pci 0001:01:00.0: save config 0x14: 0x00000000
[    2.991715] pci 0001:01:00.0: save config 0x18: 0x00000000
[    2.997213] pci 0001:01:00.0: save config 0x1c: 0x00000000
[    3.002705] pci 0001:01:00.0: save config 0x20: 0x00000000
[    3.008204] pci 0001:01:00.0: save config 0x24: 0x00000000
[    3.013696] pci 0001:01:00.0: save config 0x28: 0x00000000
[    3.019195] pci 0001:01:00.0: save config 0x2c: 0x14c37615
[    3.024693] pci 0001:01:00.0: save config 0x30: 0x00000000
[    3.030186] pci 0001:01:00.0: save config 0x34: 0x00000050
[    3.035689] pci 0001:01:00.0: save config 0x38: 0x00000000
[    3.041181] pci 0001:01:00.0: save config 0x3c: 0x00000100
[    3.047785] mtk_hsdma 1b007000.dma-controller: MediaTek HSDMA driver registered
.
.
.
.
.
[   10.063890] kmodloader: loading kernel modules from /etc/modules.d/*
[   10.074008] Loading modules backported from Linux version v6.18.26-0-g1fe060681
[   10.081410] Backport generated by backports.git 6ecbb44
[   10.121026] mt7615e 0001:01:00.0: assign IRQ: got 128
[   10.126160] mt7615e 0001:01:00.0: enabling device (0000 -> 0002)
[   10.132284] mt7615e 0001:01:00.0: enabling bus mastering
[   10.137773] mtk-pcie 1a145000.pcie: msi#0 address_hi 0x0 address_lo 0x450f50c0
[   10.148418] mt7615e 0001:01:00.0: Invalid MAC address, using random address 16:9c:cd:12:2b:58
[   10.158509] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht'
[   10.165357] ieee80211 phy0: copying sband (band 1) due to VHT EXT NSS BW flag
[   10.177296] mt7622-wmac 18000000.wmac: Invalid MAC address, using random address 6e:40:45:b5:3c:d0
[   10.192689] ieee80211 phy1: Selected rate control algorithm 'minstrel_ht'
[   10.200181] mt7615e 0001:01:00.0: HW/SW Version: 0x8a108a10, Build Time: 20180518100604a
[   10.200181]
[   10.232650] mt7615e 0001:01:00.0: N9 Firmware Version: _reserved_, Build Time: 20200814163649
[   10.244735] mt7622-wmac 18000000.wmac: HW/SW Version: 0x8a108a10, Build Time: 20190801210006a
[   10.244735]
[   10.262456] PPP generic driver version 2.4.2
[   10.275916] mt7615e 0001:01:00.0: CR4 Firmware Version: _reserved_, Build Time: 20190415154149
[   10.285732] NET: Registered PF_PPPOX protocol family
[   10.295008] mt7622-wmac 18000000.wmac: N9 Firmware Version: _reserved_, Build Time: 20220630094834

Bootlog with no detect:

[    2.971089] mtk-pcie 1a143000.pcie: host bridge /pcie@1a143000 ranges:
[    2.977688] mtk-pcie 1a143000.pcie: Parsing ranges property...
[    2.983524] mtk-pcie 1a143000.pcie:      MEM 0x0020000000..0x0027ffffff -> 0x0020000000
[    3.306559] mtk-pcie 1a143000.pcie: Port0 link down
[    3.311814] mtk-pcie 1a143000.pcie: PCI host bridge to bus 0000:00
[    3.318025] pci_bus 0000:00: root bus resource [bus 00-ff]
[    3.323513] pci_bus 0000:00: root bus resource [mem 0x20000000-0x27ffffff]
[    3.330400] pci_bus 0000:00: scanning bus
[    3.336110] pci_bus 0000:00: fixups for bus
[    3.340303] pci_bus 0000:00: bus scan returning with max=00
[    3.345873] pci_bus 0000:00: resource 4 [mem 0x20000000-0x27ffffff]
[    3.352510] mtk-pcie 1a145000.pcie: host bridge /pcie@1a145000 ranges:
[    3.359055] mtk-pcie 1a145000.pcie: Parsing ranges property...
[    3.364887] mtk-pcie 1a145000.pcie:      MEM 0x0028000000..0x002fffffff -> 0x0028000000
[    3.686528] mtk-pcie 1a145000.pcie: Port1 link down
[    3.691567] mtk-pcie 1a145000.pcie: PCI host bridge to bus 0001:00
[    3.697770] pci_bus 0001:00: root bus resource [bus 00-ff]
[    3.703258] pci_bus 0001:00: root bus resource [mem 0x28000000-0x2fffffff]
[    3.710148] pci_bus 0001:00: scanning bus
[    3.715849] pci_bus 0001:00: fixups for bus
[    3.720035] pci_bus 0001:00: bus scan returning with max=00
[    3.725604] pci_bus 0001:00: resource 4 [mem 0x28000000-0x2fffffff]
[    3.732510] mtk_hsdma 1b007000.dma-controller: MediaTek HSDMA driver registered
[    4.936042] [rtl8367s_swconfig_init]

Working wifi:

Linux version 6.*18*.37 (ppp@fedora) (aarch64-openwrt-linux-musl-gcc (OpenWrt GCC 14.4.0 r35168-cc697093b8) 14.4.0, GNU ld (GNU Binutils) 2.46.1) #0 SMP Mon Jun 29 16:17:08 2026

No detect:

Linux version 6.*12*.94 (ppp@fedora) (aarch64-openwrt-linux-musl-gcc (OpenWrt GCC 14.3.0 r33051-f5dae5ece4) 14.3.0, GNU ld (GNU Binutils) 2.44) #0 SMP Mon Jun 29 12:59:20 2026