Adding OpenWrt support for Xiaomi AX3600 (Part 1)

problem is that now it will keep panics ahaha
i advice failsafe and remove the caldata from overlay (by using mount_root)

that is a board.d file that is executed on first boot i think

Anyway ls with some awk can be used as an equivalent for stat

I dont understand the logic in dd if=${mtdblock} of=${apdk}/wifi1.caldata bs=1 count=2116 skip=208896

And then its not used at all?

well if it's not used in ath11k then no one loads it... strange...

I think that ath11k panics as caldata extraction with bs=1 takes a really long time.
And it wont work anyway as we are checking board-2.bin which is much larger then per board bdwlan.bin it usually checks.
I dont understand the logic on dependending on board data size?

Anyway, I think that for now the default 131072 count will be good for just getting it working.
I suspect that we are gonna need to be pulling bdwlan.bin and stuff like that from each board

You definitely need to pull the IPQ8074/bdwlan.b292 from stock, anything else for me would just die. Also some of the ath11k fw versions would stall the entire SoC

I think ath10k needed board specific files for bdwlan

We really need to undestand what is device specific, what is board specific and what is just general firmware... (love this firmware blob madness)

I think that's basically the same for ath11k bdwlan == board

1 Like

Actually board-2.bin works for me, its performance is probably bad but it works.

2 Likes

Woow that's a massive improvement over what I had. Hope ath11k works as expected :smiley:

Nice news guys, managed to get PCI-E and QCA9889 radio working.
That weird calibration file being extracted in the script was actually calibration for QCA9889 radio.
Still need to check if the BDF is a custom one or upstream.

I have pushed the changes to my branch so you can test it out, needed to get ath10k-ct compiled at all.

8 Likes

why ath10k ? the third wifi is ath10k ?

Definitely is the QCA9889 a ath10k variant which does support 1x1 2.4 GHz (802.11n) and/or 5 GHz (802.11ac) band.
But i think it's only 2.4 capable because of the used amplifier.

1 Like

Nice, are you able to post a dmesg with the pcie starting up ? (Id really like to see what the issue was on 5.4)

Yeah its just for 1x1 2.4ghz on this device for the AIoT stock rom functionality.

No idea what it could be used for on OpenWRT but an extra radio is always nice

Sure, here you go:

Jumping to AARCH64 kernel via monitor
[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[    0.000000] Linux version 5.9.3 (robimarko@localhost.localdomain) (aarch64-openwrt-linux-musl-gcc (OpenWrt GCC 8.4.0 r14835-fb81e4bfd2) 8.4.0, GNU ld (GNU Binutils) 2.34) #0 SMP Wed Nov 4 14:03:04 2020
[    0.000000] Machine model: Xiaomi Mi AIoT Router AX3600
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000000040000000-0x000000005fffffff]
[    0.000000]   DMA32    empty
[    0.000000]   Normal   empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000040000000-0x000000004aafffff]
[    0.000000]   node   0: [mem 0x000000004ac00000-0x000000004affffff]
[    0.000000]   node   0: [mem 0x0000000050f00000-0x000000005fffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000040000000-0x000000005fffffff]
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: PSCIv1.0 detected in firmware.
[    0.000000] psci: Using standard PSCI v0.2 function IDs
[    0.000000] psci: MIGRATE_INFO_TYPE not supported.
[    0.000000] psci: SMC Calling Convention v1.0
[    0.000000] psci: OSI mode supported.
[    0.000000] percpu: Embedded 19 pages/cpu s38872 r8192 d30760 u77824
[    0.000000] Detected VIPT I-cache on CPU0
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 104448
[    0.000000] Kernel command line:  swiotlb=1
[    0.000000] Dentry cache hash table entries: 65536 (order: 7, 524288 bytes, linear)
[    0.000000] Inode-cache hash table entries: 32768 (order: 6, 262144 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] Memory: 390280K/425984K available (6014K kernel code, 394K rwdata, 1644K rodata, 18560K init, 260K bss, 35704K reserved, 0K cma-reserved)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] rcu: Hierarchical RCU implementation.
[    0.000000] rcu:     CONFIG_RCU_FANOUT set to non-default value of 32.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[    0.000000] random: get_random_bytes called from start_kernel+0x338/0x538 with crng_init=0
[    0.000000] arch_timer: cp15 and mmio timer(s) running at 19.20MHz (virt/virt).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x46d987e47, max_idle_ns: 440795202767 ns
[    0.000005] sched_clock: 56 bits at 19MHz, resolution 52ns, wraps every 4398046511078ns
[    0.000063] Calibrating delay loop (skipped), value calculated using timer frequency.. 38.40 BogoMIPS (lpj=76800)
[    0.000074] pid_max: default: 32768 minimum: 301
[    0.000196] Mount-cache hash table entries: 1024 (order: 1, 8192 bytes, linear)
[    0.000208] Mountpoint-cache hash table entries: 1024 (order: 1, 8192 bytes, linear)
[    0.001544] rcu: Hierarchical SRCU implementation.
[    0.001673] dyndbg: Ignore empty _ddebug table in a CONFIG_DYNAMIC_DEBUG_CORE build
[    0.001968] smp: Bringing up secondary CPUs ...
[    0.002502] Detected VIPT I-cache on CPU1
[    0.002558] CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
[    0.003107] Detected VIPT I-cache on CPU2
[    0.003143] CPU2: Booted secondary processor 0x0000000002 [0x410fd034]
[    0.003664] Detected VIPT I-cache on CPU3
[    0.003698] CPU3: Booted secondary processor 0x0000000003 [0x410fd034]
[    0.003759] smp: Brought up 1 node, 4 CPUs
[    0.003780] SMP: Total of 4 processors activated.
[    0.003787] CPU features: detected: 32-bit EL0 Support
[    0.003793] CPU features: detected: CRC32 instructions
[    0.003879] CPU features: emulated: Privileged Access Never (PAN) using TTBR0_EL1 switching
[    0.003887] CPU: All CPU(s) started at EL1
[    0.003907] alternatives: patching kernel code
[    0.008045] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.008068] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
[    0.008239] pinctrl core: initialized pinctrl subsystem
[    0.009573] NET: Registered protocol family 16
[    0.009900] DMA: preallocated 128 KiB GFP_KERNEL pool for atomic allocations
[    0.009941] DMA: preallocated 128 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
[    0.009975] DMA: preallocated 128 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[    0.010529] thermal_sys: Registered thermal governor 'step_wise'
[    0.010859] NET: Registered protocol family 42
[    0.010993] ASID allocator initialised with 65536 entries
[    0.064590] pps_core: LinuxPPS API ver. 1 registered
[    0.064607] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.064638] PTP clock support registered
[    0.064919] qcom_scm: convention: smc arm 64
[    0.065410] workqueue: max_active 576 requested for napi_workq is out of range, clamping between 1 and 512
[    0.066319] clocksource: Switched to clocksource arch_sys_counter
[    0.067217] NET: Registered protocol family 2
[    0.067639] tcp_listen_portaddr_hash hash table entries: 256 (order: 0, 4096 bytes, linear)
[    0.067660] TCP established hash table entries: 4096 (order: 3, 32768 bytes, linear)
[    0.067709] TCP bind hash table entries: 4096 (order: 4, 65536 bytes, linear)
[    0.067786] TCP: Hash tables configured (established 4096 bind 4096)
[    0.067879] UDP hash table entries: 256 (order: 1, 8192 bytes, linear)
[    0.067904] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, linear)
[    0.068088] NET: Registered protocol family 1
[    0.068119] PCI: CLS 0 bytes, default 64
[    0.138913] workingset: timestamp_bits=46 max_order=17 bucket_order=0
[    0.142819] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.142830] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    0.145199] qcom-qmp-phy 84000.phy: Registered Qcom-QMP phy
[    0.146427] qcom-pcie 20000000.pci: host bridge /soc/pci@20000000 ranges:
[    0.146472] qcom-pcie 20000000.pci:       IO 0x0020200000..0x00202fffff -> 0x0020200000
[    0.146496] qcom-pcie 20000000.pci:      MEM 0x0020220000..0x002fffffff -> 0x0020220000
[    0.362313] qcom-pcie 20000000.pci: Link up
[    0.362451] qcom-pcie 20000000.pci: PCI host bridge to bus 0000:00
[    0.362468] pci_bus 0000:00: root bus resource [bus 00-ff]
[    0.362480] pci_bus 0000:00: root bus resource [io  0x0000-0xfffff] (bus address [0x20200000-0x202fffff])
[    0.362490] pci_bus 0000:00: root bus resource [mem 0x20220000-0x2fffffff]
[    0.362533] pci 0000:00:00.0: [17cb:1002] type 01 class 0x060400
[    0.362556] pci 0000:00:00.0: reg 0x10: [mem 0x00000000-0x00000fff]
[    0.362632] pci 0000:00:00.0: PME# supported from D0 D3hot D3cold
[    0.364344] pci 0000:01:00.0: [168c:0050] type 00 class 0x028000
[    0.364512] pci 0000:01:00.0: reg 0x10: [mem 0x00000000-0x001fffff 64bit]
[    0.364782] pci 0000:01:00.0: reg 0x30: [mem 0x00000000-0x0000ffff pref]
[    0.365321] pci 0000:01:00.0: supports D1
[    0.365330] pci 0000:01:00.0: PME# supported from D0 D1 D3hot
[    0.366949] pci 0000:00:00.0: BAR 8: assigned [mem 0x20300000-0x205fffff]
[    0.366963] pci 0000:00:00.0: BAR 9: assigned [mem 0x20600000-0x207fffff 64bit pref]
[    0.366973] pci 0000:00:00.0: BAR 0: assigned [mem 0x20220000-0x20220fff]
[    0.366985] pci 0000:00:00.0: BAR 7: assigned [io  0x1000-0x1fff]
[    0.367000] pci 0000:01:00.0: BAR 0: assigned [mem 0x20400000-0x205fffff 64bit]
[    0.367085] pci 0000:01:00.0: BAR 6: assigned [mem 0x20300000-0x2030ffff pref]
[    0.367095] pci 0000:00:00.0: PCI bridge to [bus 01-ff]
[    0.367105] pci 0000:00:00.0:   bridge window [io  0x1000-0x1fff]
[    0.367115] pci 0000:00:00.0:   bridge window [mem 0x20300000-0x205fffff]
[    0.367126] pci 0000:00:00.0:   bridge window [mem 0x20600000-0x207fffff 64bit pref]
[    0.368983] pcieport 0000:00:00.0: PME: Signaling with IRQ 71
[    0.369892] bam-dma-engine 704000.dma: num-channels unspecified in dt
[    0.369904] bam-dma-engine 704000.dma: num-ees unspecified in dt
[    0.374687] Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled
[    0.375309] msm_serial 78b1000.serial: msm_serial: detected port #1
[    0.375345] msm_serial 78b1000.serial: uartclk = 19200000
[    0.375394] 78b1000.serial: ttyMSM1 at MMIO 0x78b1000 (irq = 12, base_baud = 1200000) is a MSM
[    0.375855] msm_serial 78b3000.serial: msm_serial: detected port #0
[    0.375887] msm_serial 78b3000.serial: uartclk = 3686400
[    0.375930] 78b3000.serial: ttyMSM0 at MMIO 0x78b3000 (irq = 13, base_baud = 230400) is a MSM
[    0.375950] msm_serial: console setup on port #0
[    1.135446] printk: console [ttyMSM0] enabled
[    1.140514] msm_serial: driver initialized
[    1.148727] loop: module loaded
[    1.149995] nand: device found, Manufacturer ID: 0xef, Chip ID: 0xaa
[    1.151422] nand: Winbond W29N02GZ
[    1.158009] nand: 256 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64
[    1.167501] 16 fixed-partitions partitions found on MTD device qcom_nand.0
[    1.168765] Creating 16 MTD partitions on "qcom_nand.0":
[    1.175647] 0x000000000000-0x000000100000 : "0:SBL1"
[    1.182825] 0x000000100000-0x000000200000 : "0:MIBIB"
[    1.187611] 0x000000200000-0x000000500000 : "0:QSEE"
[    1.194041] 0x000000500000-0x000000580000 : "0:DEVCFG"
[    1.197180] 0x000000580000-0x000000600000 : "0:RPM"
[    1.202137] 0x000000600000-0x000000680000 : "0:CDT"
[    1.206931] 0x000000680000-0x000000700000 : "0:APPSBLENV"
[    1.211762] 0x000000700000-0x000000800000 : "0:APPSBL"
[    1.217727] 0x000000800000-0x000000880000 : "0:ART"
[    1.222414] 0x000000880000-0x000000900000 : "bdata"
[    1.227135] 0x000000900000-0x000000980000 : "crash"
[    1.231998] 0x000000980000-0x000000a00000 : "crash_syslog"
[    1.236871] 0x000000a00000-0x000002dc0000 : "rootfs"
[    1.245537] random: fast init done
[    1.269848] mtd: device 12 (rootfs) set to be root filesystem
[    1.270131] mtdsplit: no squashfs found in "rootfs"
[    1.274604] 0x000002dc0000-0x000005180000 : "rootfs_1"
[    1.306878] 0x000005180000-0x000007040000 : "overlay"
[    1.330824] 0x000007040000-0x0000070c0000 : "rsvd0"
[    1.333316] libphy: Fixed MDIO Bus: probed
[    1.334531] i2c /dev entries driver
[    1.339562] sdhci: Secure Digital Host Controller Interface driver
[    1.342053] sdhci: Copyright(c) Pierre Ossman
[    1.348317] sdhci-pltfm: SDHCI platform and OF driver helper
[    1.355458] remoteproc remoteproc0: cd00000.q6v5_wcss is available
[    1.359745] NET: Registered protocol family 10
[    1.365077] remoteproc remoteproc0: powering up cd00000.q6v5_wcss
[    1.365258] Segment Routing with IPv6
[    1.368913] remoteproc remoteproc0: Booting fw image IPQ8074/q6_fw.mdt, size 668
[    1.375125] NET: Registered protocol family 17
[    1.386481] 8021q: 802.1Q VLAN Support v1.8
[    1.405807] ------------[ cut here ]------------
[    1.405841] gcc_usb1_master_clk status stuck at 'on'
[    1.405881] WARNING: CPU: 3 PID: 1 at clk_branch_toggle+0x138/0x148
[    1.414443] Modules linked in:
[    1.420430] CPU: 3 PID: 1 Comm: swapper/0 Not tainted 5.9.3 #0
[    1.423555] Hardware name: Xiaomi Mi AIoT Router AX3600 (DT)
[    1.429378] pstate: 60400085 (nZCv daIf +PAN -UAO BTYPE=--)
[    1.435187] pc : clk_branch_toggle+0x138/0x148
[    1.440481] lr : clk_branch_toggle+0x138/0x148
[    1.444992] sp : ffffffc011a8bc80
[    1.449415] x29: ffffffc011a8bc80 x28: 0000000000000000 
[    1.452806] x27: ffffffc0107e1078 x26: ffffffc010790414 
[    1.458188] x25: ffffffc0107e5ce0 x24: ffffffc0107167c0 
[    1.463484] x23: 0000000000000000 x22: ffffffc010317600 
[    1.468779] x21: ffffffc0119df158 x20: 0000000000000000 
[    1.474074] x19: 0000000000000000 x18: 000000000000000e 
[    1.479368] x17: 0000000000000001 x16: 0000000000000019 
[    1.484663] x15: 0000000000000033 x14: ffffffc011a1aad2 
[    1.489959] x13: 0000000000000000 x12: ffffffc011a1a000 
[    1.495254] x11: ffffffc0119c6000 x10: 0000000000000010 
[    1.500549] x9 : ffffffc011a8bc80 x8 : 6b63757473207375 
[    1.505845] x7 : 74617473206b6c63 x6 : ffffffc011a1a278 
[    1.511139] x5 : 00ffffffffffffff x4 : 0000000000000000 
[    1.516435] x3 : 0000000000000000 x2 : 00000000ffffffff 
[    1.521730] x1 : ffffffc00ddff000 x0 : 0000000000000028 
[    1.527025] Call trace:
[    1.532316]  clk_branch_toggle+0x138/0x148
[    1.534490]  clk_branch2_disable+0x1c/0x28
[    1.538658]  clk_disable_unused_subtree+0xb0/0xec
[    1.542737]  clk_disable_unused_subtree+0x40/0xec
[    1.547512]  clk_disable_unused_subtree+0x40/0xec
[    1.552200]  clk_disable_unused_subtree+0x40/0xec
[    1.556887]  clk_disable_unused_subtree+0x40/0xec
[    1.561573]  clk_disable_unused+0x5c/0xe4
[    1.566261]  do_one_initcall+0x74/0x1cc
[    1.570252]  kernel_init_freeable+0x1f8/0x268
[    1.573900]  kernel_init+0x14/0x114
[    1.578412]  ret_from_fork+0x10/0x30
[    1.581710] ---[ end trace e915faa3e4c5e854 ]---
[    1.585919] ------------[ cut here ]------------
[    1.590131] gcc_usb0_master_clk status stuck at 'on'
[    1.590157] WARNING: CPU: 3 PID: 1 at clk_branch_toggle+0x138/0x148
[    1.599682] Modules linked in:
[    1.605669] CPU: 3 PID: 1 Comm: swapper/0 Tainted: G        W         5.9.3 #0
[    1.608799] Hardware name: Xiaomi Mi AIoT Router AX3600 (DT)
[    1.616005] pstate: 60400085 (nZCv daIf +PAN -UAO BTYPE=--)
[    1.621819] pc : clk_branch_toggle+0x138/0x148
[    1.627113] lr : clk_branch_toggle+0x138/0x148
[    1.631621] sp : ffffffc011a8bc80
[    1.636045] x29: ffffffc011a8bc80 x28: 0000000000000000 
[    1.639435] x27: ffffffc0107e1078 x26: ffffffc010790414 
[    1.644818] x25: ffffffc0107e5ce0 x24: ffffffc0107168d8 
[    1.650111] x23: 0000000000000000 x22: ffffffc010317600 
[    1.655408] x21: ffffffc0119df4d8 x20: 0000000000000000 
[    1.660702] x19: 0000000000000000 x18: 000000000000000e 
[    1.665998] x17: 0000000000000001 x16: 0000000000000019 
[    1.671292] x15: 0000000000000033 x14: ffffffc011a1aad2 
[    1.676587] x13: 0000000000000000 x12: ffffffc011a1a000 
[    1.681884] x11: ffffffc0119c6000 x10: 0000000000000010 
[    1.687179] x9 : ffffffc011a8bc80 x8 : 6b63757473207375 
[    1.692474] x7 : 74617473206b6c63 x6 : ffffffc011a1a278 
[    1.697769] x5 : 00ffffffffffffff x4 : 0000000000000000 
[    1.703063] x3 : 0000000000000000 x2 : 00000000ffffffff 
[    1.708359] x1 : ffffffc00ddff000 x0 : 0000000000000028 
[    1.713653] Call trace:
[    1.718946]  clk_branch_toggle+0x138/0x148
[    1.721119]  clk_branch2_disable+0x1c/0x28
[    1.725286]  clk_disable_unused_subtree+0xb0/0xec
[    1.729365]  clk_disable_unused_subtree+0x40/0xec
[    1.734141]  clk_disable_unused_subtree+0x40/0xec
[    1.738828]  clk_disable_unused_subtree+0x40/0xec
[    1.743515]  clk_disable_unused_subtree+0x40/0xec
[    1.748203]  clk_disable_unused+0x5c/0xe4
[    1.752889]  do_one_initcall+0x74/0x1cc
[    1.756882]  kernel_init_freeable+0x1f8/0x268
[    1.760529]  kernel_init+0x14/0x114
[    1.765042]  ret_from_fork+0x10/0x30
[    1.768339] ---[ end trace e915faa3e4c5e8[    1.788406] Freeing unused kernel memory: 18560K
[    1.810517] Run /init as init process
[    1.817725] init: Console is alive
[    1.817866] init: - watchdog -
[    1.825534] kmodloader: loading kernel modules from /etc/modules-boot.d/*
[    1.827420] genirq: irq_chip msmgpio did not update eff. affinity mask of irq 77
[    1.833560] kmodloader: done loading kernel modules from /etc/modules-boot.d/*
[    1.840679] init: - preinit -
[    1.932945] random: jshn: uninitialized urandom read (4 bytes read)
[    1.940814] random: jshn: uninitialized urandom read (4 bytes read)
[    1.952388] random: procd: uninitialized urandom read (4 bytes read)
Press the [f] key and hit [enter] to enter failsafe mode
Press the [1], [2], [3] or [4] key and hit [enter] to select the debug level
[    6.002801] procd: - early -
[    6.002872] procd: - watchdog -
[    6.527266] procd: - watchdog -
[    6.527471] procd: - ubus -
[    6.532541] random: ubusd: uninitialized urandom read (4 bytes read)
[    6.579141] random: ubusd: uninitialized urandom read (4 bytes read)
[    6.579323] random: ubusd: uninitialized urandom read (4 bytes read)
[    6.585038] procd: - init -
Please press Enter to activate this console.
[    6.715175] kmodloader: loading kernel modules from /etc/modules.d/*
[    6.722159] Loading modules backported from Linux version v5.8-0-gbcf876870b95
[    6.722192] Backport generated by backports.git v5.8-1-0-g79400d9e
[    6.726019] urngd: v1.0.2 started.
[    6.743058] xt_time: kernel timezone is -0000
[    6.770522] PPP generic driver version 2.4.2
[    6.771478] NET: Registered protocol family 24
[    6.771991] random: crng init done
[    6.778129] random: 4 urandom warning(s) missed due to ratelimiting
[    6.795356] ath10k 5.8 driver, optimized for CT firmware, probing pci device: 0x50.
[    6.795938] ath10k_pci 0000:01:00.0: enabling device (0000 -> 0002)
[    6.802333] ath10k_pci 0000:01:00.0: pci irq msi oper_irq_mode 2 irq_mode 0 reset_mode 0
[    7.417363] ath10k_pci 0000:01:00.0: qca9887 hw1.0 target 0x4100016d chip_id 0x004000ff sub 0000:0000
[    7.417409] ath10k_pci 0000:01:00.0: kconfig debug 0 debugfs 1 tracing 0 dfs 1 testmode 0
[    7.425832] ath10k_pci 0000:01:00.0: firmware ver 10.1-ct-87-__fW-022-538f0906 api 2 features wmi-10.x,has-wmi-mgmt-tx,mfp,txstatus-noack,wmi-10.x-CT,ratemask-CT,txrate-CT,get-temp-CT,tx-rc-CT,cust-stats-CT,retry-gt2-CT,txrate2-CT,beacon-cb-CT,wmi-block-ack-CT crc32 e27449db
[    7.490864] ath10k_pci 0000:01:00.0: board_file api 1 bmi_id N/A crc32 546cca0d
[    8.413461] ath10k_pci 0000:01:00.0: 10.1 wmi init: vdevs: 16  peers: 127  tid: 256
[    8.420984] ath10k_pci 0000:01:00.0: wmi print 'P 128 V 8 T 410'
[    8.421164] ath10k_pci 0000:01:00.0: wmi print 'msdu-desc: 1424  sw-crypt: 0 ct-sta: 0'
[    8.426381] ath10k_pci 0000:01:00.0: wmi print 'alloc rem: 21576 iram: 11700'
[    8.477336] ath10k_pci 0000:01:00.0: htt-ver 2.1 wmi-op 2 htt-op 2 cal file max-sta 128 raw 0 hwcrypto 1
[    8.477720] ath10k_pci 0000:01:00.0: NOTE:  Firmware DBGLOG output disabled in debug_mask: 0x10000000
[    8.588414] ath11k c000000.wifi: qmi ignore invalid mem req type 3
[    8.589074] ath11k c000000.wifi: qmi target: chip_id: 0x0, chip_family: 0x0, board_id: 0xff, soc_id: 0xffffffff
[    8.593539] ath11k c000000.wifi: qmi fw_version: 0x240504a5 fw_build_timestamp: 2020-08-10 10:24 fw_build_id: QC_IMAGE_VERSION_STRING=WLAN.HK.2.4.0.1.r1-00019-QCAHKSWPL_SILICONZ-1
[    8.605714] kmodloader: done loading kernel modules from /etc/modules.d/*
[    8.606147] ath11k c000000.wifi: Downloading BDF: IPQ8074/board-2.bin, size: 1311380
[    8.627357] ath11k c000000.wifi: Direct firmware load for IPQ8074/caldata.bin failed with error -2
[    8.634261] ath11k c000000.wifi: Falling back to sysfs fallback for: IPQ8074/caldata.bin
[    8.729161] ath11k c000000.wifi: qmi downloading BDF: IPQ8074/caldata.bin, size: 131072
[    8.731551] ath11k c000000.wifi: qmi BDF downloaded
[    8.761189] ath11k c000000.wifi: Unknown eventid: 0x4022
[    8.991440] ath11k c000000.wifi: Unknown eventid: 0xb00b
[    8.992835] ath11k c000000.wifi: Unknown eventid: 0x4021

@Ansuel QCA9889 is an ath10k supported PCI card.
iw phy lists 5G band also, but I will try pulling the board file from stock FW.

Also as a side note.

Looks like they updated board-2.bin for 8074 not that long ago :smiley: may be why that works now :confused:

Hm, AX3600 is board ID 292.
Unfortunately, there is no bdencoder tool like in ath10k to check the upstream board-2.bin.

Took a look in hex and there is no board-id 292 inside the board-2.bin.
So I presume that we will need to pull that in locally.

How does ath11k even know which one to search for?
Stock FW defines it in DTS and then uses that one to match the board file

I think it just looks for board-2.bin (v2) and then falls back to bdwlan.bin (v1) (its not something that can be defined in DTS yet) there was talk about this on the ath11k mainling list a while back

see

and

I know about that, but why is it not failing?
There is no 292 board id in the board-2.bin, board id most likely being identified from the caldata like in ath10k

Maybe they didn't document all of the boards added ? (the first couple of versions of the board-2.bin had no list of what it supported)