Wireless fails on snapshot r12900 (kernel 5.4) on C2600 (ipq806x)

Hi.
So I flashed the newest snapshot (r12900) with kernel 5.4 on a C2600 (ipx806x) and found wireless is failing. "Wireless" is missing in LuCI.
Previous snapshot (r12871) with kernel 4.19 did not have this issue.
Could it be related to the CT firmware?
In logread I find:

Failed to find firmware-N.bin (N between 2 and 6) from ath10k/QCA99X0/hw2.0: -12
could not fetch firmware files (-12)
could not probe fw (-12)

Fri Apr 10 11:26:35 2020 kern.info kernel: [    0.000000] Booting Linux on physical CPU 0x0
Fri Apr 10 11:26:35 2020 kern.notice kernel: [    0.000000] Linux version 5.4.31 (builder@buildhost) (gcc version 8.4.0 (OpenWrt GCC 8.4.0 r12900-1b973b54ea)) 
...
...
Fri Apr 10 11:26:35 2020 user.info kernel: [   16.769191] kmodloader: loading kernel modules from /etc/modules.d/*
Fri Apr 10 11:26:35 2020 kern.info kernel: [   16.778874] Loading modules backported from Linux version v5.4.27-0-g585e0cc08069
Fri Apr 10 11:26:35 2020 kern.info kernel: [   16.778899] Backport generated by backports.git v5.4.27-1-0-gf6e8852f
Fri Apr 10 11:26:35 2020 kern.info kernel: [   16.794231] xt_time: kernel timezone is -0000
Fri Apr 10 11:26:35 2020 kern.info kernel: [   16.823939] PPP generic driver version 2.4.2
Fri Apr 10 11:26:35 2020 kern.info kernel: [   16.824859] NET: Registered protocol family 24
Fri Apr 10 11:26:35 2020 kern.debug kernel: [   16.844506] ath10k_pci 0000:01:00.0: assign IRQ: got 34
Fri Apr 10 11:26:35 2020 kern.info kernel: [   16.844528] ath10k 5.1 driver, optimized for CT firmware, probing pci device: 0x40.
Fri Apr 10 11:26:35 2020 kern.info kernel: [   16.845845] ath10k_pci 0000:01:00.0: enabling device (0140 -> 0142)
Fri Apr 10 11:26:35 2020 kern.debug kernel: [   16.851124] ath10k_pci 0000:01:00.0: enabling bus mastering
Fri Apr 10 11:26:35 2020 kern.info kernel: [   16.851656] ath10k_pci 0000:01:00.0: pci irq msi oper_irq_mode 2 irq_mode 0 reset_mode 0
Fri Apr 10 11:26:35 2020 kern.err kernel: [   17.832313] ath10k_pci 0000:01:00.0: Failed to find firmware-N.bin (N between 2 and 6) from ath10k/QCA99X0/hw2.0: -12
Fri Apr 10 11:26:35 2020 kern.err kernel: [   17.832372] ath10k_pci 0000:01:00.0: could not fetch firmware files (-12)
Fri Apr 10 11:26:35 2020 kern.err kernel: [   17.842043] ath10k_pci 0000:01:00.0: could not probe fw (-12)
Fri Apr 10 11:26:35 2020 kern.debug kernel: [   17.848993] ath10k_pci 0001:01:00.0: assign IRQ: got 36
Fri Apr 10 11:26:35 2020 kern.info kernel: [   17.849020] ath10k 5.1 driver, optimized for CT firmware, probing pci device: 0x40.
Fri Apr 10 11:26:35 2020 kern.info kernel: [   17.855332] ath10k_pci 0001:01:00.0: enabling device (0140 -> 0142)
Fri Apr 10 11:26:35 2020 kern.debug kernel: [   17.862041] ath10k_pci 0001:01:00.0: enabling bus mastering
Fri Apr 10 11:26:35 2020 kern.info kernel: [   17.862673] ath10k_pci 0001:01:00.0: pci irq msi oper_irq_mode 2 irq_mode 0 reset_mode 0
Fri Apr 10 11:26:35 2020 kern.err kernel: [   18.721820] ath10k_pci 0001:01:00.0: Failed to find firmware-N.bin (N between 2 and 6) from ath10k/QCA99X0/hw2.0: -12
Fri Apr 10 11:26:35 2020 kern.err kernel: [   18.721852] ath10k_pci 0001:01:00.0: could not fetch firmware files (-12)
Fri Apr 10 11:26:35 2020 kern.err kernel: [   18.731483] ath10k_pci 0001:01:00.0: could not probe fw (-12)
Fri Apr 10 11:26:35 2020 user.info kernel: [   18.740508] kmodloader: done loading kernel modules from /etc/modules.d/*

OK after flashing the ath10k firmware is missing. I can add it manually and then WiFi is working.

opkg install ath10k-firmware-qca99x0-ct

I don't know how to look into why the firmware is missing. Hope someone else can
:wink:

That shouldn't be necessary:

Thanks. I thought so but something is still not right.
Installed the factory.bin via tftp recovery and the ath10k firmware is also missing

I also noticed the size of the sysupgrade image has shrunk from
7.078.164 bytes in r12871 (4.19) to
6.684.948 bytes in r12900 (5.4).

Build log for r12871 (build 352) show 6 occurences of string "ath10k-firmware-qca99x0-ct"
https://buildbot.openwrt.org/master/images/builders/ipq806x%2Fgeneric/builds/352/steps/images/logs/stdio

Build log for r12900 (build 353) show none.
https://buildbot.openwrt.org/master/images/builders/ipq806x%2Fgeneric/builds/353/steps/images/logs/stdio

Pure guess but could be related to config changes a fews days ago, and the broken "build multiple devices" functionality. (Related to handling default packages)

A fix has been proposed, but not yet implemented.

Culprit commit, with discussion at the end:
https://github.com/openwrt/openwrt/commit/dcf3e63a35d05e7e5103819c0f17195bfafe9baa

Proposed fix:
https://www.mail-archive.com/openwrt-devel@lists.openwrt.org/msg52071.html
http://lists.infradead.org/pipermail/openwrt-devel/2020-April/022752.html

That bug could affect all builds targeting multiple devices (TARGET_MULTI_PROFILE). Wifi firmware file in ipq806x varies by the device, so this bug might cause the firmware file to get left out in the buildbot build.

EDIT:
applying that patch fixed my own ath79 multi-device build for WNDR3700/3700v2/3800

2 Likes

Fix has just been commited. Will wait for snapshot builders. Then test and report back.
Thanks!

Edit: All is good again in this regard in r12911 (build 355) :smiley:

Well, in the end the whole kconfig change was reverted for now.
It proved to cause too many strange build failures in the packages buildbot.

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.