I need a lot of help with my board QCA9531+qca9887

Hello,

I'm trying to update one of my boards equipped with a QCA9531 and QCA9887. It's currently running OpenWRT version 12, which was preinstalled on the board. I managed to upgrade it to version 18 using the ap147-010-squashfs-sysupgrade.bin image. However, since then, the 5 GHz radio is no longer detected β€” even after installing the ath10k and ath10k-firmware-qca9887 packages. I've also tried other firmware variants (CT, qca988x, etc.) but nothing worked.

I found this device on the OpenWRT wiki (QXWLAN E600GAC: https://openwrt.org/toh/qxwlan/e600gac), which uses the same chipsets as mine. Unfortunately, when I tried to force the upgrade through SSH based on that info, I ended up bricking the board. Thankfully, I was able to recover it via TFTP, but it's still stuck on version 18 with the same 5 GHz issue.

I'm not necessarily looking for the most recent version β€” although if there's one that works, I'd definitely consider it. Mostly, I'm looking for help understanding what's going wrong, and ideally learning how to upgrade these boards myself without breaking things.

For reference, I still have another identical board running version 12, where the 5 GHz radio works fine.

Any help or guidance would be greatly appreciated!

Thanks in advance.

root@OpenWrt:/# dmesg | grep ath
[   10.054113] ath10k_pci 0000:00:00.0: pci irq legacy oper_irq_mode 1 irq_mode 0 reset_mode 0
[   10.327649] ath10k_pci 0000:00:00.0: Direct firmware load for ath10k/pre-cal-pci-0000:00:00.0.bin failed with error -2
[   10.338759] ath10k_pci 0000:00:00.0: Falling back to user helper
[   10.517923] firmware ath10k!pre-cal-pci-0000:00:00.0.bin: firmware_loading_store: map pages failed
[   10.527498] ath10k_pci 0000:00:00.0: Direct firmware load for ath10k/cal-pci-0000:00:00.0.bin failed with error -2
[   10.538218] ath10k_pci 0000:00:00.0: Falling back to user helper
[   10.685910] firmware ath10k!cal-pci-0000:00:00.0.bin: firmware_loading_store: map pages failed
[   10.695534] ath10k_pci 0000:00:00.0: Direct firmware load for ath10k/QCA9887/hw1.0/firmware-6.bin failed with error -2
[   10.706631] ath10k_pci 0000:00:00.0: Falling back to user helper
[   10.854874] firmware ath10k!QCA9887!hw1.0!firmware-6.bin: firmware_loading_store: map pages failed
[   11.140084] ath10k_pci 0000:00:00.0: qca9887 hw1.0 target 0x4100016d chip_id 0x004000ff sub 0000:0000
[   11.149667] ath10k_pci 0000:00:00.0: kconfig debug 0 debugfs 1 tracing 0 dfs 1 testmode 1
[   11.163590] ath10k_pci 0000:00:00.0: firmware ver 10.2.4-1.0-00033 api 5 features no-p2p,ignore-otp,skip-clock-init,mfp,allows-mesh-bcast crc32 c232a0c3
[   11.210489] ath10k_pci 0000:00:00.0: Direct firmware load for ath10k/QCA9887/hw1.0/board-2.bin failed with error -2
[   11.221309] ath10k_pci 0000:00:00.0: Falling back to user helper
[   11.298598] firmware ath10k!QCA9887!hw1.0!board-2.bin: firmware_loading_store: map pages failed
[   11.308793] ath10k_pci 0000:00:00.0: board_file api 1 bmi_id N/A crc32 546cca0d
[   11.323822] ath10k_pci 0000:00:00.0: failed to read device EEPROM at 0000
[   11.330844] ath10k_pci 0000:00:00.0: failed to read calibration data from EEPROM: -22
[   12.441698] ath10k_pci 0000:00:00.0: htt-ver 2.1 wmi-op 5 htt-op 2 cal otp max-sta 128 raw 0 hwcrypto 1
[   12.584934] ath: EEPROM regdomain: 0x0
[   12.584943] ath: EEPROM indicates default country code should be used
[   12.584946] ath: doing EEPROM country->regdmn map search
[   12.584957] ath: country maps to regdmn code: 0x3a
[   12.584962] ath: Country alpha2 being used: US
[   12.584965] ath: Regpair used: 0x3a
[   12.649397] ath: EEPROM regdomain: 0x0
[   12.649407] ath: EEPROM indicates default country code should be used
[   12.649410] ath: doing EEPROM country->regdmn map search
[   12.649425] ath: country maps to regdmn code: 0x3a
[   12.649430] ath: Country alpha2 being used: US
[   12.649434] ath: Regpair used: 0x3a

root@OpenWrt:/# lsmod | grep ath
ath                    16832  4 ath9k,ath9k_common,ath9k_hw,ath10k_core
ath10k_core           253968  1 ath10k_pci
ath10k_pci             29968  0
ath9k                  90992  0
ath9k_common           10880  1 ath9k
ath9k_hw              331808  2 ath9k,ath9k_common
cfg80211              200592  5 ath9k,ath9k_common,ath10k_core,ath,mac80211
compat                  4704  5 ath9k,ath9k_common,ath10k_pci,mac80211,cfg80211
mac80211              393472  2 ath9k,ath10k_core

root@OpenWrt:/# dmesg | grep pci
[    0.620567] pci_bus 0000:00: root bus resource [mem 0x10000000-0x11ffffff]
[    0.627822] pci_bus 0000:00: root bus resource [io  0x0000]
[    0.633694] pci_bus 0000:00: root bus resource [??? 0x00000000 flags 0x0]
[    0.640848] pci_bus 0000:00: No busn resource found for root bus, will use [bus 00-ff]
[    0.649222] pci 0000:00:00.0: [168c:0050] type 00 class 0x028000
[    0.649264] pci 0000:00:00.0: reg 0x10: [mem 0x00000000-0x001fffff 64bit]
[    0.649317] pci 0000:00:00.0: reg 0x30: [mem 0x00000000-0x0000ffff pref]
[    0.649387] pci 0000:00:00.0: supports D1
[    0.649396] pci 0000:00:00.0: PME# supported from D0 D1 D3hot
[    0.649599] pci_bus 0000:00: busn_res: [bus 00-ff] end is updated to 00
[    0.649629] pci 0000:00:00.0: BAR 0: assigned [mem 0x10000000-0x101fffff 64bit]
[    0.657381] pci 0000:00:00.0: BAR 6: assigned [mem 0x10200000-0x1020ffff pref]
[    0.665004] pci 0000:00:00.0: using irq 40 for pin 1
[   10.054033] ath10k_pci 0000:00:00.0: pci irq legacy oper_irq_mode 1 irq_mode 0 reset_mode 0
[   10.327673] ath10k_pci 0000:00:00.0: Direct firmware load for ath10k/pre-cal-pci-0000:00:00.0.bin failed with error -2

... 
...
...
root@OpenWrt:/# find /lib/firmware -type f -exec ls -lh {} \;
-rw-r--r--    1 root     root        3.5K Nov 11  2020 /lib/firmware/regulatory.db
-rw-r--r--    1 root     root        1.0K Nov 24  2020 /lib/firmware/ath10k/QCA9887/hw1.0/board.bin
-rw-r--r--    1 root     root      230.6K Nov 24  2020 /lib/firmware/ath10k/QCA9887/hw1.0/firmware-5.bin

From your description, your development board is not running official OpenWrt but rather a vendor version from an old SDK.

You can run/post ubus call system board to verify.

It appears you are using firmware that is not from the official OpenWrt project.

When using forks/offshoots/vendor-specific builds that are "based on OpenWrt", there may be many differences compared to the official versions (hosted by OpenWrt.org). Some of these customizations may fundamentally change the way that OpenWrt works. You might need help from people with specific/specialized knowledge about the firmware you are using, so it is possible that advice you get here may not be useful.

You may find that the best options are:

  1. Install an official version of OpenWrt, if your device is supported (see https://firmware-selector.openwrt.org).
  2. Ask for help from the maintainer(s) or user community of the specific firmware that you are using.
  3. Provide the source code for the firmware so that users on this forum can understand how your firmware works (OpenWrt forum users are volunteers, so somebody might look at the code if they have time and are interested in your issue).

If you believe that this specific issue is common to generic/official OpenWrt and/or the maintainers of your build have indicated as such, please feel free to clarify.

1 Like

already done I installed the latest version of ap-147 which was available (ap147-010-squashfs-sysupgrade.bin) unfortunately the QCA9887 chip was not recognized

I'm new. I don't really know where to ask. I just know that this is the developer side, so I figured this is where I'd find people who would be more likely to help me.

I don't know how to do this. I managed to extract some things from my old card, but I don't know if they're usable or anything. I also have a ton of files given to me by the seller, I don't know if I have the right to share them or even if they'll be useful.

I know that my version 12 on the cards is a custom version; but I saw that version 18, which I installed on one of my other cards, is compatible since it's for the same card. Unfortunately, it didn't work because of the 5GHz. All I know is that there are currently several cards with my same chipset that are supported by the latest versions of OpenWRT. Which is a bit frustrating since it doesn't work on my card.

For example, the cards below have the same QCA5131 and QCA9887 as mine.

===================================================================
updated board
===================================================================

root@OpenWrt:/# ubus call system board

{
        "kernel": "4.9.243",
        "hostname": "OpenWrt",
        "system": "Qualcomm Atheros QCA9533 ver 2 rev 0",
        "model": "Atheros AP147-010 reference board",
        "board_name": "ap147-010",
        "release": {
                "distribution": "OpenWrt",
                "version": "18.06.9",
                "revision": "r8077-7cbbab7246",
                "target": "ar71xx\/generic",
                "description": "OpenWrt 18.06.9 r8077-7cbbab7246"
        }
}

root@OpenWrt:/# cat /etc/openwrt_version
r8077-7cbbab7246

root@OpenWrt:/# cat /proc/cpuinfo
system type             : Qualcomm Atheros QCA9533 ver 2 rev 0
machine                 : Atheros AP147-010 reference board
processor               : 0
cpu model               : MIPS 24Kc V7.4
BogoMIPS                : 432.53
wait instruction        : yes
microsecond timers      : yes
tlb_entries             : 16
extra interrupt vector  : yes
hardware watchpoint     : yes, count: 4, address/irw mask: [0x0ffc, 0x0ffc, 0x0ffb, 0x0ffb]
isa                     : mips1 mips2 mips32r1 mips32r2
ASEs implemented        : mips16
shadow register sets    : 1
kscratch registers      : 0
package                 : 0
core                    : 0
VCED exceptions         : not available
VCEI exceptions         : not available

root@OpenWrt:/# cat /proc/meminfo
MemTotal:         125240 kB
MemFree:          102804 kB
MemAvailable:      83332 kB
Buffers:            2224 kB
Cached:             6660 kB
SwapCached:            0 kB
Active:             6296 kB
Inactive:           3800 kB
Active(anon):       1264 kB
Inactive(anon):       28 kB
Active(file):       5032 kB
Inactive(file):     3772 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:             0 kB
SwapFree:              0 kB
Dirty:                 0 kB
Writeback:             0 kB
AnonPages:          1220 kB
Mapped:             2140 kB
Shmem:                80 kB
Slab:               5304 kB
SReclaimable:       1396 kB
SUnreclaim:         3908 kB
KernelStack:         368 kB
PageTables:          220 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:       62620 kB
Committed_AS:       3740 kB
VmallocTotal:    1048372 kB
VmallocUsed:           0 kB
VmallocChunk:          0 kB

root@OpenWrt:/# /bin/cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00040000 00010000 "u-boot"
mtd1: 00010000 00010000 "u-boot-env"
mtd2: 00e30000 00010000 "rootfs"
mtd3: 00bd0000 00010000 "rootfs_data"
mtd4: 00170000 00010000 "kernel"
mtd5: 00010000 00010000 "art"
mtd6: 00fa0000 00010000 "firmware"


===================================================================
old board
===================================================================

root@OpenWrt:/# cat /etc/openwrt_version
QCA9558.LN
root@OpenWrt:/# cat /proc/cpuinfo
cat /proc/meminfo
system type             : Qualcomm Atheros QCA9531 rev 2
machine                 : Qualcomm Atheros AP147 reference board
processor               : 0
cpu model               : MIPS 24Kc V7.4
BogoMIPS                : 432.53
wait instruction        : yes
microsecond timers      : yes
tlb_entries             : 16
extra interrupt vector  : yes
hardware watchpoint     : yes, count: 4, address/irw mask: [0x0000, 0x0ffc, 0x0ffb, 0x0ffb]
ASEs implemented        : mips16
shadow register sets    : 1
kscratch registers      : 0
core                    : 0
VCED exceptions         : not available
VCEI exceptions         : not available

root@OpenWrt:/# cat /proc/meminfo
MemTotal:         126364 kB
MemFree:           66320 kB
Buffers:            6264 kB
Cached:            19568 kB
SwapCached:            0 kB
Active:            13760 kB
Inactive:          14612 kB
Active(anon):       2912 kB
Inactive(anon):       80 kB
Active(file):      10848 kB
Inactive(file):    14532 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:             0 kB
SwapFree:              0 kB
Dirty:                 0 kB
Writeback:             0 kB
AnonPages:          2556 kB
Mapped:             3616 kB
Shmem:               452 kB
Slab:              19084 kB
SReclaimable:       1812 kB
SUnreclaim:        17272 kB
KernelStack:         464 kB
PageTables:          308 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:       63180 kB
Committed_AS:      12128 kB
VmallocTotal:    1048372 kB
VmallocUsed:        1344 kB
VmallocChunk:    1023976 kB
root@OpenWrt:/# uname -a
Linux OpenWrt 3.3.8 #4 Thu Mar 9 13:52:05 CST 2017 mips GNU/Linux
root@OpenWrt:/#

root@OpenWrt:/# /bin/cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00040000 00010000 "u-boot"
mtd1: 00010000 00010000 "u-boot-env"
mtd2: 00e30000 00010000 "rootfs"
mtd3: 005e0000 00010000 "rootfs_data"
mtd4: 00170000 00010000 "kernel"
mtd5: 00010000 00010000 "art"
mtd6: 00fa0000 00010000 "firmware"

root@OpenWrt:/# /bin/dmesg | grep -i pci
[    0.100000] registering PCI controller with io_map_base unset
[    0.520000] PCI host bridge to bus 0000:00
[    0.530000] pci_bus 0000:00: root bus resource [mem 0x10000000-0x11ffffff]
[    0.530000] pci_bus 0000:00: root bus resource [io  0x0000]
[    0.540000] pci 0000:00:00.0: [168c:0050] type 0 class 0x000280
[    0.540000] pci 0000:00:00.0: reg 10: [mem 0x00000000-0x001fffff 64bit]
[    0.540000] pci 0000:00:00.0: reg 30: [mem 0x00000000-0x0000ffff pref]
[    0.540000] pci 0000:00:00.0: supports D1
[    0.540000] pci 0000:00:00.0: PME# supported from D0 D1 D3hot
[    0.540000] pci 0000:00:00.0: BAR 0: assigned [mem 0x10000000-0x101fffff 64bit]
[    0.540000] pci 0000:00:00.0: BAR 6: assigned [mem 0x10200000-0x1020ffff pref]
[    0.550000] pci 0000:00:00.0: using irq 40 for pin 1
[    0.600000] PCI: CLS 0 bytes, default 32
[   23.340000] ath_pci: SmartAntenna-DRT-0.1 (Atheros/multi-bss)
[   23.340000] ath_pci_probe
[   23.350000] PCI device id is 0050 :0050
[   23.350000] ath_pci 0000:00:00.0: BAR 0: assigned [mem 0x10000000-0x101fffff 64bit]
[   23.360000] PCI: Enabling device 0000:00:00.0 (0000 -> 0002)
[   23.370000] ath_pci 0000:00:00.0: ath DEBUG: sc=0x86b39400
[   23.370000]  ol_ath_pci_configure : num_desired MSI set to 0
[   23.380000]  Using PCI Legacy Interrupt
[   30.220000] ath_pci_warm_reset :(sc 86b39400)
[   30.470000] ath_pci_remove
[   38.520000] ath_pci: SmartAntenna-DRT-0.1 (Atheros/multi-bss)
[   38.520000] ath_pci_probe
[   38.530000] PCI device id is 0050 :0050
[   38.530000] ath_pci 0000:00:00.0: BAR 0: assigned [mem 0x10000000-0x101fffff 64bit]
[   38.540000] ath_pci 0000:00:00.0: ath DEBUG: sc=0x852aac00
[   38.550000]  ol_ath_pci_configure : num_desired MSI set to 0
[   38.550000]  Using PCI Legacy Interrupt


It looks like support was dropped for some reason, perhaps during migration to DTS-based systems. You'll have to re-add it. For reference, you can try following this: https://github.com/openwrt/openwrt/commits/main/target/linux/ath79/dts/qca9531_glinet_gl-ar750.dts

I don't understand half of what is being said on it. :joy: But the other boards might still be good? (Qxwlan E600GAC V2) there are others too, I haven't made the whole list. But that still doesn't solve my problem. I can't even put its firmware on my board. And even if they stopped supporting version 17, 18 or 19, it's still better than the one I have as standard :sweat_smile:

Up ?
I can't get anywhere. No one to help me?

Your device is part of target ar71xx, which was dropped a few years ago when switching to ath79. For some reason I don't know, support for this device was also dropped when going from 18 to 19. As @andrewjlamarche stated, support must be re-added assuming it is still possible for such an old device. It's up to someone owning the card to do such job.

Unfortunately, I don't really have the knowledge or skills to do this. Otherwise, I wouldn't be here asking for helpπŸ˜…. Afterwards, as I said, I'm not asking for version 21. Even a working version 17 would be perfectly fine for me.

I must confess that me neither. It was a long time ago (in a galaxy far away) since I've done hardware related coding.

Can we assume you have also installed wpad-mini or wpad-basic (and dependencies) ?

If you have found the file for 18, you already know where to find 17.

https://downloads.openwrt.org/releases/17.01.7/targets/ar71xx/generic/lede-17.01.7-ar71xx-generic-ap147-010-squashfs-sysupgrade.bin

5ghz doesn't work either

If they are not installed as a base then no. I don't even know them

These are necessary to manage wifi. That being said you seem to have a lower level problem as detection fails.