mirror of
https://github.com/openwrt/openwrt.git
synced 2025-01-16 01:40:26 +00:00
2e3c79ef83
ECW5410 has 2 QCA9984 cards, one per PCI controller.
They are located at PCI adresses 0001:01:00.0 and 0002:01:00.0.
Currently, pre-cal is not provided for 0001:01:00.0 at all,but for
0000:01:00.0 which is incorrect and causes the ath10k driver to not
be able to fetch the BMI ID and use that to fetch the proper BDF but
rather fail with:
[ 12.029708] ath10k 5.10 driver, optimized for CT firmware, probing pci device: 0x46.
[ 12.031816] ath10k_pci 0001:01:00.0: enabling device (0140 -> 0142)
[ 12.037660] ath10k_pci 0001:01:00.0: pci irq msi oper_irq_mode 2 irq_mode 0 reset_mode 0
[ 13.173898] ath10k_pci 0001:01:00.0: qca9984/qca9994 hw1.0 target 0x01000000 chip_id 0x00000000 sub 168c:cafe
[ 13.174015] ath10k_pci 0001:01:00.0: kconfig debug 0 debugfs 1 tracing 0 dfs 1 testmode 0
[ 13.189304] ath10k_pci 0001:01:00.0: firmware ver 10.4b-ct-9984-fW-13-5ae337bb1 api 5 features mfp,peer-flow-ctrl,txstatus-noack,wmi-10.x-CT,ratemask-CT,regdump-CT,txrate-CT,flush-all-CT,pingpong-CT,ch-regs-CT,nop-CT,set-special-CT,tx-rc-CT,cust-stats-CT,txrate2-CT,beacon-cb-CT,wmi-block-ack-CT,wmi-bcn-rc-CT crc35
[ 15.492322] ath10k_pci 0001:01:00.0: failed to fetch board data for bus=pci,vendor=168c,device=0046,subsystem-vendor=168c,subsystem-device=cafe,variant=Edgecore-ECW541 from ath10k/QCA9984/hw1.0/board-2.bin
[ 15.543883] ath10k_pci 0001:01:00.0: failed to fetch board-2.bin or board.bin from ath10k/QCA9984/hw1.0
[ 15.543920] ath10k_pci 0001:01:00.0: failed to fetch board file: -12
[ 15.552281] ath10k_pci 0001:01:00.0: could not probe fw (-12)
So, provide the pre-cal for the actual PCI card and not the non-existent
one.
Fixes: 59f0a0f
("ipq806x: add Edgecore ECW5410 support")
Signed-off-by: Robert Marko <robert.marko@sartura.hr>
94 lines
1.9 KiB
Bash
94 lines
1.9 KiB
Bash
#!/bin/sh
|
|
|
|
[ -e /lib/firmware/$FIRMWARE ] && exit 0
|
|
|
|
. /lib/functions/caldata.sh
|
|
|
|
board=$(board_name)
|
|
|
|
case "$FIRMWARE" in
|
|
"ath10k/pre-cal-pci-0000:01:00.0.bin")
|
|
case $board in
|
|
askey,rt4230w-rev6)
|
|
caldata_extract "0:ART" 0x1000 0x2f20
|
|
;;
|
|
asrock,g10)
|
|
caldata_extract "0:art" 0x1000 0x2f20
|
|
;;
|
|
buffalo,wxr-2533dhp |\
|
|
nec,wg2600hp |\
|
|
nec,wg2600hp3 |\
|
|
tplink,vr2600v)
|
|
caldata_extract "ART" 0x1000 0x2f20
|
|
;;
|
|
linksys,ea7500-v1 |\
|
|
linksys,ea8500)
|
|
caldata_extract "art" 0x1000 0x2f20
|
|
ath10k_patch_mac $(macaddr_add $(mtd_get_mac_ascii devinfo hw_mac_addr) 1)
|
|
;;
|
|
netgear,d7800 |\
|
|
netgear,r7500v2 |\
|
|
netgear,r7800 |\
|
|
netgear,xr500)
|
|
caldata_extract "art" 0x1000 0x2f20
|
|
;;
|
|
tplink,ad7200 |\
|
|
tplink,c2600)
|
|
caldata_extract "radio" 0x1000 0x2f20
|
|
;;
|
|
zyxel,nbg6817)
|
|
caldata_extract "0:art" 0x1000 0x2f20
|
|
ath10k_patch_mac $(macaddr_add $(mtd_get_mac_ascii 0:appsblenv ethaddr) 1)
|
|
;;
|
|
esac
|
|
;;
|
|
"ath10k/pre-cal-pci-0001:01:00.0.bin")
|
|
case $board in
|
|
askey,rt4230w-rev6)
|
|
caldata_extract "0:ART" 0x5000 0x2f20
|
|
;;
|
|
asrock,g10)
|
|
caldata_extract "0:art" 0x5000 0x2f20
|
|
;;
|
|
buffalo,wxr-2533dhp |\
|
|
nec,wg2600hp |\
|
|
nec,wg2600hp3 |\
|
|
tplink,vr2600v)
|
|
caldata_extract "ART" 0x5000 0x2f20
|
|
;;
|
|
edgecore,ecw5410)
|
|
caldata_extract "0:art" 0x1000 0x2f20
|
|
;;
|
|
linksys,ea7500-v1 |\
|
|
linksys,ea8500)
|
|
caldata_extract "art" 0x5000 0x2f20
|
|
ath10k_patch_mac $(macaddr_add $(mtd_get_mac_ascii devinfo hw_mac_addr) 2)
|
|
;;
|
|
netgear,d7800 |\
|
|
netgear,r7500v2 |\
|
|
netgear,r7800 |\
|
|
netgear,xr500)
|
|
caldata_extract "art" 0x5000 0x2f20
|
|
;;
|
|
tplink,ad7200 |\
|
|
tplink,c2600)
|
|
caldata_extract "radio" 0x5000 0x2f20
|
|
;;
|
|
zyxel,nbg6817)
|
|
caldata_extract "0:art" 0x5000 0x2f20
|
|
ath10k_patch_mac $(mtd_get_mac_ascii 0:appsblenv ethaddr)
|
|
;;
|
|
esac
|
|
;;
|
|
"ath10k/pre-cal-pci-0002:01:00.0.bin")
|
|
case $board in
|
|
edgecore,ecw5410)
|
|
caldata_extract "0:art" 0x5000 0x2f20
|
|
;;
|
|
esac
|
|
;;
|
|
*)
|
|
exit 1
|
|
;;
|
|
esac
|