that is odd ... I can connect to the three radios with no crash ...

i will try the same on the ax3600 ...

The patch doesnt change anything, quite literaly nothing in OpenWrt.
And its wrong in the end, QRTR_SMD depends on RPMSG so I cant just select it.
I am in discussion with upstream, it will most likely need to depend on QRTR_SMD instead

I selected on the kernel_menuconfig

CONFIG_RPMSG=y
CONFIG_RPMSG_CHAR=y
CONFIG_RPMSG_NS=y
CONFIG_RPMSG_QCOM_GLINK=y
CONFIG_RPMSG_QCOM_GLINK_RPM=y
CONFIG_RPMSG_QCOM_GLINK_SMEM=y
CONFIG_RPMSG_QCOM_SMD=y
CONFIG_RPMSG_VIRTIO=y

My point is that its all included, there is nothing to do in OpenWrt here

Yey! I can see you reverted back to 2.5 firmware, but neverless this is a great news!
Just a thought but maybe we should enable backport's ATH11K_DEBUG with appropriate debug flags to get more insides on why 2.6 and 2.7 fw crashes?
Might be something silly or easy to fix?

Depends on what he means by three radios, cause the ath10k PCI card is there as well.
ATH11K_DEBUG wont help you as its the remoteproc that is crashing, its already providing a coredump, thats the best it can do, but unless you have the FW source there is no way to debug it

That's very true :slight_smile: and I might be a bit bias/excited when reading the news above
Of course for me we want to see initialised:

  • ath10k pci
  • ath11k soc
  • ath11k pci

Yes I know that, however ath11k driver has some debug messages showing up only if the ATH11K_DEBUG is set
And technically we could add our own debug messages to pinpoint to a specific line of existing ath11k driver causing remoteproc crash with 2.6 and 2.7 firmware

so my bad here ... I have selected for qcn9074 to load as a module as the fit image it seems too big to bootm (I can't find an address to load...)

i get the below as of course the image is missing
mhi mhi0: Direct firmware load for ath11k/QCN9074/hw1.0/amss.bin failed with error -2

without this firmware as i said the wifi's work ...

15613104 with qcn9074 loaded vs 13784460 bytes with qcn9074 as module

any ideas on finding the loadaddr ? i've compiled the kernel for size ... took out usb etc but with qcn9074 ... can't boot

In separate i installed the qcn9074 firmware using opkg after boot ... but I can't find a way to reload the ssdk etc ... any ideas ? the qca-ssdk on /etc/init.d doesn't do anything

Just ZSTD compress the initramfs, then it can be larger injtramfs

1 Like

thank you Robi that made it ...

so

root@OpenWrt:/# dmesg|grep ath11k
[   11.939353] ath11k c000000.wifi: ipq8074 hw2.0
[   12.305228] ath11k c000000.wifi: qmi ignore invalid mem req type 3
[   12.305430] ath11k_pci 0000:01:00.0: BAR 0: assigned [mem 0x20400000-0x205fffff 64bit]
[   12.310391] ath11k c000000.wifi: chip_id 0x0 chip_family 0x0 board_id 0x294 soc_id 0xffffffff
[   12.315964] ath11k_pci 0000:01:00.0: enabling device (0000 -> 0002)
[   12.323782] ath11k c000000.wifi: fw_version 0x250a04a5 fw_build_timestamp 2021-12-20 07:09 fw_build_id QC_IMAGE_VERSION_STRING=WLAN.HK.2.5.0.1-01208-QCAHKSWPL_SILICONZ-1
[   12.332825] ath11k_pci 0000:01:00.0: MSI vectors: 16
[   12.353768] ath11k_pci 0000:01:00.0: qcn9074 hw1.0
[   12.736892] ath11k c000000.wifi: host capability request failed: 1 90
[   12.736939] ath11k c000000.wifi: failed to send qmi host cap: -22

a few errors above ...

enabled wifi no crashes

  155.519840] br-lan: port 5(wlan2) entered disabled state
[  155.524437] device wlan2 entered promiscuous mode
[  155.529709] br-lan: port 5(wlan2) entered blocking state
[  155.534082] br-lan: port 5(wlan2) entered forwarding state
[  155.540660] br-lan: port 5(wlan2) entered disabled state
[  155.697493] IPv6: ADDRCONF(NETDEV_CHANGE): wlan2: link becomes ready
[  155.697728] br-lan: port 5(wlan2) entered blocking state
[  155.702935] br-lan: port 5(wlan2) entered forwarding state
[  156.697706] ath10k_pci 0001:01:00.0: 10.1 wmi init: vdevs: 16  peers: 127  tid: 256
[  156.704242] ath10k_pci 0001:01:00.0: wmi print 'P 128 V 8 T 410'
[  156.704287] ath10k_pci 0001:01:00.0: wmi print 'msdu-desc: 1424  sw-crypt: 0 ct-sta: 0'
[  156.710686] ath10k_pci 0001:01:00.0: wmi print 'alloc rem: 25560 iram: 24780'
[  156.754932] ath10k_pci 0001:01:00.0: pdev param 0 not supported by firmware
[  156.759660] ath10k_pci 0001:01:00.0: rts threshold -1
[  156.761801] br-lan: port 6(wlan0) entered blocking state
[  156.765968] br-lan: port 6(wlan0) entered disabled state
[  156.771550] device wlan0 entered promiscuous mode
[  156.790114] br-lan: port 7(wlan1) entered blocking state
[  156.790162] br-lan: port 7(wlan1) entered disabled state
[  156.794769] device wlan1 entered promiscuous mode
[  156.800080] br-lan: port 7(wlan1) entered blocking state
[  156.804406] br-lan: port 7(wlan1) entered forwarding state
[  157.494721] IPv6: ADDRCONF(NETDEV_CHANGE): wlan1: link becomes ready
[  161.144099] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
[  161.144326] br-lan: port 6(wlan0) entered blocking state
[  161.149576] br-lan: port 6(wlan0) entered forwarding state

Its not a few errors, the QCN cards will not work, ath11k PCI failed

yes but how then I can connect to

/sys/devices/platform/soc/c000000.wifi/net/wlan1 and /sys/devices/platform/soc/c000000.wifi/net/wlan2

root@OpenWrt:/sys/devices/platform/soc/c000000.wifi# cat driver_override
(null)
root@OpenWrt:/sys/devices/platform/soc/c000000.wifi# cat uevent
DRIVER=ath11k
OF_NAME=wifi
OF_FULLNAME=/soc/wifi@c0000000
OF_COMPATIBLE_0=qcom,ipq8074-wifi
OF_COMPATIBLE_N=1
MODALIAS=of:NwifiT(null)Cqcom,ipq8074-wifi

So what?
That worked from the start

Looks like for QCN9074 you are getting an error 90 (QMI_ERR_INCOMPATIBLE_STATE_V01)

Hm, its gotta be some kind of a QMI conflict, cause it happens as soon as the AHB module is inserted if the PCI one has been loaded as well.

And the thing is that the AHB module is printing the QMI error

so I removed AHB and instead got the following with QCN9074 expecting a board.bin

 12.381214] ath11k_pci 0000:01:00.0: chip_id 0x0 chip_family 0x0 board_id 0xff soc_id 0xffffffff
[   12.381265] ath11k_pci 0000:01:00.0: fw_version 0x250a04b8 fw_build_timestamp 2021-12-20 06:41 fw_build_id
[   12.474631] ath11k_pci 0000:01:00.0: failed to fetch board-2.bin or board.bin from QCN9074/hw1.0
[   12.474685] ath11k_pci 0000:01:00.0: qmi failed to fetch board file: -12
[   12.482658] ath11k_pci 0000:01:00.0: failed to load board data file: -12

found this interesting discussion hinting that one has the extract it ...

https://lore.kernel.org/ath11k/4c778b39-3c32-2b7c-9f91-4aba49fbe4ca@phrozen.org/t/

quote on the process to extract the board from the link above
"So if I get

(extract board_id 162 as board.bin - because nobody seems to initialize the
board_id in the OTP)

and use it with

https://github.com/kvalo/ath11k-firmware/tree/master/QCN9074/hw1.0/2.5.0.1/WLAN.HK.2.5.0.1-01100-QCAHKSWPL_SILICONZ-1"

the solution ?
"The described problem was NOT that files from other repositories were mixed.
Actually, the solution was to mix the firmware with the BDF from a different
repository." !!!

...

so copied the board-2.bin from the ipq8074 folder

rmmod/insmod ath11k_pci to trigger mhi

[ 1136.079672] ath11k_pci 0000:01:00.0: BAR 0: assigned [mem 0x20400000-0x205fffff 64bit]
[ 1136.080309] ath11k_pci 0000:01:00.0: MSI vectors: 16
[ 1136.086534] ath11k_pci 0000:01:00.0: qcn9074 hw1.0
[ 1136.248797] mhi mhi0: Requested to power ON
[ 1136.249011] mhi mhi0: Power on setup success
[ 1136.323407] mhi mhi0: Wait for device to enter SBL or Mission mode
root@OpenWrt:/etc/init.d# [ 1136.419816] ath11k_pci 0000:01:00.0: chip_id 0x0 chip_family 0x0 board_id 0xff soc_id 0xffffffff
[ 1136.419873] ath11k_pci 0000:01:00.0: fw_version 0x250a04b8 fw_build_timestamp 2021-12-20 06:41 fw_build_id
[ 1136.428061] ath11k_pci 0000:01:00.0: failed to fetch board data for bus=pci,qmi-chip-id=0,qmi-board-id=255,variant=Xiaomi-AX9000 from ath11k/QCN9074/hw1.0/board-2.bin
[ 1136.473595] ath11k_pci 0000:01:00.0: failed to fetch board-2.bin or board.bin from QCN9074/hw1.0
[ 1136.473655] ath11k_pci 0000:01:00.0: qmi failed to fetch board file: -12
[ 1136.481559] ath11k_pci 0000:01:00.0: failed to load board data file: -12

how one extracts the right board_id from the board-2.bin ?

The stock BDF is broken anyway as it lacks regulatory info, just comment the variant in the DTS and use this one for testing:

1 Like