Quantum Fiber W1700k support

Hello,

Any idea what happened to one of my units? I wanted to redo it with the new initramfs and now I get no WiFi at all no matter which build I check. If the WiFi dead?

[ 0.526428] mtk-pcie-gen3 1fc00000.pcie: host bridge /soc/pcie@1fc00000 ranges:
[ 0.534546] mtk-pcie-gen3 1fc00000.pcie: MEM 0x0020000000..0x0023ffffff -> 0x0020000000
[ 0.650043] mtk-pcie-gen3 1fc00000.pcie: x2 mode enabled
[ 0.655897] mtk-pcie-gen3 1fc00000.pcie: x2 mode: sister MAC mapped
[ 2.879927] mtk-pcie-gen3 1fc00000.pcie: x2: link not up after init, skipping speed check
[ 2.888914] mtk-pcie-gen3 1fc00000.pcie: x2: init complete, PERST deasserted
[ 2.996668] mtk-pcie-gen3 1fc00000.pcie: PCIe link down, current LTSSM state: detect.quiet (0x1)
[ 3.008348] mtk-pcie-gen3 1fc00000.pcie: probe with driver mtk-pcie-gen3 failed with error -110
[ 3.018289] mtk-pcie-gen3 1fc40000.pcie: host bridge /soc/pcie@1fc40000 ranges:
[ 3.026367] mtk-pcie-gen3 1fc40000.pcie: MEM 0x0028000000..0x002bffffff -> 0x0028000000
[ 3.569954] mtk-pcie-gen3 1fc40000.pcie: PCIe link down, current LTSSM state: detect.quiet (0x1)
[ 3.581640] mtk-pcie-gen3 1fc40000.pcie: probe with driver mtk-pcie-gen3 failed with error -110

EDIT: Never mind, it was a power issue. I use a USB-C to DC barrel jack with forced 12v PD and connected it do a power supply that was not giving me enough juice. Strange that instead of crashing or something it just would not initialize WiFi cards.

That's really cool info. Maybe experiment with deliberately underpowering the device and see how it reacts.

It seems a fair number are using non-OEM power supplies and that is responsible for a good number of issues.

The 1/26 builds predate the debugfs change, so if you want to look at offload stats, you can use those.

The 1/26 builds are quite different regarding the NPU firmware and drivers, I think?

Anyway, I understand your choice, but I also want to point out that the original synthetic test (i.e., running iperf3 server and client through loopback) doesn’t quite reflect the real-world usage of this device. In most (if not all) cases, it is a router or a bridged AP, so any local sockets are out of the question. Since the kernel does a lot more work to handle local traffic than forwarded packets, the difference in performance with and without those debugfs options is likely exaggerated in the tests than during normal usage.

Plus, leaving these options as-is ensures better compatibility with the upstream and the packages from the official repository, and also avoids possible breakage like the luci-app-airoha-npu case.

Again, I understand your choice, and this is only a suggestion to improve compatibility. I deeply appreciate your hard work in bringing up this device and providing the builds.

Thanks, @TempestJunior. I was running into the same issue with the minimal-npu package. No connection on any ports when setting up VLAN filtering on the default br-lan device. Created the new bridge with vlan filtering and all ports work as expected.

You say that, but hold my beer. :slight_smile:

Seriously, thanks for all the working making this functional. Getting a working 6GHz device on OpenWrt has been eluding me for the past few years. Just some tips for anyone like me who finds this massive thread and tries to setup one of these:

tftp: I beat my head against the wall for an hour trying to do the initial flash of this thing, bringing back bad memories of the 80s with diskless workstations booting by tftp. The problem? It simply didn’t like my Ethernet adapter! I found an old 100Mbps USB dongle, and then flashed it, no problem. IDK what the problem was – maybe it can’t handle writing to flash at 1Gbps?

VLANs: I also spent several hours trying to get VLANs to work despite having a known, working VLAN setup on 6 other OpenWrt devices. The problem? Apparently you have to reboot it after the initial VLAN setup (at least for the one br-lan is going to use)… but really, who is brave enough to reboot with a config that just failed that Luci just rolled-back? After that, I was able to add or remove other VLANs w/o rebooting.

I’ve been running for 2 days now. The performance is slightly below my MT6000, but I suspect that’ll get better with the latest NPU and mt76 updates. At the moment the only bit of strangeness is nothing has connected to its 2.4GHz radio! I haven’t figured out what to make of that yet – I had the same issues w/ a Dynalink. I’ve downgraded it to 801.11n and am waiting.

– Mike

@OpenWRT-fanboy

I update seamlessly to lumos-r33280, so I don't know what caused my previous upgrade bug.

I maybe have an trail, when I was on r33239 which denied to downgrade/upgrade, I couldn't install "crowdsec-firewall-bouncer", because it hanged in post install script, which added a nft rules.
The "nft add" command was hanging forever. Maybe broken nftables could prevent some services to stop/start correctly for flashing.
Trying to restart firewall services hanged too, because of nft commands.

For NPU firmware version not showing in lumos, you could update the "luci.airoha_npu" script that way :

local npu_fw="$(ls /lib/firmware/airoha/en7581*npu_rv32.bin 2> /dev/null || true)"

So it is compatible with the two versions "en7581_npu_rv32.bin" and "en7581_MT7996_npu_rv32.bin"

Not very clear about what AUTO?

Very clever. Implemented and rebuilt.

I have a github action that automatically rebases my branches against openwrt main. Sometimes these rebases fail, so for safety, I do it on the AUTO branch. I have another action that syncs up with the regular branches; this one is run manually.

I've got two units set up with a WDS link between them, trunking a couple of VLANs - initially I was using minimal, and bridge filtering appeared to work OK for me.

What I do have an issue with is, if I plug anything into the 10G ports (WAN or LAN2) it will pass traffic momentarily, before the following panic:



[   69.043215] skbuff: skb_under_panic: text:ffffffc0806af848 len:87 put:46 head:ffffff800325d800 data:ffffff800325d7fc tail:0x53 end:0x6c0 dev:wan
[   69.056267] ------------[ cut here ]------------
[   69.060885] Kernel BUG at 0xffffffc0808116d0 [verbose debug info unavailable]
[   69.068031] Internal error: Oops - BUG: 00000000f2000800 [#1] SMP
[   69.074123] Modules linked in: xt_connlimit pppoe ppp_async nf_conncount iptable_nat xt_state xt_nat xt_helper xt_conntrack xt_connmark xt_connbytes xt_REDIRECT xt_MASQUERADE xt_CT wireguard pppox ppp_generic nft_redir nft_nat nft_masq nft_flow_offload nft_fib_inet nft_ct nft_chain_nat nf_nat nf_flow_table_inet nf_flow_table nf_conntrack_netlink nf_conntrack nct7802 mt7996e(O) mt76_connac_lib(O) mt76(O) mac80211(O) libchacha20poly1305 ipt_REJECT chacha_neon cfg80211(O) xt_time xt_tcpudp xt_tcpmss xt_statistic xt_recent xt_multiport xt_mark xt_mac xt_limit xt_length xt_hl xt_ecn xt_dscp xt_comment xt_TCPMSS xt_LOG xt_HL xt_DSCP xt_CLASSIFY slhc sch_cake regmap_i2c poly1305_neon nft_reject_ipv6 nft_reject_ipv4 nft_reject_inet nft_reject nft_quota nft_numgen nft_log nft_limit nft_hash nft_fib_ipv6 nft_fib_ipv4 nft_fib nft_compat nf_tables nf_reject_ipv4 nf_log_syslog nf_defrag_ipv6 nf_defrag_ipv4 libcurve25519_generic libcrc32c libchacha iptable_mangle iptable_filter ipt_ECN ip_tables hwmon compat(O) cls_flower act_vlan
[   69.074548]  i2c_mt7621 cls_bpf act_bpf sch_tbf sch_ingress sch_htb sch_hfsc em_u32 cls_u32 cls_route cls_matchall cls_fw cls_flow cls_basic act_skbedit act_mirred act_gact i2c_dev i2c_core xt_set ip_set_list_set ip_set_hash_netportnet ip_set_hash_netport ip_set_hash_netnet ip_set_hash_netiface ip_set_hash_net ip_set_hash_mac ip_set_hash_ipportnet ip_set_hash_ipportip ip_set_hash_ipport ip_set_hash_ipmark ip_set_hash_ipmac ip_set_hash_ip ip_set_bitmap_port ip_set_bitmap_ipmac ip_set_bitmap_ip ip_set nfnetlink ip6table_mangle ip6table_filter ip6_tables ip6t_REJECT x_tables nf_reject_ipv6 ip6_gre ip_gre gre ifb ip6_tunnel tunnel6 ip_tunnel udp_diag tcp_diag raw_diag inet_diag tun vxlan udp_tunnel ip6_udp_tunnel sha512_arm64 sha256_arm64 sha1_generic md5 des_generic libdes cmac leds_gpio mt7530_mmio mt7530_dsa airoha_eth airoha_npu gpio_button_hotplug(O) rtl8261n
[   69.241223] CPU: 0 UID: 0 PID: 0 Comm: swapper/0 Tainted: G           O       6.12.74 #0
[   69.249335] Tainted: [O]=OOT_MODULE
[   69.252831] Hardware name: Gemtek W1700K (DT)
[   69.257188] pstate: 40400005 (nZcv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[   69.264166] pc : 0xffffffc0808116d0
[   69.267665] lr : 0xffffffc0808116d0
[   69.271155] sp : ffffffc080b8b7d0
[   69.274471] x29: ffffffc080b8b7e0 x28: 0000000000000011 x27: ffffffc0806af848
[   69.281631] x26: 0000000000000000 x25: 0000000000000029 x24: 0000000000000000
[   69.288794] x23: 0000000000000000 x22: 0000000000000000 x21: 0000000000000012
[   69.295955] x20: ffffff801168f100 x19: ffffff80021a4100 x18: ffffffc080a6b070
[   69.303116] x17: 61636f6c05313063 x16: 6404000000000000 x15: 000000000000018d
[   69.310278] x14: 000000000000018d x13: 00000000ffffffea x12: ffffffc080ac3018
[   69.317439] x11: ffffffc080a6b070 x10: ffffffc080ac3070 x9 : 0000000000000001
[   69.324600] x8 : 0000000000000001 x7 : 0000000000017fe8 x6 : 0000000000000001
[   69.331762] x5 : 0000000000000000 x4 : 0000000000000000 x3 : 0000000005000000
[   69.338924] x2 : 0000000000000001 x1 : 0000000000000001 x0 : 0000000000000084
[   69.346085] Call trace:
[   69.348535]  0xffffffc0808116d0
[   69.351685]  0xffffffc0805bfc90
[   69.354834]  0xffffffc0806af848
[   69.357977]  0xffffffc0806b0018
[   69.361121]  0xffffffc0806bb130
[   69.364271]  0xffffffc0806139f4
[   69.367412]  0xffffffc080613aa4
[   69.370555]  0xffffffc0805d72f4
[   69.373698]  0xffffffc0805d7c68
[   69.376840]  0xffffffc08060799c
[   69.379982]  0xffffffc080608be0
[   69.383124]  0xffffffc0805d9c54
[   69.386268]  0xffffffc0805da398
[   69.389410]  0xffffffc0805da578
[   69.392553]  0xffffffc0805db204
[   69.395694]  0xffffffc0805db788
[   69.398837]  0xffffffc080035dbc
[   69.401979]  0xffffffc080010190
[   69.405121]  0xffffffc08001488c
[   69.408264]  0xffffffc080014860
[   69.411406]  0xffffffc0800148b8
[   69.414548]  0xffffffc0800363e0
[   69.417690]  0xffffffc080812b54
[   69.420834]  0xffffffc08081311c
[   69.423975]  0xffffffc080011304
[   69.427117]  0xffffffc0808141e4
[   69.430260]  0xffffffc080073b3c
[   69.433403]  0xffffffc080073d20
[   69.436554]  0xffffffc0808142b4
[   69.439696]  0xffffffc080980d50
[   69.442838]  0xffffffc080986e58
[   69.445990] Code: 2956a107 9a8a0129 a90027e8 97ffd7a7 (d4210000)
[   69.452086] ---[ end trace 0000000000000000 ]---
[   69.456713] Kernel panic - not syncing: Oops - BUG: Fatal exception in interrupt
[   69.464116] SMP: stopping secondary CPUs
[   69.468047] Kernel Offset: disabled
[   69.471537] CPU features: 0x00,00000000,00000000,4200400b
[   69.476944] Memory Limit: none
[   69.480003] Rebooting in 3 seconds..


The device will then continue in a panic, reboot loop until I unplug the cable from the 10G port. I've tried a variety of 1G and 2.5G devices and all seem to cause it.

I've now switched to lumos-npu (to try the updated Realtek driver) and so far I've got a 2.5G device connected to the 10G LAN2 port and it's staying up. Will see how I get on over the next couple of days.

Thanks for reporting this @Gul

I’m experiencing a similar issue but on the WAN port (only) on all 3 Aps running minimal-r32811. In my case LAN2 works nicely and is trunk connected to 10G port of a backhaul switch. WAN, LAN3, LAN4 are access ports to 3 VLANs.

WAN port exhibits the issue you described above hence this port is currently not in use. LAN3 and LAN4 are very slow (probably 10M speed) despite being connected at 1G.

Reading your comment, it appears the issue is no longer reproducible on the recent lumo-npu-2026.03.02-r33282, is this the case?

It’s a custom build (I compile in a few extra packages, no code changes) but yes, the one I’m running now is based off that and I’ve got 2.5G devices connected to WAN and LAN2 without issue at the moment.

Oddly, my other device is still running minimal and that’s got a 10G connection to my fibre ONT on the WAN port and seems to have no issues.

At first I wondered if having the WAN port as part of the same bridge as LAN2/3/4 was the issue but I tried removing WAN from the bridge and still got the panics on WAN and LAN2.

This fails if both files are present.
I would instead use something like this:

local npu_fw="$(find /lib/firmware/airoha -name 'en7581*npu_rv32.bin' 2>/dev/null | sort | head -n 1)"

But we control what files are there, so perhaps this is not needed at all.

I’ve recently tested the lumos-npu build r33282, coming from minimal-oc/minimal-npu.
Unfortunately, my 10G ports lan2/wan are down with nothing much I can do.
The devices plugged into those ports are 2.5G, so I’m guessing this is the issue.
There is nothing in dmesg about the failure:

[  375.489106] airoha_eth 1fb50000.ethernet lan2: PHY [mt7530_dsa-0:05] driver [RTL8261N 10Gbps PHY] (irq=POLL)
[  375.498965] airoha_eth 1fb50000.ethernet lan2: configuring for phy/usxgmii link mode

Any suggestions? For now I’ll go back to minimal.

EDIT: The strangest thing just happened…
The 10G ports were not activated like I said with me plugging/unplugging the 2.5G wall port.
I tried another 2.5G device and the ports activated fine immediately.
Then I retried the original device right after - and it worked.
Power saving stuff? What could be happening there?

EDIT2:
Rebooted and retried, now jumpstarting it with another port doesn’t work.
Meh

Decided to test the 10G ports again today, with my local builds of both the lumos-npu (r33255-3694d6ddf8) branch and minimal-npu (r33245-0f59f2f3d0).

Used a script to trigger link speed changes on my PC, connected to the 10G port on the W1700K. Both builds eventually end up with a nonworking 10G after a while, happened much faster on the minimal-npu build but I’ve only tested once.

I originally disabled as many debug options as possible to optimize performance while being transparent to users with no loss of functionality.

However, as @hexchain points out, debugfs is necessary for proper functioning of luci-app-airoha-npu. Therefore, it has been re-enabled in the latest builds. The other debug options remain disabled.

@OpenWRT-fanboy perhaps this commit should be added to fix those issues. https://github.com/openwrt/openwrt/commit/2ea81b54a85ae7af8e5adb7abfcf68a034bf7bc2

When I was compiling with this commit from rchen14b I did not have issues with ports getting stuck with no traffic.

Sounds like a good idea. When @tesf23 first mentioned it, I thought it would be worthwhile to add, but then @danpawlik and @glassdoor seemed to say the Realtek firmware patch addressed it. And then no one mentioned anything for a while, so I thought the issue was fixed.

At the very least this doesn't seem to hurt anything, just a little more thorough initialization upon plug-in, so shouldn't cause any weird regressions.

I don't go around plugging/unplugging so I don't notice these types of issues.

Another issue I’m seeing on my unit, no matter the build (lumos/minimal), is some instability in the wireless function.
I have 2.4G on channel 11 width 20Mhz, with sae-mixed in one SSID, working fine for all clients.
I have another SSID for 5G (channel 149 / 80Mhz, sae-mixed) and 6G (channel 93 / 160Mhz, sae) combined.
With the 5G/6G SSID and specifically 5G clients I’m seeing some weird instability or non-functioning internet depending on the number of clients connected.
Anyone experiencing something similar?

EDIT:
I upgraded to latest lumos with commit 2ea81b5 mentioned before.
My 10G port is still not functioning after reboot unless I jumpstart it by first plugging the yellow LAN ports.

This is a known issue. The current workaround is to reboot your device continuously until they work. They will stay working until you reboot. It only affects some devices.